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
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f3f3c91a..32452ff3 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -91,6 +91,7 @@
Last opened
Light
Dark
+ Black (AMOLED)
Equalizer
Colors
Now playing
diff --git a/app/src/main/res/values/strings_activity_settings.xml b/app/src/main/res/values/strings_activity_settings.xml
index b85797d7..850e2d65 100644
--- a/app/src/main/res/values/strings_activity_settings.xml
+++ b/app/src/main/res/values/strings_activity_settings.xml
@@ -18,11 +18,13 @@
- @string/light_theme_name
- @string/dark_theme_name
+ - @string/black_theme_name
- 0
- 1
+ - 2
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index d869abcd..f4558318 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -4,6 +4,8 @@
+
+
diff --git a/app/src/main/res/values/styles_parents.xml b/app/src/main/res/values/styles_parents.xml
index 27819c5e..07b3b1b7 100644
--- a/app/src/main/res/values/styles_parents.xml
+++ b/app/src/main/res/values/styles_parents.xml
@@ -57,6 +57,13 @@
- @style/Widget.ActionButton.Overflow
+
+