remember the last used viewpager page

This commit is contained in:
tibbi 2017-12-29 23:52:00 +01:00
parent 1e0d8f383d
commit 1771e92f11
4 changed files with 19 additions and 5 deletions

View File

@ -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"

View File

@ -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(

View File

@ -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()
}

View File

@ -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"