Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
6c81ab7
fix shared tab
alperozturk96 Dec 5, 2025
4ae6a7e
fix: shared tab action bar
alperozturk96 Dec 8, 2025
a130410
rely on existing architecture
alperozturk96 Dec 8, 2025
b3934dc
fix crash
alperozturk96 Dec 8, 2025
d076a1d
override updateActionBarTitleAndHomeButton with search type
alperozturk96 Dec 8, 2025
6809f6d
remove duplicated calls
alperozturk96 Dec 8, 2025
70a2c85
while setting toolbar check toolbar style as well
alperozturk96 Dec 8, 2025
4fd3044
fix back button action
alperozturk96 Dec 8, 2025
8058f1b
fix overriding calculated behaviour via drawer slide
alperozturk96 Dec 8, 2025
e666068
fix codacy
alperozturk96 Dec 8, 2025
b471ff1
fix on device action bar
alperozturk96 Dec 8, 2025
a91774a
fix multiple item highlight
alperozturk96 Dec 8, 2025
f51df53
fix back button behaviour from trashbin
alperozturk96 Dec 8, 2025
0c0ece2
fix file name in action bar
alperozturk96 Dec 9, 2025
faf6745
fix lint
alperozturk96 Dec 9, 2025
c17d5e1
reset file depth for bottom navigation view as well
alperozturk96 Dec 9, 2025
908587f
fix image preview
alperozturk96 Dec 9, 2025
6f44834
fix: search fragment value
alperozturk96 Dec 10, 2025
1fb9773
fix FileDetailsFragmentBinding.progressBlock' on a null object reference
alperozturk96 Dec 12, 2025
625085e
fix getPreviousFile
alperozturk96 Dec 12, 2025
c3e42ed
fix back press from file details
alperozturk96 Dec 13, 2025
85b2d0f
fix back press from file details
alperozturk96 Dec 13, 2025
0716f79
fix action bar press back from unified search fragment and when fda c…
alperozturk96 Dec 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 0 additions & 38 deletions app/src/main/java/com/nextcloud/model/ToolbarItem.kt

This file was deleted.

197 changes: 116 additions & 81 deletions app/src/main/java/com/owncloud/android/ui/activity/DrawerActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,6 @@
import com.owncloud.android.ui.activities.ActivitiesActivity;
import com.owncloud.android.ui.events.AccountRemovedEvent;
import com.owncloud.android.ui.events.ChangeMenuEvent;
import com.owncloud.android.ui.events.DummyDrawerEvent;
import com.owncloud.android.ui.events.SearchEvent;
import com.owncloud.android.ui.fragment.FileDetailsSharingProcessFragment;
import com.owncloud.android.ui.fragment.GalleryFragment;
Expand Down Expand Up @@ -177,6 +176,8 @@ public abstract class DrawerActivity extends ToolbarActivity
*/
public static int menuItemId = Menu.NONE;

private static int previousMenuItemId = Menu.NONE;

/**
* container layout of the quota view.
*/
Expand Down Expand Up @@ -263,39 +264,17 @@ private void checkAssistantBottomNavigationMenu() {
.setVisible(isAssistantAvailable);
}

@SuppressFBWarnings("RV")
private void handleBottomNavigationViewClicks() {
bottomNavigationView.setOnItemSelectedListener(menuItem -> {
menuItemId = menuItem.getItemId();

exitSelectionMode();
resetOnlyPersonalAndOnDevice();

if (menuItemId == R.id.nav_all_files) {
showFiles(false,false);
if (this instanceof FileDisplayActivity fda) {
fda.browseToRoot();
}
EventBus.getDefault().post(new ChangeMenuEvent());
} else if (menuItemId == R.id.nav_favorites) {
setupToolbar();
handleSearchEvents(new SearchEvent("", SearchRemoteOperation.SearchType.FAVORITE_SEARCH), menuItemId);
} else if (menuItemId == R.id.nav_assistant && !(this instanceof ComposeActivity)) {
startComposeActivity(new ComposeDestination.AssistantScreen(null), R.string.assistant_screen_top_bar_title);
} else if (menuItemId == R.id.nav_gallery) {
setupToolbar();
startPhotoSearch(menuItem.getItemId());
}

// Remove extra icon from the action bar
if (getSupportActionBar() != null) {
getSupportActionBar().setIcon(null);
}

setNavigationViewItemChecked();
private void openFavoritesTab() {
resetOnlyPersonalAndOnDevice();
setupToolbar();
SearchEvent searchEvent = new SearchEvent("", SearchRemoteOperation.SearchType.FAVORITE_SEARCH);
launchActivityForSearch(searchEvent, R.id.nav_favorites);
}

return false;
});
private void openMediaTab(int menuItemId) {
resetOnlyPersonalAndOnDevice();
setupToolbar();
startPhotoSearch(menuItemId);
}

@Nullable
Expand All @@ -320,16 +299,10 @@ private void exitSelectionMode() {
}
}

