From 8b18e32a16a9bf95cd2580349ceff6d50646d99e Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Sun, 24 Apr 2016 04:52:13 -0400 Subject: [PATCH] Create color palette for widgets --- .../uhabits/views/CheckmarkWidgetView.java | 18 +++++++--- .../uhabits/views/HabitFrequencyView.java | 17 ++-------- .../isoron/uhabits/views/HabitScoreView.java | 18 ++-------- .../isoron/uhabits/views/HabitStreakView.java | 33 ++++-------------- .../isoron/uhabits/views/HabitWidgetView.java | 10 ++++-- .../uhabits/widgets/ScoreWidgetProvider.java | 1 + app/src/main/res/values/colors.xml | 34 +++++++++++++++++++ app/src/main/res/values/styles.xml | 14 ++++++++ 8 files changed, 83 insertions(+), 62 deletions(-) diff --git a/app/src/main/java/org/isoron/uhabits/views/CheckmarkWidgetView.java b/app/src/main/java/org/isoron/uhabits/views/CheckmarkWidgetView.java index e71116b88..68df61f7c 100644 --- a/app/src/main/java/org/isoron/uhabits/views/CheckmarkWidgetView.java +++ b/app/src/main/java/org/isoron/uhabits/views/CheckmarkWidgetView.java @@ -28,7 +28,6 @@ import android.widget.TextView; import org.isoron.uhabits.R; import org.isoron.uhabits.helpers.ColorHelper; -import org.isoron.uhabits.helpers.UIHelper; import org.isoron.uhabits.models.Checkmark; import org.isoron.uhabits.models.Habit; import org.isoron.uhabits.models.Score; @@ -64,7 +63,7 @@ public class CheckmarkWidgetView extends HabitWidgetView implements HabitDataVie ring = (RingView) findViewById(R.id.scoreRing); label = (TextView) findViewById(R.id.label); - inactiveColor = UIHelper.getStyledColor(getContext(), R.attr.cardBackgroundColor); + inactiveColor = ColorHelper.CSV_PALETTE[11]; if(isInEditMode()) { @@ -92,6 +91,7 @@ public class CheckmarkWidgetView extends HabitWidgetView implements HabitDataVie String text; int backgroundColor; int foregroundColor; + float alpha; switch (checkmarkValue) { @@ -99,24 +99,28 @@ public class CheckmarkWidgetView extends HabitWidgetView implements HabitDataVie text = getResources().getString(R.string.fa_check); backgroundColor = activeColor; foregroundColor = Color.WHITE; + alpha = 1.0f; break; case Checkmark.CHECKED_IMPLICITLY: text = getResources().getString(R.string.fa_check); backgroundColor = inactiveColor; - foregroundColor = UIHelper.getStyledColor(getContext(), R.attr.mediumContrastTextColor); + foregroundColor = ColorHelper.CSV_PALETTE[12]; + alpha = 0.5f; break; case Checkmark.UNCHECKED: default: text = getResources().getString(R.string.fa_times); backgroundColor = inactiveColor; - foregroundColor = UIHelper.getStyledColor(getContext(), R.attr.mediumContrastTextColor); + foregroundColor = ColorHelper.CSV_PALETTE[12]; + alpha = 0.5f; break; } backgroundPaint.setColor(backgroundColor); frame.setBackgroundDrawable(background); + setAlpha(alpha); ring.setPercentage(percentage); ring.setPrecision(0.125f); @@ -163,4 +167,10 @@ public class CheckmarkWidgetView extends HabitWidgetView implements HabitDataVie { return R.layout.widget_checkmark; } + + @Override + protected int getShadowAlpha() + { + return 0x4f; + } } diff --git a/app/src/main/java/org/isoron/uhabits/views/HabitFrequencyView.java b/app/src/main/java/org/isoron/uhabits/views/HabitFrequencyView.java index b1603552d..7890757dd 100644 --- a/app/src/main/java/org/isoron/uhabits/views/HabitFrequencyView.java +++ b/app/src/main/java/org/isoron/uhabits/views/HabitFrequencyView.java @@ -21,7 +21,6 @@ package org.isoron.uhabits.views; import android.content.Context; import android.graphics.Canvas; -import android.graphics.Color; import android.graphics.Paint; import android.graphics.RectF; import android.util.AttributeSet; @@ -104,22 +103,10 @@ public class HabitFrequencyView extends ScrollableDataView implements HabitDataV this.primaryColor = ColorHelper.getColor(getContext(), habit.color); } - if (isBackgroundTransparent) - { - primaryColor = ColorHelper.setSaturation(primaryColor, 0.75f); - primaryColor = ColorHelper.setValue(primaryColor, 1.0f); - - textColor = Color.argb(192, 255, 255, 255); - gridColor = Color.argb(128, 255, 255, 255); - } - else - { - textColor = UIHelper.getStyledColor(getContext(), R.attr.mediumContrastTextColor); - gridColor = UIHelper.getStyledColor(getContext(), R.attr.lowContrastTextColor); - } + textColor = UIHelper.getStyledColor(getContext(), R.attr.mediumContrastTextColor); + gridColor = UIHelper.getStyledColor(getContext(), R.attr.lowContrastTextColor); colors = new int[4]; - colors[0] = gridColor; colors[3] = primaryColor; colors[1] = ColorHelper.mixColors(colors[0], colors[3], 0.66f); diff --git a/app/src/main/java/org/isoron/uhabits/views/HabitScoreView.java b/app/src/main/java/org/isoron/uhabits/views/HabitScoreView.java index 55ec55806..a47248a25 100644 --- a/app/src/main/java/org/isoron/uhabits/views/HabitScoreView.java +++ b/app/src/main/java/org/isoron/uhabits/views/HabitScoreView.java @@ -21,7 +21,6 @@ package org.isoron.uhabits.views; import android.content.Context; import android.graphics.Canvas; -import android.graphics.Color; import android.graphics.Paint; import android.graphics.PorterDuff; import android.graphics.PorterDuffXfermode; @@ -114,20 +113,9 @@ public class HabitScoreView extends ScrollableDataView implements HabitDataView if(habit != null) this.primaryColor = ColorHelper.getColor(getContext(), habit.color); - if (isBackgroundTransparent) - { - primaryColor = ColorHelper.setSaturation(primaryColor, 0.75f); - primaryColor = ColorHelper.setValue(primaryColor, 1.0f); - - textColor = Color.argb(192, 255, 255, 255); - gridColor = Color.argb(128, 255, 255, 255); - } - else - { - textColor = UIHelper.getStyledColor(getContext(), R.attr.mediumContrastTextColor); - gridColor = UIHelper.getStyledColor(getContext(), R.attr.lowContrastTextColor); - backgroundColor = UIHelper.getStyledColor(getContext(), R.attr.cardBackgroundColor); - } + textColor = UIHelper.getStyledColor(getContext(), R.attr.mediumContrastTextColor); + gridColor = UIHelper.getStyledColor(getContext(), R.attr.lowContrastTextColor); + backgroundColor = UIHelper.getStyledColor(getContext(), R.attr.cardBackgroundColor); } protected void createPaints() diff --git a/app/src/main/java/org/isoron/uhabits/views/HabitStreakView.java b/app/src/main/java/org/isoron/uhabits/views/HabitStreakView.java index 5d3cc0043..74fc6c518 100644 --- a/app/src/main/java/org/isoron/uhabits/views/HabitStreakView.java +++ b/app/src/main/java/org/isoron/uhabits/views/HabitStreakView.java @@ -127,36 +127,17 @@ public class HabitStreakView extends View implements HabitDataView if(habit != null) this.primaryColor = ColorHelper.getColor(getContext(), habit.color); - if(isBackgroundTransparent) - { - primaryColor = ColorHelper.setSaturation(primaryColor, 0.75f); - primaryColor = ColorHelper.setValue(primaryColor, 1.0f); - } - int red = Color.red(primaryColor); int green = Color.green(primaryColor); int blue = Color.blue(primaryColor); - if(isBackgroundTransparent) - { - colors = new int[4]; - colors[3] = primaryColor; - colors[2] = Color.argb(213, red, green, blue); - colors[1] = Color.argb(170, red, green, blue); - colors[0] = Color.argb(128, red, green, blue); - textColor = Color.WHITE; - reverseTextColor = Color.WHITE; - } - else - { - colors = new int[4]; - colors[3] = primaryColor; - colors[2] = Color.argb(192, red, green, blue); - colors[1] = Color.argb(96, red, green, blue); - colors[0] = UIHelper.getStyledColor(getContext(), R.attr.lowContrastTextColor); - textColor = UIHelper.getStyledColor(getContext(), R.attr.mediumContrastTextColor); - reverseTextColor = UIHelper.getStyledColor(getContext(), R.attr.highContrastReverseTextColor); - } + colors = new int[4]; + colors[3] = primaryColor; + colors[2] = Color.argb(192, red, green, blue); + colors[1] = Color.argb(96, red, green, blue); + colors[0] = UIHelper.getStyledColor(getContext(), R.attr.lowContrastTextColor); + textColor = UIHelper.getStyledColor(getContext(), R.attr.mediumContrastTextColor); + reverseTextColor = UIHelper.getStyledColor(getContext(), R.attr.highContrastReverseTextColor); } protected void createPaints() diff --git a/app/src/main/java/org/isoron/uhabits/views/HabitWidgetView.java b/app/src/main/java/org/isoron/uhabits/views/HabitWidgetView.java index bd2e320da..fd06346f4 100644 --- a/app/src/main/java/org/isoron/uhabits/views/HabitWidgetView.java +++ b/app/src/main/java/org/isoron/uhabits/views/HabitWidgetView.java @@ -72,11 +72,11 @@ public abstract class HabitWidgetView extends FrameLayout implements HabitDataV private void initBackground() { Context context = getContext(); - context.setTheme(R.style.AppBaseThemeDark); + context.setTheme(R.style.DarkWidgetTheme); int shadowRadius = (int) UIHelper.dpToPixels(context, 2); int shadowOffset = (int) UIHelper.dpToPixels(context, 1); - int shadowColor = Color.argb(96, 0, 0, 0); + int shadowColor = Color.argb(getShadowAlpha(), 0, 0, 0); float cornerRadius = UIHelper.dpToPixels(context, 5); float[] radii = new float[8]; @@ -93,11 +93,17 @@ public abstract class HabitWidgetView extends FrameLayout implements HabitDataV backgroundPaint = innerDrawable.getPaint(); backgroundPaint.setShadowLayer(shadowRadius, shadowOffset, shadowOffset, shadowColor); backgroundPaint.setColor(UIHelper.getStyledColor(context, R.attr.cardBackgroundColor)); + backgroundPaint.setAlpha(0x1f); frame = (ViewGroup) findViewById(R.id.frame); frame.setBackgroundDrawable(background); } + protected int getShadowAlpha() + { + return 0x2f; + } + @Override public void setHabit(@NonNull Habit habit) { diff --git a/app/src/main/java/org/isoron/uhabits/widgets/ScoreWidgetProvider.java b/app/src/main/java/org/isoron/uhabits/widgets/ScoreWidgetProvider.java index d2ba348aa..d478838be 100644 --- a/app/src/main/java/org/isoron/uhabits/widgets/ScoreWidgetProvider.java +++ b/app/src/main/java/org/isoron/uhabits/widgets/ScoreWidgetProvider.java @@ -35,6 +35,7 @@ public class ScoreWidgetProvider extends BaseWidgetProvider protected View buildCustomView(Context context, Habit habit) { HabitScoreView dataView = new HabitScoreView(context); + dataView.setIsBackgroundTransparent(true); GraphWidgetView view = new GraphWidgetView(context, dataView); view.setHabit(habit); return view; diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index d043cf44a..6153badaf 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -48,6 +48,22 @@ @color/grey_500 + + @color/red_900 + @color/deep_orange_900 + @color/yellow_900 + @color/lime_800 + @color/green_800 + @color/teal_800 + @color/cyan_800 + @color/light_blue_800 + @color/deep_purple_700 + @color/purple_700 + @color/pink_700 + @color/black_aa + @color/black_aa + + #f2f2f2 #cccccc @@ -355,4 +371,22 @@ #ffffff #000000 + + #ef000000 + #cf000000 + #af000000 + #8f000000 + #6f000000 + #4f000000 + #2f000000 + #0f000000 + + #efffffff + #cfffffff + #afffffff + #8fffffff + #6fffffff + #4fffffff + #2fffffff + #0fffffff \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index ea6c73ce6..2135f4e0d 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -127,6 +127,20 @@ @color/black + +