From 71620a320dc51964d5d077d989f77164354324da Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Tue, 22 Dec 2020 19:41:38 -0600 Subject: [PATCH] Refactor FrequencyCard --- .../habits/show/FrequencyCard/render.png | Bin 24941 -> 24958 bytes .../views/habits/show/ScoreCard/render.png | Bin 31989 -> 26089 bytes .../habits/show/views/FrequencyCardTest.java | 66 ----------- .../habits/show/views/FrequencyCardTest.kt | 50 ++++++++ .../habits/show/views/ScoreCardTest.java | 65 ----------- .../habits/show/views/ScoreCardTest.kt | 50 ++++++++ .../habits/show/ShowHabitActivity.kt | 7 +- .../habits/show/views/FrequencyCard.java | 110 ------------------ .../habits/show/views/FrequencyCard.kt | 58 +++++++++ 9 files changed, 164 insertions(+), 242 deletions(-) delete mode 100644 android/uhabits-android/src/androidTest/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCardTest.java create mode 100644 android/uhabits-android/src/androidTest/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCardTest.kt delete mode 100644 android/uhabits-android/src/androidTest/java/org/isoron/uhabits/activities/habits/show/views/ScoreCardTest.java create mode 100644 android/uhabits-android/src/androidTest/java/org/isoron/uhabits/activities/habits/show/views/ScoreCardTest.kt delete mode 100644 android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCard.java create mode 100644 android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCard.kt diff --git a/android/uhabits-android/src/androidTest/assets/views/habits/show/FrequencyCard/render.png b/android/uhabits-android/src/androidTest/assets/views/habits/show/FrequencyCard/render.png index 81399e360d25e20e0172045b2eac9c5256ad6b4e..969c7ff28628491b89d87ab03bcbcef7dd13367e 100644 GIT binary patch literal 24958 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 JDf024&8P@ScgLu7OT)mx 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�U(pmdNOpWIqM@IpUij}vhN%|`FgHd$Lu>wmM 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 diff --git a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCardTest.java b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCardTest.java deleted file mode 100644 index d8ceac381..000000000 --- a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCardTest.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (C) 2016 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.activities.habits.show.views; - -import androidx.test.filters.*; -import androidx.test.runner.*; -import android.view.*; - -import androidx.test.ext.junit.runners.AndroidJUnit4; - -import org.isoron.uhabits.*; -import org.isoron.uhabits.core.models.*; -import org.junit.*; -import org.junit.runner.*; - -@RunWith(AndroidJUnit4.class) -@MediumTest -public class FrequencyCardTest extends BaseViewTest -{ - public static final String PATH = "habits/show/FrequencyCard/"; - - private FrequencyCard view; - - private Habit habit; - - @Before - @Override - public void setUp() - { - super.setUp(); - habit = fixtures.createLongHabit(); - - view = (FrequencyCard) LayoutInflater - .from(targetContext) - .inflate(R.layout.show_habit, null) - .findViewById(R.id.frequencyCard); - - view.setHabit(habit); - view.refreshData(); - - measureView(view, 800, 600); - } - - @Test - public void testRender() throws Exception - { - assertRenders(view, PATH + "render.png"); - } -} diff --git a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCardTest.kt b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCardTest.kt new file mode 100644 index 000000000..9ed442ced --- /dev/null +++ b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCardTest.kt @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2016 Álinson Santos Xavier + * + * This file is part of Loop Habit Tracker. + * + * Loop Habit Tracker is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. + * + * Loop Habit Tracker is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ +package org.isoron.uhabits.activities.habits.show.views + +import android.view.* +import androidx.test.ext.junit.runners.* +import androidx.test.filters.* +import org.isoron.uhabits.* +import org.junit.* +import org.junit.runner.* + +@RunWith(AndroidJUnit4::class) +@MediumTest +class FrequencyCardTest : BaseViewTest() { + val PATH = "habits/show/FrequencyCard/" + private lateinit var view: FrequencyCard + + @Before + override fun setUp() { + super.setUp() + val habit = fixtures.createLongHabit() + view = LayoutInflater + .from(targetContext) + .inflate(R.layout.show_habit, null) + .findViewById(R.id.frequencyCard) as FrequencyCard + view.update(FrequencyCardPresenter(habit, 0).present()) + measureView(view, 800f, 600f) + } + + @Test + fun testRender() { + assertRenders(view, PATH + "render.png") + } +} \ No newline at end of file diff --git a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/activities/habits/show/views/ScoreCardTest.java b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/activities/habits/show/views/ScoreCardTest.java deleted file mode 100644 index 51901e896..000000000 --- a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/activities/habits/show/views/ScoreCardTest.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (C) 2016 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.activities.habits.show.views; - -import androidx.test.filters.*; -import androidx.test.runner.*; -import android.view.*; - -import androidx.test.ext.junit.runners.AndroidJUnit4; - -import org.isoron.uhabits.*; -import org.isoron.uhabits.core.models.*; -import org.junit.*; -import org.junit.runner.*; - -@RunWith(AndroidJUnit4.class) -@MediumTest -public class ScoreCardTest extends BaseViewTest -{ - public static final String PATH = "habits/show/ScoreCard/"; - - private ScoreCard view; - - private Habit habit; - - @Before - @Override - public void setUp() - { - super.setUp(); - habit = fixtures.createLongHabit(); - - view = (ScoreCard) LayoutInflater - .from(targetContext) - .inflate(R.layout.show_habit, null) - .findViewById(R.id.scoreCard); - - view.setHabit(habit); - view.refreshData(); - measureView(view, 800, 600); - } - - @Test - public void testRender() throws Exception - { - assertRenders(view, PATH + "render.png"); - } -} diff --git a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/activities/habits/show/views/ScoreCardTest.kt b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/activities/habits/show/views/ScoreCardTest.kt new file mode 100644 index 000000000..15029f830 --- /dev/null +++ b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/activities/habits/show/views/ScoreCardTest.kt @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2016 Álinson Santos Xavier + * + * This file is part of Loop Habit Tracker. + * + * Loop Habit Tracker is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. + * + * Loop Habit Tracker is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ +package org.isoron.uhabits.activities.habits.show.views + +import android.view.* +import androidx.test.ext.junit.runners.* +import androidx.test.filters.* +import org.isoron.uhabits.* +import org.junit.* +import org.junit.runner.* + +@RunWith(AndroidJUnit4::class) +@MediumTest +class ScoreCardTest : BaseViewTest() { + val PATH = "habits/show/ScoreCard/" + private lateinit var view: ScoreCard + + @Before + override fun setUp() { + super.setUp() + val habit = fixtures.createLongHabit() + view = LayoutInflater + .from(targetContext) + .inflate(R.layout.show_habit, null) + .findViewById(R.id.scoreCard) as ScoreCard + view.update(ScoreCardPresenter(habit, 0).present(0)) + measureView(view, 800f, 600f) + } + + @Test + fun testRender() { + assertRenders(view, PATH + "render.png") + } +} \ No newline at end of file diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt index cf8fbc77b..77d9569fc 100644 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt +++ b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/ShowHabitActivity.kt @@ -99,6 +99,7 @@ data class ShowHabitViewModel( val target: TargetCardViewModel, val streaks: StreakCardViewModel, val scores: ScoreCardViewModel, + val frequency: FrequencyCardViewModel, ) class ShowHabitView(context: Context) : FrameLayout(context) { @@ -119,6 +120,7 @@ class ShowHabitView(context: Context) : FrameLayout(context) { binding.targetCard.update(data.target) binding.streakCard.update(data.streaks) binding.scoreCard.update(data.scores) + binding.frequencyCard.update(data.frequency) if (data.isNumerical) { binding.overviewCard.visibility = GONE binding.streakCard.visibility = GONE @@ -148,6 +150,8 @@ class ShowHabitPresenter( private val streakCartPresenter = StreakCartPresenter(habit) private val scoreCardPresenter = ScoreCardPresenter(habit = habit, firstWeekday = preferences.firstWeekday) + private val frequencyCardPresenter = FrequencyCardPresenter(habit = habit, + firstWeekday = preferences.firstWeekday) suspend fun present(): ShowHabitViewModel { return ShowHabitViewModel( @@ -159,7 +163,8 @@ class ShowHabitPresenter( notes = notesCardPresenter.present(), target = targetCardPresenter.present(), streaks = streakCartPresenter.present(), - scores = scoreCardPresenter.present(preferences.defaultScoreSpinnerPosition) + scores = scoreCardPresenter.present(preferences.defaultScoreSpinnerPosition), + frequency = frequencyCardPresenter.present(), ) } } \ No newline at end of file diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCard.java b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCard.java deleted file mode 100644 index 26ff7c810..000000000 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCard.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (C) 2016 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.activities.habits.show.views; - -import android.content.*; -import android.util.*; -import android.widget.*; - -import androidx.annotation.Nullable; - -import org.isoron.uhabits.*; -import org.isoron.uhabits.R; -import org.isoron.uhabits.activities.common.views.*; -import org.isoron.uhabits.core.models.*; -import org.isoron.uhabits.core.preferences.*; -import org.isoron.uhabits.core.tasks.*; -import org.isoron.uhabits.utils.*; - -import java.util.*; - -import butterknife.*; - -public class FrequencyCard extends HabitCard -{ - @BindView(R.id.title) - TextView title; - - @BindView(R.id.frequencyChart) - FrequencyChart chart; - - @Nullable - private Preferences prefs; - - public FrequencyCard(Context context) - { - super(context); - init(); - } - - public FrequencyCard(Context context, AttributeSet attrs) - { - super(context, attrs); - init(); - } - - @Override - protected Task createRefreshTask() - { - return new RefreshTask(); - } - - private void init() - { - Context appContext = getContext().getApplicationContext(); - if (appContext instanceof HabitsApplication) - { - HabitsApplication app = (HabitsApplication) appContext; - prefs = app.getComponent().getPreferences(); - } - inflate(getContext(), R.layout.show_habit_frequency, this); - ButterKnife.bind(this); - if (isInEditMode()) initEditMode(); - } - - private void initEditMode() - { - int color = PaletteUtils.getAndroidTestColor(1); - title.setTextColor(color); - chart.setColor(color); - chart.populateWithRandomData(); - } - - private class RefreshTask extends CancelableTask - { - @Override - public void doInBackground() - { - if (isCanceled()) return; - RepetitionList reps = getHabit().getRepetitions(); - HashMap frequency = reps.getWeekdayFrequency(); - if(prefs != null) chart.setFirstWeekday(prefs.getFirstWeekday()); - chart.setFrequency(frequency); - } - - @Override - public void onPreExecute() - { - int color = PaletteUtilsKt.toThemedAndroidColor(getHabit().getColor(), getContext()); - title.setTextColor(color); - chart.setColor(color); - } - } -} diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCard.kt b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCard.kt new file mode 100644 index 000000000..dfa3c4715 --- /dev/null +++ b/android/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/show/views/FrequencyCard.kt @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2016 Álinson Santos Xavier + * + * This file is part of Loop Habit Tracker. + * + * Loop Habit Tracker is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. + * + * Loop Habit Tracker is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ +package org.isoron.uhabits.activities.habits.show.views + +import android.content.* +import android.util.* +import android.view.* +import android.widget.* +import org.isoron.uhabits.core.models.* +import org.isoron.uhabits.databinding.* +import org.isoron.uhabits.utils.* +import java.util.* + +data class FrequencyCardViewModel( + val frequency: HashMap>, + val firstWeekday: Int, + val color: PaletteColor, +) + +class FrequencyCard(context: Context, attrs: AttributeSet) : LinearLayout(context, attrs) { + + private var binding = ShowHabitFrequencyBinding.inflate(LayoutInflater.from(context), this) + + fun update(data: FrequencyCardViewModel) { + val androidColor = data.color.toThemedAndroidColor(context) + binding.frequencyChart.setFrequency(data.frequency) + binding.frequencyChart.setFirstWeekday(data.firstWeekday) + binding.title.setTextColor(androidColor) + binding.frequencyChart.setColor(androidColor) + } +} + +class FrequencyCardPresenter( + val habit: Habit, + val firstWeekday: Int, +) { + fun present() = FrequencyCardViewModel( + color = habit.color, + frequency = habit.repetitions.weekdayFrequency, + firstWeekday = firstWeekday, + ) +} \ No newline at end of file