diff --git a/src/com/owncloud/android/ui/activity/DrawerActivity.java b/src/com/owncloud/android/ui/activity/DrawerActivity.java index ce6bba844d05..9cbff000672e 100644 --- a/src/com/owncloud/android/ui/activity/DrawerActivity.java +++ b/src/com/owncloud/android/ui/activity/DrawerActivity.java @@ -202,16 +202,10 @@ public boolean onNavigationItemSelected(MenuItem menuItem) { switch (menuItem.getItemId()) { case R.id.nav_all_files: - menuItem.setChecked(true); - mCheckedMenuItem = menuItem.getItemId(); - MainApp.showOnlyFilesOnDevice(false); - refreshDirectory(); + refreshFileListOrOpenFileList(false, menuItem); break; case R.id.nav_on_device: - menuItem.setChecked(true); - mCheckedMenuItem = menuItem.getItemId(); - MainApp.showOnlyFilesOnDevice(true); - refreshDirectory(); + refreshFileListOrOpenFileList(true, menuItem); break; case R.id.nav_uploads: Intent uploadListIntent = new Intent(getApplicationContext(), @@ -251,6 +245,19 @@ public boolean onNavigationItemSelected(MenuItem menuItem) { } } + private void refreshFileListOrOpenFileList(boolean onDeviceOnly, MenuItem clickedItem) { + clickedItem.setChecked(true); + mCheckedMenuItem = clickedItem.getItemId(); + MainApp.showOnlyFilesOnDevice(onDeviceOnly); + if (DrawerActivity.this instanceof FileDisplayActivity) { + refreshDirectory(); + } else { + Intent i = new Intent(getApplicationContext(), FileDisplayActivity.class); + i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(i); + } + } + /** * sets the new/current account and restarts. In case the given account equals the actual/current account the * call will be ignored.