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..507ec2cf 100644 --- a/app/src/main/kotlin/org/fossify/clock/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/org/fossify/clock/activities/SettingsActivity.kt @@ -4,6 +4,7 @@ import android.content.Intent import android.os.Bundle import org.fossify.clock.databinding.ActivitySettingsBinding import org.fossify.clock.extensions.config +import org.fossify.clock.extensions.updateWidgets import org.fossify.clock.helpers.DEFAULT_MAX_ALARM_REMINDER_SECS import org.fossify.clock.helpers.DEFAULT_MAX_TIMER_REMINDER_SECS import org.fossify.commons.extensions.* @@ -34,6 +35,7 @@ class SettingsActivity : SimpleActivity() { setupCustomizeColors() setupUseEnglish() setupLanguage() + setupHourFormat() setupPreventPhoneFromSleeping() setupSundayFirst() setupAlarmMaxReminder() @@ -86,6 +88,15 @@ class SettingsActivity : SimpleActivity() { } } + private fun setupHourFormat() = binding.apply { + settingsHourFormat.isChecked = config.use24HourFormat + settingsHourFormatHolder.setOnClickListener { + settingsHourFormat.toggle() + config.use24HourFormat = settingsHourFormat.isChecked + updateWidgets() + } + } + private fun setupPreventPhoneFromSleeping() { binding.settingsPreventPhoneFromSleeping.isChecked = config.preventPhoneFromSleeping binding.settingsPreventPhoneFromSleepingHolder.setOnClickListener { diff --git a/app/src/main/kotlin/org/fossify/clock/activities/WidgetDigitalConfigureActivity.kt b/app/src/main/kotlin/org/fossify/clock/activities/WidgetDigitalConfigureActivity.kt index 22036a12..2dac3830 100644 --- a/app/src/main/kotlin/org/fossify/clock/activities/WidgetDigitalConfigureActivity.kt +++ b/app/src/main/kotlin/org/fossify/clock/activities/WidgetDigitalConfigureActivity.kt @@ -84,6 +84,10 @@ class WidgetDigitalConfigureActivity : SimpleActivity() { } updateTextColor() + + val clockFormat = if (config.use24HourFormat) "HH:mm" else "K:mm a" + binding.configDigitalTime.format24Hour = clockFormat + binding.configDigitalTime.format12Hour = clockFormat } private fun saveConfig() { diff --git a/app/src/main/kotlin/org/fossify/clock/dialogs/EditAlarmDialog.kt b/app/src/main/kotlin/org/fossify/clock/dialogs/EditAlarmDialog.kt index e470246a..5d750c8e 100644 --- a/app/src/main/kotlin/org/fossify/clock/dialogs/EditAlarmDialog.kt +++ b/app/src/main/kotlin/org/fossify/clock/dialogs/EditAlarmDialog.kt @@ -34,7 +34,7 @@ class EditAlarmDialog(val activity: SimpleActivity, val alarm: Alarm, val onDism binding.apply { editAlarmTime.setOnClickListener { if (activity.config.isUsingSystemTheme) { - val timeFormat = if (DateFormat.is24HourFormat(activity)) { + val timeFormat = if (activity.config.use24HourFormat) { TimeFormat.CLOCK_24H } else { TimeFormat.CLOCK_12H @@ -59,7 +59,7 @@ class EditAlarmDialog(val activity: SimpleActivity, val alarm: Alarm, val onDism timeSetListener, alarm.timeInMinutes / 60, alarm.timeInMinutes % 60, - DateFormat.is24HourFormat(activity) + activity.config.use24HourFormat ).show() } } diff --git a/app/src/main/kotlin/org/fossify/clock/extensions/Context.kt b/app/src/main/kotlin/org/fossify/clock/extensions/Context.kt index 95057827..4aa7cce5 100644 --- a/app/src/main/kotlin/org/fossify/clock/extensions/Context.kt +++ b/app/src/main/kotlin/org/fossify/clock/extensions/Context.kt @@ -247,7 +247,7 @@ fun Context.updateAnalogueWidgets() { } fun Context.getFormattedTime(passedSeconds: Int, showSeconds: Boolean, makeAmPmSmaller: Boolean): SpannableString { - val use24HourFormat = DateFormat.is24HourFormat(this) + val use24HourFormat = config.use24HourFormat val hours = (passedSeconds / 3600) % 24 val minutes = (passedSeconds / 60) % 60 val seconds = passedSeconds % 60 @@ -299,7 +299,7 @@ fun Context.getClosestEnabledAlarmString(callback: (result: String) -> Unit) { calendar.add(Calendar.MINUTE, closestAlarmTime) val dayOfWeekIndex = (calendar.get(Calendar.DAY_OF_WEEK) + 5) % 7 val dayOfWeek = resources.getStringArray(org.fossify.commons.R.array.week_days_short)[dayOfWeekIndex] - val pattern = if (DateFormat.is24HourFormat(this)) { + val pattern = if (config.use24HourFormat) { "HH:mm" } else { "h:mm a" diff --git a/app/src/main/kotlin/org/fossify/clock/fragments/ClockFragment.kt b/app/src/main/kotlin/org/fossify/clock/fragments/ClockFragment.kt index d63d12f4..a4f10348 100644 --- a/app/src/main/kotlin/org/fossify/clock/fragments/ClockFragment.kt +++ b/app/src/main/kotlin/org/fossify/clock/fragments/ClockFragment.kt @@ -61,6 +61,9 @@ class ClockFragment : Fragment() { binding.apply { requireContext().updateTextColors(clockFragment) clockTime.setTextColor(requireContext().getProperTextColor()) + val clockFormat = if (requireActivity().config.use24HourFormat) "HH:mm:ss" else "K:mm:ss a" + clockTime.format24Hour = clockFormat + clockTime.format12Hour = clockFormat clockFab.setOnClickListener { fabClicked() } @@ -74,7 +77,7 @@ class ClockFragment : Fragment() { val minutes = (passedSeconds / 60) % 60 val seconds = passedSeconds % 60 - if (!DateFormat.is24HourFormat(requireContext())) { + if (!requireActivity().config.use24HourFormat) { binding.clockTime.textSize = resources.getDimension(R.dimen.clock_text_size_smaller) / resources.displayMetrics.density } diff --git a/app/src/main/kotlin/org/fossify/clock/helpers/MyDigitalTimeWidgetProvider.kt b/app/src/main/kotlin/org/fossify/clock/helpers/MyDigitalTimeWidgetProvider.kt index 6254eb25..5307a468 100644 --- a/app/src/main/kotlin/org/fossify/clock/helpers/MyDigitalTimeWidgetProvider.kt +++ b/app/src/main/kotlin/org/fossify/clock/helpers/MyDigitalTimeWidgetProvider.kt @@ -8,6 +8,7 @@ import android.content.Context import android.content.Intent import android.graphics.* import android.os.Bundle +import android.view.View import android.widget.RemoteViews import org.fossify.clock.R import org.fossify.clock.activities.SplashActivity @@ -42,6 +43,10 @@ class MyDigitalTimeWidgetProvider : AppWidgetProvider() { views.apply { setText(R.id.widget_next_alarm, nextAlarm) setVisibleIf(R.id.widget_alarm_holder, nextAlarm.isNotEmpty()) + val clockToHide = if (context.config.use24HourFormat) R.id.widget_text_clock_12 else R.id.widget_text_clock_24 + val clockToShow = if (context.config.use24HourFormat) R.id.widget_text_clock_24 else R.id.widget_text_clock_12 + setViewVisibility(clockToHide, View.GONE) + setViewVisibility(clockToShow, View.VISIBLE) } } @@ -51,7 +56,8 @@ class MyDigitalTimeWidgetProvider : AppWidgetProvider() { views.apply { applyColorFilter(R.id.widget_background, config.widgetBgColor) - setTextColor(R.id.widget_text_clock, widgetTextColor) + setTextColor(R.id.widget_text_clock_24, widgetTextColor) + setTextColor(R.id.widget_text_clock_12, widgetTextColor) setTextColor(R.id.widget_date, widgetTextColor) setTextColor(R.id.widget_next_alarm, widgetTextColor) diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 159fb86b..afe697df 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -133,6 +133,21 @@ + + + + + + diff --git a/app/src/main/res/layout/widget_config_digital.xml b/app/src/main/res/layout/widget_config_digital.xml index 411e0ec7..7b513486 100644 --- a/app/src/main/res/layout/widget_config_digital.xml +++ b/app/src/main/res/layout/widget_config_digital.xml @@ -32,8 +32,6 @@ android:id="@+id/config_digital_time" android:layout_width="match_parent" android:layout_height="@dimen/widget_digital_time_height" - android:format12Hour="h:mm" - android:format24Hour="k:mm" android:gravity="center_horizontal" android:includeFontPadding="false" android:shadowColor="@android:color/black" diff --git a/app/src/main/res/layout/widget_digital.xml b/app/src/main/res/layout/widget_digital.xml index c6d9c62b..30f21e51 100644 --- a/app/src/main/res/layout/widget_digital.xml +++ b/app/src/main/res/layout/widget_digital.xml @@ -26,7 +26,7 @@ tools:ignore="UnusedAttribute"> + +