Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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.

176 changes: 108 additions & 68 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 Down Expand Up @@ -880,14 +885,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 +972,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 +1276,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 +1470,18 @@ 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 int getPreviousMenuItemId() {
return previousMenuItemId;
}

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