From f9a529275a4162f1f20396b9312f0fdd4a08f70a Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Wed, 11 May 2022 20:59:37 +0300 Subject: [PATCH] System theme at start --- .../java/ru/vtosters/lite/utils/Globals.java | 9 +++++++ .../ru/vtosters/lite/utils/Preferences.java | 7 ++++++ .../java/ru/vtosters/lite/utils/Themes.java | 25 +++++++++++++++++++ smali/res/xml/preferences_themes.xml | 5 ++++ 4 files changed, 46 insertions(+) diff --git a/app/src/main/java/ru/vtosters/lite/utils/Globals.java b/app/src/main/java/ru/vtosters/lite/utils/Globals.java index 56f33658e..0c322961b 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Globals.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Globals.java @@ -239,4 +239,13 @@ public class Globals { resources.updateConfiguration(configuration, resources.getDisplayMetrics()); return context; } + + public static float[] getCenterScreenCoords() { + int width = getResources().getDisplayMetrics().widthPixels; + int height = getResources().getDisplayMetrics().heightPixels; + + int centerWidth = width/2; + int centerHeight = height/2; + return new float[] {centerWidth, centerHeight}; + } } diff --git a/app/src/main/java/ru/vtosters/lite/utils/Preferences.java b/app/src/main/java/ru/vtosters/lite/utils/Preferences.java index b47f6f66f..167ad7840 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Preferences.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Preferences.java @@ -9,6 +9,7 @@ import static ru.vtosters.lite.utils.Globals.registerActivities; import static ru.vtosters.lite.utils.Newsfeed.setupFilters; import static ru.vtosters.lite.utils.OpusLoader.LoadLibrary; import static ru.vtosters.lite.utils.Proxy.setProxy; +import static ru.vtosters.lite.utils.Themes.systemThemeChanger; import android.app.Application; import android.content.Context; @@ -35,8 +36,10 @@ public class Preferences { reloadMessagesList(); registerActivities(application); LoadLibrary("vkopustest"); + systemThemeChanger(); } + public static boolean BooleanFalse(String key) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); return prefs.getBoolean(key, false); @@ -51,6 +54,10 @@ public class Preferences { return BooleanTrue("opusmodule"); } + public static boolean systemtheme() { + return BooleanTrue("systemtheme"); + } + public static boolean authorsrecomm() { return BooleanTrue("authorsrecomm"); } diff --git a/app/src/main/java/ru/vtosters/lite/utils/Themes.java b/app/src/main/java/ru/vtosters/lite/utils/Themes.java index 4a0e69d95..efbdfce65 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Themes.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Themes.java @@ -5,10 +5,12 @@ import static ru.vtosters.lite.utils.Globals.getPreferences; import static ru.vtosters.lite.utils.Preferences.color_grishka; import static ru.vtosters.lite.utils.Preferences.isBGStickersEnabled; import static ru.vtosters.lite.utils.Preferences.navbar; +import static ru.vtosters.lite.utils.Preferences.systemtheme; import static ru.vtosters.lite.utils.Preferences.vksans; import android.content.Context; import android.content.res.ColorStateList; +import android.content.res.Configuration; import android.graphics.drawable.Drawable; import android.os.Build; import android.support.v7.widget.Toolbar; @@ -19,6 +21,7 @@ import com.vk.core.d.RecoloredDrawable; import com.vk.core.ui.themes.VKTheme; import com.vk.core.ui.themes.VKThemeHelper; import com.vk.im.ui.themes.ImTheme; +import com.vk.im.ui.themes.ImThemeHelper; import com.vtosters.lite.R; public class Themes { @@ -194,4 +197,26 @@ public class Themes { } return "images"; } + + public static void systemThemeChanger() { + if (!systemtheme()) + return; + int currentNightMode = getContext().getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; + switch (currentNightMode) { + case Configuration.UI_MODE_NIGHT_UNDEFINED: + changeTheme(getLightTheme(), getImLightTheme()); + break; + case Configuration.UI_MODE_NIGHT_NO: + changeTheme(getLightTheme(), getImLightTheme()); + break; + case Configuration.UI_MODE_NIGHT_YES: + changeTheme(getDarkTheme(), getImDarkTheme()); + break; + } + } + + public static void changeTheme(VKTheme theme, ImTheme imtheme) { + VKThemeHelper.b.a(theme); + ImThemeHelper.b.a(imtheme); + } } diff --git a/smali/res/xml/preferences_themes.xml b/smali/res/xml/preferences_themes.xml index 9522fb3e4..da6c07891 100644 --- a/smali/res/xml/preferences_themes.xml +++ b/smali/res/xml/preferences_themes.xml @@ -19,6 +19,11 @@ android:entryValues="@array/lighttheme" android:key="lighttheme" android:title="Светлая тема приложения" /> +