From bd13b59e360a18b3ffdad769c88ed405f720c620 Mon Sep 17 00:00:00 2001 From: tibbi <tibor@kaputa.sk> Date: Mon, 15 Jan 2018 20:54:37 +0100 Subject: [PATCH] redraw the contacts list after changing the filters --- .../simplemobiletools/contacts/activities/MainActivity.kt | 1 + .../contacts/fragments/MyViewPagerFragment.kt | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) 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 2afb7fae..8fe105d6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt @@ -249,6 +249,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener { fun showFilterDialog() { FilterContactSourcesDialog(this) { + contacts_fragment.forceListRedraw = true contacts_fragment.initContacts() } } 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 6095c725..0f0099d2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/fragments/MyViewPagerFragment.kt @@ -26,6 +26,8 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) private var contactsIgnoringSearch = ArrayList<Contact>() lateinit private var config: Config + var forceListRedraw = false + fun setupFragment(activity: MainActivity) { config = activity.config if (this.activity == null) { @@ -114,7 +116,8 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) fragment_list.beVisibleIf(contacts.isNotEmpty()) val currAdapter = fragment_list.adapter - if (currAdapter == null) { + if (currAdapter == null || forceListRedraw) { + forceListRedraw = false ContactsAdapter(activity as SimpleActivity, contacts, activity, this is FavoritesFragment, fragment_list, fragment_fastscroller) { if (config.callContact) { val contact = it as Contact @@ -132,6 +135,7 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) fragment_list.adapter = this } + fragment_fastscroller.setScrollTo(0) fragment_fastscroller.setViews(fragment_list) { val item = (fragment_list.adapter as ContactsAdapter).contactItems.getOrNull(it) fragment_fastscroller.updateBubbleText(item?.getBubbleText() ?: "")