Correct tutorial screen behavior during rotation (#45)

This commit is contained in:
Patrick Honkonen
2024-04-24 01:23:43 -04:00
committed by GitHub
parent 5167b2c491
commit d85904748e
3 changed files with 10 additions and 1 deletions

View File

@@ -13,6 +13,7 @@ import com.bitwarden.authenticator.ui.authenticator.feature.qrcodescan.navigateT
import com.bitwarden.authenticator.ui.authenticator.feature.search.navigateToSearch
import com.bitwarden.authenticator.ui.platform.feature.settings.export.navigateToExport
import com.bitwarden.authenticator.ui.platform.feature.tutorial.navigateToTutorial
import com.bitwarden.authenticator.ui.platform.feature.tutorial.tutorialDestination
const val AUTHENTICATOR_GRAPH_ROUTE = "authenticator_graph"
@@ -58,5 +59,8 @@ fun NavGraphBuilder.authenticatorGraph(
navigateToTutorial = { navController.navigateToTutorial() },
navigateToExport = { navController.navigateToExport() },
)
tutorialDestination(
onTutorialFinished = { navController.popBackStack() }
)
}
}

View File

@@ -88,6 +88,7 @@ fun TutorialScreen(
TutorialAction.TutorialPageChange(pagerState.targetPage)
)
Column(
modifier = Modifier.fillMaxWidth(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center,
) {

View File

@@ -1,6 +1,7 @@
package com.bitwarden.authenticator.ui.platform.feature.tutorial
import android.os.Parcelable
import androidx.lifecycle.SavedStateHandle
import com.bitwarden.authenticator.R
import com.bitwarden.authenticator.data.platform.repository.SettingsRepository
import com.bitwarden.authenticator.ui.platform.base.BaseViewModel
@@ -11,15 +12,18 @@ import kotlinx.coroutines.flow.update
import kotlinx.parcelize.Parcelize
import javax.inject.Inject
private const val KEY_STATE = "state"
/**
* View model for the [TutorialScreen].
*/
@HiltViewModel
class TutorialViewModel @Inject constructor(
private val settingsRepository: SettingsRepository,
savedStateHandle: SavedStateHandle,
) :
BaseViewModel<TutorialState, TutorialEvent, TutorialAction>(
initialState = TutorialState.IntroSlide
initialState = savedStateHandle[KEY_STATE] ?: TutorialState.IntroSlide
) {
override fun handleAction(action: TutorialAction) {