From 787929da8df9270ec64cf20064f15bc0bfa269ea Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 21 May 2020 22:42:24 +0200 Subject: [PATCH] fix #8, allow setting up a default tab to be used --- app/build.gradle | 2 +- .../dialer/activities/MainActivity.kt | 17 +++++++--- .../dialer/activities/SettingsActivity.kt | 25 +++++++++++++++ app/src/main/res/layout/activity_settings.xml | 32 +++++++++++++++++++ 4 files changed, 71 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 16457090..b13d3435 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,6 +56,6 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.28.14' + implementation 'com.simplemobiletools:commons:5.28.17' implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a' } diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt index 0efd0300..7ff10786 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt @@ -217,7 +217,7 @@ class MainActivity : SimpleActivity() { } private fun setupTabColors() { - val lastUsedPage = config.lastUsedViewPagerPage + val lastUsedPage = getDefaultTab() main_tabs_holder.apply { background = ColorDrawable(config.backgroundColor) setSelectedTabIndicatorColor(getAdjustedPrimaryColor()) @@ -263,13 +263,13 @@ class MainActivity : SimpleActivity() { main_tabs_holder.removeAllTabs() tabsList.forEachIndexed { index, value -> val tab = main_tabs_holder.newTab().setIcon(getTabIcon(index)) - main_tabs_holder.addTab(tab, index, config.lastUsedViewPagerPage == index) + main_tabs_holder.addTab(tab, index, getDefaultTab() == index) } // selecting the proper tab sometimes glitches, add an extra selector to make sure we have it right main_tabs_holder.onGlobalLayout { Handler().postDelayed({ - main_tabs_holder.getTabAt(config.lastUsedViewPagerPage)?.select() + main_tabs_holder.getTabAt(getDefaultTab())?.select() invalidateOptionsMenu() }, 100L) } @@ -298,7 +298,7 @@ class MainActivity : SimpleActivity() { if (viewpager.adapter == null) { viewpager.adapter = ViewPagerAdapter(this) - viewpager.currentItem = config.lastUsedViewPagerPage + viewpager.currentItem = getDefaultTab() } contacts_fragment?.refreshItems() @@ -308,6 +308,15 @@ class MainActivity : SimpleActivity() { private fun getAllFragments() = arrayListOf(contacts_fragment, favorites_fragment, recents_fragment).toMutableList() as ArrayList + private fun getDefaultTab(): Int { + return when (config.defaultTab) { + TAB_LAST_USED -> config.lastUsedViewPagerPage + TAB_CONTACTS -> 0 + TAB_FAVORITES -> 1 + else -> 2 + } + } + private fun launchAbout() { val licenses = LICENSE_GLIDE or LICENSE_INDICATOR_FAST_SCROLL diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/SettingsActivity.kt index b9e6de88..84b557a2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/SettingsActivity.kt @@ -8,6 +8,7 @@ import android.view.Menu import com.simplemobiletools.commons.activities.ManageBlockedNumbersActivity import com.simplemobiletools.commons.dialogs.ChangeDateTimeFormatDialog import com.simplemobiletools.commons.dialogs.RadioGroupDialog +import com.simplemobiletools.commons.extensions.baseConfig import com.simplemobiletools.commons.extensions.beVisibleIf import com.simplemobiletools.commons.extensions.getFontSizeText import com.simplemobiletools.commons.extensions.updateTextColors @@ -33,6 +34,7 @@ class SettingsActivity : SimpleActivity() { setupManageSpeedDial() setupChangeDateTimeFormat() setupFontSize() + setupDefaultTab() updateTextColors(settings_holder) invalidateOptionsMenu() } @@ -98,4 +100,27 @@ class SettingsActivity : SimpleActivity() { } } } + + private fun setupDefaultTab() { + settings_default_tab.text = getDefaultTabText() + settings_default_tab_holder.setOnClickListener { + val items = arrayListOf( + RadioItem(TAB_CONTACTS, getString(R.string.contacts_tab)), + RadioItem(TAB_FAVORITES, getString(R.string.favorites_tab)), + RadioItem(TAB_CALL_HISTORY, getString(R.string.call_history_tab)), + RadioItem(TAB_LAST_USED, getString(R.string.last_used_tab))) + + RadioGroupDialog(this@SettingsActivity, items, config.defaultTab) { + config.defaultTab = it as Int + settings_default_tab.text = getDefaultTabText() + } + } + } + + private fun getDefaultTabText() = getString(when (baseConfig.defaultTab) { + TAB_CONTACTS -> R.string.contacts_tab + TAB_FAVORITES -> R.string.favorites_tab + TAB_CALL_HISTORY -> R.string.call_history_tab + else -> R.string.last_used_tab + }) } diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index baaa1560..2f27ec60 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -149,5 +149,37 @@ android:clickable="false" /> + + + + + + + +