Replace deprecated onBackPressed with callback

This commit is contained in:
Niko Diamadis
2023-07-18 14:48:38 +02:00
parent d3183bf37b
commit 70c7375abb
2 changed files with 21 additions and 7 deletions

View File

@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <manifest
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
@@ -16,8 +18,10 @@
android:roundIcon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher"
android:supportsRtl="true" android:supportsRtl="true"
android:usesCleartextTraffic="true" android:usesCleartextTraffic="true"
android:enableOnBackInvokedCallback="true"
android:networkSecurityConfig="@xml/network_security_config" android:networkSecurityConfig="@xml/network_security_config"
android:theme="@style/AppTheme.SplashScreen"> android:theme="@style/AppTheme.SplashScreen"
tools:targetApi="tiramisu">
<activity <activity
android:name=".init.InitializationActivity" android:name=".init.InitializationActivity"
android:exported="true" android:exported="true"

View File

@@ -15,6 +15,7 @@ import android.view.MenuItem
import android.view.View import android.view.View
import android.widget.ImageButton import android.widget.ImageButton
import android.widget.TextView import android.widget.TextView
import androidx.activity.OnBackPressedCallback
import androidx.appcompat.app.ActionBarDrawerToggle import androidx.appcompat.app.ActionBarDrawerToggle
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
@@ -68,6 +69,7 @@ internal class MessagesActivity :
private var isLoadMore = false private var isLoadMore = false
private var updateAppOnDrawerClose: Long? = null private var updateAppOnDrawerClose: Long? = null
private lateinit var listMessageAdapter: ListMessageAdapter private lateinit var listMessageAdapter: ListMessageAdapter
private lateinit var onBackPressedCallback: OnBackPressedCallback
private val receiver: BroadcastReceiver = object : BroadcastReceiver() { private val receiver: BroadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) { override fun onReceive(context: Context, intent: Intent) {
@@ -108,6 +110,7 @@ internal class MessagesActivity :
listAnimation listAnimation
) )
} }
addBackPressCallback()
messagesView.addItemDecoration(dividerItemDecoration) messagesView.addItemDecoration(dividerItemDecoration)
messagesView.setHasFixedSize(true) messagesView.setHasFixedSize(true)
@@ -126,6 +129,9 @@ internal class MessagesActivity :
swipeRefreshLayout.setOnRefreshListener { onRefresh() } swipeRefreshLayout.setOnRefreshListener { onRefresh() }
binding.drawerLayout.addDrawerListener( binding.drawerLayout.addDrawerListener(
object : SimpleDrawerListener() { object : SimpleDrawerListener() {
override fun onDrawerOpened(drawerView: View) {
onBackPressedCallback.isEnabled = true
}
override fun onDrawerClosed(drawerView: View) { override fun onDrawerClosed(drawerView: View) {
updateAppOnDrawerClose?.let { selectApp -> updateAppOnDrawerClose?.let { selectApp ->
updateAppOnDrawerClose = null updateAppOnDrawerClose = null
@@ -135,6 +141,7 @@ internal class MessagesActivity :
} }
invalidateOptionsMenu() invalidateOptionsMenu()
} }
onBackPressedCallback.isEnabled = false
} }
} }
) )
@@ -242,12 +249,15 @@ internal class MessagesActivity :
refreshAll.setOnClickListener { refreshAll() } refreshAll.setOnClickListener { refreshAll() }
} }
override fun onBackPressed() { private fun addBackPressCallback() {
if (binding.drawerLayout.isDrawerOpen(GravityCompat.START)) { onBackPressedCallback = object : OnBackPressedCallback(false) {
binding.drawerLayout.closeDrawer(GravityCompat.START) override fun handleOnBackPressed() {
} else { if (binding.drawerLayout.isDrawerOpen(GravityCompat.START)) {
super.onBackPressed() binding.drawerLayout.closeDrawer(GravityCompat.START)
}
}
} }
onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
} }
override fun onNavigationItemSelected(item: MenuItem): Boolean { override fun onNavigationItemSelected(item: MenuItem): Boolean {