From f25e953cd434a8d90843d990140acad3bbe65186 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 8 Apr 2018 12:24:06 +0200 Subject: [PATCH] avoid fetching contacts multiple times at once --- .../contacts/activities/MainActivity.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 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 a031c3f2..90144c75 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt @@ -39,6 +39,8 @@ class MainActivity : SimpleActivity(), RefreshContactsListener { private var isSearchOpen = false private var searchMenuItem: MenuItem? = null private var werePermissionsHandled = false + private var isFirstResume = true + private var isGettingContacts = false private var storedTextColor = 0 private var storedBackgroundColor = 0 @@ -116,16 +118,18 @@ class MainActivity : SimpleActivity(), RefreshContactsListener { favorites_fragment?.startNameWithSurnameChanged(configStartNameWithSurname) } - if (werePermissionsHandled) { + if (werePermissionsHandled && !isFirstResume) { if (viewpager.adapter == null) { initFragments() + } else { + refreshContacts(ALL_TABS_MASK) } getAllFragments().forEach { it?.onActivityResume() } - refreshContacts(ALL_TABS_MASK) } + isFirstResume = false } override fun onPause() { @@ -396,11 +400,13 @@ class MainActivity : SimpleActivity(), RefreshContactsListener { } override fun refreshContacts(refreshTabsMask: Int) { - if (isActivityDestroyed()) { + if (isActivityDestroyed() || isGettingContacts) { return } + isGettingContacts = true ContactsHelper(this).getContacts { + isGettingContacts = false if (isActivityDestroyed()) { return@getContacts }