From 3b754b79e7d4a6a0ae6f3f884e588eeef2a958a3 Mon Sep 17 00:00:00 2001 From: Vologhat Date: Sat, 2 Apr 2022 12:04:47 +0300 Subject: [PATCH] add dockbar injector --- .../ui/fragments/dockbar/DockBarInjector.java | 262 +++++++++++++++++- .../java/ru/vtosters/lite/utils/Prefs.java | 6 +- .../BottomNavigationMenu.smali | 6 +- .../com/vk/dto/menu/MenuResponse$b.smali | 4 + .../fragments/SettingsListFragment$b.smali | 30 +- .../com/vk/menu/MenuCache.smali | 9 + .../com/vk/menu/MenuFragment.smali | 2 + .../navigation/NavigationDelegateBottom.smali | 43 ++- .../BottomNavigationMenuView.smali | 8 +- .../BottomNavigationView.smali | 6 + .../design/widget/BottomNavigationView.smali | 6 + 11 files changed, 355 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/dockbar/DockBarInjector.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/dockbar/DockBarInjector.java index 844817105..5fede7d35 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/dockbar/DockBarInjector.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/dockbar/DockBarInjector.java @@ -1,10 +1,268 @@ package ru.vtosters.lite.ui.fragments.dockbar; +import android.content.res.ColorStateList; +import android.graphics.drawable.Drawable; +import android.support.v4.f.Pools; +import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; + +import com.vk.apps.AppsFragment; +import com.vk.core.d.RecoloredDrawable; +import com.vk.core.fragments.FragmentImpl; +import com.vk.discover.DiscoverFeedFragment; +import com.vk.menu.MenuFragment; +import com.vk.newsfeed.NewsfeedFragment; +import com.vk.notifications.NotificationsFragment; +import com.vtosters.lite.fragments.GamesFragment; +import com.vtosters.lite.fragments.PhotosFragment; +import com.vtosters.lite.fragments.d.DocumentsViewFragment; +import com.vtosters.lite.fragments.f.FriendsFragment; +import com.vtosters.lite.fragments.h.GroupsFragment; +import com.vtosters.lite.fragments.lives.LivesPostListFragment; +import com.vtosters.lite.fragments.m.VideosFragment; +import com.vtosters.lite.fragments.messages.dialogs.DialogsFragment; +import com.vtosters.lite.fragments.money.MoneyTransfersFragment; +import com.vtosters.lite.ui.bottomnavigation.BottomNavigationMenuView; +import com.vtosters.lite.ui.bottomnavigation.BottomNavigationView; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import ru.vtosters.lite.ui.fragments.FeedFragment; +import ru.vtosters.lite.ui.fragments.MusicFragment; +import ru.vtosters.lite.utils.Helper; + public class DockBarInjector { + private static final DockBarManager sManager = DockBarManager.getInstance(); - public static DockBarEditHelper sDockBarEditHelper = DockBarEditHelper.getInstance(); + public static Map, Integer> injectMap() { + LinkedHashMap, Integer> map = new LinkedHashMap<>(); + for (DockBarTab tab : sManager.getSelectedTabs()) { + map.put(tab.fragmentClass, tab.id); + } + return map; + } - public static void inject() { + public static void inject(BottomNavigationView navigationView) { + Menu menu = navigationView.getMenu(); + for (int i = 0; i < menu.size(); i++) { + MenuItem item = menu.getItem(i); + Log.d("sova", "Found menuitem " + item.getItemId() + ", " + item.getGroupId() + ", " + ((Object) item.getTitle())); + } + menu.clear(); + try { + Field field = BottomNavigationMenuView.class.getDeclaredField("h"); + field.setAccessible(true); + Object synchronizedPool = field.get(null); + + Class synchronisedPoolCls = Class.forName("android.support.v4.f.Pools$a"); + + Method acquire = synchronisedPoolCls.getDeclaredMethod("a"); + + if (synchronizedPool != null) { + do { + } while (acquire.invoke(synchronizedPool) != null); + } + + } catch (NoSuchFieldException | IllegalAccessException | ClassNotFoundException | NoSuchMethodException | InvocationTargetException e) { + e.printStackTrace(); + } + + for (DockBarTab tab : sManager.getSelectedTabs()) { + MenuItem add = menu.add(0, tab.id, 0, tab.titleID); + Drawable drawable = Helper.GetContext().getResources().getDrawable(tab.iconID); + ColorStateList colorStateList = Helper.GetContext().getResources().getColorStateList(com.vtosters.lite.R.color.bottom_navigation_item); + add.setIcon((Drawable) new RecoloredDrawable(drawable, colorStateList)); + add.setShowAsAction(1); + add.setCheckable(true); + } + } + + public static int injectId(String tag) { + for (DockBarTab tab : sManager.getSelectedTabs()) { + if (tag.equals(tab.tag)) + return tab.id; + } + return 0; + } + + public static void injectMenuFragment(Menu m) { + List menuItems = new ArrayList<>(); + for (int i = 0; i < m.size(); i++) { + menuItems.add(m.getItem(i)); + } + m.clear(); + + for (DockBarTab tab : sManager.getSelectedTabs()) { + if (tab.id != com.vtosters.lite.R.id.tab_menu) { + int itemId = tab.id; + switch (tab.id) { + case com.vtosters.lite.R.id.tab_news: + itemId = com.vtosters.lite.R.id.menu_newsfeed; + case com.vtosters.lite.R.id.tab_discover: + itemId = com.vtosters.lite.R.id.menu_search; + case com.vtosters.lite.R.id.tab_feedback: + itemId = com.vtosters.lite.R.id.menu_feedback; + case com.vtosters.lite.R.id.tab_messages: + itemId = com.vtosters.lite.R.id.menu_messages; + } + MenuItem add = m.add(0, itemId, 0, tab.titleID); + add.setIcon(tab.iconID); + add.setVisible(true); + } + } + + for (MenuItem menuItem : menuItems) { + MenuItem add2 = m.add(menuItem.getGroupId(), menuItem.getItemId(), menuItem.getOrder(), menuItem.getTitle()); + add2.setIcon(menuItem.getIcon()); + } + menuItems.clear(); + + for (int i = 0; i < m.size(); i++) { + MenuItem menuItem = m.getItem(i); + for (DockBarTab tab : sManager.getSelectedTabs()) { + int itemId = menuItem.getItemId(); + if (itemId == com.vtosters.lite.R.id.menu_newsfeed) { + itemId = com.vtosters.lite.R.id.tab_news; + } else if (itemId == com.vtosters.lite.R.id.menu_search) { + itemId = com.vtosters.lite.R.id.tab_discover; + } else if (itemId == com.vtosters.lite.R.id.menu_feedback) { + itemId = com.vtosters.lite.R.id.tab_feedback; + } else if (itemId == com.vtosters.lite.R.id.menu_messages) { + itemId = com.vtosters.lite.R.id.tab_messages; + } + if (itemId == tab.id && tab.id != com.vtosters.lite.R.id.menu_vk_pay) { + menuItems.add(menuItem); + break; + } + } + } + + for (MenuItem menuItem : menuItems) { + m.removeItem(menuItem.getItemId()); + } + } + + public static JSONArray injectMenuJSON(JSONArray arr) { + List arrayList = new ArrayList(Arrays.asList( + "news", + "messages", + "feedback", + "discover" + )); + for (DockBarTab tab : sManager.getSelectedTabs()) { + switch (tab.id) { + case com.vtosters.lite.R.id.tab_discover: + arrayList.remove("discover"); + break; + case com.vtosters.lite.R.id.tab_feedback: + arrayList.remove("feedback"); + break; + case com.vtosters.lite.R.id.tab_messages: + arrayList.remove("messages"); + break; + case com.vtosters.lite.R.id.tab_news: + arrayList.remove("news"); + break; + } + } + try { + JSONArray jSONArray = new JSONArray(); + for (int i = 0; i < arrayList.size(); i++) { + jSONArray.put(new JSONObject().put("name", arrayList.get(i))); + } + for (int i2 = 0; i2 < arr.length(); i2++) { + jSONArray.put(arr.getJSONObject(i2)); + } + return jSONArray; + } catch (JSONException e) { + e.printStackTrace(); + return arr; + } + } + + public static int getItemCount() { + return sManager.getSelectedTabs().size(); + } + + public static boolean isDockOpenAllowed(FragmentImpl fragment) { + return isDockOpenAllowed(fragment.getClass()); + } + + public static boolean isDockOpenAllowed(Class cls) { + for (DockBarTab tab : sManager.getSelectedTabs()) + if (tab.fragmentClass == cls) + return true; + for (DockBarTab tab : sManager.getDisabledTabs()) + if (tab.fragmentClass == cls) + return true; + return false; + } + + public static Class interceptClick(int id) { + switch (id) { + case com.vtosters.lite.R.id.tab_news: + return NewsfeedFragment.class; + + case com.vtosters.lite.R.id.tab_discover: + return DiscoverFeedFragment.class; + + case com.vtosters.lite.R.id.tab_messages: + return DialogsFragment.class; + + case com.vtosters.lite.R.id.tab_feedback: + return NotificationsFragment.class; + + case com.vtosters.lite.R.id.tab_menu: + return MenuFragment.class; + + case com.vtosters.lite.R.id.menu_friends: + return FriendsFragment.class; + + case com.vtosters.lite.R.id.menu_groups: + return GroupsFragment.class; + + case com.vtosters.lite.R.id.menu_photos: + return PhotosFragment.class; + + case com.vtosters.lite.R.id.menu_audios: + return MusicFragment.class; + + case com.vtosters.lite.R.id.menu_videos: + return VideosFragment.class; + + case com.vtosters.lite.R.id.menu_lives: + return LivesPostListFragment.class; + + case com.vtosters.lite.R.id.menu_games: + return GamesFragment.class; + + case com.vtosters.lite.R.id.menu_fave: + return FriendsFragment.class; //! + + case com.vtosters.lite.R.id.menu_documents: + return DocumentsViewFragment.class; + + case com.vtosters.lite.R.id.menu_payments: + return MoneyTransfersFragment.class; + + case com.vtosters.lite.R.id.menu_vk_apps: + return AppsFragment.class; + + default: + return AppsFragment.class; + } } } diff --git a/app/src/main/java/ru/vtosters/lite/utils/Prefs.java b/app/src/main/java/ru/vtosters/lite/utils/Prefs.java index 4b100b161..6a238588a 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Prefs.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Prefs.java @@ -56,6 +56,7 @@ import java.util.Locale; import java.util.Scanner; import kotlin.jvm.internal.Intrinsics; +import ru.vtosters.lite.ui.fragments.dockbar.DockBarManager; public class Prefs { public static String VERSIONNAME = "2.0 DEV"; @@ -748,7 +749,8 @@ public class Prefs { } public static Class getStartFragment() { - String string = ru.vtosters.lite.utils.Helper.GetPreferences().getString("start_value", ""); + return DockBarManager.getInstance().getSelectedTabs().get(0).fragmentClass; + /*String string = ru.vtosters.lite.utils.Helper.GetPreferences().getString("start_value", ""); if (string.equals("newsfeed")) { return Feed2049.b.c(); } @@ -803,7 +805,7 @@ public class Prefs { if (string.equals("docs")) { return DocumentsViewFragment.class; } - return string.equals("brtd") ? BirthdaysFragment.class : Feed2049.b.c(); + return string.equals("brtd") ? BirthdaysFragment.class : Feed2049.b.c();*/ } public static Context BaseContextLocale(Context context) { diff --git a/smali/smali/com/vtosters/lite/ui/bottomnavigation/BottomNavigationMenu.smali b/smali/smali/com/vtosters/lite/ui/bottomnavigation/BottomNavigationMenu.smali index 089b6534b..c8bc21161 100644 --- a/smali/smali/com/vtosters/lite/ui/bottomnavigation/BottomNavigationMenu.smali +++ b/smali/smali/com/vtosters/lite/ui/bottomnavigation/BottomNavigationMenu.smali @@ -25,7 +25,11 @@ add-int/lit8 v0, v0, 0x1 - const/4 v1, 0x5 + invoke-static {}, Lru/vtosters/lite/ui/fragments/dockbar/DockBarInjector;->getItemCount()I + + move-result v1 + + #const/4 v1, 0x5 if-le v0, v1, :cond_0 diff --git a/smali/smali_classes2/com/vk/dto/menu/MenuResponse$b.smali b/smali/smali_classes2/com/vk/dto/menu/MenuResponse$b.smali index 91b3e8f10..6936c4860 100644 --- a/smali/smali_classes2/com/vk/dto/menu/MenuResponse$b.smali +++ b/smali/smali_classes2/com/vk/dto/menu/MenuResponse$b.smali @@ -55,6 +55,10 @@ if-eqz v0, :cond_1 + invoke-static {v0}, Lru/vtosters/lite/ui/fragments/dockbar/DockBarInjector;->injectMenuJSON(Lorg/json/JSONArray;)Lorg/json/JSONArray; + + move-result-object v0 + .line 38 new-instance v3, Ljava/util/ArrayList; diff --git a/smali/smali_classes2/com/vtosters/lite/fragments/SettingsListFragment$b.smali b/smali/smali_classes2/com/vtosters/lite/fragments/SettingsListFragment$b.smali index 0430e26a0..3cf9c3285 100644 --- a/smali/smali_classes2/com/vtosters/lite/fragments/SettingsListFragment$b.smali +++ b/smali/smali_classes2/com/vtosters/lite/fragments/SettingsListFragment$b.smali @@ -835,35 +835,31 @@ invoke-virtual {v0, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z + new-instance v5, Lcom/vtosters/lite/fragments/SettingsListFragment$a; + const v6, 0x7f0808cb - new-instance v5, Lcom/vtosters/lite/fragments/SettingsListFragment$a; + iget-object v7, p0, Lcom/vtosters/lite/fragments/SettingsListFragment$b;->a:Lcom/vtosters/lite/fragments/SettingsListFragment; - const v6, 0x7f0808cb + invoke-static {v7}, Lcom/vtosters/lite/fragments/SettingsListFragment;->a(Lcom/vtosters/lite/fragments/SettingsListFragment;)I - iget-object v7, p0, Lcom/vtosters/lite/fragments/SettingsListFragment$b;->a:Lcom/vtosters/lite/fragments/SettingsListFragment; + move-result v7 - invoke-static {v7}, Lcom/vtosters/lite/fragments/SettingsListFragment;->a(Lcom/vtosters/lite/fragments/SettingsListFragment;)I + const v8, 0x7f110fea - move-result v7 + invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; - const v8, 0x7f110fea + move-result-object v8 - invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + const-class v9, Lru/vtosters/lite/ui/fragments/dockbar/DockBarFragment; - move-result-object v8 + invoke-direct {v5, v6, v7, v8, v9}, Lcom/vtosters/lite/fragments/SettingsListFragment$a;->(IILjava/lang/Object;Ljava/lang/Class;)V - const-class v9, Lru/vtosters/lite/ui/fragments/dockbar/DockBarEditFragment; - - invoke-direct {v5, v6, v7, v8, v9}, Lcom/vtosters/lite/fragments/SettingsListFragment$a;->(IILjava/lang/Object;Ljava/lang/Class;)V - - invoke-static {v4, v5}, Lcom/vtosters/lite/ui/holder/RecyclerSectionAdapter$a;->a(ILjava/lang/Object;)Lcom/vtosters/lite/ui/holder/RecyclerSectionAdapter$a; - - move-result-object v5 - - invoke-virtual {v0, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z + invoke-static {v4, v5}, Lcom/vtosters/lite/ui/holder/RecyclerSectionAdapter$a;->a(ILjava/lang/Object;)Lcom/vtosters/lite/ui/holder/RecyclerSectionAdapter$a; + move-result-object v5 + invoke-virtual {v0, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z new-instance v5, Lcom/vtosters/lite/fragments/SettingsListFragment$a; diff --git a/smali/smali_classes4/com/vk/menu/MenuCache.smali b/smali/smali_classes4/com/vk/menu/MenuCache.smali index 1894524d1..b376a2241 100644 --- a/smali/smali_classes4/com/vk/menu/MenuCache.smali +++ b/smali/smali_classes4/com/vk/menu/MenuCache.smali @@ -288,6 +288,15 @@ .method public final a(Ljava/lang/String;)I .locals 1 + invoke-static {p1}, Lru/vtosters/lite/ui/fragments/dockbar/DockBarInjector;->injectId(Ljava/lang/String;)I + + move-result v0 + + if-eqz v0, :cond_exterminatus + + return v0 + + :cond_exterminatus const-string v0, "key" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->b(Ljava/lang/Object;Ljava/lang/String;)V diff --git a/smali/smali_classes4/com/vk/menu/MenuFragment.smali b/smali/smali_classes4/com/vk/menu/MenuFragment.smali index 79a18105f..c9aa05edd 100644 --- a/smali/smali_classes4/com/vk/menu/MenuFragment.smali +++ b/smali/smali_classes4/com/vk/menu/MenuFragment.smali @@ -1281,6 +1281,8 @@ invoke-virtual {v1, v5, v6}, Landroid/view/MenuInflater;->inflate(ILandroid/view/Menu;)V + invoke-static {v6}, Lru/vtosters/lite/ui/fragments/dockbar/DockBarInjector;->injectMenuFragment(Landroid/view/Menu;)V + .line 145 invoke-direct {p0, p1}, Lcom/vk/menu/MenuFragment;->a(Landroid/support/v7/view/menu/MenuBuilder;)Ljava/util/List; diff --git a/smali/smali_classes4/com/vk/navigation/NavigationDelegateBottom.smali b/smali/smali_classes4/com/vk/navigation/NavigationDelegateBottom.smali index a36e66b24..212881293 100644 --- a/smali/smali_classes4/com/vk/navigation/NavigationDelegateBottom.smali +++ b/smali/smali_classes4/com/vk/navigation/NavigationDelegateBottom.smali @@ -236,6 +236,10 @@ move-result-object v0 + invoke-static {}, Lru/vtosters/lite/ui/fragments/dockbar/DockBarInjector;->injectMap()Ljava/util/Map; + + move-result-object v0 + sput-object v0, Lcom/vk/navigation/NavigationDelegateBottom;->z:Ljava/util/Map; return-void @@ -520,6 +524,8 @@ iput-object v2, p0, Lcom/vk/navigation/NavigationDelegateBottom;->f:Lcom/vtosters/lite/ui/bottomnavigation/BottomNavigationView; + invoke-static {v2}, Lru/vtosters/lite/ui/fragments/dockbar/DockBarInjector;->inject(Lcom/vtosters/lite/ui/bottomnavigation/BottomNavigationView;)V + .line 439 invoke-virtual {p0}, Lcom/vk/navigation/NavigationDelegateBottom;->m()Landroid/app/Activity; @@ -845,14 +851,24 @@ .line 520 :catch_0 - sget-object v0, Lcom/vk/analytics/eventtracking/VkTracker;->b:Lcom/vk/analytics/eventtracking/VkTracker; + #sget-object v0, Lcom/vk/analytics/eventtracking/VkTracker;->b:Lcom/vk/analytics/eventtracking/VkTracker; - const-string v2, "ERROR.IM.IPC_REDIRECT_FAILED" + #const-string v2, "ERROR.IM.IPC_REDIRECT_FAILED" - invoke-virtual {v0, v2}, Lcom/vk/analytics/eventtracking/VkTracker;->a(Ljava/lang/String;)V + #invoke-virtual {v0, v2}, Lcom/vk/analytics/eventtracking/VkTracker;->a(Ljava/lang/String;)V .line 522 :cond_0 + invoke-static {p1}, Lru/vtosters/lite/ui/fragments/dockbar/DockBarInjector;->interceptClick(I)Ljava/lang/Class; + + move-result-object p1 + + const/4 v2, 0x0 + + const/4 v0, 0x0 + + goto :goto_0 + invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v0 @@ -1413,6 +1429,12 @@ .method private final d(Lcom/vk/core/fragments/FragmentImpl;)Z .locals 1 + invoke-static {p1}, Lru/vtosters/lite/ui/fragments/dockbar/DockBarInjector;->isDockOpenAllowed(Lcom/vk/core/fragments/FragmentImpl;)Z + + move-result v0 + + return v0 + .line 686 sget-object v0, Lcom/vk/navigation/NavigationDelegateBottom;->z:Ljava/util/Map; @@ -2646,6 +2668,21 @@ .method public a(Lcom/vk/core/fragments/FragmentImpl;)Z .locals 1 + invoke-static {p1}, Lru/vtosters/lite/ui/fragments/dockbar/DockBarInjector;->isDockOpenAllowed(Lcom/vk/core/fragments/FragmentImpl;)Z + + move-result p1 + + if-nez p1, :cond_0 + + const/4 p1, 0x1 + + return p1 + + :cond_0 + const/4 p1, 0x0 + + return p1 + const-string v0, "fragment" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->b(Ljava/lang/Object;Ljava/lang/String;)V diff --git a/smali/smali_classes4/com/vtosters/lite/ui/bottomnavigation/BottomNavigationMenuView.smali b/smali/smali_classes4/com/vtosters/lite/ui/bottomnavigation/BottomNavigationMenuView.smali index 08a885187..c81a41e1c 100644 --- a/smali/smali_classes4/com/vtosters/lite/ui/bottomnavigation/BottomNavigationMenuView.smali +++ b/smali/smali_classes4/com/vtosters/lite/ui/bottomnavigation/BottomNavigationMenuView.smali @@ -61,7 +61,9 @@ .line 32 new-instance v0, Landroid/support/v4/f/Pools$c; - const/4 v1, 0x5 + invoke-static {}, Lru/vtosters/lite/ui/fragments/dockbar/DockBarInjector;->getItemCount()I + + move-result v1 invoke-direct {v0, v1}, Landroid/support/v4/f/Pools$c;->(I)V @@ -186,7 +188,9 @@ iput-object p1, p0, Lcom/vtosters/lite/ui/bottomnavigation/BottomNavigationMenuView;->f:Landroid/view/View$OnClickListener; - const/4 p1, 0x5 + invoke-static {}, Lru/vtosters/lite/ui/fragments/dockbar/DockBarInjector;->getItemCount()I + + move-result v1 .line 73 new-array p1, p1, [I diff --git a/smali/smali_classes4/com/vtosters/lite/ui/bottomnavigation/BottomNavigationView.smali b/smali/smali_classes4/com/vtosters/lite/ui/bottomnavigation/BottomNavigationView.smali index 6bba0ffd9..6a737d0f2 100644 --- a/smali/smali_classes4/com/vtosters/lite/ui/bottomnavigation/BottomNavigationView.smali +++ b/smali/smali_classes4/com/vtosters/lite/ui/bottomnavigation/BottomNavigationView.smali @@ -772,6 +772,12 @@ .method public getMaxItemCount()I .locals 1 + invoke-static {}, Lru/vtosters/lite/ui/fragments/dockbar/DockBarInjector;->getItemCount()I + + move-result v0 + + return v0 + const/4 v0, 0x5 return v0 diff --git a/smali/smali_classes5/android/support/design/widget/BottomNavigationView.smali b/smali/smali_classes5/android/support/design/widget/BottomNavigationView.smali index a11de3d5d..76f7599ea 100644 --- a/smali/smali_classes5/android/support/design/widget/BottomNavigationView.smali +++ b/smali/smali_classes5/android/support/design/widget/BottomNavigationView.smali @@ -132,6 +132,12 @@ .method public getMaxItemCount()I .locals 1 + invoke-static {}, Lru/vtosters/lite/ui/fragments/dockbar/DockBarInjector;->getItemCount()I + + move-result v0 + + return v0 + const/4 v0, 0x5 return v0