Skip to content

Commit 9b9d023

Browse files
committed
allow customizing the default tab to open at app start
1 parent 053b303 commit 9b9d023

File tree

3 files changed

+71
-8
lines changed

3 files changed

+71
-8
lines changed

app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/MainActivity.kt

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
340340

341341
private fun setupTabColors() {
342342
handledShowTabs = config.showTabs
343-
val lastUsedPage = config.lastUsedViewPagerPage
343+
val lastUsedPage = getDefaultTab()
344344
main_tabs_holder.apply {
345345
background = ColorDrawable(config.backgroundColor)
346346
setSelectedTabIndicatorColor(getAdjustedPrimaryColor())
@@ -406,14 +406,14 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
406406
skippedTabs++
407407
} else {
408408
val tab = main_tabs_holder.newTab().setIcon(getTabIcon(index))
409-
main_tabs_holder.addTab(tab, index - skippedTabs, config.lastUsedViewPagerPage == index - skippedTabs)
409+
main_tabs_holder.addTab(tab, index - skippedTabs, getDefaultTab() == index - skippedTabs)
410410
}
411411
}
412412

413413
// selecting the proper tab sometimes glitches, add an extra selector to make sure we have it right
414414
main_tabs_holder.onGlobalLayout {
415415
Handler().postDelayed({
416-
main_tabs_holder.getTabAt(config.lastUsedViewPagerPage)?.select()
416+
main_tabs_holder.getTabAt(getDefaultTab())?.select()
417417
invalidateOptionsMenu()
418418
}, 100L)
419419
}
@@ -563,7 +563,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
563563

564564
if (viewpager.adapter == null) {
565565
viewpager.adapter = ViewPagerAdapter(this, tabsList, config.showTabs)
566-
viewpager.currentItem = config.lastUsedViewPagerPage
566+
viewpager.currentItem = getDefaultTab()
567567
}
568568

569569
ContactsHelper(this).getContacts { contacts ->
@@ -595,6 +595,15 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
595595

596596
private fun getAllFragments() = arrayListOf(contacts_fragment, favorites_fragment, groups_fragment)
597597

598+
private fun getDefaultTab(): Int {
599+
return when (config.defaultTab) {
600+
TAB_LAST_USED -> config.lastUsedViewPagerPage
601+
TAB_CONTACTS -> 0
602+
TAB_FAVORITES -> 1
603+
else -> 2
604+
}
605+
}
606+
598607
private fun checkDialerMigrationDialog() {
599608
if (config.appRunCount < 3) {
600609
config.wasDialerMigrationShown = true

app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/SettingsActivity.kt

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,11 @@ package com.simplemobiletools.contacts.pro.activities
33
import android.os.Bundle
44
import android.view.Menu
55
import com.simplemobiletools.commons.dialogs.RadioGroupDialog
6+
import com.simplemobiletools.commons.extensions.baseConfig
67
import com.simplemobiletools.commons.extensions.beVisibleIf
78
import com.simplemobiletools.commons.extensions.getFontSizeText
89
import com.simplemobiletools.commons.extensions.updateTextColors
9-
import com.simplemobiletools.commons.helpers.FONT_SIZE_EXTRA_LARGE
10-
import com.simplemobiletools.commons.helpers.FONT_SIZE_LARGE
11-
import com.simplemobiletools.commons.helpers.FONT_SIZE_MEDIUM
12-
import com.simplemobiletools.commons.helpers.FONT_SIZE_SMALL
10+
import com.simplemobiletools.commons.helpers.*
1311
import com.simplemobiletools.commons.models.RadioItem
1412
import com.simplemobiletools.contacts.pro.R
1513
import com.simplemobiletools.contacts.pro.dialogs.ManageVisibleFieldsDialog
@@ -43,6 +41,7 @@ class SettingsActivity : SimpleActivity() {
4341
setupShowDialpadButton()
4442
setupShowPrivateContacts()
4543
setupOnContactClick()
44+
setupDefaultTab()
4645
updateTextColors(settings_holder)
4746
invalidateOptionsMenu()
4847
}
@@ -70,6 +69,29 @@ class SettingsActivity : SimpleActivity() {
7069
}
7170
}
7271

72+
private fun setupDefaultTab() {
73+
settings_default_tab.text = getDefaultTabText()
74+
settings_default_tab_holder.setOnClickListener {
75+
val items = arrayListOf(
76+
RadioItem(TAB_CONTACTS, getString(R.string.contacts_tab)),
77+
RadioItem(TAB_FAVORITES, getString(R.string.favorites_tab)),
78+
RadioItem(TAB_GROUPS, getString(R.string.groups_tab)),
79+
RadioItem(TAB_LAST_USED, getString(R.string.last_used_tab)))
80+
81+
RadioGroupDialog(this@SettingsActivity, items, config.defaultTab) {
82+
config.defaultTab = it as Int
83+
settings_default_tab.text = getDefaultTabText()
84+
}
85+
}
86+
}
87+
88+
private fun getDefaultTabText() = getString(when (baseConfig.defaultTab) {
89+
TAB_CONTACTS -> R.string.contacts_tab
90+
TAB_FAVORITES -> R.string.favorites_tab
91+
TAB_GROUPS -> R.string.groups_tab
92+
else -> R.string.last_used_tab
93+
})
94+
7395
private fun setupFontSize() {
7496
settings_font_size.text = getFontSizeText()
7597
settings_font_size_holder.setOnClickListener {

app/src/main/res/layout/activity_settings.xml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,38 @@
9797

9898
</RelativeLayout>
9999

100+
<RelativeLayout
101+
android:id="@+id/settings_default_tab_holder"
102+
android:layout_width="match_parent"
103+
android:layout_height="wrap_content"
104+
android:layout_marginTop="@dimen/medium_margin"
105+
android:background="?attr/selectableItemBackground"
106+
android:paddingLeft="@dimen/normal_margin"
107+
android:paddingTop="@dimen/activity_margin"
108+
android:paddingRight="@dimen/normal_margin"
109+
android:paddingBottom="@dimen/activity_margin">
110+
111+
<com.simplemobiletools.commons.views.MyTextView
112+
android:id="@+id/settings_default_tab_label"
113+
android:layout_width="match_parent"
114+
android:layout_height="wrap_content"
115+
android:layout_centerVertical="true"
116+
android:layout_toStartOf="@+id/settings_default_tab"
117+
android:paddingLeft="@dimen/medium_margin"
118+
android:paddingRight="@dimen/medium_margin"
119+
android:text="@string/default_tab_to_open" />
120+
121+
<com.simplemobiletools.commons.views.MyTextView
122+
android:id="@+id/settings_default_tab"
123+
android:layout_width="wrap_content"
124+
android:layout_height="wrap_content"
125+
android:layout_alignParentEnd="true"
126+
android:layout_marginEnd="@dimen/medium_margin"
127+
android:background="@null"
128+
android:clickable="false" />
129+
130+
</RelativeLayout>
131+
100132
<RelativeLayout
101133
android:id="@+id/settings_font_size_holder"
102134
android:layout_width="match_parent"

0 commit comments

Comments
 (0)