Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,14 @@ sealed interface NavDestination : NavKey {
@Serializable
data object Home : NavDestination

@Serializable
data object Onboarding : NavDestination
sealed interface Onboarding : NavDestination {
@Serializable
data object Start : Onboarding

@Serializable
data object SecuringAccount : NavDestination
@Serializable
data object Complete : Onboarding
}

@Serializable
data object Ready : NavDestination
data object SecuringAccount : NavDestination
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,27 +22,27 @@ import androidx.navigation3.runtime.NavEntry
import androidx.navigation3.runtime.NavKey
import androidx.navigation3.runtime.entryProvider
import com.infomaniak.auth.ui.screen.home.HomeScreen
import com.infomaniak.auth.ui.screen.onboarding.OnboardingScreen
import com.infomaniak.auth.ui.screen.ready.ReadyScreen
import com.infomaniak.auth.ui.screen.onboarding.complete.OnboardingCompleteScreen
import com.infomaniak.auth.ui.screen.onboarding.start.OnboardingStartScreen
import com.infomaniak.auth.ui.screen.securingaccount.SecuringAccountScreen

fun baseEntryProvider(backStack: NavBackStack<NavKey>): (NavKey) -> NavEntry<NavKey> = entryProvider {
entry<NavDestination.Home> {
HomeScreen()
}
entry<NavDestination.Onboarding> {
OnboardingScreen(
entry<NavDestination.Onboarding.Start> {
OnboardingStartScreen(
onLogin = { backStack.add(NavDestination.SecuringAccount) },
onCreateAccount = {}
)
}
entry<NavDestination.SecuringAccount> {
SecuringAccountScreen(
onFinish = { backStack.add(NavDestination.Ready) }
onFinish = { backStack.add(NavDestination.Onboarding.Complete) }
)
}
entry<NavDestination.Ready> {
ReadyScreen(
entry<NavDestination.Onboarding.Complete> {
OnboardingCompleteScreen(
navigateToHome = {
backStack.clear()
backStack.add(NavDestination.Home)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import com.infomaniak.auth.ui.navigation.baseEntryProvider
@Composable
fun MainScreen() {
// TODO: will change when back give the result of account status
val startDestination = if (true) NavDestination.Onboarding else NavDestination.Home
val startDestination = if (true) NavDestination.Onboarding.Start else NavDestination.Home

val backStack = rememberNavBackStack(startDestination)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.infomaniak.auth.ui.screen.ready
package com.infomaniak.auth.ui.screen.onboarding.complete

import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
Expand All @@ -40,7 +40,7 @@ import com.infomaniak.core.ui.compose.bottomstickybuttonscaffolds.BottomStickyBu
import com.infomaniak.core.ui.compose.preview.PreviewSmallWindow

@Composable
fun ReadyScreen(navigateToHome: () -> Unit) {
fun OnboardingCompleteScreen(navigateToHome: () -> Unit) {
BottomStickyButtonScaffold(
topBar = {
InfomaniakAuthenticatorTopAppBar()
Expand Down Expand Up @@ -70,8 +70,8 @@ fun ReadyScreen(navigateToHome: () -> Unit) {

@PreviewSmallWindow
@Composable
fun ReadyScreenPreview() {
fun OnboardingCompleteScreenPreview() {
AuthenticatorTheme {
ReadyScreen(navigateToHome = {})
OnboardingCompleteScreen(navigateToHome = {})
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.infomaniak.auth.ui.screen.onboarding
package com.infomaniak.auth.ui.screen.onboarding.start

import com.infomaniak.auth.BuildConfig
import com.infomaniak.core.crossapplogin.back.BaseCrossAppLoginViewModel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,20 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.infomaniak.auth.ui.screen.onboarding
package com.infomaniak.auth.ui.screen.onboarding.start

import androidx.annotation.RawRes
import androidx.annotation.StringRes
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.pager.PagerState
import androidx.compose.foundation.pager.rememberPagerState
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
Expand Down Expand Up @@ -110,7 +107,7 @@ internal sealed class IllustrationResource {

@PreviewSmallWindow
@Composable
private fun OnboardingPagePreview() {
private fun OnboardingStartPagePreview() {
val pagerState = rememberPagerState(pageCount = { 1 })
val page = Page.Login.toOnboardingPage(pagerState = pagerState, index = 0)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.infomaniak.auth.ui.screen.onboarding
package com.infomaniak.auth.ui.screen.onboarding.start

import androidx.activity.ComponentActivity
import androidx.activity.compose.LocalActivity
Expand Down Expand Up @@ -51,7 +51,7 @@ import com.infomaniak.core.ui.compose.basics.rememberCallableState
import com.infomaniak.core.ui.compose.preview.PreviewSmallWindow

@Composable
fun OnboardingScreen(
fun OnboardingStartScreen(
crossAppLoginViewModel: CrossAppLoginViewModel = viewModel(),
onLogin: () -> Unit,
onCreateAccount: () -> Unit
Expand All @@ -70,7 +70,7 @@ fun OnboardingScreen(
crossAppLoginViewModel.activateUpdates(hostActivity)
}

OnboardingScreen(
OnboardingStartScreen(
accountsCheckingState = { accountsCheckingState },
skippedIds = { skippedIds },
// TODO : Use loginRequest When login logic ready
Expand All @@ -85,7 +85,7 @@ fun OnboardingScreen(
}

@Composable
private fun OnboardingScreen(
private fun OnboardingStartScreen(
accountsCheckingState: () -> AccountsCheckingState,
skippedIds: () -> Set<Long>,
isLoginButtonLoading: () -> Boolean,
Expand Down Expand Up @@ -141,11 +141,11 @@ private fun OnboardingScreen(

@PreviewSmallWindow
@Composable
private fun OnboardingScreenPreview(
private fun OnboardingStartScreenPreview(
@PreviewParameter(AccountsPreviewParameter::class) accounts: List<ExternalAccount>
) {
AuthenticatorTheme {
OnboardingScreen(
OnboardingStartScreen(
accountsCheckingState = {
AccountsCheckingState(AccountsCheckingStatus.Checking, checkedAccounts = accounts)
},
Expand Down