diff --git a/app/src/main/java/ru/vtosters/lite/hooks/VKUIHook.java b/app/src/main/java/ru/vtosters/lite/hooks/VKUIHook.java index 7247873fd..7c1c3b6b4 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/VKUIHook.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/VKUIHook.java @@ -18,6 +18,8 @@ import android.webkit.WebView; import com.vk.articles.preload.WebCachePreloader; import com.vtosters.lite.R; import com.vtosters.lite.data.ThemeTracker; +import ru.vtosters.lite.themes.ThemesCore; +import ru.vtosters.lite.utils.ThemesUtils; import java.io.BufferedReader; import java.io.IOException; @@ -77,22 +79,19 @@ public class VKUIHook { } public static void inject(WebView webView) { - String string = getPrefsValue("darktheme"); - if (getBoolValue("VKUI_INJ", true)) { - if (!isLoaded) { load(); } StringBuilder sb = new StringBuilder(); - if (true/*Themes.isAccentedCache()*/) { + if (ThemesCore.isCachedAccents()) { sb.append("\n\n"); sb.append(loadedCSS); } - if (string.equals("amoled")) { + if (ThemesUtils.isAmoledTheme()) { sb.append("\n\n"); sb.append(loadedCSSAmoled); } diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/ThemesFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/ThemesFragment.java index 8949a57f0..247430085 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/ThemesFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/ThemesFragment.java @@ -1,19 +1,14 @@ package ru.vtosters.lite.ui.fragments; -import android.content.DialogInterface; import android.content.Intent; +import android.os.Build; import android.os.Bundle; -import android.util.Log; - import androidx.preference.PreferenceCategory; - import com.vk.core.dialogs.alert.VkAlertDialog; import com.vk.core.fragments.FragmentImpl; import com.vk.navigation.Navigator; import com.vtosters.lite.R; import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment; - -import ru.vtosters.lite.themes.ColorReferences; import ru.vtosters.lite.themes.ThemesCore; import ru.vtosters.lite.themes.palettes.PalettesManager; import ru.vtosters.lite.ui.dialogs.PalettesBottomSheetDialog; @@ -37,62 +32,64 @@ public class ThemesFragment extends MaterialPreferenceToolbarFragment { accentColorPreference.setIcon(ThemesUtils.recolorDrawable(requireContext().getDrawable(R.drawable.bg_accent_circle))); accentColorPreference.setOnPreferenceClickListener(preference -> { changeAccent(); - return false; + return true; }); var navBarPreference = findPreference("navbar"); navBarPreference.setOnPreferenceClickListener(preference -> { restart(); - return false; + return true; }); var milkshakePreference = findPreference("milkshake"); milkshakePreference.setOnPreferenceClickListener(preference -> { restart(); - return false; + return true; }); - var darkThemePreference = findPreference("darktheme"); - darkThemePreference.setOnPreferenceChangeListener((preference, o) -> { - restartDark(o.toString()); - return false; + var amoledThemePreference = findPreference("amoledtheme"); + amoledThemePreference.setOnPreferenceClickListener(preference -> { + restart(); + return true; }); - var lightThemePreference = findPreference("lighttheme"); - lightThemePreference.setOnPreferenceChangeListener(((preference, o) -> { - restartLight(o.toString()); - return false; - })); + var monetThemePreference = findPreference("monettheme"); + monetThemePreference.setOnPreferenceClickListener(preference -> { + restart(); + return true; + }); + monetThemePreference.setVisible(Build.VERSION.SDK_INT >= Build.VERSION_CODES.S); var iconManagerPreference = findPreference("iconmanager"); iconManagerPreference.setOnPreferenceClickListener(preference -> { switchFragment(IconsFragment.class); - return false; + return true; }); var dockbarTabTitlesPreference = findPreference("dockbar_tab_titles"); dockbarTabTitlesPreference.setOnPreferenceClickListener(preference -> { restart(); - return false; + return true; }); var dockbarAccentPreference = findPreference("dockbar_accent"); dockbarAccentPreference.setOnPreferenceClickListener(preference -> { restart(); - return false; + return true; }); var dockCounterPreference = findPreference("dockcounter"); dockCounterPreference.setOnPreferenceClickListener(preference -> { restart(); - return false; + return true; }); var newsfeedNotificationsPreference = findPreference("newsfeed_notif"); newsfeedNotificationsPreference.setOnPreferenceClickListener(preference -> { restart(); - return false; + return true; }); + newsfeedNotificationsPreference.setVisible(Preferences.milkshake()); if (AndroidUtils.isTablet()) { @@ -157,23 +154,13 @@ public class ThemesFragment extends MaterialPreferenceToolbarFragment { void setAccentColor(int color) { ThemesUtils.setCustomAccentColor(color, false); ThemesCore.setThemedColors(color); - LifecycleUtils.restartApplicationWithTimer(); + restart(); } void restart() { LifecycleUtils.restartApplicationWithTimer(); } - void restartLight(String value) { - AndroidUtils.edit().putString("lighttheme", value).commit(); - LifecycleUtils.restartApplicationWithTimer(); - } - - void restartDark(String value) { - AndroidUtils.edit().putString("darktheme", value).commit(); - LifecycleUtils.restartApplicationWithTimer(); - } - private void switchFragment(Class fragmentClz) { var intent = new Navigator(fragmentClz) .b(requireContext()) 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 646c1c77c..404059a37 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Preferences.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Preferences.java @@ -280,10 +280,6 @@ public class Preferences { return getBoolValue("systememoji", false); } - public static boolean vksans() { - return getBoolValue("vksans", false); - } - public static boolean voice() { return getBoolValue("voice", true); } @@ -293,10 +289,6 @@ public class Preferences { return customvalue.isEmpty() ? orig : Integer.parseInt(customvalue); } - public static boolean color_grishka() { - return getBoolValue("color_grishka", true); - } - public static boolean vkme_notifs() { return getBoolValue("vkme_notifs", false); } diff --git a/app/src/main/java/ru/vtosters/lite/utils/SSFSUtils.java b/app/src/main/java/ru/vtosters/lite/utils/SSFSUtils.java index 892709d20..e46620bb7 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/SSFSUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/SSFSUtils.java @@ -4,10 +4,8 @@ import com.vk.core.network.Network; import static ru.vtosters.lite.hooks.DateHook.getLocale; import static ru.vtosters.lite.proxy.ProxyUtils.isAnyProxyEnabled; -import static ru.vtosters.lite.utils.About.getBuildNumber; import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue; import static ru.vtosters.lite.utils.Preferences.dev; -import static ru.vtosters.lite.utils.Preferences.vksans; import static ru.vtosters.lite.utils.ThemesUtils.isDarkTheme; public class SSFSUtils { @@ -37,17 +35,13 @@ public class SSFSUtils { } public static String getAmoledVKUI() { - return getPrefsValue("darktheme").equals("amoled") && isDarkTheme() ? "1" : "0"; + return ThemesUtils.isAmoledTheme() && isDarkTheme() ? "1" : "0"; } public static String getUserProxy() { return isAnyProxyEnabled() ? "1" : "0"; } - public static String isVKSansEnabled() { - return vksans() ? "1" : "0"; - } - public static String isDEVModEnabled() { return dev() ? "1" : "0"; } diff --git a/app/src/main/java/ru/vtosters/lite/utils/ThemesUtils.java b/app/src/main/java/ru/vtosters/lite/utils/ThemesUtils.java index c3cd52d37..5c5fb2916 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/ThemesUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/ThemesUtils.java @@ -95,6 +95,14 @@ public class ThemesUtils { public static boolean isDarkTheme() { return VKThemeHelper.r(); } + + public static boolean isMonetTheme() { + return getBoolValue("monettheme", false) && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S; + } + + public static boolean isAmoledTheme() { + return getBoolValue("amoledtheme", false); + } public static int getAccentColor() { var accent = AndroidUtils.getPreferences().getInt("accent_color", getColorFromAttr(R.attr.accent)); @@ -236,10 +244,19 @@ public class ThemesUtils { } public static int getDarkThemeRes() { - if (getPrefsValue("darktheme").equals("amoled")) { - return isMilkshake() ? R.style.VkMilkAmoledStyle : R.style.VkAmoledStyle; + if (isMonetTheme()) { + if (isAmoledTheme()) { + return isMilkshake() ? getIdentifier("VkMilkAmoledMonetStyle", "style"): getIdentifier("VkAmoledMonetStyle", "style"); + } else { + return isMilkshake() ? getIdentifier("VkMilkDarkMonetStyle", "style"): getIdentifier("VkDarkMonetStyle", "style"); + } + } else { + if (isAmoledTheme()) { + return isMilkshake() ? R.style.VkMilkAmoledStyle : R.style.VkAmoledStyle; + } else { + return isMilkshake() ? R.style.VkMilkDarkStyle : R.style.VkDarkStyle; + } } - return isMilkshake() ? R.style.VkMilkDarkStyle : R.style.VkDarkStyle; } // Return needed res theme public static VKTheme getDarkTheme() { @@ -254,10 +271,6 @@ public class ThemesUtils { return VKThemeHelper.d(attr); } // Get needed attr color - public static boolean isAndroidMonet() { - return color_grishka() && Build.VERSION.SDK_INT >= 31; - } - public static void colorWriteBar(View view) { if (!navbar()) return; view.setBackgroundColor(getTabbarBackground()); diff --git a/smali/res/values-v31/styles.xml b/smali/res/values-v31/styles.xml index 748f7464f..7e4d26e76 100644 --- a/smali/res/values-v31/styles.xml +++ b/smali/res/values-v31/styles.xml @@ -1,6 +1,6 @@ - - - - - - - - - - - - - - - - + + + + - -