Skip to content

Commit c2a346a

Browse files
authored
Merge pull request #35 from Aga-C/set-default-tab
Added setting default tab (#5)
2 parents e87fffd + e550f03 commit c2a346a

File tree

5 files changed

+95
-20
lines changed

5 files changed

+95
-20
lines changed

app/src/main/kotlin/org/fossify/clock/activities/MainActivity.kt

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -141,15 +141,15 @@ class MainActivity : SimpleActivity() {
141141

142142
private fun refreshMenuItems() {
143143
binding.mainToolbar.menu.apply {
144-
findItem(R.id.sort).isVisible = binding.viewPager.currentItem == TAB_ALARM
144+
findItem(R.id.sort).isVisible = binding.viewPager.currentItem == getTabIndex(TAB_ALARM)
145145
findItem(R.id.more_apps_from_us).isVisible = !resources.getBoolean(org.fossify.commons.R.bool.hide_google_relations)
146146
}
147147
}
148148

149149
override fun onNewIntent(intent: Intent) {
150150
if (intent.extras?.containsKey(OPEN_TAB) == true) {
151151
val tabToOpen = intent.getIntExtra(OPEN_TAB, TAB_CLOCK)
152-
binding.viewPager.setCurrentItem(tabToOpen, false)
152+
binding.viewPager.setCurrentItem(getTabIndex(tabToOpen), false)
153153
if (tabToOpen == TAB_TIMER) {
154154
val timerId = intent.getIntExtra(TIMER_ID, INVALID_TIMER_ID)
155155
(binding.viewPager.adapter as ViewPagerAdapter).updateTimerPosition(timerId)
@@ -180,8 +180,8 @@ class MainActivity : SimpleActivity() {
180180
val newAlarmSound = storeNewYourAlarmSound(resultData)
181181

182182
when (binding.viewPager.currentItem) {
183-
TAB_ALARM -> getViewPagerAdapter()?.updateAlarmTabAlarmSound(newAlarmSound)
184-
TAB_TIMER -> getViewPagerAdapter()?.updateTimerTabAlarmSound(newAlarmSound)
183+
TAB_ALARM_INDEX -> getViewPagerAdapter()?.updateAlarmTabAlarmSound(newAlarmSound)
184+
TAB_TIMER_INDEX -> getViewPagerAdapter()?.updateTimerTabAlarmSound(newAlarmSound)
185185
}
186186
}
187187

@@ -199,7 +199,7 @@ class MainActivity : SimpleActivity() {
199199
refreshMenuItems()
200200
}
201201

202-
val tabToOpen = intent.getIntExtra(OPEN_TAB, config.lastUsedViewPagerPage)
202+
val tabToOpen = intent.getIntExtra(OPEN_TAB, config.defaultTab)
203203
intent.removeExtra(OPEN_TAB)
204204
if (tabToOpen == TAB_TIMER) {
205205
val timerId = intent.getIntExtra(TIMER_ID, INVALID_TIMER_ID)
@@ -211,7 +211,7 @@ class MainActivity : SimpleActivity() {
211211
}
212212

213213
binding.viewPager.offscreenPageLimit = TABS_COUNT - 1
214-
binding.viewPager.currentItem = tabToOpen
214+
binding.viewPager.currentItem = getTabIndex(tabToOpen)
215215
}
216216

217217
private fun setupTabs() {
@@ -298,4 +298,14 @@ class MainActivity : SimpleActivity() {
298298

299299
startAboutActivity(R.string.app_name, licenses, BuildConfig.VERSION_NAME, faqItems, true)
300300
}
301+
302+
private fun getTabIndex(tabId: Int): Int {
303+
return when (tabId) {
304+
TAB_CLOCK -> TAB_CLOCK_INDEX
305+
TAB_ALARM -> TAB_ALARM_INDEX
306+
TAB_STOPWATCH -> TAB_STOPWATCH_INDEX
307+
TAB_TIMER -> TAB_TIMER_INDEX
308+
else -> config.lastUsedViewPagerPage
309+
}
310+
}
301311
}

app/src/main/kotlin/org/fossify/clock/activities/SettingsActivity.kt

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,23 @@ package org.fossify.clock.activities
22

33
import android.content.Intent
44
import android.os.Bundle
5+
import org.fossify.clock.R
56
import org.fossify.clock.databinding.ActivitySettingsBinding
67
import org.fossify.clock.extensions.config
78
import org.fossify.clock.helpers.DEFAULT_MAX_ALARM_REMINDER_SECS
89
import org.fossify.clock.helpers.DEFAULT_MAX_TIMER_REMINDER_SECS
10+
import org.fossify.clock.helpers.TAB_ALARM
11+
import org.fossify.clock.helpers.TAB_CLOCK
12+
import org.fossify.clock.helpers.TAB_STOPWATCH
13+
import org.fossify.clock.helpers.TAB_TIMER
14+
import org.fossify.commons.dialogs.RadioGroupDialog
915
import org.fossify.commons.extensions.*
1016
import org.fossify.commons.helpers.IS_CUSTOMIZING_COLORS
1117
import org.fossify.commons.helpers.MINUTE_SECONDS
18+
import org.fossify.commons.helpers.TAB_LAST_USED
1219
import org.fossify.commons.helpers.NavigationIcon
1320
import org.fossify.commons.helpers.isTiramisuPlus
21+
import org.fossify.commons.models.RadioItem
1422
import java.util.Locale
1523
import kotlin.system.exitProcess
1624

@@ -34,6 +42,7 @@ class SettingsActivity : SimpleActivity() {
3442
setupCustomizeColors()
3543
setupUseEnglish()
3644
setupLanguage()
45+
setupDefaultTab()
3746
setupPreventPhoneFromSleeping()
3847
setupSundayFirst()
3948
setupAlarmMaxReminder()
@@ -86,6 +95,34 @@ class SettingsActivity : SimpleActivity() {
8695
}
8796
}
8897

98+
private fun setupDefaultTab() {
99+
binding.settingsDefaultTab.text = getDefaultTabText()
100+
binding.settingsDefaultTabHolder.setOnClickListener {
101+
val items = arrayListOf(
102+
RadioItem(TAB_CLOCK, getString(R.string.clock)),
103+
RadioItem(TAB_ALARM, getString(org.fossify.commons.R.string.alarm)),
104+
RadioItem(TAB_STOPWATCH, getString(R.string.stopwatch)),
105+
RadioItem(TAB_TIMER, getString(R.string.timer)),
106+
RadioItem(TAB_LAST_USED, getString(org.fossify.commons.R.string.last_used_tab))
107+
)
108+
109+
RadioGroupDialog(this@SettingsActivity, items, config.defaultTab) {
110+
config.defaultTab = it as Int
111+
binding.settingsDefaultTab.text = getDefaultTabText()
112+
}
113+
}
114+
}
115+
116+
private fun getDefaultTabText() = getString(
117+
when (config.defaultTab) {
118+
TAB_CLOCK -> R.string.clock
119+
TAB_ALARM -> org.fossify.commons.R.string.alarm
120+
TAB_STOPWATCH -> R.string.stopwatch
121+
TAB_TIMER -> R.string.timer
122+
else -> org.fossify.commons.R.string.last_used_tab
123+
}
124+
)
125+
89126
private fun setupPreventPhoneFromSleeping() {
90127
binding.settingsPreventPhoneFromSleeping.isChecked = config.preventPhoneFromSleeping
91128
binding.settingsPreventPhoneFromSleepingHolder.setOnClickListener {

app/src/main/kotlin/org/fossify/clock/adapters/ViewPagerAdapter.kt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,34 +34,34 @@ class ViewPagerAdapter(fm: FragmentManager) : FragmentStatePagerAdapter(fm) {
3434
override fun getCount() = TABS_COUNT
3535

3636
private fun getFragment(position: Int) = when (position) {
37-
0 -> ClockFragment()
38-
1 -> AlarmFragment()
39-
2 -> StopwatchFragment()
40-
3 -> TimerFragment()
37+
TAB_CLOCK_INDEX -> ClockFragment()
38+
TAB_ALARM_INDEX -> AlarmFragment()
39+
TAB_STOPWATCH_INDEX -> StopwatchFragment()
40+
TAB_TIMER_INDEX -> TimerFragment()
4141
else -> throw RuntimeException("Trying to fetch unknown fragment id $position")
4242
}
4343

4444
fun showAlarmSortDialog() {
45-
(fragments[TAB_ALARM] as? AlarmFragment)?.showSortingDialog()
45+
(fragments[TAB_ALARM_INDEX] as? AlarmFragment)?.showSortingDialog()
4646
}
4747

4848
fun updateClockTabAlarm() {
49-
(fragments[TAB_CLOCK] as? ClockFragment)?.updateAlarm()
49+
(fragments[TAB_CLOCK_INDEX] as? ClockFragment)?.updateAlarm()
5050
}
5151

5252
fun updateAlarmTabAlarmSound(alarmSound: AlarmSound) {
53-
(fragments[TAB_ALARM] as? AlarmFragment)?.updateAlarmSound(alarmSound)
53+
(fragments[TAB_ALARM_INDEX] as? AlarmFragment)?.updateAlarmSound(alarmSound)
5454
}
5555

5656
fun updateTimerTabAlarmSound(alarmSound: AlarmSound) {
57-
(fragments[TAB_TIMER] as? TimerFragment)?.updateAlarmSound(alarmSound)
57+
(fragments[TAB_TIMER_INDEX] as? TimerFragment)?.updateAlarmSound(alarmSound)
5858
}
5959

6060
fun updateTimerPosition(timerId: Int) {
61-
(fragments[TAB_TIMER] as? TimerFragment)?.updatePosition(timerId)
61+
(fragments[TAB_TIMER_INDEX] as? TimerFragment)?.updatePosition(timerId)
6262
}
6363

6464
fun startStopWatch() {
65-
(fragments[TAB_STOPWATCH] as? StopwatchFragment)?.startStopWatch()
65+
(fragments[TAB_STOPWATCH_INDEX] as? StopwatchFragment)?.startStopWatch()
6666
}
6767
}

app/src/main/kotlin/org/fossify/clock/helpers/Constants.kt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,15 @@ const val EARLY_ALARM_DISMISSAL_INTENT_ID = 10002
5050
const val EARLY_ALARM_NOTIF_ID = 10003
5151

5252
const val OPEN_TAB = "open_tab"
53-
const val TAB_CLOCK = 0
54-
const val TAB_ALARM = 1
55-
const val TAB_STOPWATCH = 2
56-
const val TAB_TIMER = 3
53+
const val TAB_CLOCK = 1
54+
const val TAB_ALARM = 2
55+
const val TAB_STOPWATCH = 4
56+
const val TAB_TIMER = 8
57+
const val TAB_CLOCK_INDEX = 0
58+
const val TAB_ALARM_INDEX = 1
59+
const val TAB_STOPWATCH_INDEX = 2
60+
const val TAB_TIMER_INDEX = 3
61+
5762
const val TIMER_ID = "timer_id"
5863
const val INVALID_TIMER_ID = -1
5964

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,29 @@
133133

134134
</RelativeLayout>
135135

136+
<RelativeLayout
137+
android:id="@+id/settings_default_tab_holder"
138+
style="@style/SettingsHolderTextViewStyle"
139+
android:layout_width="match_parent"
140+
android:layout_height="wrap_content">
141+
142+
<org.fossify.commons.views.MyTextView
143+
android:id="@+id/settings_default_tab_label"
144+
style="@style/SettingsTextLabelStyle"
145+
android:layout_width="wrap_content"
146+
android:layout_height="wrap_content"
147+
android:text="@string/default_tab_to_open" />
148+
149+
<org.fossify.commons.views.MyTextView
150+
android:id="@+id/settings_default_tab"
151+
style="@style/SettingsTextValueStyle"
152+
android:layout_width="match_parent"
153+
android:layout_height="wrap_content"
154+
android:layout_below="@+id/settings_default_tab_label"
155+
tools:text="@string/last_used_tab" />
156+
157+
</RelativeLayout>
158+
136159
<RelativeLayout
137160
android:id="@+id/settings_prevent_phone_from_sleeping_holder"
138161
style="@style/SettingsHolderCheckboxStyle"

0 commit comments

Comments
 (0)