Replace deprecated onBackPressed with callback
This commit is contained in:
@@ -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"
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user