From 70c7375abbf31db673e6e64532a0ec27a7891151 Mon Sep 17 00:00:00 2001 From: Niko Diamadis Date: Tue, 18 Jul 2023 14:48:38 +0200 Subject: [PATCH] Replace deprecated onBackPressed with callback --- app/src/main/AndroidManifest.xml | 8 ++++++-- .../gotify/messages/MessagesActivity.kt | 20 ++++++++++++++----- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c975aaf..c131319 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,5 +1,7 @@ - + @@ -16,8 +18,10 @@ android:roundIcon="@mipmap/ic_launcher" android:supportsRtl="true" android:usesCleartextTraffic="true" + android:enableOnBackInvokedCallback="true" android:networkSecurityConfig="@xml/network_security_config" - android:theme="@style/AppTheme.SplashScreen"> + android:theme="@style/AppTheme.SplashScreen" + tools:targetApi="tiramisu"> updateAppOnDrawerClose = null @@ -135,6 +141,7 @@ internal class MessagesActivity : } invalidateOptionsMenu() } + onBackPressedCallback.isEnabled = false } } ) @@ -242,12 +249,15 @@ internal class MessagesActivity : refreshAll.setOnClickListener { refreshAll() } } - override fun onBackPressed() { - if (binding.drawerLayout.isDrawerOpen(GravityCompat.START)) { - binding.drawerLayout.closeDrawer(GravityCompat.START) - } else { - super.onBackPressed() + private fun addBackPressCallback() { + onBackPressedCallback = object : OnBackPressedCallback(false) { + override fun handleOnBackPressed() { + if (binding.drawerLayout.isDrawerOpen(GravityCompat.START)) { + binding.drawerLayout.closeDrawer(GravityCompat.START) + } + } } + onBackPressedDispatcher.addCallback(this, onBackPressedCallback) } override fun onNavigationItemSelected(item: MenuItem): Boolean {