fix dockbar
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package ru.vtosters.lite.ui.fragments.dockbar;
|
||||
|
||||
import static com.vtosters.lite.R.id.*;
|
||||
import static ru.vtosters.lite.utils.Globals.getResources;
|
||||
|
||||
import android.content.res.ColorStateList;
|
||||
@@ -11,6 +12,8 @@ import android.view.MenuItem;
|
||||
import com.vk.apps.AppsFragment;
|
||||
import com.vk.core.drawable.RecoloredDrawable;
|
||||
import com.vk.core.fragments.FragmentImpl;
|
||||
import com.vk.navigation.NavigationDelegateBottom;
|
||||
import com.vk.navigation.right.RightMenu;
|
||||
import com.vtosters.lite.ui.bottomnavigation.BottomNavigationMenuView;
|
||||
import com.vtosters.lite.ui.bottomnavigation.BottomNavigationView;
|
||||
|
||||
@@ -95,16 +98,16 @@ public class DockBarInjector{
|
||||
menu.clear();
|
||||
|
||||
for(DockBarTab tab : sManager.getSelectedTabs()) {
|
||||
if(tab.id != com.vtosters.lite.R.id.tab_menu){
|
||||
if(tab.id != tab_menu){
|
||||
int itemId = tab.id;
|
||||
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;
|
||||
if(tab.id == tab_news){
|
||||
itemId = menu_newsfeed;
|
||||
} else if(tab.id == tab_discover){
|
||||
itemId = menu_search;
|
||||
} else if(tab.id == tab_feedback){
|
||||
itemId = menu_feedback;
|
||||
} else if(tab.id == tab_messages){
|
||||
itemId = menu_messages;
|
||||
}
|
||||
|
||||
MenuItem add = menu.add(0, itemId, 0, tab.titleID);
|
||||
@@ -123,16 +126,16 @@ public class DockBarInjector{
|
||||
MenuItem menuItem = menu.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 == menu_newsfeed){
|
||||
itemId = tab_news;
|
||||
} else if(itemId == menu_search){
|
||||
itemId = tab_discover;
|
||||
} else if(itemId == menu_feedback){
|
||||
itemId = tab_feedback;
|
||||
} else if(itemId == menu_messages){
|
||||
itemId = tab_messages;
|
||||
}
|
||||
if(itemId == tab.id && tab.id != com.vtosters.lite.R.id.menu_vk_pay){
|
||||
if(itemId == tab.id && tab.id != menu_vk_pay){
|
||||
menuItems.add(menuItem);
|
||||
break;
|
||||
}
|
||||
@@ -152,13 +155,13 @@ public class DockBarInjector{
|
||||
"discover"
|
||||
));
|
||||
for(DockBarTab tab : sManager.getSelectedTabs()) {
|
||||
if(tab.id == com.vtosters.lite.R.id.tab_discover){
|
||||
if(tab.id == tab_discover){
|
||||
arrayList.remove("discover");
|
||||
} else if(tab.id == com.vtosters.lite.R.id.tab_feedback){
|
||||
} else if(tab.id == tab_feedback){
|
||||
arrayList.remove("feedback");
|
||||
} else if(tab.id == com.vtosters.lite.R.id.tab_messages){
|
||||
} else if(tab.id == tab_messages){
|
||||
arrayList.remove("messages");
|
||||
} else if(tab.id == com.vtosters.lite.R.id.tab_news){
|
||||
} else if(tab.id == tab_news){
|
||||
arrayList.remove("news");
|
||||
}
|
||||
}
|
||||
@@ -195,7 +198,11 @@ public class DockBarInjector{
|
||||
return false;
|
||||
}
|
||||
|
||||
public static Class<?> interceptClick(int id){
|
||||
public static Class<?> interceptClick(int id, RightMenu rightMenu){
|
||||
if(id == tab_menu){
|
||||
rightMenu.a();
|
||||
}
|
||||
|
||||
for(DockBarTab tab : sManager.getSelectedTabs()) {
|
||||
if(id == tab.id)
|
||||
return tab.fragmentClass;
|
||||
@@ -204,6 +211,7 @@ public class DockBarInjector{
|
||||
if(id == tab.id)
|
||||
return tab.fragmentClass;
|
||||
}
|
||||
|
||||
return AppsFragment.class;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ import java.util.List;
|
||||
|
||||
import ru.vtosters.lite.utils.StreamUtils;
|
||||
|
||||
public class DockBarManager {
|
||||
public class DockBarManager{
|
||||
|
||||
public static final int MIN_SELECTED_TABS_LIMIT = 3;
|
||||
public static final int MAX_SELECTED_TABS_LIMIT = 9;
|
||||
@@ -56,27 +56,27 @@ public class DockBarManager {
|
||||
);
|
||||
private File mConfig;
|
||||
|
||||
public DockBarManager() {
|
||||
public DockBarManager(){
|
||||
init();
|
||||
}
|
||||
|
||||
public static DockBarManager getInstance() {
|
||||
public static DockBarManager getInstance(){
|
||||
return sInstance == null
|
||||
? (sInstance = new DockBarManager())
|
||||
: sInstance;
|
||||
}
|
||||
|
||||
private void init() {
|
||||
private void init(){
|
||||
mConfig = new File(getContext().getFilesDir(), "dockbar.json");
|
||||
|
||||
if (mConfig.exists()) {
|
||||
if(mConfig.exists()){
|
||||
readFromConfig();
|
||||
} else {
|
||||
fillDefault();
|
||||
}
|
||||
}
|
||||
|
||||
private void readFromConfig() {
|
||||
private void readFromConfig(){
|
||||
try {
|
||||
JSONObject jsonObj = new JSONObject(StreamUtils.readAllLines(mConfig));
|
||||
|
||||
@@ -87,8 +87,8 @@ public class DockBarManager {
|
||||
}
|
||||
}
|
||||
|
||||
private void fillList(List<DockBarTab> list, JSONArray array) throws JSONException, ClassNotFoundException {
|
||||
for (int i = 0; i < array.length(); i++) {
|
||||
private void fillList(List<DockBarTab> list, JSONArray array) throws JSONException, ClassNotFoundException{
|
||||
for(int i = 0; i < array.length(); i++) {
|
||||
JSONObject item = array.getJSONObject(i);
|
||||
DockBarTab tab = DockBarTab.valuesOf(
|
||||
item.getString("tag"),
|
||||
@@ -97,24 +97,24 @@ public class DockBarManager {
|
||||
item.getInt("id"),
|
||||
Class.forName(item.getString("fragmentClass"))
|
||||
);
|
||||
if (milkshake() && NewsfeedFragment.class == tab.fragmentClass) {
|
||||
if(milkshake() && NewsfeedFragment.class == tab.fragmentClass){
|
||||
tab.fragmentClass = HomeFragment.class;
|
||||
} else if (!milkshake() && HomeFragment.class == tab.fragmentClass) {
|
||||
} else if(!milkshake() && HomeFragment.class == tab.fragmentClass){
|
||||
tab.fragmentClass = NewsfeedFragment.class;
|
||||
}
|
||||
list.add(tab);
|
||||
}
|
||||
}
|
||||
|
||||
private void fillDefault() {
|
||||
if (vkme()) {
|
||||
private void fillDefault(){
|
||||
if(vkme()){
|
||||
mSelectedTabs.add(DockBarTab.valuesOf(
|
||||
"tab_settings",
|
||||
R.drawable.ic_settings_outline_28,
|
||||
R.string.menu_settings,
|
||||
R.id.menu_settings,
|
||||
useNewSettings()));
|
||||
if (vkme_notifs())
|
||||
if(vkme_notifs())
|
||||
mSelectedTabs.add(DockBarTab.valuesOf(
|
||||
"tab_feedback",
|
||||
R.drawable.ic_menu_notification_outline_28,
|
||||
@@ -261,7 +261,7 @@ public class DockBarManager {
|
||||
BirthdaysFragment.class));
|
||||
}
|
||||
|
||||
public void save() {
|
||||
public void save(){
|
||||
try {
|
||||
JSONObject jsonObj = new JSONObject()
|
||||
.put("selected", makeJsonArrayWithTabs(mSelectedTabs))
|
||||
@@ -273,13 +273,13 @@ public class DockBarManager {
|
||||
}
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
public void reset(){
|
||||
mConfig.deleteOnExit();
|
||||
}
|
||||
|
||||
private JSONArray makeJsonArrayWithTabs(List<DockBarTab> list) throws JSONException {
|
||||
private JSONArray makeJsonArrayWithTabs(List<DockBarTab> list) throws JSONException{
|
||||
JSONArray array = new JSONArray();
|
||||
for (DockBarTab tab : list) {
|
||||
for(DockBarTab tab : list) {
|
||||
JSONObject item = new JSONObject()
|
||||
.put("tag", tab.tag)
|
||||
.put("iconID", tab.iconID)
|
||||
@@ -291,15 +291,15 @@ public class DockBarManager {
|
||||
return array;
|
||||
}
|
||||
|
||||
public List<DockBarTab> getSelectedTabs() {
|
||||
public List<DockBarTab> getSelectedTabs(){
|
||||
return mSelectedTabs;
|
||||
}
|
||||
|
||||
public List<DockBarTab> getDisabledTabs() {
|
||||
public List<DockBarTab> getDisabledTabs(){
|
||||
return mDisabledTabs;
|
||||
}
|
||||
|
||||
public List<String> getCategoryTitles() {
|
||||
public List<String> getCategoryTitles(){
|
||||
return mCategoryTitles;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1676,7 +1676,7 @@
|
||||
.end method
|
||||
|
||||
.method private final a(IZ)Z
|
||||
.locals 4
|
||||
.locals 6
|
||||
|
||||
const v0, 0x7f0a0d14
|
||||
|
||||
@@ -1729,15 +1729,17 @@
|
||||
|
||||
.line 63
|
||||
:cond_0
|
||||
# invoke-static {p1}, Lru/vtosters/lite/ui/fragments/dockbar/DockBarInjector;->interceptClick(I)Ljava/lang/Class;
|
||||
iget-object v5, p0, Lcom/vk/navigation/NavigationDelegateBottom;->U:Lcom/vk/navigation/right/RightMenu;
|
||||
|
||||
# move-result-object p1
|
||||
invoke-static {p1, v5}, Lru/vtosters/lite/ui/fragments/dockbar/DockBarInjector;->interceptClick(ILcom/vk/navigation/right/RightMenu;)Ljava/lang/Class;
|
||||
|
||||
# const/4 v2, 0x0
|
||||
move-result-object p1
|
||||
|
||||
# const/4 v0, 0x0
|
||||
const/4 v2, 0x0
|
||||
|
||||
# goto :goto_1
|
||||
const/4 v0, 0x0
|
||||
|
||||
goto :goto_1
|
||||
|
||||
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user