Move session verification to FTUE flow, make it mandatory (#2594)
* Move session verification to the FTUE * Allow session verification flow to be restarted * Use `EncryptionService` to display session verification faster * Remove session verification item from settings * Remove session verification banner from room list * Remove 'verification needed' variant from the `TimelineEncryptedHistoryBanner` * Improve verification flow UI and UX * Remove 'verification successful' snackbar message * Only register push provider after the session has been verified * Hide room list while the session hasn't been verified * Prevent deep links from changing the navigation if the session isn't verified * Update screenshots * Renamed `FtueState` to `FtueService`, created an actual `FtueState`. --------- Co-authored-by: ElementBot <benoitm+elementbot@element.io>
This commit is contained in:
parent
05f6770d35
commit
41287c5f59
198 changed files with 822 additions and 761 deletions
|
|
@ -18,8 +18,25 @@ package io.element.android.features.ftue.api.state
|
|||
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
|
||||
interface FtueState {
|
||||
val shouldDisplayFlow: StateFlow<Boolean>
|
||||
/**
|
||||
* Service to manage the First Time User Experience state (aka Onboarding).
|
||||
*/
|
||||
interface FtueService {
|
||||
/** The current state of the FTUE. */
|
||||
val state: StateFlow<FtueState>
|
||||
|
||||
/** Reset the FTUE state. */
|
||||
suspend fun reset()
|
||||
}
|
||||
|
||||
/** The state of the FTUE. */
|
||||
sealed interface FtueState {
|
||||
/** The FTUE state is unknown, nothing to do for now. */
|
||||
data object Unknown : FtueState
|
||||
|
||||
/** The FTUE state is incomplete. The FTUE flow should be displayed. */
|
||||
data object Incomplete : FtueState
|
||||
|
||||
/** The FTUE state is complete. The FTUE flow should not be displayed anymore. */
|
||||
data object Complete : FtueState
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue