From b58a918f273d264b537fd90411a5f6fd8449fd28 Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Mon, 27 Jun 2022 19:45:51 +0300 Subject: [PATCH] toggles redirect --- .../java/ru/vtosters/lite/utils/Toggles.java | 141 +++++++++++++++--- .../com/vk/toggle/FeatureManager.smali | 17 ++- .../lite/bridges/CommonAudioBridge.smali | 2 + 3 files changed, 137 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/ru/vtosters/lite/utils/Toggles.java b/app/src/main/java/ru/vtosters/lite/utils/Toggles.java index 319ee4a1f..ac8f89525 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Toggles.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Toggles.java @@ -9,6 +9,127 @@ import com.vk.toggle.FeatureManager; import com.vk.toggle.Features; public class Toggles{ + public static boolean shouldPatch(Features.Type feature) { + switch (feature) { + case FEATURE_GQUIC_INTEGRATION: + case FEATURE_GQUIC_BETA_TEST: + case AB_IM_LONGPOLL_MSG_BATCHING: + case AB_IM_LP_ATTACHES: + case AB_IM_VIEW_POOL: + case AB_MULTI_GIFTS: + case AB_NEWS_VIDEO_LAYOUT_TEXT: + case AB_STICKERS_DISCOVER: + case AB_GIFTS_FROM_KEYBOARD: + case FEATURE_FEED_DEFAULT_LIST_ALWAYS: + case EXPERIMENT_NEWS_VIDEO_LAYOUT_TEXT: + case FEATURE_DISCOVER_CATEGORIES: + case FEATURE_FAVE_PERF_IMPROVE: + case FEATURE_GROUP_ADMIN_MESSAGES: + case FEATURE_GROUP_MSG_PUSH_PARAM: + case FEATURE_IMAGE_QUALITY_UPGRADE: + case FEATURE_IM_AUDIO_MSG_TRANSCRIPT: + case FEATURE_IM_CASPER_MSGS: + case FEATURE_IM_DISABLE_FORCE_OPEN_VK_ME: + case FEATURE_IM_GIF_AUTOPLAY: + case FEATURE_IM_MR_IN_VKAPP: + case FEATURE_MEMORIES_ENABLED: + case FEATURE_MENU_GAMES_CAROUSEL: + case FEATURE_MILKSHAKE: + case FEATURE_MILKSHAKE_CHANGE_FEED_BY_TIMEOUT: + case FEATURE_MILKSHAKE_DISCOVER_IN_MENU: + case FEATURE_MILKSHAKE_FEED_BLUE_TITLE: + case FEATURE_MILKSHAKE_NEWS_HEADER_HIDE: + case FEATURE_MILKSHAKE_NEWS_HEADER_HIDE_SNAP: + case FEATURE_MILKSHAKE_NEWS_SCROLL_ON_BACK: + case FEATURE_MILKSHAKE_NOTIFICATIONS_RETURN: + case FEATURE_MILKSHAKE_SWITCH_THEME_ON_TAP: + case FEATURE_ML_BRANDS: + case FEATURE_ML_FEATURES: + case FEATURE_ML_MODELS_LOADING: + case FEATURE_MONEY_TRANSFERS_VKPAY: + case FEATURE_MOZJPEG: + case FEATURE_MUSIC_ARTIST_CATALOG: + case FEATURE_MUSIC_AUDIO_SERVICE: + case FEATURE_MUSIC_LIKE_IN_PLAYER: + case FEATURE_MUSIC_NEW_CATALOG: + case FEATURE_MUSIC_STOP_PLAYER_ON_TASK_REMOVAL: + case FEATURE_MUS_PUSH_RES_COUNT: + case FEATURE_NARRATIVE_SNIPPET_TYPE: + case FEATURE_NEWS_GAMES_IN_DISCOVER: + case FEATURE_NEWS_HEADER_SCROLL: + case FEATURE_NEW_FORMAT_SHOW_WPB: + case FEATURE_NOTIFICATION_ANIM: + case FEATURE_PODCASTS_PAGE: + case FEATURE_PURCHASE_MANAGER_RETRIES_ENABLED: + case FEATURE_QR_CREATE_QR: + case FEATURE_QR_DYNAMIC_FRAME: + case FEATURE_QR_SCAN_FROM_PHOTO: + case FEATURE_QR_VISION_DECODER: + case FEATURE_QUEUE_COUNTERS: + case FEATURE_REEF: + case FEATURE_ROAMING_AUTOPLAY: + case FEATURE_SHARE_MSGS_ON_INVITE: + case FEATURE_STICKERS_BOT_LINK: + case FEATURE_STICKERS_NEW_CATALOG: + case FEATURE_STORIES_AVATAR: + case FEATURE_STORIES_FEED_TYPE: + case FEATURE_STORIES_SHOW_ALWAYS: + case FEATURE_STORY_ANSWER_PUBLIC: + case FEATURE_STORY_APP_STICKER: + case FEATURE_STORY_ARCHIVE: + case FEATURE_STORY_ARCHIVE_POST: + case FEATURE_STORY_BAKGROUND_ALL: + case FEATURE_STORY_BOX: + case FEATURE_STORY_CADRE: + case FEATURE_STORY_CAMERA_TOOLTIP: + case FEATURE_STORY_EDITOR_GALLERY: + case FEATURE_STORY_EDITOR_TYPE: + case FEATURE_STORY_ENDLESS_VIDEO: + case FEATURE_STORY_FAST_REACTIONS: + case FEATURE_STORY_GIF: + case FEATURE_STORY_GROUPED: + case FEATURE_STORY_HIGH_QUALITY: + case FEATURE_STORY_MASKS_FRONTAL: + case FEATURE_STORY_MENTION_ICON: + case FEATURE_STORY_MODERN_PUBLISH: + case FEATURE_STORY_MUSIC_EDITOR: + case FEATURE_STORY_MUSIC_REPLIES: + case FEATURE_STORY_MUSIC_REPLIES_2: + case FEATURE_STORY_NEW_FRAME: + case FEATURE_STORY_ONE_TIME: + case FEATURE_STORY_PHOTO_SHARING: + case FEATURE_STORY_PHOTO_STICKER: + case FEATURE_STORY_POLLS: + case FEATURE_STORY_POST_REPOST: + case FEATURE_STORY_PRELOADING: + case FEATURE_STORY_QUESTION: + case FEATURE_STORY_QUESTION_STYLE: + case FEATURE_STORY_RLOTTIE: + case FEATURE_STORY_RLOTTIE_CACHE: + case FEATURE_STORY_SAVE_DEFAULT_ON: + case FEATURE_STORY_SEND_DIALOG_LIST: + case FEATURE_STORY_STICKER_PACK: + case FEATURE_STORY_TIME: + case FEATURE_STORY_VIEWER_CAMERA: + case FEATURE_STORY_VOICE_ANSWER: + case FEATURE_STORY_WITH_CONTEXT: + case FEATURE_SUPERAPP_MENU: + case FEATURE_TRAFFIC_SAVER: + case FEATURE_VKPAY_PAY_WITH_QR: + case FEATURE_VKPAY_WIDGET: + case FEATURE_VKUI_INTERNAL_TO_MINI_APPS: + case FEATURE_VKUI_TOKEN_CACHE: + case FEATURE_VK_APPS_SEARCH: + case FEATURE_VOIP_PREALLOCATE: + case FEATURE_VOTES_BALANCE: + case FEATURE_WEBVIEW_TOKEN_ACTIVE: + case FEATURE_WISHLIST_ENTRY_POINT: + case FEATURE_WISHLIST_MY_PROFILE: + return true; + default: + return false; + } + } public static boolean redirect(Features.Type feature){ switch(feature) { case EXPERIMENT_NEWS_DISABLE_CACHE: @@ -19,26 +140,6 @@ public class Toggles{ return milkshake(); case FEATURE_MILKSHAKE_NOTIFICATIONS_RETURN: return returnnorifs(); - - case FEATURE_SEAMLESS_CACHE: - case FEATURE_APP_ABOUT_MOBILEHELP: - case FEATURE_INAPP_UPDATES: - case FEATURE_APP_STATISTIC_FTR: - case FEATURE_APP_STATISTIC_BENCHMARK: - case FEATURE_APP_STATISTIC_PRODUCT: - case FEATURE_APP_STATISTIC_MEDIA: - case FEATURE_MUSIC_BG_OFF: - case FEATURE_GQUIC_METRICS_ENABLE: - case FEATURE_VIDEO_ADS: - case FEATURE_DEBUG_CRASH_INFO: - case FEATURE_DEBUG_FULL_MSG_LOGS: - case FEATURE_DEBUG_CYCLE_CALLS: - case FEATURE_DEBUG_STAT_NAVIGATION: - case FEATURE_DEBUG_VIDEO_RENDERER: - case FEATURE_DEBUG_LOG_CONFIG: - case FEATURE_VIDEO_RESTRICTION: - return false; - default: return true; } diff --git a/smali/smali_classes4/com/vk/toggle/FeatureManager.smali b/smali/smali_classes4/com/vk/toggle/FeatureManager.smali index a8f6ddb04..1a5c2f41a 100644 --- a/smali/smali_classes4/com/vk/toggle/FeatureManager.smali +++ b/smali/smali_classes4/com/vk/toggle/FeatureManager.smali @@ -558,11 +558,22 @@ .method public static final declared-synchronized b(Lcom/vk/toggle/Features$Type;)Z .locals 2 - ## invoke-static {p0}, Lru/vtosters/lite/utils/Toggles;->redirect(Lcom/vk/toggle/Features$Type;)Z + invoke-static {p0}, Lru/vtosters/lite/utils/Toggles;->shouldPatch(Lcom/vk/toggle/Features$Type;)Z - ## move-result v0 + move-result v0 - ## return v0 + if-eqz v0, :cond_b + + invoke-static {p0}, Lru/vtosters/lite/utils/Toggles;->redirect(Lcom/vk/toggle/Features$Type;)Z + + move-result p0 + + return p0 + + :cond_b + const p0, 0x0 + + return p0 const-class v0, Lcom/vk/toggle/FeatureManager; diff --git a/smali/smali_classes4/com/vtosters/lite/bridges/CommonAudioBridge.smali b/smali/smali_classes4/com/vtosters/lite/bridges/CommonAudioBridge.smali index 52dfd118f..20686b221 100644 --- a/smali/smali_classes4/com/vtosters/lite/bridges/CommonAudioBridge.smali +++ b/smali/smali_classes4/com/vtosters/lite/bridges/CommonAudioBridge.smali @@ -342,6 +342,8 @@ move-result v0 + const v0, 0x0 + if-eqz v0, :cond_0 .line 22