From 08c41139eb932c1c2d8ef98a6742d419f36aaa8c Mon Sep 17 00:00:00 2001 From: Owen LeJeune Date: Sat, 5 Nov 2022 16:01:24 -0400 Subject: [PATCH] replace onBackPressed with onBackPressedDispatcher --- .../owenlejeune/tvtime/OnboardingActivity.kt | 17 +++++++++++++---- app/src/main/res/values/strings.xml | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/owenlejeune/tvtime/OnboardingActivity.kt b/app/src/main/java/com/owenlejeune/tvtime/OnboardingActivity.kt index c52fb18..cfa424e 100644 --- a/app/src/main/java/com/owenlejeune/tvtime/OnboardingActivity.kt +++ b/app/src/main/java/com/owenlejeune/tvtime/OnboardingActivity.kt @@ -1,6 +1,9 @@ package com.owenlejeune.tvtime +import android.annotation.SuppressLint import android.os.Bundle +import android.window.OnBackInvokedDispatcher +import androidx.activity.OnBackPressedCallback import androidx.activity.compose.setContent import androidx.compose.foundation.Image 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.unit.dp import androidx.compose.ui.unit.sp +import androidx.core.os.BuildCompat import androidx.lifecycle.lifecycleScope import com.google.accompanist.pager.* import com.google.accompanist.systemuicontroller.rememberSystemUiController @@ -41,6 +45,7 @@ class OnboardingActivity: MonetCompatActivity() { private lateinit var pagerState: PagerState private lateinit var coroutineScope: CoroutineScope + @SuppressLint("UnsafeOptInUsageError") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) lifecycleScope.launchWhenCreated { @@ -51,6 +56,12 @@ class OnboardingActivity: MonetCompatActivity() { } } } + + onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + handleBackPressed() + } + }) } @Composable @@ -68,9 +79,7 @@ class OnboardingActivity: MonetCompatActivity() { IconButton( modifier = Modifier.padding(12.dp), onClick = { - coroutineScope.launch { - pagerState.animateScrollToPage(pagerState.currentPage - 1) - } + onBackPressedDispatcher.onBackPressed() } ) { Icon( @@ -180,7 +189,7 @@ class OnboardingActivity: MonetCompatActivity() { } } - override fun onBackPressed() { + private fun handleBackPressed() { if (pagerState.currentPage == 0) { finish() } else { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 07863fc..0c97e05 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -149,6 +149,6 @@ TV Series No search results found Skip - Skip (testing) + Skip (t) Popular Today \ No newline at end of file