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