Fixed back press action for API < 33 compatibility
This commit is contained in:
@@ -22,6 +22,7 @@ import androidx.activity.compose.rememberLauncherForActivityResult
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.compose.foundation.Canvas
|
||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||
import androidx.compose.foundation.Image
|
||||
@@ -108,14 +109,16 @@ class BaresipContactActivity : ComponentActivity() {
|
||||
private val textAvatarColor = mutableIntStateOf(0)
|
||||
private val imageAvatarUri = mutableStateOf("")
|
||||
|
||||
private val backInvokedCallback = OnBackInvokedCallback {
|
||||
goBack()
|
||||
}
|
||||
private var backInvokedCallback: OnBackInvokedCallback? = null
|
||||
private lateinit var onBackPressedCallback: OnBackPressedCallback
|
||||
|
||||
private val onBackPressedCallback = object : OnBackPressedCallback(true) {
|
||||
override fun handleOnBackPressed() {
|
||||
goBack()
|
||||
}
|
||||
@RequiresApi(33)
|
||||
private fun registerBackInvokedCallback() {
|
||||
backInvokedCallback = OnBackInvokedCallback { goBack() }
|
||||
onBackInvokedDispatcher.registerOnBackInvokedCallback(
|
||||
OnBackInvokedDispatcher.PRIORITY_DEFAULT,
|
||||
backInvokedCallback!!
|
||||
)
|
||||
}
|
||||
|
||||
public override fun onCreate(savedInstanceState: Bundle?) {
|
||||
@@ -125,12 +128,15 @@ class BaresipContactActivity : ComponentActivity() {
|
||||
enableEdgeToEdge()
|
||||
|
||||
if (Build.VERSION.SDK_INT >= 33)
|
||||
onBackInvokedDispatcher.registerOnBackInvokedCallback(
|
||||
OnBackInvokedDispatcher.PRIORITY_DEFAULT,
|
||||
backInvokedCallback
|
||||
)
|
||||
else
|
||||
registerBackInvokedCallback()
|
||||
else {
|
||||
onBackPressedCallback = object : OnBackPressedCallback(true) {
|
||||
override fun handleOnBackPressed() {
|
||||
goBack()
|
||||
}
|
||||
}
|
||||
onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
|
||||
}
|
||||
|
||||
val title: String
|
||||
|
||||
@@ -702,10 +708,11 @@ class BaresipContactActivity : ComponentActivity() {
|
||||
|
||||
override fun onDestroy() {
|
||||
if (Build.VERSION.SDK_INT >= 33) {
|
||||
onBackInvokedDispatcher.unregisterOnBackInvokedCallback(backInvokedCallback)
|
||||
} else {
|
||||
onBackPressedCallback.remove()
|
||||
if (backInvokedCallback != null)
|
||||
onBackInvokedDispatcher.unregisterOnBackInvokedCallback(backInvokedCallback!!)
|
||||
}
|
||||
else
|
||||
onBackPressedCallback.remove()
|
||||
super.onDestroy()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user