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 392dfdea..bb823c86 100644
--- a/app/src/main/kotlin/org/fossify/clock/activities/WidgetDigitalConfigureActivity.kt
+++ b/app/src/main/kotlin/org/fossify/clock/activities/WidgetDigitalConfigureActivity.kt
@@ -100,7 +100,19 @@ class WidgetDigitalConfigureActivity : SimpleActivity() {
updateTextColor()
- val clockFormat = if (config.use24HourFormat) FORMAT_24H else FORMAT_12H
+ binding.configDigitalShowAmPm.isChecked = config.widgetShowAmPm
+ binding.configDigitalShowAmPm.setOnCheckedChangeListener { _, checked ->
+ config.widgetShowAmPm = checked
+ val clockFormat = if (config.use24HourFormat) FORMAT_24H else if (checked) FORMAT_12H else FORMAT_12H_NO_AMPM
+ binding.configDigitalTime.format24Hour = clockFormat
+ binding.configDigitalTime.format12Hour = clockFormat
+ }
+
+ val clockFormat = when {
+ config.use24HourFormat -> FORMAT_24H
+ config.widgetShowAmPm -> FORMAT_12H
+ else -> FORMAT_12H_NO_AMPM
+ }
binding.configDigitalTime.format24Hour = clockFormat
binding.configDigitalTime.format12Hour = clockFormat
}
diff --git a/app/src/main/kotlin/org/fossify/clock/helpers/Config.kt b/app/src/main/kotlin/org/fossify/clock/helpers/Config.kt
index 1839bfcc..208bb8ac 100644
--- a/app/src/main/kotlin/org/fossify/clock/helpers/Config.kt
+++ b/app/src/main/kotlin/org/fossify/clock/helpers/Config.kt
@@ -150,4 +150,9 @@ class Config(context: Context) : BaseConfig(context) {
set(migrateFirstDayOfWeek) = prefs.edit {
putBoolean(MIGRATE_FIRST_DAY_OF_WEEK, migrateFirstDayOfWeek)
}
+
+ var widgetShowAmPm: Boolean
+ get() = prefs.getBoolean(WIDGET_SHOW_AM_PM, true)
+ set(showAmPm) = prefs.edit().putBoolean(WIDGET_SHOW_AM_PM, showAmPm).apply()
+
}
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 2d812c03..906d791e 100644
--- a/app/src/main/kotlin/org/fossify/clock/helpers/Constants.kt
+++ b/app/src/main/kotlin/org/fossify/clock/helpers/Constants.kt
@@ -100,6 +100,8 @@ const val STOPWATCH_TOGGLE_ACTION = "org.fossify.clock.TOGGLE_STOPWATCH"
// time formatting
const val FORMAT_12H = "h:mm a"
+const val FORMAT_12H_NO_AMPM = "h:mm"
+const val WIDGET_SHOW_AM_PM = "widget_show_am_pm"
const val FORMAT_24H = "HH:mm"
const val FORMAT_12H_WITH_SECONDS = "h:mm:ss a"
const val FORMAT_24H_WITH_SECONDS = "HH:mm:ss"
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 768a8cb9..60c093e0 100644
--- a/app/src/main/kotlin/org/fossify/clock/helpers/MyDigitalTimeWidgetProvider.kt
+++ b/app/src/main/kotlin/org/fossify/clock/helpers/MyDigitalTimeWidgetProvider.kt
@@ -66,6 +66,11 @@ class MyDigitalTimeWidgetProvider : AppWidgetProvider() {
setViewVisibility(clockToHide, View.GONE)
setViewVisibility(clockToShow, View.VISIBLE)
+
+ // Optional AM/PM for 12-hour digital widget (#138)
+ val format12 = if (config.widgetShowAmPm) FORMAT_12H else FORMAT_12H_NO_AMPM
+ setCharSequence(R.id.widget_text_clock_12, "setFormat12Hour", format12)
+ setCharSequence(R.id.widget_text_clock_12, "setFormat24Hour", FORMAT_24H)
}
}
diff --git a/app/src/main/res/layout/widget_config_digital.xml b/app/src/main/res/layout/widget_config_digital.xml
index 7b513486..d096164e 100644
--- a/app/src/main/res/layout/widget_config_digital.xml
+++ b/app/src/main/res/layout/widget_config_digital.xml
@@ -92,6 +92,14 @@
android:layout_alignParentBottom="true"
android:layout_margin="@dimen/tiny_margin" />
+
+