mirror of
https://github.com/SimpleMobileTools/Simple-Contacts.git
synced 2025-02-15 19:10:43 +01:00
allow removing contacts from groups by long pressing them and selecting Remove
This commit is contained in:
parent
40f1fc82dd
commit
6d4f9912fd
@ -11,11 +11,12 @@ import com.simplemobiletools.contacts.extensions.editContact
|
|||||||
import com.simplemobiletools.contacts.extensions.tryStartCall
|
import com.simplemobiletools.contacts.extensions.tryStartCall
|
||||||
import com.simplemobiletools.contacts.extensions.viewContact
|
import com.simplemobiletools.contacts.extensions.viewContact
|
||||||
import com.simplemobiletools.contacts.helpers.*
|
import com.simplemobiletools.contacts.helpers.*
|
||||||
|
import com.simplemobiletools.contacts.interfaces.RemoveFromGroupListener
|
||||||
import com.simplemobiletools.contacts.models.Contact
|
import com.simplemobiletools.contacts.models.Contact
|
||||||
import com.simplemobiletools.contacts.models.Group
|
import com.simplemobiletools.contacts.models.Group
|
||||||
import kotlinx.android.synthetic.main.activity_group_contacts.*
|
import kotlinx.android.synthetic.main.activity_group_contacts.*
|
||||||
|
|
||||||
class GroupContactsActivity : SimpleActivity() {
|
class GroupContactsActivity : SimpleActivity(), RemoveFromGroupListener {
|
||||||
private var allContacts = ArrayList<Contact>()
|
private var allContacts = ArrayList<Contact>()
|
||||||
private var groupContacts = ArrayList<Contact>()
|
private var groupContacts = ArrayList<Contact>()
|
||||||
lateinit var group: Group
|
lateinit var group: Group
|
||||||
@ -53,7 +54,7 @@ class GroupContactsActivity : SimpleActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun updateContacts(contacts: ArrayList<Contact>) {
|
private fun updateContacts(contacts: ArrayList<Contact>) {
|
||||||
ContactsAdapter(this, contacts, null, LOCATION_GROUP_CONTACTS, group_contacts_list, group_contacts_fastscroller) {
|
ContactsAdapter(this, contacts, null, LOCATION_GROUP_CONTACTS, this, group_contacts_list, group_contacts_fastscroller) {
|
||||||
when (config.onContactClick) {
|
when (config.onContactClick) {
|
||||||
ON_CLICK_CALL_CONTACT -> {
|
ON_CLICK_CALL_CONTACT -> {
|
||||||
val contact = it as Contact
|
val contact = it as Contact
|
||||||
@ -78,4 +79,8 @@ class GroupContactsActivity : SimpleActivity() {
|
|||||||
group_contacts_fastscroller.updateBubbleText(item?.getBubbleText() ?: "")
|
group_contacts_fastscroller.updateBubbleText(item?.getBubbleText() ?: "")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun removeFromGroup(contacts: ArrayList<Contact>) {
|
||||||
|
ContactsHelper(this).removeContactsFromGroup(contacts, group.id)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,12 +26,14 @@ import com.simplemobiletools.contacts.helpers.LOCATION_CONTACTS_TAB
|
|||||||
import com.simplemobiletools.contacts.helpers.LOCATION_FAVORITES_TAB
|
import com.simplemobiletools.contacts.helpers.LOCATION_FAVORITES_TAB
|
||||||
import com.simplemobiletools.contacts.helpers.LOCATION_GROUP_CONTACTS
|
import com.simplemobiletools.contacts.helpers.LOCATION_GROUP_CONTACTS
|
||||||
import com.simplemobiletools.contacts.interfaces.RefreshContactsListener
|
import com.simplemobiletools.contacts.interfaces.RefreshContactsListener
|
||||||
|
import com.simplemobiletools.contacts.interfaces.RemoveFromGroupListener
|
||||||
import com.simplemobiletools.contacts.models.Contact
|
import com.simplemobiletools.contacts.models.Contact
|
||||||
import kotlinx.android.synthetic.main.item_contact_with_number.view.*
|
import kotlinx.android.synthetic.main.item_contact_with_number.view.*
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Contact>, private val listener: RefreshContactsListener?,
|
class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Contact>, private val refreshListener: RefreshContactsListener?,
|
||||||
private val location: Int, recyclerView: MyRecyclerView, fastScroller: FastScroller, itemClick: (Any) -> Unit) :
|
private val location: Int, private val removeListener: RemoveFromGroupListener?, recyclerView: MyRecyclerView,
|
||||||
|
fastScroller: FastScroller, itemClick: (Any) -> Unit) :
|
||||||
MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) {
|
MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) {
|
||||||
|
|
||||||
private lateinit var contactDrawable: Drawable
|
private lateinit var contactDrawable: Drawable
|
||||||
@ -136,11 +138,11 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Cont
|
|||||||
|
|
||||||
ContactsHelper(activity).deleteContacts(contactsToRemove)
|
ContactsHelper(activity).deleteContacts(contactsToRemove)
|
||||||
if (contactItems.isEmpty()) {
|
if (contactItems.isEmpty()) {
|
||||||
listener?.refreshContacts(true, true)
|
refreshListener?.refreshContacts(true, true)
|
||||||
finishActMode()
|
finishActMode()
|
||||||
} else {
|
} else {
|
||||||
removeSelectedItems()
|
removeSelectedItems()
|
||||||
listener?.refreshFavorites()
|
refreshListener?.refreshFavorites()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,13 +156,14 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Cont
|
|||||||
if (location == LOCATION_FAVORITES_TAB) {
|
if (location == LOCATION_FAVORITES_TAB) {
|
||||||
ContactsHelper(activity).removeFavorites(contactsToRemove)
|
ContactsHelper(activity).removeFavorites(contactsToRemove)
|
||||||
if (contactItems.isEmpty()) {
|
if (contactItems.isEmpty()) {
|
||||||
listener?.refreshFavorites()
|
refreshListener?.refreshFavorites()
|
||||||
finishActMode()
|
finishActMode()
|
||||||
} else {
|
} else {
|
||||||
removeSelectedItems()
|
removeSelectedItems()
|
||||||
}
|
}
|
||||||
} else if (location == LOCATION_GROUP_CONTACTS) {
|
} else if (location == LOCATION_GROUP_CONTACTS) {
|
||||||
|
removeListener?.removeFromGroup(contactsToRemove)
|
||||||
|
removeSelectedItems()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,7 +171,7 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Cont
|
|||||||
val newFavorites = ArrayList<Contact>()
|
val newFavorites = ArrayList<Contact>()
|
||||||
selectedPositions.forEach { newFavorites.add(contactItems[it]) }
|
selectedPositions.forEach { newFavorites.add(contactItems[it]) }
|
||||||
ContactsHelper(activity).addFavorites(newFavorites)
|
ContactsHelper(activity).addFavorites(newFavorites)
|
||||||
listener?.refreshFavorites()
|
refreshListener?.refreshFavorites()
|
||||||
finishActMode()
|
finishActMode()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
|
|||||||
if (currAdapter == null || forceListRedraw) {
|
if (currAdapter == null || forceListRedraw) {
|
||||||
forceListRedraw = false
|
forceListRedraw = false
|
||||||
val location = if (this is FavoritesFragment) LOCATION_FAVORITES_TAB else LOCATION_CONTACTS_TAB
|
val location = if (this is FavoritesFragment) LOCATION_FAVORITES_TAB else LOCATION_CONTACTS_TAB
|
||||||
ContactsAdapter(activity as SimpleActivity, contacts, activity, location, fragment_list, fragment_fastscroller) {
|
ContactsAdapter(activity as SimpleActivity, contacts, activity, location, null, fragment_list, fragment_fastscroller) {
|
||||||
when (config.onContactClick) {
|
when (config.onContactClick) {
|
||||||
ON_CLICK_CALL_CONTACT -> {
|
ON_CLICK_CALL_CONTACT -> {
|
||||||
val contact = it as Contact
|
val contact = it as Contact
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.simplemobiletools.contacts.interfaces
|
||||||
|
|
||||||
|
import com.simplemobiletools.contacts.models.Contact
|
||||||
|
|
||||||
|
interface RemoveFromGroupListener {
|
||||||
|
fun removeFromGroup(contacts: ArrayList<Contact>)
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user