Show inactive days in calendar even for days before first repetition

pull/633/head
KristianTashkov 5 years ago
parent 7e98a62541
commit 20b8083c2e

@ -56,7 +56,7 @@ public class HistoryChartTest extends BaseViewTest
today = new Timestamp(DateUtils.getStartOfToday());
chart = new HistoryChart(targetContext);
chart.setCheckmarks(habit.getCheckmarks().getAllValues());
chart.updateState(habit.getCheckmarks().getAllValues(), habit.getActiveDays().toArray());
chart.setColor(PaletteUtils.getAndroidTestColor(habit.getColor()));
measureView(chart, dpToPixels(400), dpToPixels(200));
@ -92,7 +92,7 @@ public class HistoryChartTest extends BaseViewTest
public void tapDate_withEmptyHabit()
{
chart.setIsEditable(true);
chart.setCheckmarks(new int[]{});
chart.updateState(new int[]{}, WeekdayList.EVERY_DAY.toArray());
chart.tap(dpToPixels(340), dpToPixels(40));
verify(controller).onToggleCheckmark(today, Checkmark.YES_MANUAL);
verifyNoMoreInteractions(controller);

@ -180,7 +180,7 @@ public class HistoryEditorDialog extends AppCompatDialogFragment
int color = PaletteUtils.getColor(getContext(), habit.getColor());
historyChart.setColor(color);
historyChart.setCheckmarks(checkmarks);
historyChart.updateState(checkmarks, habit.getActiveDays().toArray());
}
}
}

@ -44,6 +44,8 @@ public class HistoryChart extends ScrollableChart
{
private int[] checkmarks;
private boolean[] activeDays;
private int target;
private Paint pSquareBg, pSquareFg, pTextHeader;
@ -181,9 +183,10 @@ public class HistoryChart extends ScrollableChart
}
}
public void setCheckmarks(int[] checkmarks)
public void updateState(int[] checkmarks, boolean[] activeDays)
{
this.checkmarks = checkmarks;
this.activeDays = activeDays;
postInvalidate();
}
@ -370,7 +373,7 @@ public class HistoryChart extends ScrollableChart
GregorianCalendar date,
int checkmarkOffset)
{
int realWeekday = date.get(Calendar.DAY_OF_WEEK) % 7;
int checkmark = 0;
if (checkmarkOffset >= checkmarks.length)
{
@ -400,7 +403,7 @@ public class HistoryChart extends ScrollableChart
float round = dpToPixels(getContext(), 2);
canvas.drawRoundRect(location, round, round, pSquareBg);
if (!isNumerical && (checkmark == SKIP_MANUAL || checkmark == SKIP_AUTO))
if (!isNumerical && (checkmark == SKIP_MANUAL || !activeDays[realWeekday]))
{
pSquareBg.setColor(backgroundColor);
pSquareBg.setStrokeWidth(columnWidth * 0.025f);
@ -439,6 +442,7 @@ public class HistoryChart extends ScrollableChart
{
isEditable = false;
checkmarks = new int[0];
activeDays = WeekdayList.EVERY_DAY.toArray();
controller = new Controller() {};
target = 2;

@ -121,7 +121,7 @@ public class HistoryCard extends HabitCard
if (isCanceled()) return;
int[] checkmarks = habit.getCheckmarks().getAllValues();
if(prefs != null) chart.setFirstWeekday(prefs.getFirstWeekday());
chart.setCheckmarks(checkmarks);
chart.updateState(checkmarks, habit.getActiveDays().toArray());
}
@Override

@ -45,7 +45,7 @@ class HistoryWidget(
(widgetView.dataView as HistoryChart).apply {
setFirstWeekday(firstWeekday)
setColor(PaletteUtils.getColor(context, habit.color))
setCheckmarks(habit.checkmarks.allValues)
updateState(habit.checkmarks.allValues, habit.activeDays.toArray())
}
}

Loading…
Cancel
Save