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="Светлая тема приложения" />
+