fix #8, allow setting up a default tab to be used

This commit is contained in:
tibbi
2020-05-21 22:42:24 +02:00
parent b830d43883
commit 787929da8d
4 changed files with 71 additions and 5 deletions

View File

@ -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<MyViewPagerFragment?>
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

View File

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