Do not use habit color as primary color on dark themes

pull/84/head
Alinson S. Xavier 10 years ago
parent 436ae7e574
commit 35f778c376

@ -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);
}
}

@ -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);

@ -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;
}
}

@ -38,7 +38,7 @@
<item name="fadedTextColor">@color/grey_600</item>
<item name="inactiveCheckmarkColor">@color/grey_300</item>
<item name="secondaryTextColor">@color/grey_800</item>
<item name="useHabitColorAsPrimary">true</item>
<item name="palette">@array/lightPalette</item>
</style>
@ -60,6 +60,7 @@
<item name="fadedTextColor">@color/grey_500</item>
<item name="inactiveCheckmarkColor">@color/grey_700</item>
<item name="secondaryTextColor">@color/grey_100</item>
<item name="useHabitColorAsPrimary">false</item>
<item name="palette">@array/darkPalette</item>
</style>

@ -26,6 +26,6 @@
<attr name="secondaryTextColor" format="reference"/>
<attr name="inactiveCheckmarkColor" format="reference"/>
<attr name="highlightedBackgroundColor" format="reference"/>
<attr name="useHabitColorAsPrimary" format="boolean"/>
<attr name="palette" format="reference"/>
</resources>
Loading…
Cancel
Save