/**
* initializes and sets up the drawer toggle.
*/
private void setupDrawerToggle() {
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.drawer_open, R.string.drawer_close) {
/** Called when a drawer has settled in a completely closed state. */
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
supportInvalidateOptionsMenu();
mDrawerToggle.setDrawerIndicatorEnabled(isDrawerIndicatorAvailable());

if (pendingRunnable != null) {
new Handler().post(pendingRunnable);
Expand All @@ -338,23 +311,12 @@ public void onDrawerClosed(View view) {

closeDrawer();
}

/** Called when a drawer has settled in a completely open state. */
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
mDrawerToggle.setDrawerIndicatorEnabled(true);
supportInvalidateOptionsMenu();
}
};

// Set the drawer toggle as the DrawerListener
mDrawerLayout.addDrawerListener(mDrawerToggle);
mDrawerToggle.setDrawerIndicatorEnabled(true);
mDrawerToggle.setDrawerSlideAnimationEnabled(true);
Drawable backArrow = ResourcesCompat.getDrawable(getResources(),
R.drawable.ic_arrow_back,
null);

final Drawable backArrow = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_arrow_back, null);
if (backArrow != null) {
viewThemeUtils.platform.tintToolbarArrowDrawable(this, mDrawerToggle, backArrow);
}
Expand Down Expand Up @@ -552,12 +514,9 @@ private void filterDrawerMenu(final Menu menu, @NonNull final User user) {
DrawerMenuUtil.removeMenuItem(menu, R.id.nav_logout, !getResources().getBoolean(R.bool.show_drawer_logout));
}

@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(DummyDrawerEvent event) {
unsetAllDrawerMenuItems();
}

// region navigation item click
private void onNavigationItemClicked(final MenuItem menuItem) {
setPreviousMenuItemId(menuItemId);
int itemId = menuItem.getItemId();

// Settings screen cannot display drawer menu thus no need to highlight
Expand Down Expand Up @@ -587,16 +546,11 @@ private void onNavigationItemClicked(final MenuItem menuItem) {

closeDrawer();
} else if (itemId == R.id.nav_favorites) {
resetOnlyPersonalAndOnDevice();
setupToolbar();
handleSearchEvents(new SearchEvent("", SearchRemoteOperation.SearchType.FAVORITE_SEARCH), menuItem.getItemId());
openFavoritesTab();
} else if (itemId == R.id.nav_gallery) {
resetOnlyPersonalAndOnDevice();
setupToolbar();
startPhotoSearch(menuItem.getItemId());
openMediaTab(menuItem.getItemId());
} else if (itemId == R.id.nav_on_device) {
EventBus.getDefault().post(new ChangeMenuEvent());
showFiles(true, false);
showOnDeviceFiles();
} else if (itemId == R.id.nav_uploads) {
resetOnlyPersonalAndOnDevice();
startActivity(UploadListActivity.class, Intent.FLAG_ACTIVITY_CLEAR_TOP);
Expand Down Expand Up @@ -645,6 +599,53 @@ private void onNavigationItemClicked(final MenuItem menuItem) {
Log_OC.w(TAG, "Unknown drawer menu item clicked: " + menuItem.getTitle());
}
}

resetFileDepthAndConfigureMenuItem();
}

@SuppressFBWarnings("RV")
private void handleBottomNavigationViewClicks() {
bottomNavigationView.setOnItemSelectedListener(menuItem -> {
setPreviousMenuItemId(menuItemId);
menuItemId = menuItem.getItemId();

exitSelectionMode();
resetOnlyPersonalAndOnDevice();

if (menuItemId == R.id.nav_all_files) {
showFiles(false,false);
if (this instanceof FileDisplayActivity fda) {
fda.browseToRoot();
}
EventBus.getDefault().post(new ChangeMenuEvent());
} else if (menuItemId == R.id.nav_favorites) {
openFavoritesTab();
} else if (menuItemId == R.id.nav_assistant && !(this instanceof ComposeActivity)) {
startComposeActivity(new ComposeDestination.AssistantScreen(null), R.string.assistant_screen_top_bar_title);
} else if (menuItemId == R.id.nav_gallery) {
openMediaTab(menuItem.getItemId());
}

// Remove extra icon from the action bar
if (getSupportActionBar() != null) {
getSupportActionBar().setIcon(null);
}

setNavigationViewItemChecked();
resetFileDepthAndConfigureMenuItem();

return false;
});
}
// endregion

