aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2019-09-11 20:27:07 +0200
committerChristian Schneppe <christian@pix-art.de>2019-09-11 20:27:07 +0200
commitbc272651e28bf374056d3ca51ba03fb31514d6e3 (patch)
treef6c2b511ed3b7fcf3f8710150ccb5bd6cb6ebc37 /src
parent911b537f34eca7da671aa6da6409e03dcd514201 (diff)
introduce automatic theme based on the systems theme
Diffstat (limited to 'src')
-rw-r--r--src/main/java/de/pixart/messenger/utils/ThemeHelper.java24
-rw-r--r--src/main/res/drawable/background.xml2
-rw-r--r--src/main/res/values/arrays.xml2
-rw-r--r--src/main/res/values/strings.xml1
-rw-r--r--src/main/res/values/themes.xml5
5 files changed, 29 insertions, 5 deletions
diff --git a/src/main/java/de/pixart/messenger/utils/ThemeHelper.java b/src/main/java/de/pixart/messenger/utils/ThemeHelper.java
index d12a5c1d3..b83631623 100644
--- a/src/main/java/de/pixart/messenger/utils/ThemeHelper.java
+++ b/src/main/java/de/pixart/messenger/utils/ThemeHelper.java
@@ -31,6 +31,7 @@ package de.pixart.messenger.utils;
import android.content.Context;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.preference.PreferenceManager;
@@ -48,7 +49,13 @@ public class ThemeHelper {
public static int find(Context context) {
final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
final Resources resources = context.getResources();
- final boolean dark = sharedPreferences.getString(SettingsActivity.THEME, resources.getString(R.string.theme)).equals("dark");
+ final boolean auto = sharedPreferences.getString(SettingsActivity.THEME, resources.getString(R.string.theme)).equals("auto");
+ boolean dark;
+ if (auto) {
+ dark = nightMode(context);
+ } else {
+ dark = sharedPreferences.getString(SettingsActivity.THEME, resources.getString(R.string.theme)).equals("dark");
+ }
final String fontSize = sharedPreferences.getString("font_size", resources.getString(R.string.default_font_size));
switch (fontSize) {
case "medium":
@@ -60,6 +67,19 @@ public class ThemeHelper {
}
}
+ private static boolean nightMode(Context context) {
+ int nightModeFlags = context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
+ switch (nightModeFlags) {
+ case Configuration.UI_MODE_NIGHT_YES:
+ return true;
+ case Configuration.UI_MODE_NIGHT_NO:
+ return false;
+ case Configuration.UI_MODE_NIGHT_UNDEFINED:
+ return false;
+ }
+ return false;
+ }
+
public static int findDialog(Context context) {
final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
final Resources resources = context.getResources();
@@ -71,7 +91,7 @@ public class ThemeHelper {
case "large":
return dark ? R.style.ConversationsTheme_Dark_Dialog_Large : R.style.ConversationsTheme_Dialog_Large;
default:
- return dark ? R.style.ConversationsTheme_Dark_Dialog: R.style.ConversationsTheme_Dialog;
+ return dark ? R.style.ConversationsTheme_Dark_Dialog : R.style.ConversationsTheme_Dialog;
}
}
diff --git a/src/main/res/drawable/background.xml b/src/main/res/drawable/background.xml
index 575ed6784..f38f50f79 100644
--- a/src/main/res/drawable/background.xml
+++ b/src/main/res/drawable/background.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:drawable="@color/grey50" />
+ <item android:drawable="@android:color/transparent" />
<item>
<bitmap
diff --git a/src/main/res/values/arrays.xml b/src/main/res/values/arrays.xml
index 9d587fd86..b15e4cea2 100644
--- a/src/main/res/values/arrays.xml
+++ b/src/main/res/values/arrays.xml
@@ -3,10 +3,12 @@
<string-array name="themes">
<item>@string/pref_theme_light</item>
<item>@string/pref_theme_dark</item>
+ <item>@string/pref_theme_auto</item>
</string-array>
<string-array name="themes_values">
<item>light</item>
<item>dark</item>
+ <item>auto</item>
</string-array>
<string-array name="filesizes">
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index a649b0154..a4f1b2655 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -738,6 +738,7 @@
<string name="default_off">Off by default</string>
<string name="pref_theme_light">Light theme</string>
<string name="pref_theme_dark">Dark theme</string>
+ <string name="pref_theme_auto">Automatic</string>
<string name="pref_theme_options_summary">Select the color palette</string>
<string name="pref_theme_options">Theme</string>
<string name="chooce_account">Choose account</string>
diff --git a/src/main/res/values/themes.xml b/src/main/res/values/themes.xml
index fb91cb4a1..c59eb6f3b 100644
--- a/src/main/res/values/themes.xml
+++ b/src/main/res/values/themes.xml
@@ -104,7 +104,8 @@
<item name="icon_settings" type="reference">@drawable/ic_settings_black_24dp</item>
<item name="icon_delete" type="reference">@drawable/ic_delete_black_24dp</item>
<item name="icon_share" type="reference">@drawable/ic_share_black_24dp</item>
- <item name="ic_cloud_download" type="reference">@drawable/ic_cloud_download_white_24dp</item>
+ <item name="ic_cloud_download" type="reference">@drawable/ic_cloud_download_white_24dp
+ </item>
<item name="icon_scan_qr_code" type="reference">@drawable/ic_qrcode_scan_white_24dp</item>
<item name="icon_scroll_down" type="reference">@drawable/ic_scroll_to_end_black</item>
@@ -369,7 +370,7 @@
</style>
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
- <item name="colorPrimaryDark">@color/grey300</item>
+ <item name="colorPrimaryDark">@android:color/transparent</item>
<item name="android:windowBackground">@drawable/background</item>
</style>