replace onBackPressed with onBackPressedDispatcher

This commit is contained in:
Owen LeJeune
2022-11-05 16:01:24 -04:00
parent 4a90e7c4e1
commit 08c41139eb
2 changed files with 14 additions and 5 deletions

View File

@@ -1,6 +1,9 @@
package com.owenlejeune.tvtime package com.owenlejeune.tvtime
import android.annotation.SuppressLint
import android.os.Bundle import android.os.Bundle
import android.window.OnBackInvokedDispatcher
import androidx.activity.OnBackPressedCallback
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import androidx.compose.foundation.Image import androidx.compose.foundation.Image
import androidx.compose.foundation.background import androidx.compose.foundation.background
@@ -21,6 +24,7 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.core.os.BuildCompat
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.google.accompanist.pager.* import com.google.accompanist.pager.*
import com.google.accompanist.systemuicontroller.rememberSystemUiController import com.google.accompanist.systemuicontroller.rememberSystemUiController
@@ -41,6 +45,7 @@ class OnboardingActivity: MonetCompatActivity() {
private lateinit var pagerState: PagerState private lateinit var pagerState: PagerState
private lateinit var coroutineScope: CoroutineScope private lateinit var coroutineScope: CoroutineScope
@SuppressLint("UnsafeOptInUsageError")
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
lifecycleScope.launchWhenCreated { lifecycleScope.launchWhenCreated {
@@ -51,6 +56,12 @@ class OnboardingActivity: MonetCompatActivity() {
} }
} }
} }
onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
handleBackPressed()
}
})
} }
@Composable @Composable
@@ -68,9 +79,7 @@ class OnboardingActivity: MonetCompatActivity() {
IconButton( IconButton(
modifier = Modifier.padding(12.dp), modifier = Modifier.padding(12.dp),
onClick = { onClick = {
coroutineScope.launch { onBackPressedDispatcher.onBackPressed()
pagerState.animateScrollToPage(pagerState.currentPage - 1)
}
} }
) { ) {
Icon( Icon(
@@ -180,7 +189,7 @@ class OnboardingActivity: MonetCompatActivity() {
} }
} }
override fun onBackPressed() { private fun handleBackPressed() {
if (pagerState.currentPage == 0) { if (pagerState.currentPage == 0) {
finish() finish()
} else { } else {

View File

@@ -149,6 +149,6 @@
<string name="search_result_tv_series">TV Series</string> <string name="search_result_tv_series">TV Series</string>
<string name="no_search_results">No search results found</string> <string name="no_search_results">No search results found</string>
<string name="action_skip">Skip</string> <string name="action_skip">Skip</string>
<string name="action_skip_testing">Skip (testing)</string> <string name="action_skip_testing">Skip (t)</string>
<string name="popular_today_header">Popular Today</string> <string name="popular_today_header">Popular Today</string>
</resources> </resources>