@@ -7,6 +7,7 @@ import android.os.Bundle
77import android.view.Menu
88import android.view.MenuItem
99import android.widget.Toast
10+ import androidx.activity.OnBackPressedCallback
1011import androidx.appcompat.app.ActionBarDrawerToggle
1112import androidx.appcompat.app.AppCompatActivity
1213import androidx.appcompat.widget.Toolbar
@@ -48,7 +49,7 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte
4849 val navigationView: NavigationView = findViewById(R .id.nav_view)
4950 navigationView.setNavigationItemSelectedListener(this )
5051
51- // Dont replace Fragment, on orientation-change
52+ // Don't replace Fragment, on orientation-change
5253 if (savedInstanceState == null ) {
5354 // Set Home Fragment
5455 val fragmentTransaction = supportFragmentManager.beginTransaction()
@@ -59,6 +60,17 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte
5960 ex.printStackTrace()
6061 }
6162 }
63+
64+ onBackPressedDispatcher.addCallback(this , object : OnBackPressedCallback (true ) {
65+ override fun handleOnBackPressed () {
66+ if (drawerLayout.isDrawerOpen(GravityCompat .START )) {
67+ drawerLayout.closeDrawer(GravityCompat .START )
68+ } else {
69+ isEnabled = false
70+ onBackPressedDispatcher.onBackPressed()
71+ }
72+ }
73+ })
6274 }
6375
6476 override fun onCreateOptionsMenu (optionsMenu : Menu ): Boolean {
@@ -67,15 +79,6 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte
6779 return true
6880 }
6981
70- override fun onBackPressed () {
71- val drawerLayout: DrawerLayout = findViewById(R .id.drawer_layout)
72- if (drawerLayout.isDrawerOpen(GravityCompat .START )) {
73- drawerLayout.closeDrawer(GravityCompat .START )
74- } else {
75- onBackPressedDispatcher.onBackPressed()
76- }
77- }
78-
7982 override fun onNavigationItemSelected (item : MenuItem ): Boolean {
8083 val drawerLayout: DrawerLayout = findViewById(R .id.drawer_layout)
8184 // Remove all Option-Menu-Items
0 commit comments