diff --git a/app/src/main/java/com/beemdevelopment/aegis/Preferences.java b/app/src/main/java/com/beemdevelopment/aegis/Preferences.java
index 83413e02..de37bb81 100644
--- a/app/src/main/java/com/beemdevelopment/aegis/Preferences.java
+++ b/app/src/main/java/com/beemdevelopment/aegis/Preferences.java
@@ -98,7 +98,7 @@ public class Preferences {
}
public Theme getCurrentTheme() {
- return Theme.fromInteger(_prefs.getInt("pref_current_theme", 0));
+ return Theme.fromInteger(_prefs.getInt("pref_current_theme", Theme.SYSTEM.ordinal()));
}
public void setCurrentTheme(Theme theme) {
diff --git a/app/src/main/java/com/beemdevelopment/aegis/Theme.java b/app/src/main/java/com/beemdevelopment/aegis/Theme.java
index 04dbe044..b5e5975d 100644
--- a/app/src/main/java/com/beemdevelopment/aegis/Theme.java
+++ b/app/src/main/java/com/beemdevelopment/aegis/Theme.java
@@ -3,7 +3,9 @@ package com.beemdevelopment.aegis;
public enum Theme {
LIGHT,
DARK,
- AMOLED;
+ AMOLED,
+ SYSTEM,
+ SYSTEM_AMOLED;
private static Theme[] _values;
diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/AegisActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/AegisActivity.java
index 2de3d3de..bc86ef18 100644
--- a/app/src/main/java/com/beemdevelopment/aegis/ui/AegisActivity.java
+++ b/app/src/main/java/com/beemdevelopment/aegis/ui/AegisActivity.java
@@ -89,6 +89,19 @@ public abstract class AegisActivity extends AppCompatActivity implements AegisAp
}
protected void setPreferredTheme(Theme theme) {
+ if (theme == Theme.SYSTEM || theme == Theme.SYSTEM_AMOLED) {
+ // set the theme based on the system theme
+ int currentNightMode = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+ switch (currentNightMode) {
+ case Configuration.UI_MODE_NIGHT_NO:
+ theme = Theme.LIGHT;
+ break;
+ case Configuration.UI_MODE_NIGHT_YES:
+ theme = theme == Theme.SYSTEM_AMOLED ? Theme.AMOLED : Theme.DARK;
+ break;
+ }
+ }
+
_currentTheme = theme;
switch (theme) {
diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesActivity.java
index ffe6376c..94a29a86 100644
--- a/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesActivity.java
+++ b/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesActivity.java
@@ -39,21 +39,4 @@ public class PreferencesActivity extends AegisActivity {
outState.putParcelable("result", _fragment.getResult());
super.onSaveInstanceState(outState);
}
-
- @Override
- protected void setPreferredTheme(Theme theme) {
- switch (theme) {
- case LIGHT:
- setTheme(R.style.AppTheme);
- break;
-
- case DARK:
- setTheme(R.style.AppTheme_Dark);
- break;
-
- case AMOLED:
- setTheme(R.style.AppTheme_TrueBlack_Preferences);
- break;
- }
- }
}
diff --git a/app/src/main/res/values-v29/strings.xml b/app/src/main/res/values-v29/strings.xml
new file mode 100644
index 00000000..b1c78db4
--- /dev/null
+++ b/app/src/main/res/values-v29/strings.xml
@@ -0,0 +1,5 @@
+
+
+ System default
+ System default (AMOLED)
+
\ No newline at end of file
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 0530e7d6..ad91482c 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -22,6 +22,8 @@
- @string/light_theme_title
- @string/dark_theme_title
- @string/amoled_theme_title
+ - @string/system_theme_title
+ - @string/system_amoled_theme_title
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 5aed68a2..539069a1 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -191,6 +191,8 @@
Dark theme
Light theme
AMOLED theme
+ Set by Battery Saver
+ Set by Battery Saver (AMOLED)
Normal
Compact
Small
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index f44ca5cc..d094a5f0 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -70,9 +70,7 @@
- @android:color/white
-
@@ -123,9 +121,7 @@
- @color/background_true_dark
- false
-
-