diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/preferences/SharedPreferencesStorage.kt b/uhabits-android/src/main/java/org/isoron/uhabits/preferences/SharedPreferencesStorage.kt
index 0e019be0c..6237329d9 100644
--- a/uhabits-android/src/main/java/org/isoron/uhabits/preferences/SharedPreferencesStorage.kt
+++ b/uhabits-android/src/main/java/org/isoron/uhabits/preferences/SharedPreferencesStorage.kt
@@ -93,6 +93,8 @@ class SharedPreferencesStorage
"pref_unknown_enabled" -> {
preferences.areQuestionMarksEnabled = getBoolean(key, false)
}
+ "pref_inverse_checkmark_colors" ->
+ preferences.isCheckmarkWidgetColorInverted = getBoolean(key, false)
}
sharedPreferences.registerOnSharedPreferenceChangeListener(this)
}
diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/widgets/views/CheckmarkWidgetView.kt b/uhabits-android/src/main/java/org/isoron/uhabits/widgets/views/CheckmarkWidgetView.kt
index 72c95da64..6475e8423 100644
--- a/uhabits-android/src/main/java/org/isoron/uhabits/widgets/views/CheckmarkWidgetView.kt
+++ b/uhabits-android/src/main/java/org/isoron/uhabits/widgets/views/CheckmarkWidgetView.kt
@@ -67,20 +67,45 @@ class CheckmarkWidgetView : HabitWidgetView {
val bgColor: Int
val fgColor: Int
setShadowAlpha(0x4f)
- when (entryState) {
- YES_MANUAL, SKIP, YES_AUTO -> {
- bgColor = activeColor
- fgColor = res.getColor(R.attr.contrast0)
- backgroundPaint!!.color = bgColor
- frame!!.setBackgroundDrawable(background)
- }
- NO, UNKNOWN -> {
- bgColor = res.getColor(R.attr.cardBgColor)
- fgColor = res.getColor(R.attr.contrast60)
+ if (preferences!!.isCheckmarkWidgetColorInverted) {
+ when (entryState) {
+ YES_MANUAL, SKIP, YES_AUTO -> {
+ bgColor = res.getColor(R.attr.cardBgColor)
+ fgColor = res.getColor(R.attr.contrast60)
+ }
+
+ NO, UNKNOWN -> {
+ bgColor = activeColor
+ fgColor = res.getColor(R.attr.contrast0)
+ backgroundPaint!!.color = bgColor
+ frame!!.setBackgroundDrawable(background)
+ }
+
+ else -> {
+ bgColor = activeColor
+ fgColor = res.getColor(R.attr.contrast0)
+ backgroundPaint!!.color = bgColor
+ frame!!.setBackgroundDrawable(background)
+ }
}
- else -> {
- bgColor = res.getColor(R.attr.cardBgColor)
- fgColor = res.getColor(R.attr.contrast60)
+ } else {
+ when (entryState) {
+ YES_MANUAL, SKIP, YES_AUTO -> {
+ bgColor = activeColor
+ fgColor = res.getColor(R.attr.contrast0)
+ backgroundPaint!!.color = bgColor
+ frame!!.setBackgroundDrawable(background)
+ }
+
+ NO, UNKNOWN -> {
+ bgColor = res.getColor(R.attr.cardBgColor)
+ fgColor = res.getColor(R.attr.contrast60)
+ }
+
+ else -> {
+ bgColor = res.getColor(R.attr.cardBgColor)
+ fgColor = res.getColor(R.attr.contrast60)
+ }
}
}
ring.setPercentage(percentage)
diff --git a/uhabits-android/src/main/res/values/strings.xml b/uhabits-android/src/main/res/values/strings.xml
index 9fec1cbca..f856432cd 100644
--- a/uhabits-android/src/main/res/values/strings.xml
+++ b/uhabits-android/src/main/res/values/strings.xml
@@ -233,4 +233,6 @@
No app was found to support this action
Extend day a few hours past midnight
Wait until 3:00 AM to show a new day. Useful if you typically go to sleep after midnight. Requires app restart.
+ Inverse checkmark widget colors
+ Make the checkmark widget looked turn off once the task is done.
diff --git a/uhabits-android/src/main/res/xml/preferences.xml b/uhabits-android/src/main/res/xml/preferences.xml
index ad381b502..dee86768c 100644
--- a/uhabits-android/src/main/res/xml/preferences.xml
+++ b/uhabits-android/src/main/res/xml/preferences.xml
@@ -81,6 +81,13 @@
android:title="@string/first_day_of_the_week"
app:iconSpaceReserved="false" />
+
+