Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 16 additions & 6 deletions app/src/main/kotlin/org/fossify/clock/activities/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -141,15 +141,15 @@ class MainActivity : SimpleActivity() {

private fun refreshMenuItems() {
binding.mainToolbar.menu.apply {
findItem(R.id.sort).isVisible = binding.viewPager.currentItem == TAB_ALARM
findItem(R.id.sort).isVisible = binding.viewPager.currentItem == getTabIndex(TAB_ALARM)
findItem(R.id.more_apps_from_us).isVisible = !resources.getBoolean(org.fossify.commons.R.bool.hide_google_relations)
}
}

override fun onNewIntent(intent: Intent) {
if (intent.extras?.containsKey(OPEN_TAB) == true) {
val tabToOpen = intent.getIntExtra(OPEN_TAB, TAB_CLOCK)
binding.viewPager.setCurrentItem(tabToOpen, false)
binding.viewPager.setCurrentItem(getTabIndex(tabToOpen), false)
if (tabToOpen == TAB_TIMER) {
val timerId = intent.getIntExtra(TIMER_ID, INVALID_TIMER_ID)
(binding.viewPager.adapter as ViewPagerAdapter).updateTimerPosition(timerId)
Expand Down Expand Up @@ -180,8 +180,8 @@ class MainActivity : SimpleActivity() {
val newAlarmSound = storeNewYourAlarmSound(resultData)

when (binding.viewPager.currentItem) {
TAB_ALARM -> getViewPagerAdapter()?.updateAlarmTabAlarmSound(newAlarmSound)
TAB_TIMER -> getViewPagerAdapter()?.updateTimerTabAlarmSound(newAlarmSound)
TAB_ALARM_INDEX -> getViewPagerAdapter()?.updateAlarmTabAlarmSound(newAlarmSound)
TAB_TIMER_INDEX -> getViewPagerAdapter()?.updateTimerTabAlarmSound(newAlarmSound)
}
}

Expand All @@ -199,7 +199,7 @@ class MainActivity : SimpleActivity() {
refreshMenuItems()
}

val tabToOpen = intent.getIntExtra(OPEN_TAB, config.lastUsedViewPagerPage)
val tabToOpen = intent.getIntExtra(OPEN_TAB, config.defaultTab)
intent.removeExtra(OPEN_TAB)
if (tabToOpen == TAB_TIMER) {
val timerId = intent.getIntExtra(TIMER_ID, INVALID_TIMER_ID)
Expand All @@ -211,7 +211,7 @@ class MainActivity : SimpleActivity() {
}

binding.viewPager.offscreenPageLimit = TABS_COUNT - 1
binding.viewPager.currentItem = tabToOpen
binding.viewPager.currentItem = getTabIndex(tabToOpen)
}

private fun setupTabs() {
Expand Down Expand Up @@ -298,4 +298,14 @@ class MainActivity : SimpleActivity() {

startAboutActivity(R.string.app_name, licenses, BuildConfig.VERSION_NAME, faqItems, true)
}

private fun getTabIndex(tabId: Int): Int {
return when (tabId) {
TAB_CLOCK -> TAB_CLOCK_INDEX
TAB_ALARM -> TAB_ALARM_INDEX
TAB_STOPWATCH -> TAB_STOPWATCH_INDEX
TAB_TIMER -> TAB_TIMER_INDEX
else -> config.lastUsedViewPagerPage
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,23 @@ package org.fossify.clock.activities

import android.content.Intent
import android.os.Bundle
import org.fossify.clock.R
import org.fossify.clock.databinding.ActivitySettingsBinding
import org.fossify.clock.extensions.config
import org.fossify.clock.helpers.DEFAULT_MAX_ALARM_REMINDER_SECS
import org.fossify.clock.helpers.DEFAULT_MAX_TIMER_REMINDER_SECS
import org.fossify.clock.helpers.TAB_ALARM
import org.fossify.clock.helpers.TAB_CLOCK
import org.fossify.clock.helpers.TAB_STOPWATCH
import org.fossify.clock.helpers.TAB_TIMER
import org.fossify.commons.dialogs.RadioGroupDialog
import org.fossify.commons.extensions.*
import org.fossify.commons.helpers.IS_CUSTOMIZING_COLORS
import org.fossify.commons.helpers.MINUTE_SECONDS
import org.fossify.commons.helpers.TAB_LAST_USED
import org.fossify.commons.helpers.NavigationIcon
import org.fossify.commons.helpers.isTiramisuPlus
import org.fossify.commons.models.RadioItem
import java.util.Locale
import kotlin.system.exitProcess

Expand All @@ -34,6 +42,7 @@ class SettingsActivity : SimpleActivity() {
setupCustomizeColors()
setupUseEnglish()
setupLanguage()
setupDefaultTab()
setupPreventPhoneFromSleeping()
setupSundayFirst()
setupAlarmMaxReminder()
Expand Down Expand Up @@ -86,6 +95,34 @@ class SettingsActivity : SimpleActivity() {
}
}

private fun setupDefaultTab() {
binding.settingsDefaultTab.text = getDefaultTabText()
binding.settingsDefaultTabHolder.setOnClickListener {
val items = arrayListOf(
RadioItem(TAB_CLOCK, getString(R.string.clock)),
RadioItem(TAB_ALARM, getString(org.fossify.commons.R.string.alarm)),
RadioItem(TAB_STOPWATCH, getString(R.string.stopwatch)),
RadioItem(TAB_TIMER, getString(R.string.timer)),
RadioItem(TAB_LAST_USED, getString(org.fossify.commons.R.string.last_used_tab))
)

RadioGroupDialog(this@SettingsActivity, items, config.defaultTab) {
config.defaultTab = it as Int
binding.settingsDefaultTab.text = getDefaultTabText()
}
}
}

private fun getDefaultTabText() = getString(
when (config.defaultTab) {
TAB_CLOCK -> R.string.clock
TAB_ALARM -> org.fossify.commons.R.string.alarm
TAB_STOPWATCH -> R.string.stopwatch
TAB_TIMER -> R.string.timer
else -> org.fossify.commons.R.string.last_used_tab
}
)

private fun setupPreventPhoneFromSleeping() {
binding.settingsPreventPhoneFromSleeping.isChecked = config.preventPhoneFromSleeping
binding.settingsPreventPhoneFromSleepingHolder.setOnClickListener {
Expand Down
20 changes: 10 additions & 10 deletions app/src/main/kotlin/org/fossify/clock/adapters/ViewPagerAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -34,34 +34,34 @@ class ViewPagerAdapter(fm: FragmentManager) : FragmentStatePagerAdapter(fm) {
override fun getCount() = TABS_COUNT

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

fun showAlarmSortDialog() {
(fragments[TAB_ALARM] as? AlarmFragment)?.showSortingDialog()
(fragments[TAB_ALARM_INDEX] as? AlarmFragment)?.showSortingDialog()
}

fun updateClockTabAlarm() {
(fragments[TAB_CLOCK] as? ClockFragment)?.updateAlarm()
(fragments[TAB_CLOCK_INDEX] as? ClockFragment)?.updateAlarm()
}

fun updateAlarmTabAlarmSound(alarmSound: AlarmSound) {
(fragments[TAB_ALARM] as? AlarmFragment)?.updateAlarmSound(alarmSound)
(fragments[TAB_ALARM_INDEX] as? AlarmFragment)?.updateAlarmSound(alarmSound)
}

fun updateTimerTabAlarmSound(alarmSound: AlarmSound) {
(fragments[TAB_TIMER] as? TimerFragment)?.updateAlarmSound(alarmSound)
(fragments[TAB_TIMER_INDEX] as? TimerFragment)?.updateAlarmSound(alarmSound)
}

fun updateTimerPosition(timerId: Int) {
(fragments[TAB_TIMER] as? TimerFragment)?.updatePosition(timerId)
(fragments[TAB_TIMER_INDEX] as? TimerFragment)?.updatePosition(timerId)
}

fun startStopWatch() {
(fragments[TAB_STOPWATCH] as? StopwatchFragment)?.startStopWatch()
(fragments[TAB_STOPWATCH_INDEX] as? StopwatchFragment)?.startStopWatch()
}
}
13 changes: 9 additions & 4 deletions app/src/main/kotlin/org/fossify/clock/helpers/Constants.kt
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,15 @@ const val EARLY_ALARM_DISMISSAL_INTENT_ID = 10002
const val EARLY_ALARM_NOTIF_ID = 10003

const val OPEN_TAB = "open_tab"
const val TAB_CLOCK = 0
const val TAB_ALARM = 1
const val TAB_STOPWATCH = 2
const val TAB_TIMER = 3
const val TAB_CLOCK = 1
const val TAB_ALARM = 2
const val TAB_STOPWATCH = 4
const val TAB_TIMER = 8
const val TAB_CLOCK_INDEX = 0
const val TAB_ALARM_INDEX = 1
const val TAB_STOPWATCH_INDEX = 2
const val TAB_TIMER_INDEX = 3

const val TIMER_ID = "timer_id"
const val INVALID_TIMER_ID = -1

Expand Down
23 changes: 23 additions & 0 deletions app/src/main/res/layout/activity_settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,29 @@

</RelativeLayout>

<RelativeLayout
android:id="@+id/settings_default_tab_holder"
style="@style/SettingsHolderTextViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<org.fossify.commons.views.MyTextView
android:id="@+id/settings_default_tab_label"
style="@style/SettingsTextLabelStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/default_tab_to_open" />

<org.fossify.commons.views.MyTextView
android:id="@+id/settings_default_tab"
style="@style/SettingsTextValueStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/settings_default_tab_label"
tools:text="@string/last_used_tab" />

</RelativeLayout>

<RelativeLayout
android:id="@+id/settings_prevent_phone_from_sleeping_holder"
style="@style/SettingsHolderCheckboxStyle"
Expand Down
Loading