diff options
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/utils/ThemeHelper.java | 24 | ||||
-rw-r--r-- | src/main/res/drawable/background.xml | 2 | ||||
-rw-r--r-- | src/main/res/values/arrays.xml | 2 | ||||
-rw-r--r-- | src/main/res/values/strings.xml | 1 | ||||
-rw-r--r-- | src/main/res/values/themes.xml | 5 |
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> |