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">
+
+