From a09143821314b9d804dae72d596dd3e802f126db Mon Sep 17 00:00:00 2001 From: eduardoesparza Date: Sun, 4 Sep 2022 11:28:02 -0700 Subject: [PATCH] add isNumerical attribute to FrequencyChart --- .../uhabits/activities/common/views/FrequencyChart.kt | 6 ++++++ .../activities/habits/show/views/FrequencyCardView.kt | 1 + .../main/java/org/isoron/uhabits/widgets/FrequencyWidget.kt | 1 + .../core/ui/screens/habits/show/views/FrequencyCard.kt | 2 ++ 4 files changed, 10 insertions(+) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/views/FrequencyChart.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/views/FrequencyChart.kt index 72e3c0479..079d45e83 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/views/FrequencyChart.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/common/views/FrequencyChart.kt @@ -65,6 +65,7 @@ class FrequencyChart : ScrollableChart { private lateinit var frequency: HashMap> private var maxFreq = 0 private var firstWeekday = Calendar.SUNDAY + private var isNumerical: Boolean = false constructor(context: Context?) : super(context) { init() @@ -81,6 +82,11 @@ class FrequencyChart : ScrollableChart { postInvalidate() } + fun setIsNumerical(type: Boolean) { + isNumerical = type + postInvalidate() + } + fun setFrequency(frequency: java.util.HashMap>) { this.frequency = frequency maxFreq = getMaxFreq(frequency) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCardView.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCardView.kt index cf7daf769..f31b23408 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCardView.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCardView.kt @@ -33,6 +33,7 @@ class FrequencyCardView(context: Context, attrs: AttributeSet) : LinearLayout(co fun setState(state: FrequencyCardState) { val androidColor = state.theme.color(state.color).toInt() binding.frequencyChart.setFrequency(state.frequency) + binding.frequencyChart.setIsNumerical(state.isNumerical) binding.frequencyChart.setFirstWeekday(state.firstWeekday) binding.title.setTextColor(androidColor) binding.frequencyChart.setColor(androidColor) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/widgets/FrequencyWidget.kt b/uhabits-android/src/main/java/org/isoron/uhabits/widgets/FrequencyWidget.kt index 8ef1b4a48..8b76cb1b3 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/widgets/FrequencyWidget.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/widgets/FrequencyWidget.kt @@ -49,6 +49,7 @@ class FrequencyWidget( (widgetView.dataView as FrequencyChart).apply { setFirstWeekday(firstWeekday) setColor(WidgetTheme().color(habit.color).toInt()) + setIsNumerical(habit.isNumerical) setFrequency(habit.originalEntries.computeWeekdayFrequency(habit.isNumerical)) } } diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/FrequencyCard.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/FrequencyCard.kt index fd46c3473..cdb12d32d 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/FrequencyCard.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/ui/screens/habits/show/views/FrequencyCard.kt @@ -30,6 +30,7 @@ data class FrequencyCardState( val firstWeekday: Int, val frequency: HashMap>, val theme: Theme, + val isNumerical: Boolean ) class FrequencyCardPresenter { @@ -40,6 +41,7 @@ class FrequencyCardPresenter { theme: Theme ) = FrequencyCardState( color = habit.color, + isNumerical = habit.isNumerical, frequency = habit.originalEntries.computeWeekdayFrequency( isNumerical = habit.isNumerical ),