mirror of
https://github.com/nextcloud/android.git
synced 2024-11-22 21:25:35 +03:00
Use getMenuItemIdFromTitle
Signed-off-by: alperozturk <alper_ozturk@proton.me>
This commit is contained in:
parent
1543685b5c
commit
cb0e8baf60
2 changed files with 49 additions and 0 deletions
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
* 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.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. 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) {
|
||||
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 -> DrawerActivity.menuItemId
|
||||
}
|
||||
}
|
|
@ -127,6 +127,8 @@ import androidx.fragment.app.Fragment;
|
|||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
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.
|
||||
|
@ -238,6 +240,10 @@ public abstract class DrawerActivity extends ToolbarActivity
|
|||
public void onDrawerSlide(View drawerView, float slideOffset) {
|
||||
super.onDrawerSlide(drawerView, slideOffset);
|
||||
if (slideOffset > 0) {
|
||||
Integer menuItemIdFromTitle = getMenuItemIdFromTitle(DrawerActivity.this);
|
||||
if (menuItemIdFromTitle != null && menuItemIdFromTitle != menuItemId) {
|
||||
menuItemId = menuItemIdFromTitle;
|
||||
}
|
||||
setDrawerMenuItemChecked();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue