diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.kt
index 31e982745..96305af66 100644
--- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.kt
+++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.kt
@@ -75,8 +75,12 @@ class ListHabitsActivity : AppCompatActivity(), Preferences.Listener {
private lateinit var menu: ListHabitsMenu
override fun onQuestionMarksChanged() {
- invalidateOptionsMenu()
- menu.behavior.onPreferencesChanged()
+ if (prefs.greyCompleted) {
+ restartWithFade(this::class.java)
+ } else {
+ invalidateOptionsMenu()
+ menu.behavior.onPreferencesChanged()
+ }
}
override fun onCreate(savedInstanceState: Bundle?) {
diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsMenu.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsMenu.kt
index 59a31c6d6..653503805 100644
--- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsMenu.kt
+++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsMenu.kt
@@ -49,13 +49,17 @@ class ListHabitsMenu @Inject constructor(
val nightModeItem = menu.findItem(R.id.actionToggleNightMode)
val hideArchivedItem = menu.findItem(R.id.actionHideArchived)
val hideCompletedItem = menu.findItem(R.id.actionHideCompleted)
+ val greyCompletedItem = menu.findItem(R.id.actionGreyCompleted)
nightModeItem.isChecked = themeSwitcher.isNightMode
hideArchivedItem.isChecked = !preferences.showArchived
hideCompletedItem.isChecked = !preferences.showCompleted
+ greyCompletedItem.isChecked = preferences.greyCompleted
if (preferences.areQuestionMarksEnabled || preferences.isSkipEnabled) {
hideCompletedItem.title = activity.resources.getString(R.string.hide_entered)
+ greyCompletedItem.title = activity.resources.getString(R.string.grey_entered)
} else {
hideCompletedItem.title = activity.resources.getString(R.string.hide_completed)
+ greyCompletedItem.title = activity.resources.getString(R.string.grey_completed)
}
updateArrows(menu)
}
@@ -121,6 +125,12 @@ class ListHabitsMenu @Inject constructor(
return true
}
+ R.id.actionGreyCompleted -> {
+ behavior.onToggleGreyCompleted()
+ activity.invalidateOptionsMenu()
+ return true
+ }
+
R.id.actionSortColor -> {
behavior.onSortByColor()
return true
diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt
index 664044401..3d25cb3a8 100644
--- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt
+++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.kt
@@ -35,14 +35,17 @@ import android.widget.FrameLayout
import android.widget.LinearLayout
import android.widget.TextView
import org.isoron.platform.gui.toInt
+import org.isoron.uhabits.HabitsApplication
import org.isoron.uhabits.R
import org.isoron.uhabits.activities.common.views.RingView
import org.isoron.uhabits.core.models.Habit
import org.isoron.uhabits.core.models.ModelObservable
import org.isoron.uhabits.core.models.Timestamp
+import org.isoron.uhabits.core.preferences.Preferences
import org.isoron.uhabits.core.ui.screens.habits.list.ListHabitsBehavior
import org.isoron.uhabits.core.utils.DateUtils
import org.isoron.uhabits.inject.ActivityContext
+import org.isoron.uhabits.inject.HabitsApplicationComponent
import org.isoron.uhabits.utils.currentTheme
import org.isoron.uhabits.utils.dp
import org.isoron.uhabits.utils.sres
@@ -123,7 +126,12 @@ class HabitCardView(
numberPanel.notes = values
}
+ private val appComponent: HabitsApplicationComponent =
+ (context.applicationContext as HabitsApplication).component
+ private val prefs: Preferences = appComponent.preferences
+
var checkmarkPanel: CheckmarkPanelView
+
private var numberPanel: NumberPanelView
private var innerFrame: LinearLayout
private var label: TextView
@@ -265,10 +273,19 @@ class HabitCardView(
private fun copyAttributesFrom(h: Habit) {
fun getActiveColor(habit: Habit): Int {
- return when (habit.isArchived) {
- true -> sres.getColor(R.attr.contrast60)
- false -> currentTheme().color(habit.color).toInt()
+ var retCol: Int = currentTheme().color(habit.color).toInt()
+
+ if (habit.isArchived) {
+ retCol = sres.getColor(R.attr.contrast60)
+ } else if (prefs.greyCompleted) {
+ if (prefs.areQuestionMarksEnabled && habit.isEnteredToday()) {
+ retCol = sres.getColor(R.attr.contrast40)
+ } else if (!prefs.areQuestionMarksEnabled && habit.isCompletedToday()) {
+ retCol = sres.getColor(R.attr.contrast40)
+ }
}
+
+ return retCol
}
val c = getActiveColor(h)
diff --git a/uhabits-android/src/main/res/menu/list_habits.xml b/uhabits-android/src/main/res/menu/list_habits.xml
index caf875e67..c25576cc7 100644
--- a/uhabits-android/src/main/res/menu/list_habits.xml
+++ b/uhabits-android/src/main/res/menu/list_habits.xml
@@ -48,6 +48,12 @@
android:enabled="true"
android:title="@string/hide_completed"/>
+
+
-