From 0dc5c1e17d0221478dc408f2fdfe5ad6b66be287 Mon Sep 17 00:00:00 2001 From: Karim Abou Zeid Date: Tue, 29 Dec 2015 15:09:51 +0100 Subject: [PATCH] Added black (AMOLED) theme --- .../ui/activities/base/AbsThemeActivity.java | 17 ++++++++++------- .../gramophone/util/PreferenceUtil.java | 2 ++ app/src/main/res/drawable-nodpi/black.xml | 5 +++++ app/src/main/res/values-v21/styles.xml | 7 +++++++ app/src/main/res/values/strings.xml | 1 + .../res/values/strings_activity_settings.xml | 2 ++ app/src/main/res/values/styles.xml | 2 ++ app/src/main/res/values/styles_parents.xml | 7 +++++++ 8 files changed, 36 insertions(+), 7 deletions(-) create mode 100644 app/src/main/res/drawable-nodpi/black.xml diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsThemeActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsThemeActivity.java index 3ebd517a..70a31dfb 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsThemeActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsThemeActivity.java @@ -26,7 +26,7 @@ public abstract class AbsThemeActivity extends AppCompatActivity implements KabV private int colorPrimary; private int colorPrimaryDarker; private int colorAccent; - private boolean darkTheme; + private int theme; private boolean coloredNavigationBar; @Nullable @@ -34,7 +34,8 @@ public abstract class AbsThemeActivity extends AppCompatActivity implements KabV @Override protected void onCreate(Bundle savedInstanceState) { - setTheme(PreferenceUtil.getInstance(this).getGeneralTheme()); + theme = PreferenceUtil.getInstance(this).getGeneralTheme(); + setTheme(theme); super.onCreate(savedInstanceState); setupTheme(); } @@ -52,16 +53,17 @@ public abstract class AbsThemeActivity extends AppCompatActivity implements KabV } private void setupTheme() { + boolean dark = theme != R.style.Theme_MaterialMusic_Light; + colorPrimary = PreferenceUtil.getInstance(this).getThemeColorPrimary(this); colorPrimaryDarker = ColorUtil.shiftColorDown(colorPrimary); colorAccent = PreferenceUtil.getInstance(this).getThemeColorAccent(this); - darkTheme = PreferenceUtil.getInstance(this).getGeneralTheme() == R.style.Theme_MaterialMusic; coloredNavigationBar = PreferenceUtil.getInstance(this).shouldUseColoredNavigationBar(); final ColorStateList accentColorStateList; - if (colorAccent == Color.WHITE && !darkTheme) { + if (colorAccent == Color.WHITE && !dark) { accentColorStateList = ColorStateList.valueOf(Color.BLACK); - } else if (colorAccent == Color.BLACK && darkTheme) { + } else if (colorAccent == Color.BLACK && dark) { accentColorStateList = ColorStateList.valueOf(Color.WHITE); } else { accentColorStateList = ColorStateList.valueOf(colorAccent); @@ -71,7 +73,8 @@ public abstract class AbsThemeActivity extends AppCompatActivity implements KabV ThemeSingleton.get().negativeColor = accentColorStateList; ThemeSingleton.get().neutralColor = accentColorStateList; ThemeSingleton.get().widgetColor = accentColorStateList.getDefaultColor(); - ThemeSingleton.get().darkTheme = darkTheme; + ThemeSingleton.get().darkTheme = dark; + if (!overridesTaskColor()) { notifyTaskColorChange(getThemeColorPrimary()); @@ -88,7 +91,7 @@ public abstract class AbsThemeActivity extends AppCompatActivity implements KabV return coloredNavigationBar != PreferenceUtil.getInstance(this).shouldUseColoredNavigationBar() || colorPrimary != PreferenceUtil.getInstance(this).getThemeColorPrimary(this) || colorAccent != PreferenceUtil.getInstance(this).getThemeColorAccent(this) || - darkTheme != (PreferenceUtil.getInstance(this).getGeneralTheme() == R.style.Theme_MaterialMusic); + theme != PreferenceUtil.getInstance(this).getGeneralTheme(); } protected void notifyTaskColorChange(@ColorInt int color) { diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java index abe69af3..be00c5cc 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java @@ -104,6 +104,8 @@ public final class PreferenceUtil { return R.style.Theme_MaterialMusic_Light; case 1: return R.style.Theme_MaterialMusic; + case 2: + return R.style.Theme_MaterialMusic_Black; } } catch (NumberFormatException ignored) { } diff --git a/app/src/main/res/drawable-nodpi/black.xml b/app/src/main/res/drawable-nodpi/black.xml new file mode 100644 index 00000000..d078e48b --- /dev/null +++ b/app/src/main/res/drawable-nodpi/black.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml index 2b49df5e..085b1edd 100644 --- a/app/src/main/res/values-v21/styles.xml +++ b/app/src/main/res/values-v21/styles.xml @@ -14,6 +14,13 @@ @android:color/transparent + + + +