handle Favorite items modification in FavoritesFragment itself
This commit is contained in:
parent
3c413347d6
commit
e60fa65eef
|
@ -11,7 +11,7 @@ import com.simplemobiletools.contacts.helpers.ContactsHelper
|
||||||
import com.simplemobiletools.contacts.models.Contact
|
import com.simplemobiletools.contacts.models.Contact
|
||||||
import kotlinx.android.synthetic.main.layout_select_contact.view.*
|
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<Contact>, selectedContacts: HashSet<Contact>) -> Unit) {
|
||||||
private var view = activity.layoutInflater.inflate(R.layout.layout_select_contact, null)
|
private var view = activity.layoutInflater.inflate(R.layout.layout_select_contact, null)
|
||||||
private val config = activity.config
|
private val config = activity.config
|
||||||
private var allContacts = ArrayList<Contact>()
|
private var allContacts = ArrayList<Contact>()
|
||||||
|
@ -45,23 +45,16 @@ class AddFavoritesDialog(val activity: SimpleActivity, private val callback: ()
|
||||||
.setPositiveButton(R.string.ok, { dialog, which -> dialogConfirmed() })
|
.setPositiveButton(R.string.ok, { dialog, which -> dialogConfirmed() })
|
||||||
.setNegativeButton(R.string.cancel, null)
|
.setNegativeButton(R.string.cancel, null)
|
||||||
.create().apply {
|
.create().apply {
|
||||||
activity.setupDialogStuff(view, this)
|
activity.setupDialogStuff(view, this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun dialogConfirmed() {
|
private fun dialogConfirmed() {
|
||||||
Thread {
|
Thread {
|
||||||
val contactsHelper = ContactsHelper(activity)
|
|
||||||
val allDisplayedContacts = ArrayList<Contact>()
|
val allDisplayedContacts = ArrayList<Contact>()
|
||||||
allContacts.mapTo(allDisplayedContacts, { it })
|
allContacts.mapTo(allDisplayedContacts, { it })
|
||||||
val selectedContacts = (view?.select_contact_list?.adapter as? SelectContactsAdapter)?.getSelectedItemsSet() ?: LinkedHashSet()
|
val selectedContacts = (view?.select_contact_list?.adapter as? SelectContactsAdapter)?.getSelectedItemsSet() ?: LinkedHashSet()
|
||||||
val contactsToAdd = selectedContacts.map { it } as ArrayList<Contact>
|
callback(allDisplayedContacts, selectedContacts)
|
||||||
contactsHelper.addFavorites(contactsToAdd)
|
|
||||||
|
|
||||||
allDisplayedContacts.removeAll(selectedContacts)
|
|
||||||
contactsHelper.removeFavorites(allDisplayedContacts)
|
|
||||||
|
|
||||||
callback()
|
|
||||||
}.start()
|
}.start()
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -2,7 +2,10 @@ package com.simplemobiletools.contacts.fragments
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.util.AttributeSet
|
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) {
|
class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet) {
|
||||||
override fun fabClicked() {
|
override fun fabClicked() {
|
||||||
|
@ -15,7 +18,13 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun showAddFavoritesDialog() {
|
private fun showAddFavoritesDialog() {
|
||||||
AddFavoritesDialog(activity!!) {
|
SelectContactsDialog(activity!!) { displayedContacts, selectedContacts ->
|
||||||
|
val contactsHelper = ContactsHelper(activity as SimpleActivity)
|
||||||
|
val contactsToAdd = selectedContacts.map { it } as ArrayList<Contact>
|
||||||
|
contactsHelper.addFavorites(contactsToAdd)
|
||||||
|
|
||||||
|
displayedContacts.removeAll(selectedContacts)
|
||||||
|
contactsHelper.removeFavorites(displayedContacts)
|
||||||
activity!!.refreshContacts(false, true)
|
activity!!.refreshContacts(false, true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue