From e60fa65eef34e7fb089be917706735cce9c74603 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 20 Mar 2018 10:02:07 +0100 Subject: [PATCH] handle Favorite items modification in FavoritesFragment itself --- ...FavoritesDialog.kt => SelectContactsDialog.kt} | 15 ++++----------- .../contacts/fragments/FavoritesFragment.kt | 13 +++++++++++-- 2 files changed, 15 insertions(+), 13 deletions(-) rename app/src/main/kotlin/com/simplemobiletools/contacts/dialogs/{AddFavoritesDialog.kt => SelectContactsDialog.kt} (82%) 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) } }