diff --git a/app/src/main/java/org/isoron/uhabits/activities/common/views/HistoryChart.java b/app/src/main/java/org/isoron/uhabits/activities/common/views/HistoryChart.java index fb204e06b..9dad8020e 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/common/views/HistoryChart.java +++ b/app/src/main/java/org/isoron/uhabits/activities/common/views/HistoryChart.java @@ -38,6 +38,8 @@ public class HistoryChart extends ScrollableChart { private int[] checkmarks; + private int target; + private Paint pSquareBg, pSquareFg, pTextHeader; private float squareSpacing; @@ -85,6 +87,8 @@ public class HistoryChart extends ScrollableChart private float headerOverflow = 0; + private boolean isNumerical = false; + @NonNull private Controller controller; @@ -168,6 +172,11 @@ public class HistoryChart extends ScrollableChart this.controller = controller; } + public void setNumerical(boolean numerical) + { + isNumerical = numerical; + } + public void setIsBackgroundTransparent(boolean isBackgroundTransparent) { this.isBackgroundTransparent = isBackgroundTransparent; @@ -179,6 +188,12 @@ public class HistoryChart extends ScrollableChart this.isEditable = isEditable; } + public void setTarget(int target) + { + this.target = target; + postInvalidate(); + } + protected void initPaints() { pTextHeader = new Paint(); @@ -326,7 +341,12 @@ public class HistoryChart extends ScrollableChart else { int checkmark = checkmarks[checkmarkOffset]; - pSquareBg.setColor(colors[Math.min(2, checkmark)]); + if(checkmark == 0) pSquareBg.setColor(colors[0]); + else if(checkmark < target) + { + pSquareBg.setColor(isNumerical ? textColor : colors[1]); + } + else pSquareBg.setColor(colors[2]); } pSquareFg.setColor(reverseTextColor); @@ -351,6 +371,7 @@ public class HistoryChart extends ScrollableChart isEditable = false; checkmarks = new int[0]; controller = new Controller() {}; + target = 2; initColors(); initPaints(); diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/show/views/HistoryCard.java b/app/src/main/java/org/isoron/uhabits/activities/habits/show/views/HistoryCard.java index e2d9e6a4a..248285cbd 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/show/views/HistoryCard.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/show/views/HistoryCard.java @@ -126,6 +126,11 @@ public class HistoryCard extends HabitCard int color = ColorUtils.getColor(getContext(), habit.getColor()); title.setTextColor(color); chart.setColor(color); + if(habit.isNumerical()) + { + chart.setTarget((int) (habit.getTargetValue() * 1000)); + chart.setNumerical(true); + } } } }