Skip to content

Commit d4c3934

Browse files
Merge pull request #15119 from nextcloud/bugfix/configure-toolbar-file-display-activity-correctly
BugFix - Configure FileDisplayActivity's Toolbar
2 parents 9041bed + 5339c3c commit d4c3934

3 files changed

Lines changed: 67 additions & 18 deletions

File tree

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

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,7 @@ private void handleBottomNavigationViewClicks() {
259259
menuItemId = menuItem.getItemId();
260260

261261
exitSelectionMode();
262+
resetOnlyPersonalAndOnDevice();
262263

263264
if (menuItemId == R.id.nav_all_files) {
264265
showFiles(false,false);
@@ -267,10 +268,12 @@ private void handleBottomNavigationViewClicks() {
267268
}
268269
EventBus.getDefault().post(new ChangeMenuEvent());
269270
} else if (menuItemId == R.id.nav_favorites) {
271+
setupToolbar();
270272
handleSearchEvents(new SearchEvent("", SearchRemoteOperation.SearchType.FAVORITE_SEARCH), menuItemId);
271273
} else if (menuItemId == R.id.nav_assistant && !(this instanceof ComposeActivity)) {
272274
startComposeActivity(ComposeDestination.AssistantScreen, R.string.assistant_screen_top_bar_title);
273275
} else if (menuItemId == R.id.nav_gallery) {
276+
setupToolbar();
274277
startPhotoSearch(menuItem.getItemId());
275278
}
276279

@@ -561,13 +564,13 @@ private void onNavigationItemClicked(final MenuItem menuItem) {
561564
setNavigationViewItemChecked();
562565

563566
if (itemId == R.id.nav_all_files || itemId == R.id.nav_personal_files) {
564-
if (this instanceof FileDisplayActivity &&
565-
!(((FileDisplayActivity) this).getLeftFragment() instanceof GalleryFragment) &&
566-
!(((FileDisplayActivity) this).getLeftFragment() instanceof SharedListFragment) &&
567-
!(((FileDisplayActivity) this).getLeftFragment() instanceof GroupfolderListFragment) &&
568-
!(((FileDisplayActivity) this).getLeftFragment() instanceof PreviewTextStringFragment)) {
567+
if (this instanceof FileDisplayActivity fda &&
568+
!(fda.getLeftFragment() instanceof GalleryFragment) &&
569+
!(fda.getLeftFragment() instanceof SharedListFragment) &&
570+
!(fda.getLeftFragment() instanceof GroupfolderListFragment) &&
571+
!(fda.getLeftFragment() instanceof PreviewTextStringFragment)) {
569572
showFiles(false, itemId == R.id.nav_personal_files);
570-
((FileDisplayActivity) this).browseToRoot();
573+
fda.browseToRoot();
571574
EventBus.getDefault().post(new ChangeMenuEvent());
572575
} else {
573576
MainApp.showOnlyFilesOnDevice(false);
@@ -585,24 +588,33 @@ private void onNavigationItemClicked(final MenuItem menuItem) {
585588

586589
closeDrawer();
587590
} else if (itemId == R.id.nav_favorites) {
588-
handleSearchEvents(new SearchEvent("", SearchRemoteOperation.SearchType.FAVORITE_SEARCH),
589-
menuItem.getItemId());
591+
resetOnlyPersonalAndOnDevice();
592+
setupToolbar();
593+
handleSearchEvents(new SearchEvent("", SearchRemoteOperation.SearchType.FAVORITE_SEARCH), menuItem.getItemId());
590594
} else if (itemId == R.id.nav_gallery) {
595+
resetOnlyPersonalAndOnDevice();
596+
setupToolbar();
591597
startPhotoSearch(menuItem.getItemId());
592598
} else if (itemId == R.id.nav_on_device) {
593599
EventBus.getDefault().post(new ChangeMenuEvent());
594600
showFiles(true, false);
595601
} else if (itemId == R.id.nav_uploads) {
602+
resetOnlyPersonalAndOnDevice();
596603
startActivity(UploadListActivity.class, Intent.FLAG_ACTIVITY_CLEAR_TOP);
597604
} else if (itemId == R.id.nav_trashbin) {
605+
resetOnlyPersonalAndOnDevice();
598606
startActivity(TrashbinActivity.class, Intent.FLAG_ACTIVITY_CLEAR_TOP);
599607
} else if (itemId == R.id.nav_activity) {
608+
resetOnlyPersonalAndOnDevice();
600609
startActivity(ActivitiesActivity.class, Intent.FLAG_ACTIVITY_CLEAR_TOP);
601610
} else if (itemId == R.id.nav_settings) {
611+
resetOnlyPersonalAndOnDevice();
602612
startActivity(SettingsActivity.class);
603613
} else if (itemId == R.id.nav_community) {
614+
resetOnlyPersonalAndOnDevice();
604615
startActivity(CommunityActivity.class);
605616
} else if (itemId == R.id.nav_logout) {
617+
resetOnlyPersonalAndOnDevice();
606618
menuItemId = Menu.NONE;
607619
MenuItem isNewMenuItemChecked = menuItem.setChecked(false);
608620
Log_OC.d(TAG,"onNavigationItemClicked nav_logout setChecked " + isNewMenuItemChecked);
@@ -611,13 +623,16 @@ private void onNavigationItemClicked(final MenuItem menuItem) {
611623
UserInfoActivity.openAccountRemovalDialog(optionalUser.get(), getSupportFragmentManager());
612624
}
613625
} else if (itemId == R.id.nav_shared) {
626+
resetOnlyPersonalAndOnDevice();
614627
startSharedSearch(menuItem);
615628
} else if (itemId == R.id.nav_recently_modified) {
629+
resetOnlyPersonalAndOnDevice();
616630
startRecentlyModifiedSearch(menuItem);
617631
} else if (itemId == R.id.nav_assistant) {
632+
resetOnlyPersonalAndOnDevice();
618633
startComposeActivity(ComposeDestination.AssistantScreen, R.string.assistant_screen_top_bar_title);
619634
} else if (itemId == R.id.nav_groupfolders) {
620-
MainApp.showOnlyFilesOnDevice(false);
635+
resetOnlyPersonalAndOnDevice();
621636
Intent intent = new Intent(getApplicationContext(), FileDisplayActivity.class);
622637
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
623638
intent.setAction(FileDisplayActivity.LIST_GROUPFOLDERS);
@@ -1221,6 +1236,11 @@ private void restart() {
12211236
fetchExternalLinks(false);
12221237
}
12231238

1239+
private void resetOnlyPersonalAndOnDevice() {
1240+
MainApp.showOnlyFilesOnDevice(false);
1241+
MainApp.showOnlyPersonalFiles(false);
1242+
}
1243+
12241244
/**
12251245
* show the file list to the user.
12261246
*

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

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1199,35 +1199,60 @@ protected void onResume() {
11991199
mDownloadFinishReceiver = new DownloadFinishReceiver();
12001200
localBroadcastManager.registerReceiver(mDownloadFinishReceiver, downloadIntentFilter);
12011201

1202+
checkAndSetMenuItemId();
1203+
12021204
if (menuItemId == Menu.NONE) {
12031205
setDrawerAllFiles();
12041206
} else {
1205-
if (menuItemId == R.id.nav_all_files || menuItemId == R.id.nav_personal_files) {
1206-
setupHomeSearchToolbarWithSortAndListButtons();
1207-
} else {
1208-
setupToolbar();
1209-
}
1207+
configureToolbar();
12101208
}
12111209

1212-
if (ocFileListFragment instanceof GalleryFragment) {
1213-
updateActionBarTitleAndHomeButtonByString(getString(R.string.drawer_item_gallery));
1214-
}
12151210
//show in-app review dialog to user
12161211
inAppReviewHelper.showInAppReview(this);
12171212

12181213
checkNotifications();
12191214

12201215
Log_OC.v(TAG, "onResume() end");
12211216
}
1222-
private void setDrawerAllFiles() {
1217+
1218+
private void checkAndSetMenuItemId() {
12231219
if (MainApp.isOnlyPersonFiles()) {
12241220
menuItemId = R.id.nav_personal_files;
12251221
} else if (MainApp.isOnlyOnDevice()) {
12261222
menuItemId = R.id.nav_on_device;
12271223
} else if (menuItemId == Menu.NONE) {
12281224
menuItemId = R.id.nav_all_files;
12291225
}
1226+
}
12301227

1228+
private void configureToolbar() {
1229+
// Other activities menuItemIds must be excluded to show correct toolbar.
1230+
final var excludedMenuItemIds = new ArrayList<>();
1231+
excludedMenuItemIds.add(R.id.nav_community);
1232+
excludedMenuItemIds.add(R.id.nav_trashbin);
1233+
excludedMenuItemIds.add(R.id.nav_uploads);
1234+
excludedMenuItemIds.add(R.id.nav_activity);
1235+
excludedMenuItemIds.add(R.id.nav_settings);
1236+
excludedMenuItemIds.add(R.id.nav_assistant);
1237+
1238+
boolean isSearchEventExists = false;
1239+
if (getLeftFragment() instanceof OCFileListFragment fileListFragment) {
1240+
isSearchEventExists = (fileListFragment.getSearchEvent() != null);
1241+
}
1242+
1243+
if (!(getLeftFragment() instanceof GalleryFragment) &&
1244+
(!isSearchEventExists ||
1245+
menuItemId == R.id.nav_all_files ||
1246+
menuItemId == R.id.nav_personal_files ||
1247+
excludedMenuItemIds.contains(menuItemId))) {
1248+
setupHomeSearchToolbarWithSortAndListButtons();
1249+
} else {
1250+
setupToolbar();
1251+
}
1252+
}
1253+
1254+
private void setDrawerAllFiles() {
1255+
checkAndSetMenuItemId();
12311256
setNavigationViewItemChecked();
12321257

12331258
if (MainApp.isOnlyOnDevice()) {

app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2300,4 +2300,8 @@ private boolean isAPKorAAB(Set<OCFile> files) {
23002300
}
23012301
return false;
23022302
}
2303+
2304+
public SearchEvent getSearchEvent() {
2305+
return searchEvent;
2306+
}
23032307
}

0 commit comments

Comments
 (0)