diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/AddFavoritesDialog.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/SelectContactsDialog.kt similarity index 82% rename from app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/AddFavoritesDialog.kt rename to app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/SelectContactsDialog.kt index 9463beee..f8e9687d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/AddFavoritesDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/SelectContactsDialog.kt @@ -11,7 +11,7 @@ import com.simplemobiletools.contacts.helpers.ContactsHelper import com.simplemobiletools.contacts.models.Contact import kotlinx.android.synthetic.main.layout_select_contact.view.* -class AddFavoritesDialog(val activity: SimpleActivity, private val callback: () -> Unit) { +class SelectContactsDialog(val activity: SimpleActivity, private val callback: (displayedContacts: ArrayList, selectedContacts: HashSet) -> Unit) { private var view = activity.layoutInflater.inflate(R.layout.layout_select_contact, null) private val config = activity.config private var allContacts = ArrayList() @@ -45,23 +45,16 @@ class AddFavoritesDialog(val activity: SimpleActivity, private val callback: () .setPositiveButton(R.string.ok, { dialog, which -> dialogConfirmed() }) .setNegativeButton(R.string.cancel, null) .create().apply { - activity.setupDialogStuff(view, this) - } + activity.setupDialogStuff(view, this) + } } private fun dialogConfirmed() { Thread { - val contactsHelper = ContactsHelper(activity) val allDisplayedContacts = ArrayList() allContacts.mapTo(allDisplayedContacts, { it }) val selectedContacts = (view?.select_contact_list?.adapter as? SelectContactsAdapter)?.getSelectedItemsSet() ?: LinkedHashSet() - val contactsToAdd = selectedContacts.map { it } as ArrayList - contactsHelper.addFavorites(contactsToAdd) - - allDisplayedContacts.removeAll(selectedContacts) - contactsHelper.removeFavorites(allDisplayedContacts) - - callback() + callback(allDisplayedContacts, selectedContacts) }.start() } } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/FavoritesFragment.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/FavoritesFragment.kt index 104eaa41..741bf30e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/FavoritesFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/FavoritesFragment.kt @@ -2,7 +2,10 @@ package com.simplemobiletools.contacts.fragments import android.content.Context import android.util.AttributeSet -import com.simplemobiletools.contacts.dialogs.AddFavoritesDialog +import com.simplemobiletools.contacts.activities.SimpleActivity +import com.simplemobiletools.contacts.dialogs.SelectContactsDialog +import com.simplemobiletools.contacts.helpers.ContactsHelper +import com.simplemobiletools.contacts.models.Contact class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet) { override fun fabClicked() { @@ -15,7 +18,13 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa } private fun showAddFavoritesDialog() { - AddFavoritesDialog(activity!!) { + SelectContactsDialog(activity!!) { displayedContacts, selectedContacts -> + val contactsHelper = ContactsHelper(activity as SimpleActivity) + val contactsToAdd = selectedContacts.map { it } as ArrayList + contactsHelper.addFavorites(contactsToAdd) + + displayedContacts.removeAll(selectedContacts) + contactsHelper.removeFavorites(displayedContacts) activity!!.refreshContacts(false, true) } }