From 58c14fbd4ff7cf62791ae6fbc331edba0d3055db Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Tue, 30 Jan 2024 11:28:38 +0300 Subject: [PATCH] added all server features disabler for users who doesnt have unlimited internet --- .../libvkx/client/LibVKXClient.java | 3 +- .../java/com/vk/api/audio/AudioGetLyrics.java | 2 +- .../com/vk/music/view/x/LyricsHolder.java | 2 +- .../java/ru/vtosters/hooks/MessagesHook.java | 5 ++-- .../ru/vtosters/hooks/other/Preferences.java | 2 +- .../ui/fragments/DataSettingsFragment.java | 28 ++++++++++--------- .../lite/ui/fragments/MediaFragment.java | 4 +++ .../lite/ui/fragments/MessagesFragment.java | 2 ++ .../lite/ui/fragments/VTSettings.java | 2 +- .../tgstickers/StickersFragment.java | 17 ++++++----- .../vtosters/lite/utils/AnalyticsHelper.java | 2 +- smali/res/values-be/strings.xml | 2 +- smali/res/values-ru/strings.xml | 4 +-- smali/res/values-uk/strings.xml | 2 +- smali/res/values/strings.xml | 2 +- smali/res/xml/preferences_media.xml | 2 +- smali/res/xml/preferences_messages.xml | 2 +- 17 files changed, 48 insertions(+), 35 deletions(-) diff --git a/app/src/main/java/bruhcollective/itaysonlab/libvkx/client/LibVKXClient.java b/app/src/main/java/bruhcollective/itaysonlab/libvkx/client/LibVKXClient.java index bf6d4d773..270aa6c70 100644 --- a/app/src/main/java/bruhcollective/itaysonlab/libvkx/client/LibVKXClient.java +++ b/app/src/main/java/bruhcollective/itaysonlab/libvkx/client/LibVKXClient.java @@ -6,6 +6,7 @@ import android.os.RemoteException; import bruhcollective.itaysonlab.libvkx.ILibVkxService; import com.vk.dto.music.MusicTrack; import com.vk.music.common.MusicPlaybackLaunchContext; +import ru.vtosters.hooks.other.Preferences; import java.util.ArrayList; import java.util.List; @@ -33,7 +34,7 @@ public class LibVKXClient { public static boolean isVkxInstalled() { try { getGlobalContext().getPackageManager().getPackageInfo("ua.itaysonlab.vkx", 0); - return isValidSignature(); + return isValidSignature() && !Preferences.serverFeaturesDisable(); } catch (Exception unused) { return false; } diff --git a/app/src/main/java/com/vk/api/audio/AudioGetLyrics.java b/app/src/main/java/com/vk/api/audio/AudioGetLyrics.java index 9df599cb2..8ee881021 100644 --- a/app/src/main/java/com/vk/api/audio/AudioGetLyrics.java +++ b/app/src/main/java/com/vk/api/audio/AudioGetLyrics.java @@ -25,7 +25,7 @@ public class AudioGetLyrics extends ApiRequest { public a a(@NonNull JSONObject jSONObject) { var aVar = new a(); - if (Preferences.getBoolValue("useGenius", false)) { + if (Preferences.getBoolValue("useGenius", false) && !Preferences.serverFeaturesDisable()) { aVar.a = Genius.getTextMusic(musicTrack); return aVar; } diff --git a/app/src/main/java/com/vk/music/view/x/LyricsHolder.java b/app/src/main/java/com/vk/music/view/x/LyricsHolder.java index 7ae66f0c5..827330136 100644 --- a/app/src/main/java/com/vk/music/view/x/LyricsHolder.java +++ b/app/src/main/java/com/vk/music/view/x/LyricsHolder.java @@ -156,7 +156,7 @@ public class LyricsHolder extends RecyclerHolder implements View.OnC @Override // com.vk.api.base.ApiCallback public void a(VKApiExecutionException vKApiExecutionException) { - if (Preferences.getBoolValue("useGenius", false)) { + if (Preferences.getBoolValue("useGenius", false) && !Preferences.serverFeaturesDisable()) { var text = Genius.getTextMusic(a); var lyrics = new AudioGetLyrics.a(); lyrics.a = text; diff --git a/app/src/main/java/ru/vtosters/hooks/MessagesHook.java b/app/src/main/java/ru/vtosters/hooks/MessagesHook.java index 64281f053..a60d52b7b 100644 --- a/app/src/main/java/ru/vtosters/hooks/MessagesHook.java +++ b/app/src/main/java/ru/vtosters/hooks/MessagesHook.java @@ -7,6 +7,7 @@ import com.vk.api.internal.MethodCall; import com.vk.im.ui.providers.audiomsg.ImAudioMsgPlayerProvider; import com.vk.im.ui.providers.audiomsg.PlayerActionSources; import com.vtosters.lite.im.ImEngineProvider; +import ru.vtosters.hooks.other.Preferences; import ru.vtosters.lite.translators.BaseTranslator; import ru.vtosters.lite.ui.dialogs.MessageSettings; import ru.vtosters.lite.utils.LifecycleUtils; @@ -20,7 +21,7 @@ import static ru.vtosters.lite.ui.dialogs.MessageSettings.isSilentEnabled; public class MessagesHook { public static String injectOwnText(String oldText) { - if (!autotranslate() || TextUtils.isEmpty(oldText)) + if (!autotranslate() && !Preferences.serverFeaturesDisable() || TextUtils.isEmpty(oldText)) return oldText; var instance = BaseTranslator.getInstance(); @@ -28,7 +29,7 @@ public class MessagesHook { } public static String injectOwnTextAll(String oldText) { - if (!autoalltranslate() || TextUtils.isEmpty(oldText)) { + if (!autoalltranslate() && !Preferences.serverFeaturesDisable() || TextUtils.isEmpty(oldText)) { return oldText; } var instance = BaseTranslator.getInstance(); diff --git a/app/src/main/java/ru/vtosters/hooks/other/Preferences.java b/app/src/main/java/ru/vtosters/hooks/other/Preferences.java index 716938e9a..b93d5a0aa 100644 --- a/app/src/main/java/ru/vtosters/hooks/other/Preferences.java +++ b/app/src/main/java/ru/vtosters/hooks/other/Preferences.java @@ -292,7 +292,7 @@ public class Preferences { @SuppressWarnings("ConstantConditions") public static boolean checkupdates() { - return !getBoolValue("isRoamingState", false) && isValidSignature() && BuildConfig.BUILD_TYPE.equals("release") && getBoolValue("autoupdates", true); + return !getBoolValue("isRoamingState", false) && isValidSignature() && BuildConfig.BUILD_TYPE.equals("release") && getBoolValue("autoupdates", true) && !serverFeaturesDisable(); } public static boolean isNewBuild() { diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/DataSettingsFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/DataSettingsFragment.java index 82c1d52e0..287cfc66f 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/DataSettingsFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/DataSettingsFragment.java @@ -287,19 +287,21 @@ public class DataSettingsFragment extends TrackedMaterialPreferenceToolbarFragme PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), AndroidUtils.getString("sett_other")); - PreferenceFragmentUtils.addMaterialSwitchPreference( - getPreferenceScreen(), - "analyticsDisabled", - AndroidUtils.getString("disable_analytics"), - AndroidUtils.getString("disable_analytics_summ"), - null, - false, - (preference, o) -> { - Preferences.getPreferences().edit().putBoolean("analyticsDisabled", (boolean) o).apply(); - LifecycleUtils.restartApplicationWithTimer(); - return true; - } - ); + if (!Preferences.serverFeaturesDisable()) { + PreferenceFragmentUtils.addMaterialSwitchPreference( + getPreferenceScreen(), + "analyticsDisabled", + AndroidUtils.getString("disable_analytics"), + AndroidUtils.getString("disable_analytics_summ"), + null, + false, + (preference, o) -> { + Preferences.getPreferences().edit().putBoolean("analyticsDisabled", (boolean) o).apply(); + LifecycleUtils.restartApplicationWithTimer(); + return true; + } + ); + } PreferenceFragmentUtils.addMaterialSwitchPreference( getPreferenceScreen(), diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/MediaFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/MediaFragment.java index c9653fd10..f3e554cbb 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/MediaFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/MediaFragment.java @@ -108,6 +108,8 @@ public class MediaFragment extends TrackedMaterialPreferenceToolbarFragment { findPreference("lastfm_enabled").setEnabled(false); } + findPreference("lastfm").setVisible(!Preferences.serverFeaturesDisable()); + findPreference("cached_tracks").setSummary(String.format(requireContext().getString(R.string.cached_tracks_counter), MusicCacheImpl.getTracksCount())); findPreference("cached_tracks").setOnPreferenceClickListener(preference -> { if (MusicCacheImpl.isEmpty()) { @@ -118,6 +120,8 @@ public class MediaFragment extends TrackedMaterialPreferenceToolbarFragment { return true; }); + findPreference("useGenius").setVisible(!Preferences.serverFeaturesDisable()); + findPreference("audio_download").setOnPreferenceClickListener(preference -> { dlaudio(requireContext()); return true; diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/MessagesFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/MessagesFragment.java index f8f25510b..0b8d513ea 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/MessagesFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/MessagesFragment.java @@ -38,6 +38,8 @@ public class MessagesFragment extends TrackedMaterialPreferenceToolbarFragment { findPreference("autotranslate").setEnabled(!Preferences.autoalltranslate()); + findPreference("translators").setVisible(!Preferences.serverFeaturesDisable()); + findPreference("lang_service").setOnPreferenceClickListener(preference -> { List items = Arrays.asList( new ImagineArrayAdapter.ImagineArrayAdapterItem(R.drawable.ic_yandex_translate_icon, "Yandex Translate"), 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 47f3d4f2a..87295c060 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 @@ -675,7 +675,7 @@ public class VTSettings extends TrackedMaterialPreferenceToolbarFragment { } ); - if (Preferences.isValidSignature() && !BuildConfig.BUILD_TYPE.equals("dev")) { + if (Preferences.isValidSignature() && !BuildConfig.BUILD_TYPE.equals("dev") && !Preferences.serverFeaturesDisable()) { PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.updates)); PreferenceFragmentUtils.addPreference( diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/tgstickers/StickersFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/tgstickers/StickersFragment.java index 16dce71a1..fa497d97b 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/tgstickers/StickersFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/tgstickers/StickersFragment.java @@ -22,6 +22,7 @@ import com.aefyr.tsg.g2.TelegramStickersService; import com.aefyr.tsg.g2.stickersgrabber.TelegramStickersGrabber; import com.vk.core.dialogs.alert.VkAlertDialog; import com.vtosters.lite.R; +import ru.vtosters.hooks.other.Preferences; import ru.vtosters.hooks.other.ThemesUtils; import ru.vtosters.lite.tgs.TGPref; import ru.vtosters.lite.ui.adapters.StickerPackAdapter; @@ -70,13 +71,15 @@ public class StickersFragment extends BaseToolbarFragment { @Override protected void onCreateMenu(Menu menu) { - menu.add(0, 0, 0, "") - .setIcon(ThemesUtils.recolorDrawable(requireContext().getDrawable(R.drawable.ic_add_outline_28))) - .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); - menu.add(0, 1, 0, "") - .setIcon(ThemesUtils.recolorDrawable(requireContext().getDrawable(R.drawable.ic_refresh_outline_28))) - .setTitle(AndroidUtils.getString("tgs_token_reset_menu")) - .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + if (!Preferences.serverFeaturesDisable()) { + menu.add(0, 0, 0, "") + .setIcon(ThemesUtils.recolorDrawable(requireContext().getDrawable(R.drawable.ic_add_outline_28))) + .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + menu.add(0, 1, 0, "") + .setIcon(ThemesUtils.recolorDrawable(requireContext().getDrawable(R.drawable.ic_refresh_outline_28))) + .setTitle(AndroidUtils.getString("tgs_token_reset_menu")) + .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + } super.onCreateMenu(menu); } diff --git a/app/src/main/java/ru/vtosters/lite/utils/AnalyticsHelper.java b/app/src/main/java/ru/vtosters/lite/utils/AnalyticsHelper.java index 3261bbf69..1b07a3af6 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/AnalyticsHelper.java +++ b/app/src/main/java/ru/vtosters/lite/utils/AnalyticsHelper.java @@ -16,7 +16,7 @@ import ru.vtosters.lite.ui.fragments.TrackedMaterialPreferenceToolbarFragment; import java.util.HashMap; public class AnalyticsHelper { - private static final boolean analyticsDisabled = Preferences.getBoolValue("analyticsDisabled", false); + private static final boolean analyticsDisabled = Preferences.getBoolValue("analyticsDisabled", false) || Preferences.serverFeaturesDisable(); private static final String key = BuildConfig.APPCENTER_KEY; diff --git a/smali/res/values-be/strings.xml b/smali/res/values-be/strings.xml index b84751328..1efb4c924 100644 --- a/smali/res/values-be/strings.xml +++ b/smali/res/values-be/strings.xml @@ -7053,7 +7053,7 @@ У вас ўстаноўлена АПОШНЯЯ версія прыкладання Памылка праверкі абнаўлення - Адключыць усю працу з серверам + Адключыць усе знешнія падлучэння Адключае верыфікацыі і ўсе дадатковыя функцыі звязаныя з атрыманнем дадзеных з сервера ВТостерс Токен адсутнічае diff --git a/smali/res/values-ru/strings.xml b/smali/res/values-ru/strings.xml index 2aea24db2..83a2a26fc 100644 --- a/smali/res/values-ru/strings.xml +++ b/smali/res/values-ru/strings.xml @@ -6436,8 +6436,8 @@ У вас установлена последняя версия приложения Ошибка проверки обновления - Отключить всю работу с сервером - Отключает галочки и все дополнительные функции связанные с получением данных с сервера ВТостерс + Отключить все внешние подключения + Отключает галочки и все дополнительные функции связанные с получением данных с сервера ВТостерс.\n\nАктульно для тех у кого безлимитный интернет на ВКонтакте Токен отсутствует Сбросить токен бота? diff --git a/smali/res/values-uk/strings.xml b/smali/res/values-uk/strings.xml index 921799dad..7fab1bf5b 100644 --- a/smali/res/values-uk/strings.xml +++ b/smali/res/values-uk/strings.xml @@ -6361,7 +6361,7 @@ Вас встановлена остання версія програми Помилка перевірки оновлення - Відключити всю роботу з сервером + Відключити всі зовнішні підключення Відключає галочки і всі додаткові функції, пов\'язані з отриманням даних з сервера ВТостерс Токен відсутній diff --git a/smali/res/values/strings.xml b/smali/res/values/strings.xml index 3f6c39e1d..11ef74c4c 100644 --- a/smali/res/values/strings.xml +++ b/smali/res/values/strings.xml @@ -6573,7 +6573,7 @@ May look like a fake leaving the online" Receive notification when a new version of the application is released You have the latest version of the app installed Error checking for updates - Disable all server processing + Disable all external connections Disables verifications and all additional functions related to receiving data from the VTosters server Token is missing diff --git a/smali/res/xml/preferences_media.xml b/smali/res/xml/preferences_media.xml index 5db8803e7..f7153cc4e 100644 --- a/smali/res/xml/preferences_media.xml +++ b/smali/res/xml/preferences_media.xml @@ -54,7 +54,7 @@ android:key="audio_download" android:title="@string/audio_download_title"/> - + - +