From 5efc2fadb69c830ad5e339d98931781074329758 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 30 Dec 2017 19:08:42 +0100 Subject: [PATCH] allow removing favorites by long pressing them + Remove --- .../contacts/adapters/ContactsAdapter.kt | 14 ++++++++++++++ .../simplemobiletools/contacts/helpers/Config.kt | 16 ++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt index ad463b9e..d3716462 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt @@ -22,6 +22,7 @@ import com.simplemobiletools.contacts.helpers.ContactsHelper import com.simplemobiletools.contacts.models.Contact import com.simplemobiletools.interfaces.RefreshContactsListener import kotlinx.android.synthetic.main.item_contact_with_number.view.* +import java.util.* class ContactsAdapter(activity: SimpleActivity, var contactItems: MutableList, val listener: RefreshContactsListener?, val isFavoritesFragment: Boolean, recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) : @@ -119,7 +120,20 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: MutableList() + selectedPositions.sortedDescending().forEach { + favoritesToRemove.add(contactItems[it]) + } + contactItems.removeAll(favoritesToRemove) + + val favoriteIDsToRemove = HashSet() + favoritesToRemove.map { favoriteIDsToRemove.add(it.id.toString()) } + activity.config.removeFavorites(favoriteIDsToRemove) + removeSelectedItems() } private fun addToFavorites() { diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Config.kt index 13e8df06..cbfdf516 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Config.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Config.kt @@ -44,4 +44,20 @@ class Config(context: Context) : BaseConfig(context) { var favorites: Set get() = prefs.getStringSet(FAVORITES, HashSet()) set(favorites) = prefs.edit().remove(FAVORITES).putStringSet(FAVORITES, favorites).apply() + + fun addFavorite(id: String) { + addFavorites(HashSet(Arrays.asList(id))) + } + + private fun addFavorites(favs: Set) { + val currFavorites = HashSet(favs) + currFavorites.addAll(favs) + favorites = currFavorites + } + + fun removeFavorites(favs: Set) { + val currFavorites = HashSet(favorites) + currFavorites.removeAll(favs) + favorites = currFavorites + } }