From 1771e92f113b749d21cd0abd57abb6aea239cefa Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 29 Dec 2017 23:52:00 +0100 Subject: [PATCH] remember the last used viewpager page --- app/build.gradle | 2 +- .../contacts/activities/MainActivity.kt | 17 +++++++++++++---- .../contacts/helpers/Config.kt | 4 ++++ .../contacts/helpers/Constants.kt | 1 + 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 046184c9..6e7a7b4f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -36,7 +36,7 @@ ext { } dependencies { - implementation 'com.simplemobiletools:commons:3.4.15' + implementation 'com.simplemobiletools:commons:3.5.0' implementation 'joda-time:joda-time:2.9.9' debugImplementation "com.squareup.leakcanary:leakcanary-android:$leakCanaryVersion" 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 845ce89e..e96946e7 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/MainActivity.kt @@ -60,8 +60,7 @@ class MainActivity : SimpleActivity() { val configTextColor = config.textColor if (storedTextColor != configTextColor) { - val inactiveTabIndex = if (viewpager.currentItem == 0) 1 else 0 - main_tabs_holder.getTabAt(inactiveTabIndex)?.icon?.applyColorFilter(configTextColor) + main_tabs_holder.getTabAt(getOtherViewPagerItem(viewpager.currentItem))?.icon?.applyColorFilter(configTextColor) contacts_fragment.textColorChanged(configTextColor) favorites_fragment.textColorChanged(configTextColor) } @@ -98,6 +97,11 @@ class MainActivity : SimpleActivity() { storeStateVariables() } + override fun onDestroy() { + super.onDestroy() + config.lastUsedViewPagerPage = viewpager.currentItem + } + override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.menu, menu) return true @@ -124,6 +128,8 @@ class MainActivity : SimpleActivity() { } } + private fun getOtherViewPagerItem(used: Int) = if (used == 1) 0 else 1 + private fun initFragments() { viewpager.adapter = ViewPagerAdapter(this) viewpager.onPageChanged { @@ -131,11 +137,14 @@ class MainActivity : SimpleActivity() { invalidateOptionsMenu() } + val lastUsedPage = config.lastUsedViewPagerPage + viewpager.currentItem = lastUsedPage main_tabs_holder.apply { background = ColorDrawable(config.backgroundColor) setSelectedTabIndicatorColor(getAdjustedPrimaryColor()) - getTabAt(0)?.icon?.applyColorFilter(getAdjustedPrimaryColor()) - getTabAt(1)?.icon?.applyColorFilter(config.textColor) + getTabAt(lastUsedPage)?.select() + getTabAt(lastUsedPage)?.icon?.applyColorFilter(getAdjustedPrimaryColor()) + getTabAt(getOtherViewPagerItem(lastUsedPage))?.icon?.applyColorFilter(config.textColor) } main_tabs_holder.onTabSelectionChanged( 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 13ba23a5..b65cc4f0 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Config.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Config.kt @@ -31,4 +31,8 @@ class Config(context: Context) : BaseConfig(context) { var lastUsedContactSource: String get() = prefs.getString(LAST_USED_CONTACT_SOURCE, "") set(lastUsedContactSource) = prefs.edit().putString(LAST_USED_CONTACT_SOURCE, lastUsedContactSource).apply() + + var lastUsedViewPagerPage: Int + get() = prefs.getInt(LAST_USED_VIEW_PAGER_PAGE, 0) + set(lastUsedViewPagerPage) = prefs.edit().putInt(LAST_USED_VIEW_PAGER_PAGE, lastUsedViewPagerPage).apply() } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt index e9fe1e4c..34d9e772 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/helpers/Constants.kt @@ -5,6 +5,7 @@ val CALL_CONTACT_ON_CLICK = "call_contact_on_click" val DISPLAY_CONTACT_SOURCES = "display_contact_sources" val START_NAME_WITH_SURNAME = "start_name_with_surname" val LAST_USED_CONTACT_SOURCE = "last_used_contact_source" +val LAST_USED_VIEW_PAGER_PAGE = "last_used_view_pager_page" val CONTACT_ID = "contact_id"