From c11bee25d11034720e981a1a5f3e096dccff2596 Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Wed, 22 Jun 2022 18:55:45 +0300 Subject: [PATCH] added vkui inj + upgraded vkui coloring and theme changing --- .../lite/ui/fragments/OtherFragment.java | 2 ++ .../lite/ui/fragments/VTSettings.java | 9 +++++--- .../java/ru/vtosters/lite/utils/Themes.java | 4 ++++ .../ru/vtosters/lite/utils/VKUIInjector.java | 21 ++++++++++++------- .../api/sdk/ui/VKWebViewAuthActivity$b.smali | 2 ++ .../com/vk/webapp/helpers/WebClients.smali | 2 ++ 6 files changed, 29 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java index 7ce936a60..699c9666c 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java @@ -15,6 +15,7 @@ import android.content.ClipboardManager; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; +import android.webkit.WebView; import androidx.preference.Preference; @@ -80,6 +81,7 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment { SharedPreferences prefs2 = getContext().getSharedPreferences("stickers_storage", Context.MODE_PRIVATE); prefs.edit().clear().commit(); prefs2.edit().clear().commit(); + new WebView(getActivity()).clearCache(true); VKImageLoader.e(); ImEngineProvider.a().h(); FileUtils.l(); diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java index 8b8044232..437e450a1 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java @@ -26,6 +26,7 @@ import static ru.vtosters.lite.utils.Themes.applyTheme; import static ru.vtosters.lite.utils.Themes.getDarkTheme; import static ru.vtosters.lite.utils.Themes.getLightTheme; import static ru.vtosters.lite.utils.Themes.setTheme; +import static ru.vtosters.lite.utils.VKUIInjector.isLoaded; import android.content.Context; import android.content.Intent; @@ -33,13 +34,13 @@ import android.content.SharedPreferences; import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.webkit.WebView; import com.aefyr.tsg.g2.TelegramStickersService; import com.vk.about.AboutAppFragment; import com.vk.identity.fragments.IdentityListFragment; import com.vk.navigation.Navigator; import com.vk.notifications.settings.NotificationsSettingsFragment; -import com.vk.webapp.fragments.BugtrackerFragment; import com.vk.webapp.fragments.PrivacyFragment; import com.vtosters.lite.auth.VKAccountManager; import com.vtosters.lite.fragments.money.music.control.subscription.MusicSubscriptionControlFragment; @@ -91,8 +92,11 @@ public class VTSettings extends MaterialPreferenceToolbarFragment { edit().putBoolean("isdark", value).commit(); - setTheme(this.getActivity()); + isLoaded = false; + new WebView(getActivity()).clearCache(true); + + setTheme(this.getActivity()); return true; }); @@ -101,7 +105,6 @@ public class VTSettings extends MaterialPreferenceToolbarFragment { boolean value = (boolean) o; edit().putBoolean("systemtheme", value).commit(); - return true; }); } 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 fe8be52d6..0d9fe2e05 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Themes.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Themes.java @@ -89,6 +89,10 @@ public class Themes { return getColorFromAttr(getAttrId("background_content")); } // Background color in app + public static int getBackgroundPage() { + return getColorFromAttr(getAttrId("background_page")); + } // Background color in app + public static int getHeaderBackground() { return getColorFromAttr(getAttrId("header_background")); } // Toolbar/Header background diff --git a/app/src/main/java/ru/vtosters/lite/utils/VKUIInjector.java b/app/src/main/java/ru/vtosters/lite/utils/VKUIInjector.java index 4e6cf26eb..0d9d83ecb 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/VKUIInjector.java +++ b/app/src/main/java/ru/vtosters/lite/utils/VKUIInjector.java @@ -4,7 +4,13 @@ import static android.util.Base64.encodeToString; import static ru.vtosters.lite.utils.Globals.getContext; import static ru.vtosters.lite.utils.Globals.getPrefsValue; import static ru.vtosters.lite.utils.Preferences.getBoolValue; +import static ru.vtosters.lite.utils.Themes.getAccentColor; +import static ru.vtosters.lite.utils.Themes.getBackgroundContent; +import static ru.vtosters.lite.utils.Themes.getBackgroundPage; import static ru.vtosters.lite.utils.Themes.getColorFromAttr; +import static ru.vtosters.lite.utils.Themes.getHeaderBackground; +import static ru.vtosters.lite.utils.Themes.getHeaderText; +import static ru.vtosters.lite.utils.Themes.getTextAttr; import static ru.vtosters.lite.utils.Themes.hex; import android.webkit.WebView; @@ -18,7 +24,7 @@ import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; public class VKUIInjector { - private static boolean isLoaded = false; + public static boolean isLoaded = false; private static String loadedCSS = ""; private static String loadedCSSAmoled = ""; @@ -48,13 +54,12 @@ public class VKUIInjector { public static void load() { loadedCSS = load("vt_ui_accent.css") - .replace("%header_background%", hex(getColorFromAttr(R.attr.header_background))) - .replace("%background_content%", hex(getColorFromAttr(R.attr.background_content))) - .replace("%header_text%", hex(getColorFromAttr(R.attr.header_text))) - .replace("%accent%", hex(getColorFromAttr(R.attr.accent))) - .replace("%background_page%", hex(getColorFromAttr(R.attr.background_page))) - .replace("%background_content%", hex(getColorFromAttr(R.attr.background_content))) - .replace("%text_primary%", hex(getColorFromAttr(R.attr.text_primary))); + .replace("%header_background%", hex(getHeaderBackground())) + .replace("%background_content%", hex(getBackgroundContent())) + .replace("%header_text%", hex(getHeaderText())) + .replace("%accent%", hex(getAccentColor())) + .replace("%background_page%", hex(getBackgroundPage())) + .replace("%text_primary%", hex(getTextAttr())); loadedCSSAmoled = load("vt_ui_oled.css"); isLoaded = true; diff --git a/smali/smali_classes2/com/vk/api/sdk/ui/VKWebViewAuthActivity$b.smali b/smali/smali_classes2/com/vk/api/sdk/ui/VKWebViewAuthActivity$b.smali index ee8440db4..263a57a03 100644 --- a/smali/smali_classes2/com/vk/api/sdk/ui/VKWebViewAuthActivity$b.smali +++ b/smali/smali_classes2/com/vk/api/sdk/ui/VKWebViewAuthActivity$b.smali @@ -335,6 +335,8 @@ .method public onPageFinished(Landroid/webkit/WebView;Ljava/lang/String;)V .locals 0 + invoke-static/range {p1 .. p1}, Lru/vtosters/lite/utils/VKUIInjector;->inject(Landroid/webkit/WebView;)V + .line 1 invoke-super {p0, p1, p2}, Landroid/webkit/WebViewClient;->onPageFinished(Landroid/webkit/WebView;Ljava/lang/String;)V diff --git a/smali/smali_classes4/com/vk/webapp/helpers/WebClients.smali b/smali/smali_classes4/com/vk/webapp/helpers/WebClients.smali index a8744f9d0..8007ec6a4 100644 --- a/smali/smali_classes4/com/vk/webapp/helpers/WebClients.smali +++ b/smali/smali_classes4/com/vk/webapp/helpers/WebClients.smali @@ -300,6 +300,8 @@ .method public onPageFinished(Landroid/webkit/WebView;Ljava/lang/String;)V .locals 3 + invoke-static/range {p1 .. p1}, Lru/vtosters/lite/utils/VKUIInjector;->inject(Landroid/webkit/WebView;)V + const/4 v0, 0x2 new-array v0, v0, [Ljava/lang/Object;