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..9b52a74f 100644
--- a/app/src/main/kotlin/org/fossify/clock/activities/WidgetDigitalConfigureActivity.kt
+++ b/app/src/main/kotlin/org/fossify/clock/activities/WidgetDigitalConfigureActivity.kt
@@ -7,9 +7,11 @@ import android.graphics.Color
import android.os.Build
import android.os.Bundle
import android.widget.SeekBar
+import androidx.core.view.isVisible
import org.fossify.clock.databinding.WidgetConfigDigitalBinding
import org.fossify.clock.extensions.config
import org.fossify.clock.helpers.FORMAT_12H
+import org.fossify.clock.helpers.FORMAT_12H_NO_AM_PM
import org.fossify.clock.helpers.FORMAT_24H
import org.fossify.clock.helpers.MyDigitalTimeWidgetProvider
import org.fossify.clock.helpers.SIMPLE_PHONE
@@ -30,6 +32,7 @@ class WidgetDigitalConfigureActivity : SimpleActivity() {
private var mWidgetId = 0
private var mBgColor = 0
private var mTextColor = 0
+ private var mShowAmPm = true
private var mBgColorWithoutTransparency = 0
private var mFeatureLockedDialog: FeatureLockedDialog? = null
private val binding: WidgetConfigDigitalBinding by viewBinding(WidgetConfigDigitalBinding::inflate)
@@ -60,6 +63,13 @@ class WidgetDigitalConfigureActivity : SimpleActivity() {
binding.configDigitalBgColor.setOnClickListener { pickBackgroundColor() }
binding.configDigitalTextColor.setOnClickListener { pickTextColor() }
+ binding.configDigitalShowAmPm.isVisible = !config.use24HourFormat
+ binding.configDigitalShowAmPm.isChecked = mShowAmPm
+ binding.configDigitalShowAmPm.setOnCheckedChangeListener { _, isChecked ->
+ mShowAmPm = isChecked
+ updateClockPreviewFormat()
+ }
+
val primaryColor = getProperPrimaryColor()
binding.configDigitalBgSeekbar.setColors(mTextColor, primaryColor, primaryColor)
@@ -98,15 +108,30 @@ class WidgetDigitalConfigureActivity : SimpleActivity() {
mTextColor = resources.getColor(org.fossify.commons.R.color.you_primary_color, theme)
}
+ mShowAmPm = config.widgetShowAmPm
updateTextColor()
+ updateClockPreviewFormat()
+ }
+
+ private fun updateClockPreviewFormat() {
+ val clockFormat = if (config.use24HourFormat) {
+ FORMAT_24H
+ } else if (mShowAmPm) {
+ FORMAT_12H
+ } else {
+ FORMAT_12H_NO_AM_PM
+ }
- val clockFormat = if (config.use24HourFormat) FORMAT_24H else FORMAT_12H
binding.configDigitalTime.format24Hour = clockFormat
binding.configDigitalTime.format12Hour = clockFormat
}
private fun saveConfig() {
- storeWidgetColors()
+ config.apply {
+ widgetBgColor = mBgColor
+ widgetTextColor = mTextColor
+ widgetShowAmPm = mShowAmPm
+ }
requestWidgetUpdate()
Intent().apply {
@@ -116,13 +141,6 @@ class WidgetDigitalConfigureActivity : SimpleActivity() {
finish()
}
- private fun storeWidgetColors() {
- config.apply {
- widgetBgColor = mBgColor
- widgetTextColor = mTextColor
- }
- }
-
private fun pickBackgroundColor() {
ColorPickerDialog(this, mBgColorWithoutTransparency) { wasPositivePressed, color ->
if (wasPositivePressed) {
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..7ea2be72 100644
--- a/app/src/main/kotlin/org/fossify/clock/helpers/Config.kt
+++ b/app/src/main/kotlin/org/fossify/clock/helpers/Config.kt
@@ -138,6 +138,10 @@ class Config(context: Context) : BaseConfig(context) {
putBoolean(WAS_INITIAL_WIDGET_SET_UP, wasInitialWidgetSetUp)
}
+ var widgetShowAmPm: Boolean
+ get() = prefs.getBoolean(WIDGET_SHOW_AM_PM, true)
+ set(widgetShowAmPm) = prefs.edit { putBoolean(WIDGET_SHOW_AM_PM, widgetShowAmPm) }
+
var lastDataExportPath: String
get() = prefs.getString(LAST_DATA_EXPORT_PATH, "")!!
set(lastDataExportPath) = prefs.edit {
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..e6a0f892 100644
--- a/app/src/main/kotlin/org/fossify/clock/helpers/Constants.kt
+++ b/app/src/main/kotlin/org/fossify/clock/helpers/Constants.kt
@@ -38,6 +38,7 @@ const val TIMERS_SORT_BY = "timers_sort_by"
const val TIMERS_CUSTOM_SORTING = "timers_custom_sorting"
const val STOPWATCH_LAPS_SORT_BY = "stopwatch_laps_sort_by"
const val WAS_INITIAL_WIDGET_SET_UP = "was_initial_widget_set_up"
+const val WIDGET_SHOW_AM_PM = "widget_show_am_pm"
const val DATA_EXPORT_EXTENSION = ".json"
const val LAST_DATA_EXPORT_PATH = "last_alarms_export_path"
const val MIGRATE_FIRST_DAY_OF_WEEK = "migrate_first_day_of_week"
@@ -100,6 +101,7 @@ const val STOPWATCH_TOGGLE_ACTION = "org.fossify.clock.TOGGLE_STOPWATCH"
// time formatting
const val FORMAT_12H = "h:mm a"
+const val FORMAT_12H_NO_AM_PM = "h:mm"
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..ceff09e3 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,9 @@ class MyDigitalTimeWidgetProvider : AppWidgetProvider() {
setViewVisibility(clockToHide, View.GONE)
setViewVisibility(clockToShow, View.VISIBLE)
+
+ val format12Hour = if (context.config.widgetShowAmPm) FORMAT_12H else FORMAT_12H_NO_AM_PM
+ setCharSequence(R.id.widget_text_clock_12, "setFormat12Hour", format12Hour)
}
}
diff --git a/app/src/main/res/layout/widget_config_digital.xml b/app/src/main/res/layout/widget_config_digital.xml
index 7b513486..ca1d2a71 100644
--- a/app/src/main/res/layout/widget_config_digital.xml
+++ b/app/src/main/res/layout/widget_config_digital.xml
@@ -58,6 +58,15 @@
+
+
Time expired
Clock and date
Use text shadow
+ Show AM/PM
Swipe right to Dismiss, or left to Snooze.
Creation order
Alarm time