private void resetFileDepthAndConfigureMenuItem() {
// from navigation user always sees root level
resetFileDepth();

if (this instanceof FileDisplayActivity fda) {
fda.configureMenuItem();
}
}

private void startComposeActivity(ComposeDestination destination, int titleId) {
Expand Down Expand Up @@ -684,11 +685,15 @@ public void openAddAccount() {
}
}

protected void openSharedTab() {
private void resetFileDepth() {
final var ocFileListFragment = getOCFileListFragment();
if (ocFileListFragment != null) {
ocFileListFragment.resetFileDepth();
}
}

protected void openSharedTab() {
resetFileDepth();
resetOnlyPersonalAndOnDevice();
SearchEvent searchEvent = new SearchEvent("", SearchRemoteOperation.SearchType.SHARED_FILTER);
launchActivityForSearch(searchEvent, R.id.nav_shared);
Expand All @@ -708,19 +713,6 @@ public void startPhotoSearch(int id) {
launchActivityForSearch(searchEvent, id);
}

private void handleSearchEvents(SearchEvent searchEvent, int menuItemId) {
if (this instanceof FileDisplayActivity) {
final Fragment leftFragment = ((FileDisplayActivity) this).getLeftFragment();
if (leftFragment instanceof GalleryFragment || leftFragment instanceof SharedListFragment) {
launchActivityForSearch(searchEvent, menuItemId);
} else {
EventBus.getDefault().post(searchEvent);
}
} else {
launchActivityForSearch(searchEvent, menuItemId);
}
}

private void launchActivityForSearch(SearchEvent searchEvent, int menuItemId) {
DrawerActivity.menuItemId = menuItemId;
Intent intent = new Intent(getApplicationContext(), FileDisplayActivity.class);
Expand Down Expand Up @@ -880,14 +872,18 @@ private void setQuotaInformation(long usedSpace, long totalSpace, int relative,

private void unsetAllDrawerMenuItems() {
if (drawerNavigationView != null) {
drawerNavigationView.getMenu();
Menu menu = drawerNavigationView.getMenu();
for (int i = 0; i < menu.size(); i++) {
menu.getItem(i).setChecked(false);
}
}

menuItemId = Menu.NONE;
if (bottomNavigationView != null) {
Menu menu = bottomNavigationView.getMenu();
for (int i = 0; i < menu.size(); i++) {
menu.getItem(i).setChecked(false);
}
}
}

private void updateQuotaLink() {
Expand Down Expand Up @@ -963,12 +959,19 @@ public void onLoadFailed(@Nullable Drawable errorDrawable) {
*/
@SuppressFBWarnings("RV")
public void setNavigationViewItemChecked() {
unsetAllDrawerMenuItems();

// Don't check any items
if (menuItemId == Menu.NONE) {
return;
}

if (drawerNavigationView != null) {
MenuItem menuItem = drawerNavigationView.getMenu().findItem(menuItemId);

if (menuItem != null && !menuItem.isChecked()) {
viewThemeUtils.platform.colorNavigationView(drawerNavigationView);
menuItem.setChecked(true);
viewThemeUtils.platform.colorNavigationView(drawerNavigationView);
}
}

Expand Down Expand Up @@ -1260,6 +1263,16 @@ public void showFiles(boolean onDeviceOnly, boolean onlyPersonalFiles) {
startActivity(intent);
}

private void showOnDeviceFiles() {
MainApp.showOnlyFilesOnDevice(true);
MainApp.showOnlyPersonalFiles(false);

Intent intent = new Intent(getApplicationContext(), FileDisplayActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setAction(FileDisplayActivity.ON_DEVICE);
startActivity(intent);
}

@Override
public void avatarGenerated(Drawable avatarDrawable, Object callContext) {
if (callContext instanceof MenuItem menuItem) {
Expand Down Expand Up @@ -1444,4 +1457,26 @@ private void checkStoragePermissionWarningBannerVisibility() {
uploadFilesActivity.setupStoragePermissionWarningBanner();
}
}

public static boolean isToolbarStyleSearch() {
return menuItemId == Menu.NONE ||
menuItemId == R.id.nav_all_files ||
menuItemId == R.id.nav_personal_files;
}

public static boolean isMenuItemIdBelongsToSearchType() {
return menuItemId == R.id.nav_favorites ||
menuItemId == R.id.nav_shared ||
menuItemId == R.id.nav_on_device ||
menuItemId == R.id.nav_recently_modified ||
menuItemId == R.id.nav_gallery;
}

public static int getPreviousMenuItemId() {
return previousMenuItemId;
}

public static void setPreviousMenuItemId(int menuItemId) {
previousMenuItemId = menuItemId;
}
}
Loading
Loading