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
1d7037b
fix shared tab
alperozturk96 Dec 5, 2025
e5ca9f7
fix: shared tab action bar
alperozturk96 Dec 8, 2025
efccbba
rely on existing architecture
alperozturk96 Dec 8, 2025
30909ee
fix crash
alperozturk96 Dec 8, 2025
c73f090
override updateActionBarTitleAndHomeButton with search type
alperozturk96 Dec 8, 2025
8943646
remove duplicated calls
alperozturk96 Dec 8, 2025
d293e69
while setting toolbar check toolbar style as well
alperozturk96 Dec 8, 2025
850be12
fix back button action
alperozturk96 Dec 8, 2025
b5d9deb
fix overriding calculated behaviour via drawer slide
alperozturk96 Dec 8, 2025
f49594b
fix codacy
alperozturk96 Dec 8, 2025
12f4c87
fix on device action bar
alperozturk96 Dec 8, 2025
b9058f7
fix multiple item highlight
alperozturk96 Dec 8, 2025
6800d38
fix back button behaviour from trashbin
alperozturk96 Dec 8, 2025
dd5139f
fix file name in action bar
alperozturk96 Dec 9, 2025
ec0e916
fix lint
alperozturk96 Dec 9, 2025
aa0af25
reset file depth for bottom navigation view as well
alperozturk96 Dec 9, 2025
26bb229
fix image preview
alperozturk96 Dec 9, 2025
fec57f4
fix: search fragment value
alperozturk96 Dec 10, 2025
5c2549b
fix FileDetailsFragmentBinding.progressBlock' on a null object reference
alperozturk96 Dec 12, 2025
1e0db99
fix getPreviousFile
alperozturk96 Dec 12, 2025
74e9900
fix back press from file details
alperozturk96 Dec 13, 2025
9291beb
fix back press from file details
alperozturk96 Dec 13, 2025
ee658aa
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