|
|
|
@ -35,7 +35,6 @@ import com.bumble.appyx.core.plugin.plugins
@@ -35,7 +35,6 @@ import com.bumble.appyx.core.plugin.plugins
|
|
|
|
|
import com.bumble.appyx.navmodel.backstack.BackStack |
|
|
|
|
import com.bumble.appyx.navmodel.backstack.operation.push |
|
|
|
|
import com.bumble.appyx.navmodel.backstack.operation.replace |
|
|
|
|
import com.bumble.appyx.navmodel.backstack.operation.singleTop |
|
|
|
|
import dagger.assisted.Assisted |
|
|
|
|
import dagger.assisted.AssistedInject |
|
|
|
|
import io.element.android.anvilannotations.ContributesNode |
|
|
|
@ -60,6 +59,7 @@ import io.element.android.features.securebackup.api.SecureBackupEntryPoint
@@ -60,6 +59,7 @@ import io.element.android.features.securebackup.api.SecureBackupEntryPoint
|
|
|
|
|
import io.element.android.libraries.architecture.BackstackView |
|
|
|
|
import io.element.android.libraries.architecture.BaseFlowNode |
|
|
|
|
import io.element.android.libraries.architecture.createNode |
|
|
|
|
import io.element.android.libraries.architecture.waitForNavTargetAttached |
|
|
|
|
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarDispatcher |
|
|
|
|
import io.element.android.libraries.di.AppScope |
|
|
|
|
import io.element.android.libraries.di.SessionScope |
|
|
|
@ -345,11 +345,6 @@ class LoggedInFlowNode @AssistedInject constructor(
@@ -345,11 +345,6 @@ class LoggedInFlowNode @AssistedInject constructor(
|
|
|
|
|
} |
|
|
|
|
NavTarget.Ftue -> { |
|
|
|
|
ftueEntryPoint.nodeBuilder(this, buildContext) |
|
|
|
|
.callback(object : FtueEntryPoint.Callback { |
|
|
|
|
override fun onFtueFlowFinished() { |
|
|
|
|
lifecycleScope.launch { attachRoomList() } |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
.build() |
|
|
|
|
} |
|
|
|
|
NavTarget.RoomDirectorySearch -> { |
|
|
|
@ -368,32 +363,22 @@ class LoggedInFlowNode @AssistedInject constructor(
@@ -368,32 +363,22 @@ class LoggedInFlowNode @AssistedInject constructor(
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
suspend fun attachRoomList() { |
|
|
|
|
if (!canShowRoomList()) return |
|
|
|
|
attachChild<Node> { |
|
|
|
|
backstack.singleTop(NavTarget.RoomList) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
suspend fun attachRoom(roomId: RoomId) { |
|
|
|
|
if (!canShowRoomList()) return |
|
|
|
|
waitForNavTargetAttached { navTarget -> |
|
|
|
|
navTarget is NavTarget.RoomList |
|
|
|
|
} |
|
|
|
|
attachChild<RoomFlowNode> { |
|
|
|
|
backstack.singleTop(NavTarget.RoomList) |
|
|
|
|
backstack.push(NavTarget.Room(roomId.toRoomIdOrAlias())) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private fun canShowRoomList(): Boolean { |
|
|
|
|
return ftueService.state.value is FtueState.Complete |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Composable |
|
|
|
|
override fun View(modifier: Modifier) { |
|
|
|
|
Box(modifier = modifier) { |
|
|
|
|
val lockScreenState by lockScreenStateService.lockState.collectAsState() |
|
|
|
|
val isFtueDisplayed by ftueService.state.collectAsState() |
|
|
|
|
val ftueState by ftueService.state.collectAsState() |
|
|
|
|
BackstackView() |
|
|
|
|
if (isFtueDisplayed is FtueState.Complete) { |
|
|
|
|
if (ftueState is FtueState.Complete) { |
|
|
|
|
PermanentChild(permanentNavModel = permanentNavModel, navTarget = NavTarget.LoggedInPermanent) |
|
|
|
|
} |
|
|
|
|
if (lockScreenState == LockScreenLockState.Locked) { |
|
|
|
|