diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/BarChart/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/BarChart/render.png deleted file mode 100644 index 6f3c86156..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/BarChart/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/BarChart/renderDataOffset.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/BarChart/renderDataOffset.png deleted file mode 100644 index 6dfa977bc..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/BarChart/renderDataOffset.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/BarChart/renderDifferentSize.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/BarChart/renderDifferentSize.png deleted file mode 100644 index 6aaffd2f4..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/BarChart/renderDifferentSize.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/BarChart/renderTransparent.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/BarChart/renderTransparent.png deleted file mode 100644 index fbc63a2e5..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/BarChart/renderTransparent.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/FrequencyChart/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/FrequencyChart/render.png deleted file mode 100644 index fbd196e8e..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/FrequencyChart/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/FrequencyChart/renderDataOffset.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/FrequencyChart/renderDataOffset.png deleted file mode 100644 index 66ac9f4a3..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/FrequencyChart/renderDataOffset.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/FrequencyChart/renderDifferentSize.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/FrequencyChart/renderDifferentSize.png deleted file mode 100644 index 1096a3d29..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/FrequencyChart/renderDifferentSize.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/FrequencyChart/renderTransparent.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/FrequencyChart/renderTransparent.png deleted file mode 100644 index fbd196e8e..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/FrequencyChart/renderTransparent.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/HistoryChart/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/HistoryChart/render.png deleted file mode 100644 index 4b79eb36d..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/HistoryChart/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/HistoryChart/renderDataOffset.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/HistoryChart/renderDataOffset.png deleted file mode 100644 index 05f3b7341..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/HistoryChart/renderDataOffset.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/HistoryChart/renderDifferentSize.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/HistoryChart/renderDifferentSize.png deleted file mode 100644 index 8bd6b25b4..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/HistoryChart/renderDifferentSize.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/HistoryChart/renderTransparent.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/HistoryChart/renderTransparent.png deleted file mode 100644 index 4ec75da79..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/HistoryChart/renderTransparent.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/RingView/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/RingView/render.png deleted file mode 100644 index 0bf125778..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/RingView/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/RingView/renderDifferentParams.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/RingView/renderDifferentParams.png deleted file mode 100644 index 5285c2626..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/RingView/renderDifferentParams.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/render.png deleted file mode 100644 index a14dec71b..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/renderDataOffset.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/renderDataOffset.png deleted file mode 100644 index e266b88a0..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/renderDataOffset.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/renderDifferentSize.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/renderDifferentSize.png deleted file mode 100644 index 3fa863353..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/renderDifferentSize.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/renderMonthly.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/renderMonthly.png deleted file mode 100644 index aab4da0c7..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/renderMonthly.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/renderTransparent.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/renderTransparent.png deleted file mode 100644 index 12c7f8e3d..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/renderTransparent.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/renderYearly.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/renderYearly.png deleted file mode 100644 index 068864ecb..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/ScoreChart/renderYearly.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/StreakChart/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/StreakChart/render.png deleted file mode 100644 index 5c6e059d2..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/StreakChart/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/StreakChart/renderSmallSize.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/StreakChart/renderSmallSize.png deleted file mode 100644 index 6fb3e3763..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/StreakChart/renderSmallSize.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/common/StreakChart/renderTransparent.png b/android/uhabits-android/src/androidTest/assets/views-v21/common/StreakChart/renderTransparent.png deleted file mode 100644 index 5c6e059d2..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/common/StreakChart/renderTransparent.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkButtonView/render_explicit_check.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkButtonView/render_explicit_check.png deleted file mode 100644 index f3e2d3bef..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkButtonView/render_explicit_check.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkButtonView/render_implicit_check.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkButtonView/render_implicit_check.png deleted file mode 100644 index 2f7529768..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkButtonView/render_implicit_check.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkButtonView/render_unchecked.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkButtonView/render_unchecked.png deleted file mode 100644 index 54f006b13..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkButtonView/render_unchecked.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkPanelView/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkPanelView/render.png deleted file mode 100644 index 39b3ebb2c..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkPanelView/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkPanelView/render_different_color.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkPanelView/render_different_color.png deleted file mode 100644 index b55300ece..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkPanelView/render_different_color.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkPanelView/render_offset.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkPanelView/render_offset.png deleted file mode 100644 index 574701417..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkPanelView/render_offset.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkPanelView/render_reversed.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkPanelView/render_reversed.png deleted file mode 100644 index 2965eb691..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/CheckmarkPanelView/render_reversed.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HabitCardView/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HabitCardView/render.png deleted file mode 100644 index bf0e6b59d..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HabitCardView/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HabitCardView/render_changed.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HabitCardView/render_changed.png deleted file mode 100644 index bf0e6b59d..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HabitCardView/render_changed.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HabitCardView/render_numerical.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HabitCardView/render_numerical.png deleted file mode 100644 index a35768436..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HabitCardView/render_numerical.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HabitCardView/render_selected.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HabitCardView/render_selected.png deleted file mode 100644 index 3cb0a817f..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HabitCardView/render_selected.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HeaderView/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HeaderView/render.png deleted file mode 100644 index 4273511d5..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HeaderView/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HeaderView/render_reverse.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HeaderView/render_reverse.png deleted file mode 100644 index ca045595e..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HeaderView/render_reverse.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HintView/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HintView/render.png deleted file mode 100644 index dae19beb8..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/HintView/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberButtonView/render_above.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberButtonView/render_above.png deleted file mode 100644 index 8d493812f..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberButtonView/render_above.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberButtonView/render_below.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberButtonView/render_below.png deleted file mode 100644 index bd837a767..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberButtonView/render_below.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberButtonView/render_zero.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberButtonView/render_zero.png deleted file mode 100644 index 6bb711855..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberButtonView/render_zero.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberPanelView/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberPanelView/render.png deleted file mode 100644 index 9e9857e18..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberPanelView/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberPanelView/render_different_color.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberPanelView/render_different_color.png deleted file mode 100644 index 165226baa..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberPanelView/render_different_color.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberPanelView/render_offset.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberPanelView/render_offset.png deleted file mode 100644 index 8460f9b4f..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberPanelView/render_offset.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberPanelView/render_reversed.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberPanelView/render_reversed.png deleted file mode 100644 index 2adf58c23..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/list/NumberPanelView/render_reversed.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/FrequencyCard/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/FrequencyCard/render.png deleted file mode 100644 index bc3330fb4..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/FrequencyCard/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/HistoryCard/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/HistoryCard/render.png deleted file mode 100644 index eccf19d41..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/HistoryCard/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/OverviewCard/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/OverviewCard/render.png deleted file mode 100644 index 31c1098a0..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/OverviewCard/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/ScoreCard/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/ScoreCard/render.png deleted file mode 100644 index eabe0c6c7..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/ScoreCard/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/StreakCard/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/StreakCard/render.png deleted file mode 100644 index 79f5d3051..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/StreakCard/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/SubtitleCard/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/SubtitleCard/render.png deleted file mode 100644 index 96e2310e0..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/habits/show/SubtitleCard/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/CheckmarkWidget/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/widgets/CheckmarkWidget/render.png deleted file mode 100644 index 00c6fc72b..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/CheckmarkWidget/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/CheckmarkWidgetView/checked.png b/android/uhabits-android/src/androidTest/assets/views-v21/widgets/CheckmarkWidgetView/checked.png deleted file mode 100644 index 6d62e5a69..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/CheckmarkWidgetView/checked.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/CheckmarkWidgetView/implicitly_checked.png b/android/uhabits-android/src/androidTest/assets/views-v21/widgets/CheckmarkWidgetView/implicitly_checked.png deleted file mode 100644 index 2b933181a..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/CheckmarkWidgetView/implicitly_checked.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/CheckmarkWidgetView/large_size.png b/android/uhabits-android/src/androidTest/assets/views-v21/widgets/CheckmarkWidgetView/large_size.png deleted file mode 100644 index cfb423e98..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/CheckmarkWidgetView/large_size.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/CheckmarkWidgetView/unchecked.png b/android/uhabits-android/src/androidTest/assets/views-v21/widgets/CheckmarkWidgetView/unchecked.png deleted file mode 100644 index 94eaf4404..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/CheckmarkWidgetView/unchecked.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/FrequencyWidget/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/widgets/FrequencyWidget/render.png deleted file mode 100644 index 0b15dd658..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/FrequencyWidget/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/HistoryWidget/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/widgets/HistoryWidget/render.png deleted file mode 100644 index fa7ef2110..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/HistoryWidget/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/ScoreWidget/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/widgets/ScoreWidget/render.png deleted file mode 100644 index 59d94daa4..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/ScoreWidget/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/StreakWidget/render.png b/android/uhabits-android/src/androidTest/assets/views-v21/widgets/StreakWidget/render.png deleted file mode 100644 index 19a2700ca..000000000 Binary files a/android/uhabits-android/src/androidTest/assets/views-v21/widgets/StreakWidget/render.png and /dev/null differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HabitCardView/render_numerical.png b/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HabitCardView/render_numerical.png index 81c5aff0e..92ae7a9e9 100644 Binary files a/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HabitCardView/render_numerical.png and b/android/uhabits-android/src/androidTest/assets/views-v26/habits/list/HabitCardView/render_numerical.png differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/CheckmarkWidget/render.png b/android/uhabits-android/src/androidTest/assets/views-v26/widgets/CheckmarkWidget/render.png index 346a81e77..42147c832 100644 Binary files a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/CheckmarkWidget/render.png and b/android/uhabits-android/src/androidTest/assets/views-v26/widgets/CheckmarkWidget/render.png differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/FrequencyWidget/render.png b/android/uhabits-android/src/androidTest/assets/views-v26/widgets/FrequencyWidget/render.png index 6991525e2..452e0dd68 100644 Binary files a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/FrequencyWidget/render.png and b/android/uhabits-android/src/androidTest/assets/views-v26/widgets/FrequencyWidget/render.png differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/HistoryWidget/render.png b/android/uhabits-android/src/androidTest/assets/views-v26/widgets/HistoryWidget/render.png index 207910f1f..4239c0ca3 100644 Binary files a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/HistoryWidget/render.png and b/android/uhabits-android/src/androidTest/assets/views-v26/widgets/HistoryWidget/render.png differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/ScoreWidget/render.png b/android/uhabits-android/src/androidTest/assets/views-v26/widgets/ScoreWidget/render.png index f06396cbf..96eae98da 100644 Binary files a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/ScoreWidget/render.png and b/android/uhabits-android/src/androidTest/assets/views-v26/widgets/ScoreWidget/render.png differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/StreakWidget/render.png b/android/uhabits-android/src/androidTest/assets/views-v26/widgets/StreakWidget/render.png index 5833a07ad..999af4424 100644 Binary files a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/StreakWidget/render.png and b/android/uhabits-android/src/androidTest/assets/views-v26/widgets/StreakWidget/render.png differ diff --git a/android/uhabits-android/src/androidTest/assets/views-v26/widgets/TargetWidget/render.png b/android/uhabits-android/src/androidTest/assets/views-v26/widgets/TargetWidget/render.png new file mode 100644 index 000000000..489c34b83 Binary files /dev/null and b/android/uhabits-android/src/androidTest/assets/views-v26/widgets/TargetWidget/render.png differ diff --git a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/HabitFixtures.java b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/HabitFixtures.java index 364166de7..262839c58 100644 --- a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/HabitFixtures.java +++ b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/HabitFixtures.java @@ -78,15 +78,49 @@ public class HabitFixtures return habit; } + public Habit createVeryLongHabit() + { + Habit habit = createEmptyHabit(); + habit.setFrequency(new Frequency(1, 2)); + habit.setColor(11); + + Timestamp today = DateUtils.getToday(); + int marks[] = {0, 3, 5, 6, 7, 10, 13, 14, 15, 18, 21, 22, 23, 24, 27, 28, 30, 31, 34, 37, + 39, 42, 43, 46, 47, 48, 51, 52, 54, 55, 57, 59, 62, 65, 68, 71, 73, 76, 79, + 80, 81, 83, 85, 86, 89, 90, 91, 94, 96, 98, 100, 103, 104, 106, 109, 111, + 112, 113, 115, 117, 120, 123, 126, 129, 132, 134, 136, 139, 141, 142, 145, + 148, 149, 151, 152, 154, 156, 157, 159, 161, 162, 163, 164, 166, 168, 170, + 172, 173, 174, 175, 176, 178, 180, 181, 184, 185, 188, 189, 190, 191, 194, + 195, 197, 198, 199, 200, 202, 205, 208, 211, 213, 215, 216, 218, 220, 222, + 223, 225, 227, 228, 230, 231, 232, 234, 235, 238, 241, 242, 244, 247, 250, + 251, 253, 254, 257, 260, 261, 263, 264, 266, 269, 272, 273, 276, 279, 281, + 284, 285, 288, 291, 292, 294, 296, 297, 299, 300, 301, 303, 306, 307, 308, + 309, 310, 313, 316, 319, 322, 324, 326, 329, 330, 332, 334, 335, 337, 338, + 341, 344, 345, 346, 347, 350, 352, 355, 358, 360, 361, 362, 363, 365, 368, + 371, 373, 374, 376, 379, 380, 382, 384, 385, 387, 389, 390, 392, 393, 395, + 396, 399, 401, 404, 407, 410, 411, 413, 414, 416, 417, 419, 420, 423, 424, + 427, 429, 431, 433, 436, 439, 440, 442, 445, 447, 450, 453, 454, 456, 459, + 460, 461, 464, 466, 468, 470, 473, 474, 475, 477, 479, 481, 482, 483, 486, + 489, 491, 493, 495, 497, 498, 500, 503, 504, 507, 510, 511, 512, 515, 518, + 519, 521, 522, 525, 528, 531, 532, 534, 537, 539, 541, 543, 544, 547, 550, + 551, 554, 556, 557, 560, 561, 564, 567, 568, 569, 570, 572, 575, 576, 579, + 582, 583, 584, 586, 589}; + + for (int mark : marks) + habit.getRepetitions().toggle(today.minus(mark)); + + return habit; + } + public Habit createLongNumericalHabit() { Habit habit = modelFactory.buildHabit(); - habit.setName("Take a walk"); - habit.setQuestion("How many steps did you walk today?"); + habit.setName("Read"); + habit.setQuestion("How many pages did you walk today?"); habit.setType(Habit.NUMBER_HABIT); habit.setTargetType(Habit.AT_LEAST); habit.setTargetValue(200.0); - habit.setUnit("steps"); + habit.setUnit("pages"); habitList.add(habit); Timestamp timestamp = DateUtils.getToday(); diff --git a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/CheckmarkWidgetTest.java b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/CheckmarkWidgetTest.java index 45ce2067f..606ff0384 100644 --- a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/CheckmarkWidgetTest.java +++ b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/CheckmarkWidgetTest.java @@ -51,11 +51,12 @@ public class CheckmarkWidgetTest extends BaseViewTest { super.setUp(); setTheme(R.style.WidgetTheme); + prefs.setWidgetOpacity(255); - habit = fixtures.createShortHabit(); + habit = fixtures.createVeryLongHabit(); checkmarks = habit.getCheckmarks(); CheckmarkWidget widget = new CheckmarkWidget(targetContext, 0, habit); - view = convertToView(widget, 200, 250); + view = convertToView(widget, 150, 200); assertThat(checkmarks.getTodayValue(), equalTo(CHECKED_EXPLICITLY)); } diff --git a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/FrequencyWidgetTest.java b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/FrequencyWidgetTest.java index 31a459af3..626e53b3b 100644 --- a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/FrequencyWidgetTest.java +++ b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/FrequencyWidgetTest.java @@ -47,8 +47,9 @@ public class FrequencyWidgetTest extends BaseViewTest { super.setUp(); setTheme(R.style.WidgetTheme); + prefs.setWidgetOpacity(255); - habit = fixtures.createLongHabit(); + habit = fixtures.createVeryLongHabit(); FrequencyWidget widget = new FrequencyWidget(targetContext, 0, habit, Calendar.SUNDAY); view = convertToView(widget, 400, 400); } @@ -59,9 +60,9 @@ public class FrequencyWidgetTest extends BaseViewTest assertWidgetProviderIsInstalled(FrequencyWidgetProvider.class); } -// @Test -// public void testRender() throws Exception -// { -// assertRenders(view, PATH + "render.png"); -// } + @Test + public void testRender() throws Exception + { + assertRenders(view, PATH + "render.png"); + } } diff --git a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/HistoryWidgetTest.java b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/HistoryWidgetTest.java index f059d99c1..758e4f519 100644 --- a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/HistoryWidgetTest.java +++ b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/HistoryWidgetTest.java @@ -27,6 +27,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import org.isoron.uhabits.*; import org.isoron.uhabits.core.models.*; +import org.isoron.uhabits.utils.*; import org.junit.*; import org.junit.runner.*; @@ -47,8 +48,9 @@ public class HistoryWidgetTest extends BaseViewTest { super.setUp(); setTheme(R.style.WidgetTheme); + prefs.setWidgetOpacity(255); - habit = fixtures.createLongHabit(); + habit = fixtures.createVeryLongHabit(); HistoryWidget widget = new HistoryWidget(targetContext, 0, habit, Calendar.SUNDAY); view = convertToView(widget, 400, 400); } @@ -59,9 +61,9 @@ public class HistoryWidgetTest extends BaseViewTest assertWidgetProviderIsInstalled(HistoryWidgetProvider.class); } -// @Test -// public void testRender() throws Exception -// { -// assertRenders(view, PATH + "render.png"); -// } + @Test + public void testRender() throws Exception + { + assertRenders(view, PATH + "render.png"); + } } diff --git a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/ScoreWidgetTest.java b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/ScoreWidgetTest.java index 550984b65..ff977b088 100644 --- a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/ScoreWidgetTest.java +++ b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/ScoreWidgetTest.java @@ -45,8 +45,9 @@ public class ScoreWidgetTest extends BaseViewTest { super.setUp(); setTheme(R.style.WidgetTheme); + prefs.setWidgetOpacity(255); - habit = fixtures.createLongHabit(); + habit = fixtures.createVeryLongHabit(); ScoreWidget widget = new ScoreWidget(targetContext, 0, habit); view = convertToView(widget, 400, 400); } @@ -57,9 +58,9 @@ public class ScoreWidgetTest extends BaseViewTest assertWidgetProviderIsInstalled(ScoreWidgetProvider.class); } -// @Test -// public void testRender() throws Exception -// { -// assertRenders(view, PATH + "render.png"); -// } + @Test + public void testRender() throws Exception + { + assertRenders(view, PATH + "render.png"); + } } diff --git a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/StreakWidgetTest.java b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/StreakWidgetTest.java index a9d4e6f8f..9bd6f99c5 100644 --- a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/StreakWidgetTest.java +++ b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/StreakWidgetTest.java @@ -45,8 +45,9 @@ public class StreakWidgetTest extends BaseViewTest { super.setUp(); setTheme(R.style.WidgetTheme); + prefs.setWidgetOpacity(255); - habit = fixtures.createLongHabit(); + habit = fixtures.createVeryLongHabit(); StreakWidget widget = new StreakWidget(targetContext, 0, habit); view = convertToView(widget, 400, 400); } @@ -57,9 +58,9 @@ public class StreakWidgetTest extends BaseViewTest assertWidgetProviderIsInstalled(StreakWidgetProvider.class); } -// @Test -// public void testRender() throws Exception -// { -// assertRenders(view, PATH + "render.png"); -// } + @Test + public void testRender() throws Exception + { + assertRenders(view, PATH + "render.png"); + } } diff --git a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/TargetWidgetTest.java b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/TargetWidgetTest.java new file mode 100644 index 000000000..3dc1086c6 --- /dev/null +++ b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/widgets/TargetWidgetTest.java @@ -0,0 +1,66 @@ +/* + * 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.widgets; + +import android.widget.*; + +import androidx.test.ext.junit.runners.*; +import androidx.test.filters.*; + +import org.isoron.uhabits.*; +import org.isoron.uhabits.core.models.*; +import org.junit.*; +import org.junit.runner.*; + +@RunWith(AndroidJUnit4.class) +@MediumTest +public class TargetWidgetTest extends BaseViewTest +{ + private static final String PATH = "widgets/TargetWidget/"; + + private Habit habit; + + private FrameLayout view; + + @Override + public void setUp() + { + super.setUp(); + setTheme(R.style.WidgetTheme); + prefs.setWidgetOpacity(255); + + habit = fixtures.createLongNumericalHabit(); + habit.setColor(11); + TargetWidget widget = new TargetWidget(targetContext, 0, habit); + view = convertToView(widget, 400, 400); + } + + @Test + public void testIsInstalled() + { + assertWidgetProviderIsInstalled(TargetWidgetProvider.class); + } + + @Test + public void testRender() throws Exception + { + assertRenders(view, PATH + "render.png"); + } +} diff --git a/android/uhabits-android/src/main/AndroidManifest.xml b/android/uhabits-android/src/main/AndroidManifest.xml index 13d637217..1a268ce57 100644 --- a/android/uhabits-android/src/main/AndroidManifest.xml +++ b/android/uhabits-android/src/main/AndroidManifest.xml @@ -100,6 +100,14 @@ + + + + + + @@ -198,7 +206,7 @@ + android:resource="@xml/widget_target_info" /> diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/activities/BooleanHabitPickerDialog.kt b/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/activities/BooleanHabitPickerDialog.kt deleted file mode 100644 index e7b2fe45f..000000000 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/activities/BooleanHabitPickerDialog.kt +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2016-2020 Á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.widgets.activities - -class BooleanHabitPickerDialog : HabitPickerDialog() { - override fun shouldHideNumerical() = true -} \ No newline at end of file diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/activities/HabitPickerDialog.kt b/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/activities/HabitPickerDialog.kt index 6bcb6bbe1..6d2676b77 100644 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/activities/HabitPickerDialog.kt +++ b/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/activities/HabitPickerDialog.kt @@ -30,6 +30,14 @@ import org.isoron.uhabits.core.preferences.* import org.isoron.uhabits.widgets.* import java.util.* +class BooleanHabitPickerDialog : HabitPickerDialog() { + override fun shouldHideNumerical() = true +} + +class NumericalHabitPickerDialog : HabitPickerDialog() { + override fun shouldHideBoolean() = true +} + open class HabitPickerDialog : Activity() { private var widgetId = 0 @@ -37,6 +45,7 @@ open class HabitPickerDialog : Activity() { private lateinit var widgetUpdater: WidgetUpdater protected open fun shouldHideNumerical() = false + protected open fun shouldHideBoolean() = false override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -52,6 +61,7 @@ open class HabitPickerDialog : Activity() { for (h in habitList) { if (h.isArchived) continue if (h.isNumerical and shouldHideNumerical()) continue + if (!h.isNumerical and shouldHideBoolean()) continue habitIds.add(h.id!!) habitNames.add(h.name) } diff --git a/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_checkmark.png b/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_checkmark.png index 0cbac62e6..42147c832 100644 Binary files a/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_checkmark.png and b/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_checkmark.png differ diff --git a/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_frequency.png b/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_frequency.png index 561afb45c..452e0dd68 100644 Binary files a/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_frequency.png and b/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_frequency.png differ diff --git a/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_history.png b/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_history.png index 95297b6ee..4239c0ca3 100644 Binary files a/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_history.png and b/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_history.png differ diff --git a/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_score.png b/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_score.png index 8d9b3baa5..96eae98da 100644 Binary files a/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_score.png and b/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_score.png differ diff --git a/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_streaks.png b/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_streaks.png index b1fe031e6..999af4424 100644 Binary files a/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_streaks.png and b/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_streaks.png differ diff --git a/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_target.png b/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_target.png new file mode 100644 index 000000000..489c34b83 Binary files /dev/null and b/android/uhabits-android/src/main/res/drawable-nodpi/widget_preview_target.png differ diff --git a/android/uhabits-android/src/main/res/xml/widget_streak_info.xml b/android/uhabits-android/src/main/res/xml/widget_streak_info.xml index 4ef0c3458..c083a3565 100644 --- a/android/uhabits-android/src/main/res/xml/widget_streak_info.xml +++ b/android/uhabits-android/src/main/res/xml/widget_streak_info.xml @@ -27,7 +27,7 @@ android:previewImage="@drawable/widget_preview_streaks" android:resizeMode="vertical|horizontal" android:updatePeriodMillis="3600000" - android:configure="org.isoron.uhabits.widgets.activities.BooleanHabitPickerDialog" + android:configure="org.isoron.uhabits.widgets.activities.NumericalHabitPickerDialog" android:widgetCategory="home_screen"> \ No newline at end of file diff --git a/android/uhabits-android/src/main/res/xml/widget_target_info.xml b/android/uhabits-android/src/main/res/xml/widget_target_info.xml new file mode 100644 index 000000000..0cbb7d9c0 --- /dev/null +++ b/android/uhabits-android/src/main/res/xml/widget_target_info.xml @@ -0,0 +1,33 @@ + + + + + + \ No newline at end of file diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/Preferences.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/Preferences.java index 6907e302e..456a997ca 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/Preferences.java +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/Preferences.java @@ -333,6 +333,12 @@ public class Preferences return Integer.parseInt(storage.getString("pref_widget_opacity", "255")); } + public void setWidgetOpacity(int value) + { + storage.putString("pref_widget_opacity", Integer.toString(value)); + } + + /** * @return An integer representing the first day of the week. Sunday * corresponds to 1, Monday to 2, and so on, until Saturday, which is