diff --git a/app/src/main/java/org/isoron/uhabits/helpers/UIHelper.java b/app/src/main/java/org/isoron/uhabits/helpers/UIHelper.java
index 184a2a4cc..04b03f4e7 100644
--- a/app/src/main/java/org/isoron/uhabits/helpers/UIHelper.java
+++ b/app/src/main/java/org/isoron/uhabits/helpers/UIHelper.java
@@ -230,6 +230,16 @@ public abstract class UIHelper
return bool;
}
+ public static float getStyledFloat(Context context, int attrId)
+ {
+ int[] attrs = new int[]{ attrId };
+ TypedArray ta = context.obtainStyledAttributes(attrs);
+ float f = ta.getFloat(0, 0);
+ ta.recycle();
+
+ return f;
+ }
+
static int getStyleResource(Context context, int attrId)
{
int[] attr = new int[] { attrId };
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 68df61f7c..2d8525753 100644
--- a/app/src/main/java/org/isoron/uhabits/views/CheckmarkWidgetView.java
+++ b/app/src/main/java/org/isoron/uhabits/views/CheckmarkWidgetView.java
@@ -20,7 +20,6 @@
package org.isoron.uhabits.views;
import android.content.Context;
-import android.graphics.Color;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
@@ -28,6 +27,7 @@ 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;
@@ -44,7 +44,6 @@ public class CheckmarkWidgetView extends HabitWidgetView implements HabitDataVie
private RingView ring;
private TextView label;
private int checkmarkValue;
- private int inactiveColor;
public CheckmarkWidgetView(Context context)
{
@@ -63,8 +62,6 @@ public class CheckmarkWidgetView extends HabitWidgetView implements HabitDataVie
ring = (RingView) findViewById(R.id.scoreRing);
label = (TextView) findViewById(R.id.label);
- inactiveColor = ColorHelper.CSV_PALETTE[11];
-
if(isInEditMode())
{
percentage = 0.75f;
@@ -80,7 +77,7 @@ public class CheckmarkWidgetView extends HabitWidgetView implements HabitDataVie
{
super.setHabit(habit);
this.name = habit.name;
- this.activeColor = ColorHelper.CSV_PALETTE[habit.color];
+ this.activeColor = ColorHelper.getColor(getContext(), habit.color);
refresh();
}
@@ -88,40 +85,41 @@ public class CheckmarkWidgetView extends HabitWidgetView implements HabitDataVie
{
if (backgroundPaint == null || frame == null || ring == null) return;
+ Context context = getContext();
+
String text;
int backgroundColor;
int foregroundColor;
- float alpha;
switch (checkmarkValue)
{
case Checkmark.CHECKED_EXPLICITLY:
text = getResources().getString(R.string.fa_check);
backgroundColor = activeColor;
- foregroundColor = Color.WHITE;
- alpha = 1.0f;
+ foregroundColor =
+ UIHelper.getStyledColor(context, R.attr.highContrastReverseTextColor);
+
+ setShadowAlpha(0x4f);
+ rebuildBackground();
+
+ backgroundPaint.setColor(backgroundColor);
+ frame.setBackgroundDrawable(background);
break;
case Checkmark.CHECKED_IMPLICITLY:
text = getResources().getString(R.string.fa_check);
- backgroundColor = inactiveColor;
- foregroundColor = ColorHelper.CSV_PALETTE[12];
- alpha = 0.5f;
+ backgroundColor = UIHelper.getStyledColor(context, R.attr.cardBackgroundColor);
+ foregroundColor = UIHelper.getStyledColor(context, R.attr.mediumContrastTextColor);
break;
case Checkmark.UNCHECKED:
default:
text = getResources().getString(R.string.fa_times);
- backgroundColor = inactiveColor;
- foregroundColor = ColorHelper.CSV_PALETTE[12];
- alpha = 0.5f;
+ backgroundColor = UIHelper.getStyledColor(context, R.attr.cardBackgroundColor);
+ foregroundColor = UIHelper.getStyledColor(context, R.attr.mediumContrastTextColor);
break;
}
- backgroundPaint.setColor(backgroundColor);
- frame.setBackgroundDrawable(background);
- setAlpha(alpha);
-
ring.setPercentage(percentage);
ring.setPrecision(0.125f);
ring.setColor(foregroundColor);
@@ -167,10 +165,4 @@ 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/HabitWidgetView.java b/app/src/main/java/org/isoron/uhabits/views/HabitWidgetView.java
index fd06346f4..d1ce347f9 100644
--- a/app/src/main/java/org/isoron/uhabits/views/HabitWidgetView.java
+++ b/app/src/main/java/org/isoron/uhabits/views/HabitWidgetView.java
@@ -49,6 +49,13 @@ public abstract class HabitWidgetView extends FrameLayout implements HabitDataV
protected Habit habit;
protected ViewGroup frame;
+ public void setShadowAlpha(int shadowAlpha)
+ {
+ this.shadowAlpha = shadowAlpha;
+ }
+
+ private int shadowAlpha;
+
public HabitWidgetView(Context context)
{
super(context);
@@ -64,19 +71,23 @@ public abstract class HabitWidgetView extends FrameLayout implements HabitDataV
private void init()
{
inflate(getContext(), getInnerLayoutId(), this);
- initBackground();
+ shadowAlpha = (int) (255 * UIHelper.getStyledFloat(getContext(), R.attr.widgetShadowAlpha));
+ rebuildBackground();
}
protected abstract @NonNull Integer getInnerLayoutId();
- private void initBackground()
+ protected void rebuildBackground()
{
Context context = getContext();
- context.setTheme(R.style.DarkWidgetTheme);
+ context.setTheme(R.style.TransparentWidgetTheme);
+
+ int backgroundAlpha =
+ (int) (255 * UIHelper.getStyledFloat(context, R.attr.widgetBackgroundAlpha));
int shadowRadius = (int) UIHelper.dpToPixels(context, 2);
int shadowOffset = (int) UIHelper.dpToPixels(context, 1);
- int shadowColor = Color.argb(getShadowAlpha(), 0, 0, 0);
+ int shadowColor = Color.argb(shadowAlpha, 0, 0, 0);
float cornerRadius = UIHelper.dpToPixels(context, 5);
float[] radii = new float[8];
@@ -93,17 +104,12 @@ 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);
+ backgroundPaint.setAlpha(backgroundAlpha);
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/res/layout/widget_checkmark.xml b/app/src/main/res/layout/widget_checkmark.xml
index 631be3394..a6d0c01b7 100644
--- a/app/src/main/res/layout/widget_checkmark.xml
+++ b/app/src/main/res/layout/widget_checkmark.xml
@@ -32,13 +32,9 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
- habit:percentage="0.25"
habit:thickness="2"
habit:textSize="16"
- habit:color="@color/white"
- habit:inactiveColor="@color/white"
habit:enableFontAwesome="true"
- habit:text="@string/fa_check"
android:layout_marginTop="8dp"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"/>
diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml
index 249de4601..014ed2c09 100644
--- a/app/src/main/res/values/attrs.xml
+++ b/app/src/main/res/values/attrs.xml
@@ -44,6 +44,9 @@
+
+
+
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 6153badaf..29616a09e 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -48,15 +48,15 @@
- @color/grey_500
-
- - @color/red_900
- - @color/deep_orange_900
- - @color/yellow_900
+
+ - @color/red_800
+ - @color/deep_orange_800
+ - @color/yellow_800
- @color/lime_800
- - @color/green_800
- - @color/teal_800
- - @color/cyan_800
- - @color/light_blue_800
+ - @color/green_700
+ - @color/teal_700
+ - @color/cyan_700
+ - @color/light_blue_700
- @color/deep_purple_700
- @color/purple_700
- @color/pink_700
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 2135f4e0d..0ef48f94d 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -44,12 +44,12 @@
- @array/lightPalette
- @color/white
- - @color/grey_500
- - @color/grey_700
+ - @color/white_a6
+ - @color/white_a2
- - @color/grey_800
- - @color/grey_500
- - @color/grey_300
+ - @color/black_aa
+ - @color/black_a6
+ - @color/black_a2
- @drawable/ic_action_add_dark
- @drawable/ic_action_archive_dark
@@ -60,6 +60,8 @@
- @style/ThemeOverlay.AppCompat.Light
- @color/blue_800
+ - 0.25
+ - 1
-