From 2dbe699511cf4590f2315a9ec90237477ab85a38 Mon Sep 17 00:00:00 2001 From: Agnieszka C <85929121+Aga-C@users.noreply.github.com> Date: Sun, 24 Mar 2024 11:35:22 +0100 Subject: [PATCH 1/4] Added setting default tab (#5) --- .../fossify/clock/activities/MainActivity.kt | 20 +++++++--- .../clock/activities/SettingsActivity.kt | 40 ++++++++++++++++--- .../clock/adapters/ViewPagerAdapter.kt | 20 +++++----- .../org/fossify/clock/helpers/Constants.kt | 12 ++++-- app/src/main/res/layout/activity_settings.xml | 23 +++++++++++ 5 files changed, 90 insertions(+), 25 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/clock/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/clock/activities/MainActivity.kt index 6f33aa8d..13041ea6 100644 --- a/app/src/main/kotlin/org/fossify/clock/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/clock/activities/MainActivity.kt @@ -141,7 +141,7 @@ 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) } } @@ -149,7 +149,7 @@ class MainActivity : SimpleActivity() { 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) @@ -179,7 +179,7 @@ class MainActivity : SimpleActivity() { private fun storeNewAlarmSound(resultData: Intent) { val newAlarmSound = storeNewYourAlarmSound(resultData) - when (binding.viewPager.currentItem) { + when (getTabIndex(binding.viewPager.currentItem)) { TAB_ALARM -> getViewPagerAdapter()?.updateAlarmTabAlarmSound(newAlarmSound) TAB_TIMER -> getViewPagerAdapter()?.updateTimerTabAlarmSound(newAlarmSound) } @@ -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) @@ -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() { @@ -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 + } + } } diff --git a/app/src/main/kotlin/org/fossify/clock/activities/SettingsActivity.kt b/app/src/main/kotlin/org/fossify/clock/activities/SettingsActivity.kt index 79413d6b..3c4664a5 100644 --- a/app/src/main/kotlin/org/fossify/clock/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/org/fossify/clock/activities/SettingsActivity.kt @@ -2,15 +2,14 @@ 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.* +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.NavigationIcon -import org.fossify.commons.helpers.isTiramisuPlus +import org.fossify.commons.helpers.* +import org.fossify.commons.models.RadioItem import java.util.Locale import kotlin.system.exitProcess @@ -34,6 +33,7 @@ class SettingsActivity : SimpleActivity() { setupCustomizeColors() setupUseEnglish() setupLanguage() + setupDefaultTab() setupPreventPhoneFromSleeping() setupSundayFirst() setupAlarmMaxReminder() @@ -86,6 +86,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 { diff --git a/app/src/main/kotlin/org/fossify/clock/adapters/ViewPagerAdapter.kt b/app/src/main/kotlin/org/fossify/clock/adapters/ViewPagerAdapter.kt index 17c8a0f8..d5cb5fba 100644 --- a/app/src/main/kotlin/org/fossify/clock/adapters/ViewPagerAdapter.kt +++ b/app/src/main/kotlin/org/fossify/clock/adapters/ViewPagerAdapter.kt @@ -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() } } diff --git a/app/src/main/kotlin/org/fossify/clock/helpers/Constants.kt b/app/src/main/kotlin/org/fossify/clock/helpers/Constants.kt index 99fd99c4..fdb21b94 100644 --- a/app/src/main/kotlin/org/fossify/clock/helpers/Constants.kt +++ b/app/src/main/kotlin/org/fossify/clock/helpers/Constants.kt @@ -50,10 +50,14 @@ 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 diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 159fb86b..fc662aae 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -133,6 +133,29 @@ + + + + + + + + Date: Thu, 30 Jan 2025 16:38:03 +0100 Subject: [PATCH 2/4] Fixed choosing custom audio --- .../kotlin/org/fossify/clock/activities/MainActivity.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/clock/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/clock/activities/MainActivity.kt index 13041ea6..4379230d 100644 --- a/app/src/main/kotlin/org/fossify/clock/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/clock/activities/MainActivity.kt @@ -179,9 +179,9 @@ class MainActivity : SimpleActivity() { private fun storeNewAlarmSound(resultData: Intent) { val newAlarmSound = storeNewYourAlarmSound(resultData) - when (getTabIndex(binding.viewPager.currentItem)) { - TAB_ALARM -> getViewPagerAdapter()?.updateAlarmTabAlarmSound(newAlarmSound) - TAB_TIMER -> getViewPagerAdapter()?.updateTimerTabAlarmSound(newAlarmSound) + when (binding.viewPager.currentItem) { + TAB_ALARM_INDEX -> getViewPagerAdapter()?.updateAlarmTabAlarmSound(newAlarmSound) + TAB_TIMER_INDEX -> getViewPagerAdapter()?.updateTimerTabAlarmSound(newAlarmSound) } } From 7e891070b66078d439f3e635f77a2476782cbb86 Mon Sep 17 00:00:00 2001 From: Agnieszka C <85929121+Aga-C@users.noreply.github.com> Date: Thu, 30 Jan 2025 16:50:40 +0100 Subject: [PATCH 3/4] Fixed * imports --- .../fossify/clock/activities/SettingsActivity.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/clock/activities/SettingsActivity.kt b/app/src/main/kotlin/org/fossify/clock/activities/SettingsActivity.kt index 3c4664a5..8d531872 100644 --- a/app/src/main/kotlin/org/fossify/clock/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/org/fossify/clock/activities/SettingsActivity.kt @@ -5,10 +5,19 @@ 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.* +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.* +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 From e550f03de258f43d19b59f686c9add291f3a5389 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Fri, 31 Jan 2025 11:21:18 +0530 Subject: [PATCH 4/4] Add empty line --- app/src/main/kotlin/org/fossify/clock/helpers/Constants.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/kotlin/org/fossify/clock/helpers/Constants.kt b/app/src/main/kotlin/org/fossify/clock/helpers/Constants.kt index b396370e..a78eba9e 100644 --- a/app/src/main/kotlin/org/fossify/clock/helpers/Constants.kt +++ b/app/src/main/kotlin/org/fossify/clock/helpers/Constants.kt @@ -58,6 +58,7 @@ 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