fix dockbar
This commit is contained in:
@@ -2,27 +2,12 @@ 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;
|
||||
|
||||
@@ -39,8 +24,6 @@ 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 {
|
||||
@@ -56,10 +39,6 @@ public class DockBarInjector {
|
||||
|
||||
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");
|
||||
@@ -98,40 +77,40 @@ public class DockBarInjector {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static void injectMenuFragment(Menu m) {
|
||||
public static void injectMenuFragment(Menu menu) {
|
||||
List<MenuItem> menuItems = new ArrayList<>();
|
||||
for (int i = 0; i < m.size(); i++) {
|
||||
menuItems.add(m.getItem(i));
|
||||
for (int i = 0; i < menu.size(); i++) {
|
||||
menuItems.add(menu.getItem(i));
|
||||
}
|
||||
m.clear();
|
||||
menu.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;
|
||||
if (tab.id == com.vtosters.lite.R.id.tab_news) {
|
||||
itemId = com.vtosters.lite.R.id.menu_newsfeed;
|
||||
} else if (tab.id == com.vtosters.lite.R.id.tab_discover) {
|
||||
itemId = com.vtosters.lite.R.id.menu_search;
|
||||
} else if (tab.id == com.vtosters.lite.R.id.tab_feedback) {
|
||||
itemId = com.vtosters.lite.R.id.menu_feedback;
|
||||
} else if (tab.id == com.vtosters.lite.R.id.tab_messages) {
|
||||
itemId = com.vtosters.lite.R.id.menu_messages;
|
||||
}
|
||||
MenuItem add = m.add(0, itemId, 0, tab.titleID);
|
||||
|
||||
MenuItem add = menu.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());
|
||||
MenuItem item = menu.add(menuItem.getGroupId(), menuItem.getItemId(), menuItem.getOrder(), menuItem.getTitle());
|
||||
item.setIcon(menuItem.getIcon());
|
||||
}
|
||||
menuItems.clear();
|
||||
|
||||
for (int i = 0; i < m.size(); i++) {
|
||||
MenuItem menuItem = m.getItem(i);
|
||||
for (int i = 0; i < menu.size(); i++) {
|
||||
MenuItem menuItem = menu.getItem(i);
|
||||
for (DockBarTab tab : sManager.getSelectedTabs()) {
|
||||
int itemId = menuItem.getItemId();
|
||||
if (itemId == com.vtosters.lite.R.id.menu_newsfeed) {
|
||||
@@ -151,7 +130,7 @@ public class DockBarInjector {
|
||||
}
|
||||
|
||||
for (MenuItem menuItem : menuItems) {
|
||||
m.removeItem(menuItem.getItemId());
|
||||
menu.removeItem(menuItem.getItemId());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -163,19 +142,14 @@ public class DockBarInjector {
|
||||
"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;
|
||||
if (tab.id == com.vtosters.lite.R.id.tab_discover) {
|
||||
arrayList.remove("discover");
|
||||
} else if (tab.id == com.vtosters.lite.R.id.tab_feedback) {
|
||||
arrayList.remove("feedback");
|
||||
} else if (tab.id == com.vtosters.lite.R.id.tab_messages) {
|
||||
arrayList.remove("messages");
|
||||
} else if (tab.id == com.vtosters.lite.R.id.tab_news) {
|
||||
arrayList.remove("news");
|
||||
}
|
||||
}
|
||||
try {
|
||||
@@ -212,57 +186,14 @@ public class DockBarInjector {
|
||||
}
|
||||
|
||||
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;
|
||||
for (DockBarTab tab : sManager.getSelectedTabs()) {
|
||||
if (id == tab.id)
|
||||
return tab.fragmentClass;
|
||||
}
|
||||
for (DockBarTab tab : sManager.getDisabledTabs()) {
|
||||
if (id == tab.id)
|
||||
return tab.fragmentClass;
|
||||
}
|
||||
return AppsFragment.class;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package ru.vtosters.lite.ui.fragments.dockbar;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.vk.apps.AppsFragment;
|
||||
@@ -22,6 +24,7 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.vk.notifications.NotificationsFragment;
|
||||
import com.vtosters.lite.R;
|
||||
@@ -135,6 +138,7 @@ public class DockBarManager {
|
||||
|
||||
JSONArray selected = new JSONArray();
|
||||
for (DockBarTab tab : mSelectedTabs) {
|
||||
|
||||
JSONObject item = new JSONObject()
|
||||
.put("tag", tab.tag)
|
||||
.put("iconID", tab.iconID)
|
||||
@@ -190,9 +194,11 @@ public class DockBarManager {
|
||||
DockBarTab tab = mSelectedTabs.get(curr);
|
||||
mSelectedTabs.remove(tab);
|
||||
mDisabledTabs.add(tab);
|
||||
|
||||
for (int i = mDisabledTabs.size() - 1; i > target; i--) {
|
||||
Collections.swap(mDisabledTabs, i, i - 1);
|
||||
}
|
||||
|
||||
for (int i = 0; i < target; i++) {
|
||||
Collections.swap(mDisabledTabs, i, i + 1);
|
||||
}
|
||||
@@ -203,9 +209,6 @@ public class DockBarManager {
|
||||
DockBarTab tab = mDisabledTabs.get(curr);
|
||||
mDisabledTabs.remove(tab);
|
||||
mSelectedTabs.add(tab);
|
||||
for (int i = mSelectedTabs.size() - 1; i > 0; i--) {
|
||||
Collections.swap(mSelectedTabs, i, i - 1);
|
||||
}
|
||||
}
|
||||
adapter.b(fromPosition, toPosition);// notifyItemMoved
|
||||
}
|
||||
@@ -235,7 +238,7 @@ public class DockBarManager {
|
||||
if (viewType == DockBarAdapter.SELECTED_TAB_TYPE) {
|
||||
return position - 1;
|
||||
} else if (viewType == DockBarAdapter.DISABLED_TAB_TYPE) {
|
||||
return position - (mSelectedTabs.size() + mGroups.size());
|
||||
return position - mSelectedTabs.size() - mGroups.size();
|
||||
} else if (viewType == RecyclerView.INVALID_TYPE){
|
||||
return position != 0 ? 1 : 0;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user