mirror of
https://github.com/bitwarden/android.git
synced 2026-04-26 19:08:37 -05:00
Correct tutorial screen behavior during rotation (#45)
This commit is contained in:
@@ -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() }
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,6 +88,7 @@ fun TutorialScreen(
|
||||
TutorialAction.TutorialPageChange(pagerState.targetPage)
|
||||
)
|
||||
Column(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
verticalArrangement = Arrangement.Center,
|
||||
) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user