From bc0b4a9622e4ee7a270b21ef679f327faf7a1945 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 30 Dec 2017 20:05:59 +0100 Subject: [PATCH] properly show the placeholders if all contacts are removed --- .../contacts/activities/MainActivity.kt | 3 ++- .../contacts/adapters/ContactsAdapter.kt | 15 +++++++++++++-- .../contacts/fragments/MyViewPagerFragment.kt | 4 +++- .../interfaces/RefreshContactsListener.kt | 2 +- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt index c661d5e5..05219e9c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt @@ -186,7 +186,8 @@ class MainActivity : SimpleActivity(), RefreshContactsListener { startAboutActivity(R.string.app_name, LICENSE_KOTLIN or LICENSE_MULTISELECT or LICENSE_JODA or LICENSE_GLIDE, BuildConfig.VERSION_NAME) } - override fun refreshItems() { + override fun refreshContacts() { + contacts_fragment.initContacts() } override fun refreshFavorites() { 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 820e26e7..d36d5442 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/adapters/ContactsAdapter.kt @@ -115,8 +115,14 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: MutableList() favoritesToRemove.mapTo(favoriteIDsToRemove, { it.id.toString() }) activity.config.removeFavorites(favoriteIDsToRemove) - removeSelectedItems() + if (contactItems.isEmpty()) { + listener?.refreshFavorites() + finishActMode() + } else { + removeSelectedItems() + } } private fun addToFavorites() { diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt index f36d3091..17ec463d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt @@ -24,6 +24,7 @@ import kotlinx.android.synthetic.main.fragment_layout.view.* abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) : CoordinatorLayout(context, attributeSet) { var activity: MainActivity? = null + var lastHashCode = 0 lateinit var config: Config fun setupFragment(activity: MainActivity) { @@ -101,7 +102,8 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) } } - if (contacts.hashCode() != (fragment_list.adapter as? ContactsAdapter)?.contactItems?.hashCode()) { + if (contacts.hashCode() != lastHashCode) { + lastHashCode = contacts.hashCode() activity!!.runOnUiThread { setupContacts(contacts) } diff --git a/app/src/main/kotlin/com/simplemobiletools/interfaces/RefreshContactsListener.kt b/app/src/main/kotlin/com/simplemobiletools/interfaces/RefreshContactsListener.kt index 15e1a802..d51534a1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/interfaces/RefreshContactsListener.kt +++ b/app/src/main/kotlin/com/simplemobiletools/interfaces/RefreshContactsListener.kt @@ -1,7 +1,7 @@ package com.simplemobiletools.interfaces interface RefreshContactsListener { - fun refreshItems() + fun refreshContacts() fun refreshFavorites() }