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() ?: "")