From 2408cabd8140f31c2adf39ef1d6b6da45b2e8fa4 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 6 Nov 2018 20:46:26 +0100 Subject: [PATCH] handle local group deleting --- .../contacts/pro/adapters/GroupsAdapter.kt | 20 +++++++++++-------- .../contacts/pro/helpers/DBHelper.kt | 9 --------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/GroupsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/GroupsAdapter.kt index c2e78641..1d6f76d6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/GroupsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/GroupsAdapter.kt @@ -13,7 +13,7 @@ import com.simplemobiletools.contacts.pro.R import com.simplemobiletools.contacts.pro.activities.SimpleActivity import com.simplemobiletools.contacts.pro.dialogs.RenameGroupDialog import com.simplemobiletools.contacts.pro.extensions.config -import com.simplemobiletools.contacts.pro.extensions.dbHelper +import com.simplemobiletools.contacts.pro.extensions.groupsDB import com.simplemobiletools.contacts.pro.helpers.ContactsHelper import com.simplemobiletools.contacts.pro.helpers.GROUPS_TAB_MASK import com.simplemobiletools.contacts.pro.interfaces.RefreshContactsListener @@ -92,7 +92,9 @@ class GroupsAdapter(activity: SimpleActivity, var groups: ArrayList, val private fun askConfirmDelete() { ConfirmationDialog(activity) { - deleteGroups() + Thread { + deleteGroups() + }.start() } } @@ -105,18 +107,20 @@ class GroupsAdapter(activity: SimpleActivity, var groups: ArrayList, val val positions = getSelectedItemPositions() groupsToRemove.forEach { if (it.isPrivateSecretGroup()) { - activity.dbHelper.deleteGroup(it.id!!) + activity.groupsDB.deleteGroupId(it.id!!) } else { ContactsHelper(activity).deleteGroup(it.id!!) } } groups.removeAll(groupsToRemove) - if (groups.isEmpty()) { - refreshListener?.refreshContacts(GROUPS_TAB_MASK) - finishActMode() - } else { - removeSelectedItems(positions) + activity.runOnUiThread { + if (groups.isEmpty()) { + refreshListener?.refreshContacts(GROUPS_TAB_MASK) + finishActMode() + } else { + removeSelectedItems(positions) + } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/DBHelper.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/DBHelper.kt index bfd27e66..8925e303 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/DBHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/DBHelper.kt @@ -6,7 +6,6 @@ import android.content.Context import android.database.sqlite.SQLiteDatabase import android.database.sqlite.SQLiteOpenHelper import android.graphics.BitmapFactory -import android.text.TextUtils import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.simplemobiletools.commons.extensions.getBlobValue @@ -80,14 +79,6 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont db.execSQL("REPLACE INTO sqlite_sequence (name, seq) VALUES ('$GROUPS_TABLE_NAME', $FIRST_GROUP_ID)") } - fun deleteGroup(id: Long) = deleteGroups(arrayOf(id.toString())) - - private fun deleteGroups(ids: Array) { - val args = TextUtils.join(", ", ids) - val selection = "$GROUPS_TABLE_NAME.$COL_ID IN ($args)" - mDb.delete(GROUPS_TABLE_NAME, selection, null) - } - fun addContactsToGroup(contacts: ArrayList, groupId: Long) { contacts.forEach { val currentGroupIds = it.groups.map { it.id } as ArrayList