Skip to content

Commit 9508b4b

Browse files
PM-21701: Remove segmented control from Add Send Screen and update the screen title (#5217)
1 parent 07e4e6a commit 9508b4b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+778
-539
lines changed

app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/rootnav/RootNavScreen.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ import com.x8bit.bitwarden.ui.platform.feature.splash.splashDestination
5656
import com.x8bit.bitwarden.ui.platform.feature.vaultunlocked.VaultUnlockedGraphRoute
5757
import com.x8bit.bitwarden.ui.platform.feature.vaultunlocked.navigateToVaultUnlockedGraph
5858
import com.x8bit.bitwarden.ui.platform.feature.vaultunlocked.vaultUnlockedGraph
59-
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.model.AddSendType
59+
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.AddEditSendRoute
60+
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.ModeType
6061
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.navigateToAddSend
6162
import com.x8bit.bitwarden.ui.vault.feature.addedit.VaultAddEditArgs
6263
import com.x8bit.bitwarden.ui.vault.feature.addedit.navigateToVaultAddEdit
@@ -199,10 +200,13 @@ fun RootNavScreen(
199200
navOptions = rootNavOptions,
200201
)
201202

202-
RootNavState.VaultUnlockedForNewSend -> {
203+
is RootNavState.VaultUnlockedForNewSend -> {
203204
navController.navigateToVaultUnlock(rootNavOptions)
204205
navController.navigateToAddSend(
205-
sendAddType = AddSendType.AddItem,
206+
route = AddEditSendRoute(
207+
sendType = currentState.sendType,
208+
modeType = ModeType.ADD,
209+
),
206210
navOptions = rootNavOptions,
207211
)
208212
}

app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/rootnav/RootNavViewModel.kt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ import com.x8bit.bitwarden.data.credentials.model.Fido2CredentialAssertionReques
1616
import com.x8bit.bitwarden.data.credentials.model.GetCredentialsRequest
1717
import com.x8bit.bitwarden.data.platform.manager.SpecialCircumstanceManager
1818
import com.x8bit.bitwarden.data.platform.manager.model.SpecialCircumstance
19+
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
20+
import com.x8bit.bitwarden.ui.tools.feature.send.model.SendItemType
1921
import dagger.hilt.android.lifecycle.HiltViewModel
2022
import kotlinx.coroutines.flow.combine
2123
import kotlinx.coroutines.flow.launchIn
@@ -124,7 +126,14 @@ class RootNavViewModel @Inject constructor(
124126
)
125127
}
126128

127-
is SpecialCircumstance.ShareNewSend -> RootNavState.VaultUnlockedForNewSend
129+
is SpecialCircumstance.ShareNewSend -> {
130+
RootNavState.VaultUnlockedForNewSend(
131+
sendType = when (specialCircumstance.data) {
132+
is IntentManager.ShareData.FileSend -> SendItemType.FILE
133+
is IntentManager.ShareData.TextSend -> SendItemType.TEXT
134+
},
135+
)
136+
}
128137

129138
is SpecialCircumstance.PasswordlessRequest -> {
130139
RootNavState.VaultUnlockedForAuthRequest
@@ -330,7 +339,9 @@ sealed class RootNavState : Parcelable {
330339
* App should show the new send screen for an unlocked user.
331340
*/
332341
@Parcelize
333-
data object VaultUnlockedForNewSend : RootNavState()
342+
data class VaultUnlockedForNewSend(
343+
val sendType: SendItemType,
344+
) : RootNavState()
334345

335346
/**
336347
* App should show the screen to complete an ongoing registration process.

app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchNavigation.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import androidx.navigation.NavOptions
77
import androidx.navigation.toRoute
88
import com.bitwarden.ui.platform.base.util.composableWithSlideTransitions
99
import com.x8bit.bitwarden.ui.platform.feature.search.model.SearchType
10+
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.AddEditSendRoute
1011
import com.x8bit.bitwarden.ui.tools.feature.send.viewsend.ViewSendRoute
1112
import com.x8bit.bitwarden.ui.vault.feature.addedit.VaultAddEditArgs
1213
import com.x8bit.bitwarden.ui.vault.feature.item.VaultItemArgs
@@ -85,15 +86,15 @@ fun SavedStateHandle.toSearchArgs(): SearchArgs {
8586
*/
8687
fun NavGraphBuilder.searchDestination(
8788
onNavigateBack: () -> Unit,
88-
onNavigateToEditSend: (sendId: String) -> Unit,
89+
onNavigateToAddEditSend: (route: AddEditSendRoute) -> Unit,
8990
onNavigateToViewSend: (route: ViewSendRoute) -> Unit,
9091
onNavigateToEditCipher: (args: VaultAddEditArgs) -> Unit,
9192
onNavigateToViewCipher: (args: VaultItemArgs) -> Unit,
9293
) {
9394
composableWithSlideTransitions<SearchRoute> {
9495
SearchScreen(
9596
onNavigateBack = onNavigateBack,
96-
onNavigateToEditSend = onNavigateToEditSend,
97+
onNavigateToAddEditSend = onNavigateToAddEditSend,
9798
onNavigateToViewSend = onNavigateToViewSend,
9899
onNavigateToEditCipher = onNavigateToEditCipher,
99100
onNavigateToViewCipher = onNavigateToViewCipher,

app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchScreen.kt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ import com.x8bit.bitwarden.ui.platform.composition.LocalAppResumeStateManager
3535
import com.x8bit.bitwarden.ui.platform.composition.LocalIntentManager
3636
import com.x8bit.bitwarden.ui.platform.feature.search.handlers.SearchHandlers
3737
import com.x8bit.bitwarden.ui.platform.manager.intent.IntentManager
38+
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.AddEditSendRoute
39+
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.ModeType
3840
import com.x8bit.bitwarden.ui.tools.feature.send.viewsend.ViewSendRoute
3941
import com.x8bit.bitwarden.ui.vault.feature.addedit.VaultAddEditArgs
4042
import com.x8bit.bitwarden.ui.vault.feature.item.VaultItemArgs
@@ -50,7 +52,7 @@ import kotlinx.collections.immutable.toImmutableList
5052
@Composable
5153
fun SearchScreen(
5254
onNavigateBack: () -> Unit,
53-
onNavigateToEditSend: (sendId: String) -> Unit,
55+
onNavigateToAddEditSend: (route: AddEditSendRoute) -> Unit,
5456
onNavigateToViewSend: (route: ViewSendRoute) -> Unit,
5557
onNavigateToEditCipher: (args: VaultAddEditArgs) -> Unit,
5658
onNavigateToViewCipher: (args: VaultItemArgs) -> Unit,
@@ -73,7 +75,16 @@ fun SearchScreen(
7375
EventsEffect(viewModel = viewModel) { event ->
7476
when (event) {
7577
SearchEvent.NavigateBack -> onNavigateBack()
76-
is SearchEvent.NavigateToEditSend -> onNavigateToEditSend(event.sendId)
78+
is SearchEvent.NavigateToEditSend -> {
79+
onNavigateToAddEditSend(
80+
AddEditSendRoute(
81+
sendType = event.sendType,
82+
modeType = ModeType.EDIT,
83+
sendId = event.sendId,
84+
),
85+
)
86+
}
87+
7788
is SearchEvent.NavigateToViewSend -> {
7889
onNavigateToViewSend(
7990
ViewSendRoute(sendId = event.sendId, sendType = event.sendType),

app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/search/SearchViewModel.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,12 @@ class SearchViewModel @Inject constructor(
345345
}
346346

347347
private fun handleEditClick(action: ListingItemOverflowAction.SendAction.EditClick) {
348-
sendEvent(SearchEvent.NavigateToEditSend(action.sendId))
348+
sendEvent(
349+
event = SearchEvent.NavigateToEditSend(
350+
sendId = action.sendId,
351+
sendType = action.sendType.toSendItemType(),
352+
),
353+
)
349354
}
350355

351356
private fun handleCopyTotpClick(
@@ -1221,6 +1226,7 @@ sealed class SearchEvent {
12211226
*/
12221227
data class NavigateToEditSend(
12231228
val sendId: String,
1229+
val sendType: SendItemType,
12241230
) : SearchEvent()
12251231

12261232
/**

app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/vaultunlocked/VaultUnlockedNavigation.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ import com.x8bit.bitwarden.ui.tools.feature.generator.navigateToGeneratorModal
3737
import com.x8bit.bitwarden.ui.tools.feature.generator.passwordhistory.navigateToPasswordHistory
3838
import com.x8bit.bitwarden.ui.tools.feature.generator.passwordhistory.passwordHistoryDestination
3939
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.addSendDestination
40-
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.model.AddSendType
4140
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.navigateToAddSend
4241
import com.x8bit.bitwarden.ui.tools.feature.send.viewsend.navigateToViewSend
4342
import com.x8bit.bitwarden.ui.tools.feature.send.viewsend.viewSendDestination
@@ -102,8 +101,7 @@ fun NavGraphBuilder.vaultUnlockedGraph(
102101
onNavigateToVaultEditItem = { navController.navigateToVaultAddEdit(it) },
103102
onNavigateToSearchVault = { navController.navigateToSearch(searchType = it) },
104103
onNavigateToSearchSend = { navController.navigateToSearch(searchType = it) },
105-
onNavigateToAddSend = { navController.navigateToAddSend(AddSendType.AddItem) },
106-
onNavigateToEditSend = { navController.navigateToAddSend(AddSendType.EditItem(it)) },
104+
onNavigateToAddEditSend = { navController.navigateToAddSend(it) },
107105
onNavigateToViewSend = { navController.navigateToViewSend(route = it) },
108106
onNavigateToDeleteAccount = { navController.navigateToDeleteAccount() },
109107
onNavigateToPendingRequests = { navController.navigateToPendingRequests() },
@@ -207,9 +205,7 @@ fun NavGraphBuilder.vaultUnlockedGraph(
207205
)
208206
viewSendDestination(
209207
onNavigateBack = { navController.popBackStack() },
210-
onNavigateToEditSend = {
211-
navController.navigateToAddSend(sendAddType = AddSendType.EditItem(sendItemId = it))
212-
},
208+
onNavigateToAddEditSend = { navController.navigateToAddSend(it) },
213209
)
214210
passwordHistoryDestination(onNavigateBack = { navController.popBackStack() })
215211
exportVaultDestination(onNavigateBack = { navController.popBackStack() })
@@ -229,7 +225,7 @@ fun NavGraphBuilder.vaultUnlockedGraph(
229225
generatorModalDestination(onNavigateBack = { navController.popBackStack() })
230226
searchDestination(
231227
onNavigateBack = { navController.popBackStack() },
232-
onNavigateToEditSend = { navController.navigateToAddSend(AddSendType.EditItem(it)) },
228+
onNavigateToAddEditSend = { navController.navigateToAddSend(it) },
233229
onNavigateToViewSend = { navController.navigateToViewSend(it) },
234230
onNavigateToEditCipher = { navController.navigateToVaultAddEdit(it) },
235231
onNavigateToViewCipher = { navController.navigateToVaultItem(it) },

app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/vaultunlockednavbar/VaultUnlockedNavBarNavigation.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import androidx.navigation.NavOptions
66
import com.bitwarden.ui.platform.base.util.composableWithStayTransitions
77
import com.x8bit.bitwarden.ui.platform.feature.search.model.SearchType
88
import com.x8bit.bitwarden.ui.platform.manager.snackbar.SnackbarRelay
9+
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.AddEditSendRoute
910
import com.x8bit.bitwarden.ui.tools.feature.send.viewsend.ViewSendRoute
1011
import com.x8bit.bitwarden.ui.vault.feature.addedit.VaultAddEditArgs
1112
import com.x8bit.bitwarden.ui.vault.feature.item.VaultItemArgs
@@ -34,8 +35,7 @@ fun NavGraphBuilder.vaultUnlockedNavBarDestination(
3435
onNavigateToVaultEditItem: (args: VaultAddEditArgs) -> Unit,
3536
onNavigateToSearchSend: (searchType: SearchType.Sends) -> Unit,
3637
onNavigateToSearchVault: (searchType: SearchType.Vault) -> Unit,
37-
onNavigateToAddSend: () -> Unit,
38-
onNavigateToEditSend: (sendItemId: String) -> Unit,
38+
onNavigateToAddEditSend: (route: AddEditSendRoute) -> Unit,
3939
onNavigateToViewSend: (ViewSendRoute) -> Unit,
4040
onNavigateToDeleteAccount: () -> Unit,
4141
onNavigateToExportVault: () -> Unit,
@@ -57,8 +57,7 @@ fun NavGraphBuilder.vaultUnlockedNavBarDestination(
5757
onNavigateToViewSend = onNavigateToViewSend,
5858
onNavigateToSearchSend = onNavigateToSearchSend,
5959
onNavigateToSearchVault = onNavigateToSearchVault,
60-
onNavigateToAddSend = onNavigateToAddSend,
61-
onNavigateToEditSend = onNavigateToEditSend,
60+
onNavigateToAddEditSend = onNavigateToAddEditSend,
6261
onNavigateToDeleteAccount = onNavigateToDeleteAccount,
6362
onNavigateToExportVault = onNavigateToExportVault,
6463
onNavigateToFolders = onNavigateToFolders,

app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/vaultunlockednavbar/VaultUnlockedNavBarScreen.kt

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import com.x8bit.bitwarden.ui.platform.feature.vaultunlockednavbar.model.VaultUn
3434
import com.x8bit.bitwarden.ui.platform.manager.snackbar.SnackbarRelay
3535
import com.x8bit.bitwarden.ui.tools.feature.generator.generatorGraph
3636
import com.x8bit.bitwarden.ui.tools.feature.generator.navigateToGeneratorGraph
37+
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.AddEditSendRoute
3738
import com.x8bit.bitwarden.ui.tools.feature.send.navigateToSendGraph
3839
import com.x8bit.bitwarden.ui.tools.feature.send.sendGraph
3940
import com.x8bit.bitwarden.ui.tools.feature.send.viewsend.ViewSendRoute
@@ -59,8 +60,7 @@ fun VaultUnlockedNavBarScreen(
5960
onNavigateToVaultEditItem: (args: VaultAddEditArgs) -> Unit,
6061
onNavigateToSearchSend: (searchType: SearchType.Sends) -> Unit,
6162
onNavigateToSearchVault: (searchType: SearchType.Vault) -> Unit,
62-
onNavigateToAddSend: () -> Unit,
63-
onNavigateToEditSend: (sendItemId: String) -> Unit,
63+
onNavigateToAddEditSend: (route: AddEditSendRoute) -> Unit,
6464
onNavigateToViewSend: (ViewSendRoute) -> Unit,
6565
onNavigateToDeleteAccount: () -> Unit,
6666
onNavigateToExportVault: () -> Unit,
@@ -122,8 +122,7 @@ fun VaultUnlockedNavBarScreen(
122122
navigateToVaultAddItem = onNavigateToVaultAddItem,
123123
onNavigateToSearchSend = onNavigateToSearchSend,
124124
onNavigateToSearchVault = onNavigateToSearchVault,
125-
navigateToAddSend = onNavigateToAddSend,
126-
onNavigateToEditSend = onNavigateToEditSend,
125+
onNavigateToAddEditSend = onNavigateToAddEditSend,
127126
onNavigateToViewSend = onNavigateToViewSend,
128127
navigateToDeleteAccount = onNavigateToDeleteAccount,
129128
navigateToExportVault = onNavigateToExportVault,
@@ -168,8 +167,7 @@ private fun VaultUnlockedNavBarScaffold(
168167
onNavigateToVaultEditItem: (args: VaultAddEditArgs) -> Unit,
169168
onNavigateToSearchSend: (searchType: SearchType.Sends) -> Unit,
170169
onNavigateToSearchVault: (searchType: SearchType.Vault) -> Unit,
171-
navigateToAddSend: () -> Unit,
172-
onNavigateToEditSend: (sendItemId: String) -> Unit,
170+
onNavigateToAddEditSend: (route: AddEditSendRoute) -> Unit,
173171
onNavigateToViewSend: (ViewSendRoute) -> Unit,
174172
navigateToDeleteAccount: () -> Unit,
175173
navigateToExportVault: () -> Unit,
@@ -242,8 +240,7 @@ private fun VaultUnlockedNavBarScaffold(
242240
)
243241
sendGraph(
244242
navController = navController,
245-
onNavigateToAddSend = navigateToAddSend,
246-
onNavigateToEditSend = onNavigateToEditSend,
243+
onNavigateToAddEditSend = onNavigateToAddEditSend,
247244
onNavigateToViewSend = onNavigateToViewSend,
248245
onNavigateToSearchSend = onNavigateToSearchSend,
249246
)

app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendGraphNavigation.kt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import androidx.navigation.NavGraphBuilder
55
import androidx.navigation.NavOptions
66
import androidx.navigation.navigation
77
import com.x8bit.bitwarden.ui.platform.feature.search.model.SearchType
8+
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.AddEditSendRoute
89
import com.x8bit.bitwarden.ui.tools.feature.send.viewsend.ViewSendRoute
910
import com.x8bit.bitwarden.ui.vault.feature.itemlisting.navigateToSendItemListing
1011
import com.x8bit.bitwarden.ui.vault.feature.itemlisting.sendItemListingDestination
@@ -22,17 +23,15 @@ data object SendGraphRoute
2223
*/
2324
fun NavGraphBuilder.sendGraph(
2425
navController: NavController,
25-
onNavigateToAddSend: () -> Unit,
26-
onNavigateToEditSend: (sendItemId: String) -> Unit,
26+
onNavigateToAddEditSend: (route: AddEditSendRoute) -> Unit,
2727
onNavigateToViewSend: (ViewSendRoute) -> Unit,
2828
onNavigateToSearchSend: (searchType: SearchType.Sends) -> Unit,
2929
) {
3030
navigation<SendGraphRoute>(
3131
startDestination = SendRoute,
3232
) {
3333
sendDestination(
34-
onNavigateToAddSend = onNavigateToAddSend,
35-
onNavigateToEditSend = onNavigateToEditSend,
34+
onNavigateToAddEditSend = onNavigateToAddEditSend,
3635
onNavigateToViewSend = onNavigateToViewSend,
3736
onNavigateToSendFilesList = {
3837
navController.navigateToSendItemListing(VaultItemListingType.SendFile)
@@ -44,9 +43,8 @@ fun NavGraphBuilder.sendGraph(
4443
)
4544
sendItemListingDestination(
4645
onNavigateBack = { navController.popBackStack() },
47-
onNavigateToAddSendItem = onNavigateToAddSend,
46+
onNavigateToAddEditSendItem = onNavigateToAddEditSend,
4847
onNavigateToViewSendItem = onNavigateToViewSend,
49-
onNavigateToEditSendItem = onNavigateToEditSend,
5048
onNavigateToSearchSend = onNavigateToSearchSend,
5149
)
5250
}

app/src/main/java/com/x8bit/bitwarden/ui/tools/feature/send/SendNavigation.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import androidx.navigation.NavGraphBuilder
55
import androidx.navigation.NavOptions
66
import com.bitwarden.ui.platform.base.util.composableWithRootPushTransitions
77
import com.x8bit.bitwarden.ui.platform.feature.search.model.SearchType
8+
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.AddEditSendRoute
89
import com.x8bit.bitwarden.ui.tools.feature.send.viewsend.ViewSendRoute
910
import kotlinx.serialization.Serializable
1011

@@ -19,17 +20,15 @@ data object SendRoute
1920
*/
2021
@Suppress("LongParameterList")
2122
fun NavGraphBuilder.sendDestination(
22-
onNavigateToAddSend: () -> Unit,
23-
onNavigateToEditSend: (sendItemId: String) -> Unit,
23+
onNavigateToAddEditSend: (route: AddEditSendRoute) -> Unit,
2424
onNavigateToViewSend: (ViewSendRoute) -> Unit,
2525
onNavigateToSendFilesList: () -> Unit,
2626
onNavigateToSendTextList: () -> Unit,
2727
onNavigateToSearchSend: (searchType: SearchType.Sends) -> Unit,
2828
) {
2929
composableWithRootPushTransitions<SendRoute> {
3030
SendScreen(
31-
onNavigateToAddSend = onNavigateToAddSend,
32-
onNavigateToEditSend = onNavigateToEditSend,
31+
onNavigateToAddEditSend = onNavigateToAddEditSend,
3332
onNavigateToViewSend = onNavigateToViewSend,
3433
onNavigateToSendFilesList = onNavigateToSendFilesList,
3534
onNavigateToSendTextList = onNavigateToSendTextList,

0 commit comments

Comments
 (0)