MainActivity: Use navigation component to navigate in drawer

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-07-18 15:11:15 +05:30
parent b9d0f15ca3
commit fb5afd1f80
2 changed files with 23 additions and 47 deletions

View File

@@ -42,6 +42,9 @@ import androidx.navigation.NavController
import androidx.navigation.NavDestination import androidx.navigation.NavDestination
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.navigateUp
import androidx.navigation.ui.setupActionBarWithNavController
import androidx.navigation.ui.setupWithNavController import androidx.navigation.ui.setupWithNavController
import com.aurora.Constants import com.aurora.Constants
import com.aurora.extensions.* import com.aurora.extensions.*
@@ -80,6 +83,8 @@ class MainActivity : AppCompatActivity(), NetworkProvider.NetworkListener {
private val gson: Gson = GsonBuilder().excludeFieldsWithModifiers(Modifier.TRANSIENT).create() private val gson: Gson = GsonBuilder().excludeFieldsWithModifiers(Modifier.TRANSIENT).create()
private lateinit var appConfig: AppBarConfiguration
override fun onConnected() { override fun onConnected() {
runOnUiThread { runOnUiThread {
if (!supportFragmentManager.isDestroyed) { if (!supportFragmentManager.isDestroyed) {
@@ -133,6 +138,7 @@ class MainActivity : AppCompatActivity(), NetworkProvider.NetworkListener {
authData = AuthProvider.with(this).getAuthData() authData = AuthProvider.with(this).getAuthData()
// Toolbar // Toolbar
setSupportActionBar(B.toolbar)
B.toolbar.apply { B.toolbar.apply {
elevation = 0f elevation = 0f
setNavigationOnClickListener { setNavigationOnClickListener {
@@ -238,47 +244,17 @@ class MainActivity : AppCompatActivity(), NetworkProvider.NetworkListener {
("v${BuildConfig.VERSION_NAME}.${BuildConfig.VERSION_CODE}") ("v${BuildConfig.VERSION_NAME}.${BuildConfig.VERSION_CODE}")
} }
B.navigation.setNavigationItemSelectedListener { item: MenuItem -> appConfig = AppBarConfiguration.Builder(
when (item.itemId) { R.id.appsContainerFragment,
R.id.menu_apps_games -> { R.id.gamesContainerFragment,
navController.navigate(R.id.appsGamesFragment) R.id.updatesFragment
B.drawerLayout.close() ).setOpenableLayout(B.root).build()
} setupActionBarWithNavController(navController, appConfig)
R.id.menu_apps_sale -> { B.navigation.setupWithNavController(navController)
navController.navigate(R.id.appSalesFragment)
B.drawerLayout.close()
}
R.id.menu_blacklist_manager -> {
navController.navigate(R.id.blacklistFragment)
B.drawerLayout.close()
}
R.id.menu_download_manager -> {
navController.navigate(R.id.downloadFragment)
B.drawerLayout.close()
}
R.id.menu_spoof_manager -> {
navController.navigate(R.id.spoofFragment)
B.drawerLayout.close()
}
R.id.menu_account_manager -> {
navController.navigate(R.id.accountFragment)
B.drawerLayout.close()
}
R.id.menu_settings -> {
navController.navigate(R.id.settingsFragment)
B.drawerLayout.close()
}
R.id.menu_about -> {
navController.navigate(R.id.aboutFragment)
B.drawerLayout.close()
}
}
false
}
} }
override fun onSupportNavigateUp(): Boolean { override fun onSupportNavigateUp(): Boolean {
return navController.navigateUp() return navController.navigateUp(appConfig)
} }
private fun checkExternalStorageManagerPermission() { private fun checkExternalStorageManagerPermission() {

View File

@@ -20,48 +20,48 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:id="@+id/group1"> <group android:id="@+id/group1">
<item <item
android:id="@+id/menu_apps_games" android:id="@id/appsGamesFragment"
android:icon="@drawable/ic_apps" android:icon="@drawable/ic_apps"
android:title="@string/title_apps_games" /> android:title="@string/title_apps_games" />
<item <item
android:id="@+id/menu_apps_sale" android:id="@id/appSalesFragment"
android:icon="@drawable/ic_sale" android:icon="@drawable/ic_sale"
android:title="@string/title_apps_sale" /> android:title="@string/title_apps_sale" />
</group> </group>
<group android:id="@+id/group2"> <group android:id="@+id/group2">
<item <item
android:id="@+id/menu_blacklist_manager" android:id="@id/blacklistFragment"
android:icon="@drawable/ic_blacklist" android:icon="@drawable/ic_blacklist"
android:title="@string/title_blacklist_manager" /> android:title="@string/title_blacklist_manager" />
<item <item
android:id="@+id/menu_spoof_manager" android:id="@id/spoofFragment"
android:icon="@drawable/ic_anonymous" android:icon="@drawable/ic_anonymous"
android:title="@string/title_spoof_manager" /> android:title="@string/title_spoof_manager" />
</group> </group>
<group android:id="@+id/group3"> <group android:id="@+id/group3">
<item <item
android:id="@+id/menu_download_manager" android:id="@id/downloadFragment"
android:icon="@drawable/ic_download_manager" android:icon="@drawable/ic_download_manager"
android:title="@string/title_download_manager" /> android:title="@string/title_download_manager" />
<item <item
android:id="@+id/menu_account_manager" android:id="@id/accountFragment"
android:icon="@drawable/ic_account_manager" android:icon="@drawable/ic_account_manager"
android:title="@string/title_account_manager" /> android:title="@string/title_account_manager" />
</group> </group>
<group android:id="@+id/group4"> <group android:id="@+id/group4">
<item <item
android:id="@+id/menu_settings" android:id="@id/settingsFragment"
android:icon="@drawable/ic_menu_settings" android:icon="@drawable/ic_menu_settings"
android:title="@string/title_settings" /> android:title="@string/title_settings" />
<item <item
android:id="@+id/menu_about" android:id="@id/aboutFragment"
android:icon="@drawable/ic_menu_about" android:icon="@drawable/ic_menu_about"
android:title="@string/title_about" /> android:title="@string/title_about" />
</group> </group>
</menu> </menu>