From 35f778c3768c7ca94bbb40d395d0b695804daf3e Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Sun, 10 Apr 2016 08:32:01 -0400 Subject: [PATCH] Do not use habit color as primary color on dark themes --- .../java/org/isoron/uhabits/ShowHabitActivity.java | 10 +++++++++- .../isoron/uhabits/fragments/ShowHabitFragment.java | 12 +----------- .../java/org/isoron/uhabits/helpers/UIHelper.java | 9 +++++++++ app/src/main/res/values-v21/styles.xml | 3 ++- app/src/main/res/values/attrs.xml | 2 +- 5 files changed, 22 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/isoron/uhabits/ShowHabitActivity.java b/app/src/main/java/org/isoron/uhabits/ShowHabitActivity.java index cc614e68c..6b09131c0 100644 --- a/app/src/main/java/org/isoron/uhabits/ShowHabitActivity.java +++ b/app/src/main/java/org/isoron/uhabits/ShowHabitActivity.java @@ -21,11 +21,13 @@ package org.isoron.uhabits; import android.app.ActionBar; import android.content.ContentUris; +import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.Bundle; import org.isoron.uhabits.helpers.ColorHelper; +import org.isoron.uhabits.helpers.UIHelper; import org.isoron.uhabits.models.Habit; public class ShowHabitActivity extends BaseActivity @@ -44,11 +46,17 @@ public class ShowHabitActivity extends BaseActivity if(actionBar != null && getHabit() != null) { actionBar.setTitle(getHabit().name); - if (android.os.Build.VERSION.SDK_INT >= 21) + + if (android.os.Build.VERSION.SDK_INT >= 21 && + UIHelper.getStyledBoolean(this, R.attr.useHabitColorAsPrimary)) { int androidColor = ColorHelper.getColor(this, getHabit().color); ColorDrawable drawable = new ColorDrawable(androidColor); actionBar.setBackgroundDrawable(drawable); + + int color = ColorHelper.getColor(this, habit.color); + int darkerHabitColor = ColorHelper.mixColors(color, Color.BLACK, 0.75f); + getWindow().setStatusBarColor(darkerHabitColor); } } diff --git a/app/src/main/java/org/isoron/uhabits/fragments/ShowHabitFragment.java b/app/src/main/java/org/isoron/uhabits/fragments/ShowHabitFragment.java index b452e79bc..328e24d2c 100644 --- a/app/src/main/java/org/isoron/uhabits/fragments/ShowHabitFragment.java +++ b/app/src/main/java/org/isoron/uhabits/fragments/ShowHabitFragment.java @@ -21,7 +21,6 @@ package org.isoron.uhabits.fragments; import android.app.Fragment; import android.content.SharedPreferences; -import android.graphics.Color; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.annotation.Nullable; @@ -170,15 +169,6 @@ public class ShowHabitFragment extends Fragment private void updateHeaders(View view) { - if(habit == null | activity == null) return; - - if (android.os.Build.VERSION.SDK_INT >= 21) - { - int color = ColorHelper.getColor(getActivity(), habit.color); - int darkerHabitColor = ColorHelper.mixColors(color, Color.BLACK, 0.75f); - activity.getWindow().setStatusBarColor(darkerHabitColor); - } - updateColor(view, R.id.tvHistory); updateColor(view, R.id.tvOverview); updateColor(view, R.id.tvStrength); @@ -188,7 +178,7 @@ public class ShowHabitFragment extends Fragment private void updateColor(View view, int viewId) { - if(habit == null) return; + if(habit == null || activity == null) return; TextView textView = (TextView) view.findViewById(viewId); int androidColor = ColorHelper.getColor(activity, habit.color); 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 e9b178525..6b1573be2 100644 --- a/app/src/main/java/org/isoron/uhabits/helpers/UIHelper.java +++ b/app/src/main/java/org/isoron/uhabits/helpers/UIHelper.java @@ -181,4 +181,13 @@ public abstract class UIHelper return color; } + public static boolean getStyledBoolean(Context context, int attrId) + { + int[] attrs = new int[]{ attrId }; + TypedArray ta = context.obtainStyledAttributes(attrs); + boolean bool = ta.getBoolean(0, false); + ta.recycle(); + + return bool; + } } diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml index 876163b78..578345bd6 100644 --- a/app/src/main/res/values-v21/styles.xml +++ b/app/src/main/res/values-v21/styles.xml @@ -38,7 +38,7 @@ @color/grey_600 @color/grey_300 @color/grey_800 - + true @array/lightPalette @@ -60,6 +60,7 @@ @color/grey_500 @color/grey_700 @color/grey_100 + false @array/darkPalette diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 822a09640..2a4c55ff3 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -26,6 +26,6 @@ + - \ No newline at end of file