8787import com .owncloud .android .ui .activities .ActivitiesActivity ;
8888import com .owncloud .android .ui .events .AccountRemovedEvent ;
8989import com .owncloud .android .ui .events .ChangeMenuEvent ;
90- import com .owncloud .android .ui .events .DummyDrawerEvent ;
9190import com .owncloud .android .ui .events .SearchEvent ;
9291import com .owncloud .android .ui .fragment .FileDetailsSharingProcessFragment ;
9392import 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
0 commit comments