Merge pull request #13513 from nextcloud/bugfix/unify-drawer-menu-item-handling

BugFix - Unify Drawer Menu Item Handling
This commit is contained in:
Alper Öztürk 2024-09-12 09:19:32 +02:00 committed by GitHub
commit af3b19d947
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 157 additions and 153 deletions

View file

@ -36,12 +36,10 @@ import java.lang.ref.WeakReference
class ComposeActivity : DrawerActivity() {
lateinit var binding: ActivityComposeBinding
private var menuItemId: Int = R.id.nav_all_files
companion object {
const val DESTINATION = "DESTINATION"
const val TITLE = "TITLE"
const val MENU_ITEM = "MENU_ITEM"
}
override fun onCreate(savedInstanceState: Bundle?) {
@ -51,9 +49,8 @@ class ComposeActivity : DrawerActivity() {
val destination = intent.getSerializableArgument(DESTINATION, ComposeDestination::class.java)
val titleId = intent.getIntExtra(TITLE, R.string.empty)
menuItemId = intent.getIntExtra(MENU_ITEM, R.id.nav_all_files)
setupDrawer(menuItemId)
setupDrawer()
setupToolbarShowOnlyMenuButtonAndTitle(getString(titleId)) {
openDrawer()
@ -69,11 +66,6 @@ class ComposeActivity : DrawerActivity() {
}
}
override fun onResume() {
super.onResume()
setDrawerMenuItemChecked(menuItemId)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
android.R.id.home -> {

View file

@ -0,0 +1,53 @@
/*
* Nextcloud - Android Client
*
* SPDX-FileCopyrightText: 2024 Alper Ozturk <alper.ozturk@nextcloud.com>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
package com.nextcloud.utils.extensions
import com.owncloud.android.MainApp
import com.owncloud.android.R
import com.owncloud.android.ui.activity.DrawerActivity
/**
* Determines the appropriate menu item ID based on the current ActionBar title.
*
* This function serves as a workaround solution because not all drawer menu item
* navigations extend from DrawerActivity and back button changes content but not the drawer menu item.
* As a result, the content and highlighted
* menu item may not always match. This function helps maintain consistency between
* the displayed content and the highlighted menu item.
*
* @return The menu item ID corresponding to the current ActionBar title, or null if
* the ActionBar is not available.
*/
fun DrawerActivity.getMenuItemIdFromTitle(): Int? {
val actionBar = supportActionBar ?: return null
return when (actionBar.title.toString()) {
getString(R.string.drawer_item_all_files) -> R.id.nav_all_files
getString(R.string.drawer_item_personal_files) -> R.id.nav_personal_files
getString(R.string.drawer_item_activities) -> R.id.nav_activity
getString(R.string.drawer_item_favorites) -> R.id.nav_favorites
getString(R.string.drawer_item_gallery) -> R.id.nav_gallery
getString(R.string.drawer_item_shared) -> R.id.nav_shared
getString(R.string.drawer_item_groupfolders) -> R.id.nav_groupfolders
getString(R.string.drawer_item_on_device) -> R.id.nav_on_device
getString(R.string.drawer_item_recently_modified) -> R.id.nav_recently_modified
getString(R.string.drawer_item_notifications) -> R.id.nav_notifications
getString(R.string.drawer_item_assistant) -> R.id.nav_assistant
getString(R.string.drawer_item_uploads_list) -> R.id.nav_uploads
getString(R.string.drawer_item_trashbin) -> R.id.nav_trashbin
else -> {
if (MainApp.isOnlyPersonFiles()) {
R.id.nav_personal_files
} else if (MainApp.isOnlyOnDevice()) {
R.id.nav_on_device
} else {
DrawerActivity.menuItemId
}
}
}
}

View file

@ -29,7 +29,6 @@ import com.owncloud.android.ui.interfaces.ActivityListInterface;
import com.owncloud.android.ui.preview.PreviewImageActivity;
import com.owncloud.android.ui.preview.PreviewImageFragment;
import com.owncloud.android.utils.DisplayUtils;
import com.owncloud.android.utils.theme.ViewThemeUtils;
import java.util.List;
@ -59,7 +58,6 @@ public class ActivitiesActivity extends DrawerActivity implements ActivityListIn
@Inject ActivitiesRepository activitiesRepository;
@Inject FilesRepository filesRepository;
@Inject ClientFactory clientFactory;
@Inject ViewThemeUtils viewThemeUtils;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -77,7 +75,7 @@ public class ActivitiesActivity extends DrawerActivity implements ActivityListIn
viewThemeUtils.androidx.themeSwipeRefreshLayout(binding.swipeContainingList);
// setup drawer
setupDrawer(R.id.nav_activity);
setupDrawer();
updateActionBarTitleAndHomeButtonByString(getString(R.string.drawer_item_activities));
binding.swipeContainingList.setOnRefreshListener(() -> {
@ -153,11 +151,7 @@ public class ActivitiesActivity extends DrawerActivity implements ActivityListIn
@Override
protected void onResume() {
super.onResume();
actionListener.onResume();
setDrawerMenuItemChecked(R.id.nav_activity);
setupContent();
}

View file

@ -30,7 +30,7 @@ open class CommunityActivity : DrawerActivity() {
setupToolbar()
updateActionBarTitleAndHomeButtonByString(getString(R.string.drawer_community))
setupDrawer(R.id.nav_community)
setupDrawer()
binding.communityReleaseCandidateText.movementMethod = LinkMovementMethod.getInstance()
setupContributeForumView()
setupContributeTranslationView()
@ -125,9 +125,4 @@ open class CommunityActivity : DrawerActivity() {
}
return retval
}
override fun onResume() {
super.onResume()
setDrawerMenuItemChecked(R.id.nav_community)
}
}

View file

@ -124,6 +124,8 @@ import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
import hct.Hct;
import static com.nextcloud.utils.extensions.DrawerActivityExtensionsKt.getMenuItemIdFromTitle;
/**
* Base class to handle setup of the drawer implementation including user switching and avatar fetching and fallback
* generation.
@ -133,7 +135,6 @@ public abstract class DrawerActivity extends ToolbarActivity
private static final String TAG = DrawerActivity.class.getSimpleName();
private static final String KEY_IS_ACCOUNT_CHOOSER_ACTIVE = "IS_ACCOUNT_CHOOSER_ACTIVE";
private static final String KEY_CHECKED_MENU_ITEM = "CHECKED_MENU_ITEM";
private static final int ACTION_MANAGE_ACCOUNTS = 101;
private static final int MENU_ORDER_EXTERNAL_LINKS = 3;
private static final int MENU_ITEM_EXTERNAL_LINK = 111;
@ -168,7 +169,7 @@ public abstract class DrawerActivity extends ToolbarActivity
/**
* Id of the checked menu item.
*/
private int mCheckedMenuItem = Menu.NONE;
public static int menuItemId = Menu.NONE;
/**
* container layout of the quota view.
@ -200,17 +201,6 @@ public abstract class DrawerActivity extends ToolbarActivity
@Inject
ClientFactory clientFactory;
/**
* Initializes the drawer, its content and highlights the menu item with the given id. This method needs to be
* called after the content view has been set.
*
* @param menuItemId the menu item to be checked/highlighted
*/
protected void setupDrawer(int menuItemId) {
setupDrawer();
setDrawerMenuItemChecked(menuItemId);
}
/**
* Initializes the drawer and its content. This method needs to be called after the content view has been set.
*/
@ -241,6 +231,20 @@ public abstract class DrawerActivity extends ToolbarActivity
*/
private void setupDrawerToggle() {
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.drawer_open, R.string.drawer_close) {
private boolean isMenuItemChecked = false;
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
super.onDrawerSlide(drawerView, slideOffset);
if (slideOffset > 0 && !isMenuItemChecked) {
Integer menuItemIdFromTitle = getMenuItemIdFromTitle(DrawerActivity.this);
if (menuItemIdFromTitle != null && menuItemIdFromTitle != menuItemId) {
menuItemId = menuItemIdFromTitle;
}
setDrawerMenuItemChecked();
isMenuItemChecked = true;
}
}
/** Called when a drawer has settled in a completely closed state. */
public void onDrawerClosed(View view) {
@ -253,6 +257,7 @@ public abstract class DrawerActivity extends ToolbarActivity
pendingRunnable = null;
}
isMenuItemChecked = false;
closeDrawer();
}
@ -272,7 +277,9 @@ public abstract class DrawerActivity extends ToolbarActivity
R.drawable.ic_arrow_back,
null);
viewThemeUtils.platform.tintToolbarArrowDrawable(this, mDrawerToggle, backArrow);
if (backArrow != null) {
viewThemeUtils.platform.tintToolbarArrowDrawable(this, mDrawerToggle, backArrow);
}
}
/**
@ -364,7 +371,10 @@ public abstract class DrawerActivity extends ToolbarActivity
notesView.setOnClickListener(v -> openAppOrStore("it.niedermann.owncloud.notes"));
talkView.setOnClickListener(v -> openAppOrStore("com.nextcloud.talk2"));
moreView.setOnClickListener(v -> openAppStore("Nextcloud", true));
assistantView.setOnClickListener(v -> startComposeActivity(ComposeDestination.AssistantScreen, R.string.assistant_screen_top_bar_title, -1));
assistantView.setOnClickListener(v -> {
DrawerActivity.menuItemId = Menu.NONE;
startComposeActivity(ComposeDestination.AssistantScreen, R.string.assistant_screen_top_bar_title);
});
if (getCapabilities() != null && getCapabilities().getAssistant().isTrue()) {
assistantView.setVisibility(View.VISIBLE);
} else {
@ -487,9 +497,9 @@ public abstract class DrawerActivity extends ToolbarActivity
}
private void onNavigationItemClicked(final MenuItem menuItem) {
setDrawerMenuItemChecked(menuItem.getItemId());
int itemId = menuItem.getItemId();
menuItemId = itemId;
setDrawerMenuItemChecked();
if (itemId == R.id.nav_all_files || itemId == R.id.nav_personal_files) {
if (this instanceof FileDisplayActivity &&
@ -511,7 +521,6 @@ public abstract class DrawerActivity extends ToolbarActivity
}
intent.setAction(FileDisplayActivity.ALL_FILES);
intent.putExtra(FileDisplayActivity.DRAWER_MENU_ID, menuItem.getItemId());
startActivity(intent);
}
@ -537,7 +546,7 @@ public abstract class DrawerActivity extends ToolbarActivity
} else if (itemId == R.id.nav_community) {
startActivity(CommunityActivity.class);
} else if (itemId == R.id.nav_logout) {
mCheckedMenuItem = -1;
menuItemId = Menu.NONE;
MenuItem isNewMenuItemChecked = menuItem.setChecked(false);
Log_OC.d(TAG,"onNavigationItemClicked nav_logout setChecked " + isNewMenuItemChecked);
final Optional<User> optionalUser = getUser();
@ -549,13 +558,12 @@ public abstract class DrawerActivity extends ToolbarActivity
} else if (itemId == R.id.nav_recently_modified) {
startRecentlyModifiedSearch(menuItem);
} else if (itemId == R.id.nav_assistant) {
startComposeActivity(ComposeDestination.AssistantScreen, R.string.assistant_screen_top_bar_title, itemId);
startComposeActivity(ComposeDestination.AssistantScreen, R.string.assistant_screen_top_bar_title);
} else if (itemId == R.id.nav_groupfolders) {
MainApp.showOnlyFilesOnDevice(false);
Intent intent = new Intent(getApplicationContext(), FileDisplayActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setAction(FileDisplayActivity.LIST_GROUPFOLDERS);
intent.putExtra(FileDisplayActivity.DRAWER_MENU_ID, menuItem.getItemId());
startActivity(intent);
} else {
if (menuItem.getItemId() >= MENU_ITEM_EXTERNAL_LINK &&
@ -568,11 +576,10 @@ public abstract class DrawerActivity extends ToolbarActivity
}
}
private void startComposeActivity(ComposeDestination destination, int titleId, int menuItemId) {
private void startComposeActivity(ComposeDestination destination, int titleId) {
Intent composeActivity = new Intent(getApplicationContext(), ComposeActivity.class);
composeActivity.putExtra(ComposeActivity.DESTINATION, destination);
composeActivity.putExtra(ComposeActivity.TITLE, titleId);
composeActivity.putExtra(ComposeActivity.MENU_ITEM, menuItemId);
startActivity(composeActivity);
}
@ -644,6 +651,7 @@ public abstract class DrawerActivity extends ToolbarActivity
}
private void launchActivityForSearch(SearchEvent searchEvent, int menuItemId) {
DrawerActivity.menuItemId = menuItemId;
Intent intent = new Intent(getApplicationContext(), FileDisplayActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
@ -653,7 +661,6 @@ public abstract class DrawerActivity extends ToolbarActivity
intent.setAction(Intent.ACTION_SEARCH);
intent.putExtra(OCFileListFragment.SEARCH_EVENT, searchEvent);
intent.putExtra(FileDisplayActivity.DRAWER_MENU_ID, menuItemId);
startActivity(intent);
}
@ -681,7 +688,6 @@ public abstract class DrawerActivity extends ToolbarActivity
externalWebViewIntent.putExtra(ExternalSiteWebView.EXTRA_TITLE, link.getName());
externalWebViewIntent.putExtra(ExternalSiteWebView.EXTRA_URL, link.getUrl());
externalWebViewIntent.putExtra(ExternalSiteWebView.EXTRA_SHOW_SIDEBAR, true);
externalWebViewIntent.putExtra(ExternalSiteWebView.EXTRA_MENU_ITEM_ID, menuItem.getItemId());
startActivity(externalWebViewIntent);
}
}
@ -815,7 +821,7 @@ public abstract class DrawerActivity extends ToolbarActivity
}
}
mCheckedMenuItem = Menu.NONE;
menuItemId = Menu.NONE;
}
private void updateQuotaLink() {
@ -836,7 +842,7 @@ public abstract class DrawerActivity extends ToolbarActivity
externalWebViewIntent.putExtra(ExternalSiteWebView.EXTRA_TITLE, firstQuota.getName());
externalWebViewIntent.putExtra(ExternalSiteWebView.EXTRA_URL, firstQuota.getUrl());
externalWebViewIntent.putExtra(ExternalSiteWebView.EXTRA_SHOW_SIDEBAR, true);
externalWebViewIntent.putExtra(ExternalSiteWebView.EXTRA_MENU_ITEM_ID, -1);
menuItemId = Menu.NONE;
startActivity(externalWebViewIntent);
});
@ -879,16 +885,27 @@ public abstract class DrawerActivity extends ToolbarActivity
/**
* checks/highlights the provided menu item if the drawer has been initialized and the menu item exists.
*
* @param menuItemId the menu item to be highlighted
*/
protected void setDrawerMenuItemChecked(int menuItemId) {
if (mNavigationView != null && mNavigationView.getMenu().findItem(menuItemId) != null) {
viewThemeUtils.platform.colorNavigationView(mNavigationView);
mCheckedMenuItem = menuItemId;
mNavigationView.getMenu().findItem(menuItemId).setChecked(true);
} else {
Log_OC.w(TAG, "setDrawerMenuItemChecked has been called with invalid menu-item-ID");
public void setDrawerMenuItemChecked() {
if (mNavigationView == null) {
return;
}
MenuItem menuItem = mNavigationView.getMenu().findItem(menuItemId);
if (menuItem == null) {
Log_OC.w(TAG, "setDrawerMenuItemChecked has been called with invalid menu-item-ID");
return;
}
if (menuItem.isChecked()) {
return;
}
Log_OC.d(TAG, "New menu item is: " + menuItemId);
viewThemeUtils.platform.colorNavigationView(mNavigationView);
menuItem.setChecked(true);
}
/**
@ -988,8 +1005,6 @@ public abstract class DrawerActivity extends ToolbarActivity
target,
R.drawable.ic_link);
}
setDrawerMenuItemChecked(mCheckedMenuItem);
}
}
@ -1008,10 +1023,8 @@ public abstract class DrawerActivity extends ToolbarActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
mIsAccountChooserActive = savedInstanceState.getBoolean(KEY_IS_ACCOUNT_CHOOSER_ACTIVE, false);
mCheckedMenuItem = savedInstanceState.getInt(KEY_CHECKED_MENU_ITEM, Menu.NONE);
}
externalLinksProvider = new ExternalLinksProvider(getContentResolver());
@ -1021,22 +1034,14 @@ public abstract class DrawerActivity extends ToolbarActivity
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean(KEY_IS_ACCOUNT_CHOOSER_ACTIVE, mIsAccountChooserActive);
outState.putInt(KEY_CHECKED_MENU_ITEM, mCheckedMenuItem);
}
@Override
public void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
mIsAccountChooserActive = savedInstanceState.getBoolean(KEY_IS_ACCOUNT_CHOOSER_ACTIVE, false);
mCheckedMenuItem = savedInstanceState.getInt(KEY_CHECKED_MENU_ITEM, Menu.NONE);
// check/highlight the menu item if present
if (mCheckedMenuItem > Menu.NONE || mCheckedMenuItem < Menu.NONE) {
setDrawerMenuItemChecked(mCheckedMenuItem);
}
setDrawerMenuItemChecked();
}
@Override
@ -1053,10 +1058,6 @@ public abstract class DrawerActivity extends ToolbarActivity
updateQuotaLink();
}
public int getCheckedMenuItem() {
return mCheckedMenuItem;
}
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
@ -1080,12 +1081,6 @@ public abstract class DrawerActivity extends ToolbarActivity
}
}
@Override
protected void onResume() {
super.onResume();
setDrawerMenuItemChecked(mCheckedMenuItem);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

View file

@ -44,14 +44,12 @@ public class ExternalSiteWebView extends FileActivity {
public static final String EXTRA_URL = "URL";
public static final String EXTRA_SHOW_SIDEBAR = "SHOW_SIDEBAR";
public static final String EXTRA_SHOW_TOOLBAR = "SHOW_TOOLBAR";
public static final String EXTRA_MENU_ITEM_ID = "MENU_ITEM_ID";
public static final String EXTRA_TEMPLATE = "TEMPLATE";
private static final String TAG = ExternalSiteWebView.class.getSimpleName();
protected boolean showToolbar = true;
private ExternalsiteWebviewBinding binding;
private int menuItemId;
private boolean showSidebar;
String url;
@ -67,7 +65,6 @@ public class ExternalSiteWebView extends FileActivity {
showToolbar = extras.getBoolean(EXTRA_SHOW_TOOLBAR);
}
menuItemId = extras.getInt(EXTRA_MENU_ITEM_ID);
showSidebar = extras.getBoolean(EXTRA_SHOW_SIDEBAR);
// show progress
@ -107,8 +104,7 @@ public class ExternalSiteWebView extends FileActivity {
}
}
// setup drawer
setupDrawer(menuItemId);
setupDrawer();
if (!showSidebar) {
setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
@ -235,12 +231,6 @@ public class ExternalSiteWebView extends FileActivity {
}
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
setDrawerMenuItemChecked(menuItemId);
}
protected WebView getWebView() {
return binding.webView;
}

View file

@ -196,8 +196,6 @@ public class FileDisplayActivity extends FileActivity
public static final String ACTION_DETAILS = "com.owncloud.android.ui.activity.action.DETAILS";
public static final String DRAWER_MENU_ID = "DRAWER_MENU_ID";
public static final int REQUEST_CODE__SELECT_CONTENT_FROM_APPS = REQUEST_CODE__LAST_SHARED + 1;
public static final int REQUEST_CODE__SELECT_FILES_FROM_FILE_SYSTEM = REQUEST_CODE__LAST_SHARED + 2;
public static final int REQUEST_CODE__MOVE_OR_COPY_FILES = REQUEST_CODE__LAST_SHARED + 3;
@ -231,7 +229,6 @@ public class FileDisplayActivity extends FileActivity
private SearchView searchView;
private PlayerServiceConnection mPlayerConnection;
private Optional<User> lastDisplayedUser = Optional.empty();
private int menuItemId = -1;
@Inject AppPreferences preferences;
@ -382,11 +379,7 @@ public class FileDisplayActivity extends FileActivity
if (IntentExtensionsKt.getParcelableArgument(getIntent(), OCFileListFragment.SEARCH_EVENT, SearchEvent.class) != null) {
switchToSearchFragment(savedInstanceState);
int menuId = getIntent().getIntExtra(DRAWER_MENU_ID, -1);
if (menuId != -1) {
setupDrawer(menuId);
}
setupDrawer();
} else {
createMinFragments(savedInstanceState);
syncAndUpdateFolder(true);
@ -561,13 +554,13 @@ public class FileDisplayActivity extends FileActivity
}
} else if (ALL_FILES.equals(intent.getAction())) {
Log_OC.d(this, "Switch to oc file fragment");
DrawerActivity.menuItemId = R.id.nav_all_files;
setLeftFragment(new OCFileListFragment());
getSupportFragmentManager().executePendingTransactions();
browseToRoot();
} else if (LIST_GROUPFOLDERS.equals(intent.getAction())) {
Log_OC.d(this, "Switch to list groupfolders fragment");
DrawerActivity.menuItemId = R.id.nav_groupfolders;
setLeftFragment(new GroupfolderListFragment());
getSupportFragmentManager().executePendingTransactions();
} else {
@ -1147,10 +1140,7 @@ public class FileDisplayActivity extends FileActivity
mDownloadFinishReceiver = new DownloadFinishReceiver();
localBroadcastManager.registerReceiver(mDownloadFinishReceiver, downloadIntentFilter);
// setup drawer
menuItemId = getIntent().getIntExtra(FileDisplayActivity.DRAWER_MENU_ID, -1);
if (menuItemId == -1) {
if (menuItemId == Menu.NONE) {
setDrawerAllFiles();
} else {
if (menuItemId == R.id.nav_all_files || menuItemId == R.id.nav_personal_files) {
@ -1158,7 +1148,6 @@ public class FileDisplayActivity extends FileActivity
} else {
setupToolbar();
}
setDrawerMenuItemChecked(menuItemId);
}
if (ocFileListFragment instanceof GalleryFragment) {
@ -1169,21 +1158,20 @@ public class FileDisplayActivity extends FileActivity
Log_OC.v(TAG, "onResume() end");
}
private void setDrawerAllFiles() {
if (MainApp.isOnlyPersonFiles()) {
setDrawerMenuItemChecked(R.id.nav_personal_files);
setupHomeSearchToolbarWithSortAndListButtons();
menuItemId = R.id.nav_personal_files;
} else if (MainApp.isOnlyOnDevice()) {
setDrawerMenuItemChecked(R.id.nav_on_device);
menuItemId = R.id.nav_on_device;
} else if (menuItemId == Menu.NONE) {
menuItemId = R.id.nav_all_files;
}
setDrawerMenuItemChecked();
if (MainApp.isOnlyOnDevice()) {
setupToolbar();
} else {
int lastMenuItem = getCheckedMenuItem();
if (lastMenuItem == Menu.NONE) {
lastMenuItem = R.id.nav_all_files;
}
setDrawerMenuItemChecked(lastMenuItem);
setupHomeSearchToolbarWithSortAndListButtons();
}
}

View file

@ -65,7 +65,7 @@ class NotificationsActivity : DrawerActivity(), NotificationsContract.View {
setupToolbar()
updateActionBarTitleAndHomeButtonByString(getString(R.string.drawer_item_notifications))
setupDrawer(R.id.nav_notifications)
setupDrawer()
if (optionalUser?.isPresent == false) {
showError()
@ -303,11 +303,6 @@ class NotificationsActivity : DrawerActivity(), NotificationsContract.View {
binding.emptyList.emptyListIcon.visibility = View.VISIBLE
}
override fun onResume() {
super.onResume()
setDrawerMenuItemChecked(R.id.nav_notifications)
}
override fun onRemovedNotification(isSuccess: Boolean) {
if (!isSuccess) {
DisplayUtils.showSnackMessage(this, getString(R.string.remove_notification_failed))

View file

@ -21,6 +21,7 @@ import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Configuration;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.preference.ListPreference;
@ -173,7 +174,7 @@ public class SettingsActivity extends PreferenceActivity
// Sync
setupSyncCategory();
// More
setupMoreCategory();
@ -284,7 +285,7 @@ public class SettingsActivity extends PreferenceActivity
getResources().getString(R.string.privacy));
intent.putExtra(ExternalSiteWebView.EXTRA_URL, privacyUrl.toString());
intent.putExtra(ExternalSiteWebView.EXTRA_SHOW_SIDEBAR, false);
intent.putExtra(ExternalSiteWebView.EXTRA_MENU_ITEM_ID, -1);
DrawerActivity.menuItemId = Menu.NONE;
}
startActivity(intent);
@ -313,7 +314,15 @@ public class SettingsActivity extends PreferenceActivity
}
}
}
@Override
public void onBackPressed() {
Intent i = new Intent(this, FileDisplayActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.setAction(FileDisplayActivity.ALL_FILES);
startActivity(i);
}
private void setupSyncCategory() {
final PreferenceCategory preferenceCategorySync = (PreferenceCategory) findPreference("sync");
viewThemeUtils.files.themePreferenceCategory(preferenceCategorySync);
@ -557,10 +566,10 @@ public class SettingsActivity extends PreferenceActivity
});
}
}
private void setupInternalTwoWaySyncPreference(PreferenceCategory preferenceCategorySync) {
Preference twoWaySync = findPreference("internal_two_way_sync");
twoWaySync.setOnPreferenceClickListener(preference -> {
Intent intent = new Intent(this, InternalTwoWaySyncActivity.class);
startActivity(intent);
@ -876,20 +885,22 @@ public class SettingsActivity extends PreferenceActivity
private void setupActionBar() {
ActionBar actionBar = getDelegate().getSupportActionBar();
if (actionBar == null) return;
if (actionBar != null) {
viewThemeUtils.platform.themeStatusBar(this);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(true);
if (this.getResources() != null) {
viewThemeUtils.androidx.themeActionBar(this,
actionBar,
getString(R.string.actionbar_settings),
ResourcesCompat.getDrawable(this.getResources(),
R.drawable.ic_arrow_back,
null));
}
}
viewThemeUtils.platform.themeStatusBar(this);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(true);
if (getResources() == null) return;
Drawable menuIcon = ResourcesCompat.getDrawable(getResources(),
R.drawable.ic_arrow_back,
null);
if (menuIcon == null) return;
viewThemeUtils.androidx.themeActionBar(this,
actionBar,
getString(R.string.actionbar_settings),
menuIcon);
}
private void launchDavDroidLogin() {
@ -1107,7 +1118,7 @@ public class SettingsActivity extends PreferenceActivity
externalWebViewIntent.putExtra(ExternalSiteWebView.EXTRA_TITLE, link.getName());
externalWebViewIntent.putExtra(ExternalSiteWebView.EXTRA_URL, link.getUrl());
externalWebViewIntent.putExtra(ExternalSiteWebView.EXTRA_SHOW_SIDEBAR, false);
externalWebViewIntent.putExtra(ExternalSiteWebView.EXTRA_MENU_ITEM_ID, link.getId());
DrawerActivity.menuItemId = link.getId();
startActivity(externalWebViewIntent);
return true;

View file

@ -131,7 +131,7 @@ public class UploadListActivity extends FileActivity {
updateActionBarTitleAndHomeButtonByString(getString(R.string.uploads_view_title));
// setup drawer
setupDrawer(R.id.nav_uploads);
setupDrawer();
setupContent();
observeWorkerState();
@ -232,8 +232,6 @@ public class UploadListActivity extends FileActivity {
Log_OC.v(TAG, "onResume() start");
super.onResume();
setDrawerMenuItemChecked(R.id.nav_uploads);
// Listen for upload messages
uploadMessagesReceiver = new UploadMessagesReceiver();
IntentFilter uploadIntentFilter = new IntentFilter();

View file

@ -93,8 +93,8 @@ import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
import com.owncloud.android.ui.dialog.CreateFolderDialogFragment;
import com.owncloud.android.ui.dialog.RemoveFilesDialogFragment;
import com.owncloud.android.ui.dialog.RenameFileDialogFragment;
import com.owncloud.android.ui.dialog.setupEncryption.SetupEncryptionDialogFragment;
import com.owncloud.android.ui.dialog.SyncFileNotEnoughSpaceDialogFragment;
import com.owncloud.android.ui.dialog.setupEncryption.SetupEncryptionDialogFragment;
import com.owncloud.android.ui.events.ChangeMenuEvent;
import com.owncloud.android.ui.events.CommentsEvent;
import com.owncloud.android.ui.events.EncryptionEvent;
@ -279,7 +279,6 @@ public class OCFileListFragment extends ExtendedListFragment implements
super.onResume();
}
/**
* {@inheritDoc}
*/

View file

@ -109,7 +109,7 @@ class TrashbinActivity :
View.GONE
updateActionBarTitleAndHomeButtonByString(getString(R.string.trashbin_activity_title))
setupDrawer(R.id.nav_trashbin)
setupDrawer()
}
override fun onStart() {
@ -119,12 +119,6 @@ class TrashbinActivity :
setupContent()
}
override fun onResume() {
super.onResume()
setDrawerMenuItemChecked(R.id.nav_trashbin)
}
private fun setupContent() {
val recyclerView = binding.list
recyclerView.setEmptyView(binding.emptyList.emptyListView)