From 1117fc19d481000d6ff0a1b8691356f0955cbf1d Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Mon, 2 Oct 2023 16:28:08 +0300 Subject: [PATCH] added force tablet mode --- .../java/ru/vtosters/hooks/TabletHook.java | 10 ++++++++ .../lite/ui/fragments/InterfaceFragment.java | 7 ++++++ .../ru/vtosters/lite/utils/AndroidUtils.java | 12 ++++++++-- smali/res/xml/preferences_interface.xml | 5 ++++ .../com/vk/core/util/Screen.smali | 23 +------------------ 5 files changed, 33 insertions(+), 24 deletions(-) create mode 100644 app/src/main/java/ru/vtosters/hooks/TabletHook.java diff --git a/app/src/main/java/ru/vtosters/hooks/TabletHook.java b/app/src/main/java/ru/vtosters/hooks/TabletHook.java new file mode 100644 index 000000000..37db7d876 --- /dev/null +++ b/app/src/main/java/ru/vtosters/hooks/TabletHook.java @@ -0,0 +1,10 @@ +package ru.vtosters.hooks; + +import ru.vtosters.hooks.other.Preferences; +import ru.vtosters.lite.utils.AndroidUtils; + +public class TabletHook { + public static boolean hook() { + return AndroidUtils.isTablet() && !Preferences.getBoolValue("disableForceTabletMode", false); + } +} diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/InterfaceFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/InterfaceFragment.java index 42b22215c..2ccdac614 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/InterfaceFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/InterfaceFragment.java @@ -67,6 +67,13 @@ public class InterfaceFragment extends TrackedMaterialPreferenceToolbarFragment findPreference("showmenu").setVisible(false); } + var tablet = findPreference("disableForceTabletMode"); + tablet.setVisible(AndroidUtils.isTablet()); + tablet.setOnPreferenceClickListener(preference -> { + LifecycleUtils.restartApplicationWithTimer(); + return true; + }); + findPreference("customrounding").setOnPreferenceClickListener(preference -> { RoundingSeekbarDialog.dialog(getContext()); return true; diff --git a/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java b/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java index b974b0854..ced1bed96 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java @@ -12,13 +12,14 @@ import android.content.res.Resources; import android.net.Uri; import android.os.Build; import android.provider.Settings; +import android.text.TextUtils; import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.StringRes; import androidx.core.app.NotificationManagerCompat; -import com.vk.core.util.Screen; import com.vk.core.util.ToastUtils; import com.vtosters.lite.general.fragments.WebViewFragment; +import ru.vtosters.hooks.other.Preferences; import java.io.File; import java.io.FileOutputStream; @@ -32,6 +33,12 @@ import java.util.Random; public class AndroidUtils { private static final String ALLOWED_CHARACTERS = "0123456789qwertyuiopasdfghjklzxcvbnm"; + public enum ScreenSize { + small, + normal, + large, + xlarge + } public static boolean isDebuggable() { return 0 != (AndroidUtils.getGlobalContext().getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE); @@ -44,7 +51,8 @@ public class AndroidUtils { } public static boolean isTablet() { - return Screen.l(getGlobalContext()); + String string = getGlobalContext().getResources().getString(b.h.g.d.screen_size); + return TextUtils.equals(string, ScreenSize.large.name()) || TextUtils.equals(string, ScreenSize.xlarge.name()); } @NonNull diff --git a/smali/res/xml/preferences_interface.xml b/smali/res/xml/preferences_interface.xml index 3077df6bd..dc2329eb7 100644 --- a/smali/res/xml/preferences_interface.xml +++ b/smali/res/xml/preferences_interface.xml @@ -94,6 +94,11 @@ android:key="pollresults" android:summary="@string/pollresults_summ" android:title="@string/pollresults_title"/> + f(Landroid/content/Context;)Lcom/vk/core/util/Screen$ScreenSize; - - move-result-object p0 - - invoke-virtual {p0}, Ljava/lang/Enum;->ordinal()I + invoke-static {}, Lru/vtosters/hooks/TabletHook;->hook()Z move-result p0 - sget-object v0, Lcom/vk/core/util/Screen$ScreenSize;->normal:Lcom/vk/core/util/Screen$ScreenSize; - - invoke-virtual {v0}, Ljava/lang/Enum;->ordinal()I - - move-result v0 - - if-le p0, v0, :cond_0 - - const/4 p0, 0x1 - - goto :goto_0 - - :cond_0 - const/4 p0, 0x0 - - :goto_0 return p0 .end method