Skip to content

Commit d6a3364

Browse files
authored
feat: open team migration on creating channel upgrade [WPB-17057] (#3998)
1 parent ba49270 commit d6a3364

File tree

14 files changed

+276
-322
lines changed

14 files changed

+276
-322
lines changed

app/src/main/kotlin/com/wire/android/navigation/MainNavHost.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import com.wire.android.ui.destinations.NewLoginPasswordScreenDestination
4343
import com.wire.android.ui.destinations.NewLoginVerificationCodeScreenDestination
4444
import com.wire.android.ui.home.conversations.ConversationScreen
4545
import com.wire.android.ui.home.newconversation.NewConversationViewModel
46+
import com.wire.android.ui.userprofile.teammigration.TeamMigrationViewModel
4647

4748
@OptIn(ExperimentalMaterialNavigationApi::class, ExperimentalAnimationApi::class)
4849
@Composable
@@ -105,6 +106,14 @@ fun MainNavHost(
105106
}
106107
SSOUrlConfigHolderImpl(parentEntry.savedStateHandle)
107108
}
109+
110+
// 👇 To tie TeamMigrationViewModel to PersonalToTeamMigrationNavGraph, making it shared between all screens that belong to it
111+
dependency(NavGraphs.personalToTeamMigration) {
112+
val parentEntry = remember(navBackStackEntry) {
113+
navController.getBackStackEntry(NavGraphs.personalToTeamMigration.route)
114+
}
115+
hiltViewModel<TeamMigrationViewModel>(parentEntry)
116+
}
108117
},
109118
manualComposableCallsBuilder = {
110119
/**

app/src/main/kotlin/com/wire/android/ui/home/newconversation/search/NewConversationSearchPeopleScreen.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,19 @@ package com.wire.android.ui.home.newconversation.search
2020
import androidx.compose.runtime.Composable
2121
import androidx.compose.runtime.mutableStateOf
2222
import androidx.compose.runtime.remember
23-
import androidx.compose.ui.platform.LocalContext
2423
import androidx.compose.ui.res.stringResource
2524
import com.wire.android.R
2625
import com.wire.android.navigation.NavigationCommand
2726
import com.wire.android.navigation.Navigator
2827
import com.wire.android.navigation.WireDestination
2928
import com.wire.android.navigation.style.PopUpNavigationAnimation
29+
import com.wire.android.ui.NavGraphs
3030
import com.wire.android.ui.destinations.NewGroupConversationSearchPeopleScreenDestination
3131
import com.wire.android.ui.destinations.OtherUserProfileScreenDestination
3232
import com.wire.android.ui.home.conversations.search.SearchPeopleScreenType
3333
import com.wire.android.ui.home.conversations.search.SearchUsersAndServicesScreen
3434
import com.wire.android.ui.home.newconversation.NewConversationViewModel
3535
import com.wire.android.ui.home.newconversation.common.NewConversationNavGraph
36-
import com.wire.android.util.CustomTabsHelper
3736
import com.wire.kalium.logic.data.id.QualifiedID
3837

3938
@NewConversationNavGraph(start = true)
@@ -77,14 +76,13 @@ fun NewConversationSearchPeopleScreen(
7776
)
7877

7978
if (showCreateTeamDialog.value) {
80-
val context = LocalContext.current
81-
val createTeamLink = stringResource(R.string.url_wire_create_team)
8279
ChannelNotAvailableDialog(
8380
onDismiss = {
8481
showCreateTeamDialog.value = false
8582
},
8683
onCreateTeam = {
87-
CustomTabsHelper.launchUrl(context, createTeamLink)
84+
showCreateTeamDialog.value = false
85+
navigator.navigate(NavigationCommand(NavGraphs.personalToTeamMigration))
8886
}
8987
)
9088
}

app/src/main/kotlin/com/wire/android/ui/userprofile/self/SelfUserProfileScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ import com.wire.android.navigation.NavigationCommand
6464
import com.wire.android.navigation.Navigator
6565
import com.wire.android.navigation.WireDestination
6666
import com.wire.android.navigation.style.PopUpNavigationAnimation
67+
import com.wire.android.ui.NavGraphs
6768
import com.wire.android.ui.common.VisibilityState
6869
import com.wire.android.ui.common.WireDropDown
6970
import com.wire.android.ui.common.avatar.UserStatusIndicator
@@ -83,7 +84,6 @@ import com.wire.android.ui.destinations.AvatarPickerScreenDestination
8384
import com.wire.android.ui.destinations.MyAccountScreenDestination
8485
import com.wire.android.ui.destinations.NewLoginScreenDestination
8586
import com.wire.android.ui.destinations.SelfQRCodeScreenDestination
86-
import com.wire.android.ui.destinations.TeamMigrationScreenDestination
8787
import com.wire.android.ui.destinations.WelcomeScreenDestination
8888
import com.wire.android.ui.home.conversationslist.common.FolderHeader
8989
import com.wire.android.ui.legalhold.banner.LegalHoldPendingBanner
@@ -168,7 +168,7 @@ fun SelfUserProfileScreen(
168168
)
169169
},
170170
onCreateAccount = {
171-
navigator.navigate(NavigationCommand(TeamMigrationScreenDestination))
171+
navigator.navigate(NavigationCommand(NavGraphs.personalToTeamMigration))
172172
},
173173
onAccountDetailsClick = { navigator.navigate(NavigationCommand(MyAccountScreenDestination)) },
174174
isUserInCall = viewModelSelf::isUserInCall,

app/src/main/kotlin/com/wire/android/ui/userprofile/teammigration/PersonalToTeamMigrationNavGraph.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
package com.wire.android.ui.userprofile.teammigration
1919

2020
import com.ramcosta.composedestinations.annotation.NavGraph
21+
import com.ramcosta.composedestinations.annotation.RootNavGraph
2122

23+
@RootNavGraph
2224
@NavGraph
2325
annotation class PersonalToTeamMigrationNavGraph(
2426
val start: Boolean = false

app/src/main/kotlin/com/wire/android/ui/userprofile/teammigration/TeamMigrationScreen.kt

Lines changed: 0 additions & 159 deletions
This file was deleted.

app/src/main/kotlin/com/wire/android/ui/userprofile/teammigration/TeamMigrationState.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,7 @@ import com.wire.kalium.logic.feature.user.migration.MigrateFromPersonalToTeamFai
2222

2323
data class TeamMigrationState(
2424
val teamNameTextState: TextFieldState = TextFieldState(),
25-
val shouldShowMigrationLeaveDialog: Boolean = false,
2625
val isMigrating: Boolean = false,
27-
val currentStep: Int = 0,
2826
val username: String = "",
2927
val teamUrl: String = "",
3028
val migrationFailure: MigrateFromPersonalToTeamFailure? = null,

app/src/main/kotlin/com/wire/android/ui/userprofile/teammigration/TeamMigrationViewModel.kt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,7 @@ class TeamMigrationViewModel @Inject constructor(
5252
observeMigrationDotActive()
5353
}
5454

55-
fun showMigrationLeaveDialog() {
56-
teamMigrationState = teamMigrationState.copy(shouldShowMigrationLeaveDialog = true)
57-
}
58-
59-
fun hideMigrationLeaveDialog() {
60-
teamMigrationState = teamMigrationState.copy(shouldShowMigrationLeaveDialog = false)
61-
}
62-
6355
fun setCurrentStep(step: Int) {
64-
teamMigrationState = teamMigrationState.copy(currentStep = step)
6556
sendPersonalTeamCreationFlowStepEvent(step)
6657
}
6758

app/src/main/kotlin/com/wire/android/ui/userprofile/teammigration/common/BottomLineButtons.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ fun BottomLineButtons(
4545
isMigrating: Boolean = false,
4646
isBackButtonVisible: Boolean = true,
4747
backButtonContentDescription: String = stringResource(R.string.personal_to_team_migration_back_button_label),
48+
backButtonText: String = stringResource(R.string.personal_to_team_migration_back_button_label),
4849
onBack: () -> Unit = { },
50+
continueButtonText: String = stringResource(R.string.label_continue),
4951
onContinue: () -> Unit = { }
5052
) {
5153
Column(
@@ -67,7 +69,7 @@ fun BottomLineButtons(
6769
modifier = Modifier
6870
.fillMaxWidth()
6971
.semantics(true) { contentDescription = backButtonContentDescription },
70-
text = stringResource(R.string.personal_to_team_migration_back_button_label),
72+
text = backButtonText,
7173
onClick = onBack,
7274
state = if (isMigrating) {
7375
WireButtonState.Disabled
@@ -81,7 +83,7 @@ fun BottomLineButtons(
8183
modifier = Modifier
8284
.fillMaxWidth()
8385
.padding(top = dimensions().spacing6x),
84-
text = stringResource(R.string.label_continue),
86+
text = continueButtonText,
8587
onClick = onContinue,
8688
loading = isMigrating,
8789
state = if (isContinueButtonEnabled && !isMigrating) {

0 commit comments

Comments
 (0)