Skip to content

Commit d0a8554

Browse files
committed
fix multiple item highlight
Signed-off-by: alperozturk <[email protected]>
1 parent 4ce59d0 commit d0a8554

File tree

2 files changed

+34
-33
lines changed

2 files changed

+34
-33
lines changed

app/src/main/java/com/owncloud/android/ui/activity/DrawerActivity.java

Lines changed: 34 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@
8787
import com.owncloud.android.ui.activities.ActivitiesActivity;
8888
import com.owncloud.android.ui.events.AccountRemovedEvent;
8989
import com.owncloud.android.ui.events.ChangeMenuEvent;
90-
import com.owncloud.android.ui.events.DummyDrawerEvent;
9190
import com.owncloud.android.ui.events.SearchEvent;
9291
import com.owncloud.android.ui.fragment.FileDetailsSharingProcessFragment;
9392
import com.owncloud.android.ui.fragment.GalleryFragment;
@@ -177,6 +176,8 @@ public abstract class DrawerActivity extends ToolbarActivity
177176
*/
178177
public static int menuItemId = Menu.NONE;
179178

179+
public static int previousMenuItemId = Menu.NONE;
180+
180181
/**
181182
* container layout of the quota view.
182183
*/
@@ -263,9 +264,22 @@ private void checkAssistantBottomNavigationMenu() {
263264
.setVisible(isAssistantAvailable);
264265
}
265266

267+
private void openFavoritesTab(int menuItemId) {
268+
resetOnlyPersonalAndOnDevice();
269+
setupToolbar();
270+
handleSearchEvents(new SearchEvent("", SearchRemoteOperation.SearchType.FAVORITE_SEARCH), menuItemId);
271+
}
272+
273+
private void openMediaTab(int menuItemId) {
274+
resetOnlyPersonalAndOnDevice();
275+
setupToolbar();
276+
startPhotoSearch(menuItemId);
277+
}
278+
266279
@SuppressFBWarnings("RV")
267280
private void handleBottomNavigationViewClicks() {
268281
bottomNavigationView.setOnItemSelectedListener(menuItem -> {
282+
previousMenuItemId = menuItemId;
269283
menuItemId = menuItem.getItemId();
270284

271285
exitSelectionMode();
@@ -278,14 +292,11 @@ private void handleBottomNavigationViewClicks() {
278292
}
279293
EventBus.getDefault().post(new ChangeMenuEvent());
280294
} else if (menuItemId == R.id.nav_favorites) {
281-
resetOnlyPersonalAndOnDevice();
282-
setupToolbar();
283-
handleSearchEvents(new SearchEvent("", SearchRemoteOperation.SearchType.FAVORITE_SEARCH), menuItemId);
295+
openFavoritesTab(menuItem.getItemId());
284296
} else if (menuItemId == R.id.nav_assistant && !(this instanceof ComposeActivity)) {
285297
startComposeActivity(new ComposeDestination.AssistantScreen(null), R.string.assistant_screen_top_bar_title);
286298
} else if (menuItemId == R.id.nav_gallery) {
287-
setupToolbar();
288-
startPhotoSearch(menuItem.getItemId());
299+
openMediaTab(menuItem.getItemId());
289300
}
290301

291302
// Remove extra icon from the action bar
@@ -536,12 +547,8 @@ private void filterDrawerMenu(final Menu menu, @NonNull final User user) {
536547
DrawerMenuUtil.removeMenuItem(menu, R.id.nav_logout, !getResources().getBoolean(R.bool.show_drawer_logout));
537548
}
538549

539-
@Subscribe(threadMode = ThreadMode.MAIN)
540-
public void onMessageEvent(DummyDrawerEvent event) {
541-
unsetAllDrawerMenuItems();
542-
}
543-
544550
private void onNavigationItemClicked(final MenuItem menuItem) {
551+
previousMenuItemId = menuItemId;
545552
int itemId = menuItem.getItemId();
546553

547554
// Settings screen cannot display drawer menu thus no need to highlight
@@ -571,13 +578,9 @@ private void onNavigationItemClicked(final MenuItem menuItem) {
571578

572579
closeDrawer();
573580
} else if (itemId == R.id.nav_favorites) {
574-
resetOnlyPersonalAndOnDevice();
575-
setupToolbar();
576-
handleSearchEvents(new SearchEvent("", SearchRemoteOperation.SearchType.FAVORITE_SEARCH), menuItem.getItemId());
581+
openFavoritesTab(menuItem.getItemId());
577582
} else if (itemId == R.id.nav_gallery) {
578-
resetOnlyPersonalAndOnDevice();
579-
setupToolbar();
580-
startPhotoSearch(menuItem.getItemId());
583+
openMediaTab(menuItem.getItemId());
581584
} else if (itemId == R.id.nav_on_device) {
582585
showOnDeviceFiles();
583586
} else if (itemId == R.id.nav_uploads) {
@@ -874,14 +877,18 @@ private void setQuotaInformation(long usedSpace, long totalSpace, int relative,
874877

875878
private void unsetAllDrawerMenuItems() {
876879
if (drawerNavigationView != null) {
877-
drawerNavigationView.getMenu();
878880
Menu menu = drawerNavigationView.getMenu();
879881
for (int i = 0; i < menu.size(); i++) {
880882
menu.getItem(i).setChecked(false);
881883
}
882884
}
883885

884-
menuItemId = Menu.NONE;
886+
if (bottomNavigationView != null) {
887+
Menu menu = bottomNavigationView.getMenu();
888+
for (int i = 0; i < menu.size(); i++) {
889+
menu.getItem(i).setChecked(false);
890+
}
891+
}
885892
}
886893

887894
private void updateQuotaLink() {
@@ -957,12 +964,19 @@ public void onLoadFailed(@Nullable Drawable errorDrawable) {
957964
*/
958965
@SuppressFBWarnings("RV")
959966
public void setNavigationViewItemChecked() {
967+
unsetAllDrawerMenuItems();
968+
969+
// Don't check any items
970+
if (menuItemId == Menu.NONE) {
971+
return;
972+
}
973+
960974
if (drawerNavigationView != null) {
961975
MenuItem menuItem = drawerNavigationView.getMenu().findItem(menuItemId);
962976

963977
if (menuItem != null && !menuItem.isChecked()) {
964-
viewThemeUtils.platform.colorNavigationView(drawerNavigationView);
965978
menuItem.setChecked(true);
979+
viewThemeUtils.platform.colorNavigationView(drawerNavigationView);
966980
}
967981
}
968982

app/src/main/java/com/owncloud/android/ui/events/DummyDrawerEvent.kt

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)