diff options
| author | David Göransson <david.goransson@mullvad.net> | 2024-12-13 11:39:22 +0100 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2024-12-13 11:39:22 +0100 |
| commit | 9573f3ed7a449f2aeb9f8efe0c6f4335ed0c326c (patch) | |
| tree | 8ba79f4c7fde88f2996cb1cfdc24f76eb2254a48 /android/app/src/main | |
| parent | d1f2a58c6151527e6b29d3497728ff2913140291 (diff) | |
| parent | 90174b2518dc15edcb1b1fe28392d6ad4fe34f89 (diff) | |
| download | mullvadvpn-9573f3ed7a449f2aeb9f8efe0c6f4335ed0c326c.tar.xz mullvadvpn-9573f3ed7a449f2aeb9f8efe0c6f4335ed0c326c.zip | |
Merge branch 'remove-empty-lambda-default-arguments-in-screens-and-dialogs-droid-1526'
Diffstat (limited to 'android/app/src/main')
43 files changed, 372 insertions, 253 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/ConnectionButton.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/ConnectionButton.kt index 47690247dc..8c336e5544 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/ConnectionButton.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/ConnectionButton.kt @@ -31,9 +31,9 @@ private fun PreviewConnectionButton( fun ConnectionButton( modifier: Modifier = Modifier, state: TunnelState, - disconnectClick: () -> Unit = {}, - cancelClick: () -> Unit = {}, - connectClick: () -> Unit = {}, + disconnectClick: () -> Unit, + cancelClick: () -> Unit, + connectClick: () -> Unit, ) { val containerColor = diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/CustomPortCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/CustomPortCell.kt index 321a86700f..0ea351e8b1 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/CustomPortCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/CustomPortCell.kt @@ -40,8 +40,20 @@ import net.mullvad.mullvadvpn.lib.theme.color.selected private fun PreviewCustomPortCell() { AppTheme { SpacedColumn(Modifier.background(MaterialTheme.colorScheme.surface)) { - CustomPortCell(title = "Title", isSelected = true, port = Port(444)) - CustomPortCell(title = "Title", isSelected = false, port = null) + CustomPortCell( + title = "Title", + isSelected = true, + port = Port(444), + onPortCellClicked = {}, + onMainCellClicked = {}, + ) + CustomPortCell( + title = "Title", + isSelected = false, + port = null, + onPortCellClicked = {}, + onMainCellClicked = {}, + ) } } } @@ -53,8 +65,8 @@ fun CustomPortCell( port: Port?, mainTestTag: String = "", numberTestTag: String = "", - onMainCellClicked: () -> Unit = {}, - onPortCellClicked: () -> Unit = {}, + onMainCellClicked: () -> Unit, + onPortCellClicked: () -> Unit, ) { Row( verticalAlignment = Alignment.CenterVertically, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DropdownMenuCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DropdownMenuCell.kt index 5560a69754..70b04822ee 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DropdownMenuCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DropdownMenuCell.kt @@ -18,14 +18,14 @@ import net.mullvad.mullvadvpn.lib.theme.Dimens @Preview @Composable private fun PreviewThreeDotCell() { - AppTheme { ThreeDotCell(text = "Three dots") } + AppTheme { ThreeDotCell(text = "Three dots", onClickDots = {}) } } @Composable fun ThreeDotCell( text: String, modifier: Modifier = Modifier, - onClickDots: () -> Unit = {}, + onClickDots: () -> Unit, textStyle: TextStyle = MaterialTheme.typography.titleMedium, textColor: Color = MaterialTheme.colorScheme.onPrimary, background: Color = MaterialTheme.colorScheme.primary, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ExpandableComposeCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ExpandableComposeCell.kt index 81a5bd0ea5..a1ca433322 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ExpandableComposeCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ExpandableComposeCell.kt @@ -53,7 +53,7 @@ fun ExpandableComposeCell( testTag: String = "", textColor: Color = MaterialTheme.colorScheme.onPrimary, background: Color = MaterialTheme.colorScheme.primary, - onCellClicked: (Boolean) -> Unit = {}, + onCellClicked: (Boolean) -> Unit, onInfoClicked: (() -> Unit)? = null, ) { val titleModifier = Modifier.alpha(if (isEnabled) AlphaVisible else AlphaInactive) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ObfuscationModeCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ObfuscationModeCell.kt index 5191eba331..90b5da8891 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ObfuscationModeCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ObfuscationModeCell.kt @@ -57,7 +57,7 @@ fun ObfuscationModeCell( port: Constraint<Port>, isSelected: Boolean, onSelected: (ObfuscationMode) -> Unit, - onNavigate: () -> Unit = {}, + onNavigate: () -> Unit, testTag: String? = null, ) { Row( diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt index eb729701bc..14d9c20ebe 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt @@ -75,9 +75,9 @@ fun StatusRelayItemCell( isSelected: Boolean, state: RelayListItemState?, modifier: Modifier = Modifier, - onClick: () -> Unit = {}, + onClick: () -> Unit, onLongClick: (() -> Unit)? = null, - onToggleExpand: ((Boolean) -> Unit) = {}, + onToggleExpand: ((Boolean) -> Unit), isExpanded: Boolean = false, depth: Int = 0, activeColor: Color = MaterialTheme.colorScheme.selected, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SplitTunnelingCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SplitTunnelingCell.kt index 05bbcb1b5a..15a83776d4 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SplitTunnelingCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SplitTunnelingCell.kt @@ -48,12 +48,16 @@ private fun PreviewTunnelingCell() { packageName = "", isSelected = false, enabled = true, + onCellClicked = {}, + onResolveIcon = { null }, ) SplitTunnelingCell( title = "Mullvad VPN", packageName = "", isSelected = true, enabled = true, + onCellClicked = {}, + onResolveIcon = { null }, ) } } @@ -67,8 +71,8 @@ fun SplitTunnelingCell( enabled: Boolean, modifier: Modifier = Modifier, backgroundColor: Color = MaterialTheme.colorScheme.surfaceContainerHigh, - onResolveIcon: (String) -> Bitmap? = { null }, - onCellClicked: () -> Unit = {}, + onResolveIcon: (String) -> Bitmap?, + onCellClicked: () -> Unit, ) { var icon by remember(packageName) { mutableStateOf<ImageBitmap?>(null) } LaunchedEffect(packageName) { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt index 3f05995738..61b9a828a5 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt @@ -64,7 +64,7 @@ fun NormalSwitchComposeCell( isEnabled: Boolean = true, background: Color = MaterialTheme.colorScheme.surfaceContainerLow, onBackground: Color = MaterialTheme.colorScheme.onSurface, - onCellClicked: (Boolean) -> Unit = {}, + onCellClicked: (Boolean) -> Unit, onInfoClicked: (() -> Unit)? = null, ) { SwitchComposeCell( @@ -95,7 +95,7 @@ fun HeaderSwitchComposeCell( isEnabled: Boolean = true, background: Color = MaterialTheme.colorScheme.primary, onBackground: Color = MaterialTheme.colorScheme.onPrimary, - onCellClicked: (Boolean) -> Unit = {}, + onCellClicked: (Boolean) -> Unit, onInfoClicked: (() -> Unit)? = null, ) { SwitchComposeCell( diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ChangelogDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ChangelogDialog.kt index 67a6aac2fe..e5afe6d9bc 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ChangelogDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ChangelogDialog.kt @@ -39,12 +39,12 @@ fun Changelog(navController: NavController) { } @Composable -fun ChangelogDialog(changeLog: ChangelogUiState, onDismiss: () -> Unit) { +fun ChangelogDialog(state: ChangelogUiState, onDismiss: () -> Unit) { AlertDialog( onDismissRequest = onDismiss, title = { Text( - text = changeLog.version, + text = state.version, style = MaterialTheme.typography.headlineLarge, color = MaterialTheme.colorScheme.onSurface, textAlign = TextAlign.Center, @@ -64,7 +64,7 @@ fun ChangelogDialog(changeLog: ChangelogUiState, onDismiss: () -> Unit) { modifier = Modifier.fillMaxWidth(), ) - changeLog.changes.forEach { changeItem -> ChangeListItem(text = changeItem) } + state.changes.forEach { changeItem -> ChangeListItem(text = changeItem) } } }, confirmButton = { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CreateCustomListDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CreateCustomListDialog.kt index fc9109cf4d..b93c08321c 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CreateCustomListDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CreateCustomListDialog.kt @@ -33,7 +33,7 @@ import org.koin.androidx.compose.koinViewModel @Preview @Composable private fun PreviewCreateCustomListDialog() { - AppTheme { CreateCustomListDialog(state = CreateCustomListUiState()) } + AppTheme { CreateCustomListDialog(state = CreateCustomListUiState(), {}, {}, {}) } } @Preview @@ -44,7 +44,10 @@ private fun PreviewCreateCustomListDialogError() { state = CreateCustomListUiState( error = CreateWithLocationsError.Create(CustomListAlreadyExists) - ) + ), + {}, + {}, + {}, ) } } @@ -92,9 +95,9 @@ fun CreateCustomList( @Composable fun CreateCustomListDialog( state: CreateCustomListUiState, - createCustomList: (String) -> Unit = {}, - onInputChanged: () -> Unit = {}, - onDismiss: () -> Unit = {}, + createCustomList: (String) -> Unit, + onInputChanged: () -> Unit, + onDismiss: () -> Unit, ) { val name = rememberSaveable { mutableStateOf("") } val isValidName = name.value.isNotBlank() diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DeleteCustomListConfirmationDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DeleteCustomListConfirmationDialog.kt index 3153aeb37c..1dffa3bfc9 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DeleteCustomListConfirmationDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DeleteCustomListConfirmationDialog.kt @@ -26,7 +26,9 @@ import org.koin.androidx.compose.koinViewModel private fun PreviewRemoveDeviceConfirmationDialog() { AppTheme { DeleteCustomListConfirmationDialog( - state = DeleteCustomListUiState(CustomListName.fromString("My Custom List"), null) + state = DeleteCustomListUiState(CustomListName.fromString("My Custom List"), null), + {}, + {}, ) } } @@ -59,8 +61,8 @@ fun DeleteCustomList(navigator: ResultBackNavigator<CustomListActionResultData.S @Composable fun DeleteCustomListConfirmationDialog( state: DeleteCustomListUiState, - onDelete: () -> Unit = {}, - onBack: () -> Unit = {}, + onDelete: () -> Unit, + onBack: () -> Unit, ) { NegativeConfirmationDialog( onConfirm = onDelete, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/EditCustomListNameDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/EditCustomListNameDialog.kt index 57205175e5..20560fe9e8 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/EditCustomListNameDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/EditCustomListNameDialog.kt @@ -32,7 +32,7 @@ import org.koin.androidx.compose.koinViewModel @Preview @Composable private fun PreviewEditCustomListNameDialog() { - AppTheme { EditCustomListNameDialog(EditCustomListNameUiState()) } + AppTheme { EditCustomListNameDialog(EditCustomListNameUiState(), {}, {}, {}) } } data class EditCustomListNameNavArgs( @@ -69,9 +69,9 @@ fun EditCustomListName( @Composable fun EditCustomListNameDialog( state: EditCustomListNameUiState, - updateName: (String) -> Unit = {}, - onInputChanged: (String) -> Unit = {}, - onDismiss: () -> Unit = {}, + updateName: (String) -> Unit, + onInputChanged: (String) -> Unit, + onDismiss: () -> Unit, ) { InputDialog( title = stringResource(id = R.string.update_list_name), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/NegativeConfirmationDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/NegativeConfirmationDialog.kt index 4720fd9fb7..dab6142c89 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/NegativeConfirmationDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/NegativeConfirmationDialog.kt @@ -30,7 +30,12 @@ import net.mullvad.mullvadvpn.lib.theme.Dimens @Composable private fun PreviewDeleteConfirmationDialog() { AppTheme { - NegativeConfirmationDialog(message = "Do you want to delete Cookie?", errorMessage = null) + NegativeConfirmationDialog( + message = "Do you want to delete Cookie?", + errorMessage = null, + onConfirm = {}, + onBack = {}, + ) } } @@ -41,6 +46,8 @@ private fun PreviewDeleteConfirmationDialogError() { NegativeConfirmationDialog( message = "Do you want to delete Cookie?", errorMessage = "An error occured", + onConfirm = {}, + onBack = {}, ) } } @@ -52,8 +59,8 @@ fun NegativeConfirmationDialog( errorMessage: String? = null, confirmationText: String = stringResource(id = R.string.delete), cancelText: String = stringResource(id = R.string.cancel), - onConfirm: () -> Unit = {}, - onBack: () -> Unit = {}, + onConfirm: () -> Unit, + onBack: () -> Unit, ) { NegativeConfirmationDialog( message = AnnotatedString(message), @@ -73,8 +80,8 @@ fun NegativeConfirmationDialog( errorMessage: String? = null, confirmationText: String = stringResource(id = R.string.delete), cancelText: String = stringResource(id = R.string.cancel), - onConfirm: () -> Unit = {}, - onBack: () -> Unit = {}, + onConfirm: () -> Unit, + onBack: () -> Unit, ) { AlertDialog( onDismissRequest = onBack, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/RedeemVoucherDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/RedeemVoucherDialog.kt index 04f3c05a11..5f8968beec 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/RedeemVoucherDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/RedeemVoucherDialog.kt @@ -121,7 +121,7 @@ fun RedeemVoucher(resultBackNavigator: ResultBackNavigator<Boolean>) { @Composable fun RedeemVoucherDialog( state: VoucherDialogUiState, - onVoucherInputChange: (String) -> Unit = {}, + onVoucherInputChange: (String) -> Unit, onRedeem: (voucherCode: String) -> Unit, onDismiss: (isTimeAdded: Boolean) -> Unit, ) { @@ -230,7 +230,7 @@ private fun RedeemSuccessBody(message: String) { @Composable private fun EnterVoucherBody( state: VoucherDialogUiState, - onVoucherInputChange: (String) -> Unit = {}, + onVoucherInputChange: (String) -> Unit, onRedeem: (voucherCode: String) -> Unit, ) { CustomTextField( diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/SaveApiAccessMethodDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/SaveApiAccessMethodDialog.kt index 6182f0eb81..f351c95c0e 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/SaveApiAccessMethodDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/SaveApiAccessMethodDialog.kt @@ -42,7 +42,7 @@ private fun PreviewSaveApiAccessMethodDialog( @PreviewParameter(SaveApiAccessMethodUiStatePreviewParameterProvider::class) state: SaveApiAccessMethodUiState ) { - AppTheme { SaveApiAccessMethodDialog(state = state) } + AppTheme { SaveApiAccessMethodDialog(state = state, {}, {}) } } data class SaveApiAccessMethodNavArgs( @@ -79,8 +79,8 @@ fun SaveApiAccessMethod(backNavigator: ResultBackNavigator<Boolean>) { @Composable fun SaveApiAccessMethodDialog( state: SaveApiAccessMethodUiState, - onCancel: () -> Unit = {}, - onSave: () -> Unit = {}, + onCancel: () -> Unit, + onSave: () -> Unit, ) { AlertDialog( icon = { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/payment/PaymentDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/payment/PaymentDialog.kt index 1001490339..72fdd752e9 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/payment/PaymentDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/payment/PaymentDialog.kt @@ -147,8 +147,8 @@ fun Payment(productId: ProductId, resultBackNavigator: ResultBackNavigator<Boole @Composable fun PaymentDialog( paymentDialogData: PaymentDialogData, - retryPurchase: (ProductId) -> Unit = {}, - onCloseDialog: (isPaymentSuccessful: Boolean) -> Unit = {}, + retryPurchase: (ProductId) -> Unit, + onCloseDialog: (isPaymentSuccessful: Boolean) -> Unit, ) { val clickResolver: (action: PaymentDialogAction) -> Unit = { when (it) { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt index 3e95235d23..ddfb535faf 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt @@ -72,7 +72,7 @@ import org.koin.androidx.compose.koinViewModel private fun PreviewAccountScreen( @PreviewParameter(AccountUiStatePreviewParameterProvider::class) state: AccountUiState ) { - AppTheme { AccountScreen(state = state) } + AppTheme { AccountScreen(state = state, SnackbarHostState(), {}, {}, {}, {}, {}, {}, {}, {}) } } @OptIn(ExperimentalMaterial3Api::class) @@ -138,14 +138,14 @@ fun Account( fun AccountScreen( state: AccountUiState, snackbarHostState: SnackbarHostState = remember { SnackbarHostState() }, - onCopyAccountNumber: (String) -> Unit = {}, - onRedeemVoucherClick: () -> Unit = {}, - onManageAccountClick: () -> Unit = {}, - onLogoutClick: () -> Unit = {}, - onPurchaseBillingProductClick: (productId: ProductId) -> Unit = { _ -> }, - navigateToDeviceInfo: () -> Unit = {}, - navigateToVerificationPendingDialog: () -> Unit = {}, - onBackClick: () -> Unit = {}, + onCopyAccountNumber: (String) -> Unit, + onRedeemVoucherClick: () -> Unit, + onManageAccountClick: () -> Unit, + onLogoutClick: () -> Unit, + onPurchaseBillingProductClick: (productId: ProductId) -> Unit, + navigateToDeviceInfo: () -> Unit, + navigateToVerificationPendingDialog: () -> Unit, + onBackClick: () -> Unit, ) { // This will enable SECURE_FLAG while this screen is visible to preview screenshot SecureScreenWhileInView() diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessListScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessListScreen.kt index c1fc183cfa..fb5f03015c 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessListScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessListScreen.kt @@ -51,7 +51,7 @@ private fun PreviewApiAccessList( @PreviewParameter(ApiAccessListUiStatePreviewParameterProvider::class) state: ApiAccessListUiState ) { - AppTheme { ApiAccessListScreen(state = state) } + AppTheme { ApiAccessListScreen(state = state, {}, { _ -> }, {}, {}) } } @Destination<RootGraph>(style = SlideInFromRightTransition::class) @@ -78,10 +78,10 @@ fun ApiAccessList(navigator: DestinationsNavigator) { @Composable fun ApiAccessListScreen( state: ApiAccessListUiState, - onAddMethodClick: () -> Unit = {}, - onApiAccessMethodClick: (apiAccessMethodSetting: ApiAccessMethodSetting) -> Unit = {}, - onApiAccessInfoClick: () -> Unit = {}, - onBackClick: () -> Unit = {}, + onAddMethodClick: () -> Unit, + onApiAccessMethodClick: (apiAccessMethodSetting: ApiAccessMethodSetting) -> Unit, + onApiAccessInfoClick: () -> Unit, + onBackClick: () -> Unit, ) { ScaffoldWithMediumTopBar( appBarTitle = stringResource(id = R.string.settings_api_access), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessMethodDetailsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessMethodDetailsScreen.kt index 35c4c8a444..b4f10d691b 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessMethodDetailsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessMethodDetailsScreen.kt @@ -77,7 +77,9 @@ private fun PreviewApiAccessMethodDetailsScreen( @PreviewParameter(ApiAccessMethodDetailsUiStatePreviewParameterProvider::class) state: ApiAccessMethodDetailsUiState ) { - AppTheme { ApiAccessMethodDetailsScreen(state = state) } + AppTheme { + ApiAccessMethodDetailsScreen(state = state, SnackbarHostState(), {}, {}, {}, {}, {}, {}, {}) + } } data class ApiAccessMethodDetailsNavArgs(val accessMethodId: ApiAccessMethodId) @@ -187,14 +189,14 @@ fun ApiAccessMethodDetails( @Composable fun ApiAccessMethodDetailsScreen( state: ApiAccessMethodDetailsUiState, - snackbarHostState: SnackbarHostState = SnackbarHostState(), - onEditMethodClicked: () -> Unit = {}, - onEnableClicked: (Boolean) -> Unit = {}, - onTestMethodClicked: () -> Unit = {}, - onUseMethodClicked: () -> Unit = {}, - onDeleteApiAccessMethodClicked: (ApiAccessMethodId) -> Unit = {}, - onNavigateToEncryptedDnsInfoDialog: () -> Unit = {}, - onBackClicked: () -> Unit = {}, + snackbarHostState: SnackbarHostState = remember { SnackbarHostState() }, + onEditMethodClicked: () -> Unit, + onEnableClicked: (Boolean) -> Unit, + onTestMethodClicked: () -> Unit, + onUseMethodClicked: () -> Unit, + onDeleteApiAccessMethodClicked: (ApiAccessMethodId) -> Unit, + onNavigateToEncryptedDnsInfoDialog: () -> Unit, + onBackClicked: () -> Unit, ) { ScaffoldWithMediumTopBar( appBarTitle = state.name(), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AutoConnectAndLockdownModeScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AutoConnectAndLockdownModeScreen.kt index cafb9ef11d..3d2949fc9c 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AutoConnectAndLockdownModeScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AutoConnectAndLockdownModeScreen.kt @@ -67,7 +67,7 @@ import net.mullvad.mullvadvpn.util.appendHideNavOnPlayBuild @Preview @Composable private fun PreviewAutoConnectAndLockdownModeScreen() { - AppTheme { AutoConnectAndLockdownModeScreen() } + AppTheme { AutoConnectAndLockdownModeScreen({}) } } @Destination<RootGraph>(style = SlideInFromRightTransition::class) @@ -77,7 +77,7 @@ fun AutoConnectAndLockdownMode(navigator: DestinationsNavigator) { } @Composable -fun AutoConnectAndLockdownModeScreen(onBackClick: () -> Unit = {}) { +fun AutoConnectAndLockdownModeScreen(onBackClick: () -> Unit) { val context = LocalContext.current ScaffoldWithLargeTopBarAndButton( appBarTitle = stringResource(id = R.string.auto_connect_and_lockdown_mode), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt index b143e72f25..30af30fec5 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt @@ -125,7 +125,22 @@ private const val TALL_SCREEN_INDICATOR_BIAS = 0.3f private fun PreviewAccountScreen( @PreviewParameter(ConnectUiStatePreviewParameterProvider::class) state: ConnectUiState ) { - AppTheme { ConnectScreen(state = state) } + AppTheme { + ConnectScreen( + state = state, + snackbarHostState = SnackbarHostState(), + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + ) + } } @Destination<RootGraph>(style = HomeTransition::class) @@ -228,17 +243,17 @@ fun Connect( @Composable fun ConnectScreen( state: ConnectUiState, - snackbarHostState: SnackbarHostState = SnackbarHostState(), - onDisconnectClick: () -> Unit = {}, - onReconnectClick: () -> Unit = {}, - onConnectClick: () -> Unit = {}, - onCancelClick: () -> Unit = {}, - onSwitchLocationClick: () -> Unit = {}, - onOpenAppListing: () -> Unit = {}, - onManageAccountClick: () -> Unit = {}, - onSettingsClick: () -> Unit = {}, - onAccountClick: () -> Unit = {}, - onDismissNewDeviceClick: () -> Unit = {}, + snackbarHostState: SnackbarHostState = remember { SnackbarHostState() }, + onDisconnectClick: () -> Unit, + onReconnectClick: () -> Unit, + onConnectClick: () -> Unit, + onCancelClick: () -> Unit, + onSwitchLocationClick: () -> Unit, + onOpenAppListing: () -> Unit, + onManageAccountClick: () -> Unit, + onSettingsClick: () -> Unit, + onAccountClick: () -> Unit, + onDismissNewDeviceClick: () -> Unit, ) { ScaffoldWithTopBarAndDeviceName( diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListLocationsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListLocationsScreen.kt index 8fcf650bf4..16234326d2 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListLocationsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListLocationsScreen.kt @@ -63,7 +63,7 @@ private fun PreviewCustomListLocationScreen( @PreviewParameter(CustomListLocationUiStatePreviewParameterProvider::class) state: CustomListLocationsUiState ) { - AppTheme { CustomListLocationsScreen(state = state) } + AppTheme { CustomListLocationsScreen(state = state, {}, {}, { _, _ -> }, { _, _ -> }, {}) } } data class CustomListLocationsNavArgs(val customListId: CustomListId, val newList: Boolean) @@ -119,11 +119,11 @@ fun CustomListLocations( @Composable fun CustomListLocationsScreen( state: CustomListLocationsUiState, - onSearchTermInput: (String) -> Unit = {}, - onSaveClick: () -> Unit = {}, - onRelaySelectionClick: (RelayItem.Location, selected: Boolean) -> Unit = { _, _ -> }, - onExpand: (RelayItem.Location, selected: Boolean) -> Unit = { _, _ -> }, - onBackClick: () -> Unit = {}, + onSearchTermInput: (String) -> Unit, + onSaveClick: () -> Unit, + onRelaySelectionClick: (RelayItem.Location, selected: Boolean) -> Unit, + onExpand: (RelayItem.Location, selected: Boolean) -> Unit, + onBackClick: () -> Unit, ) { ScaffoldWithSmallTopBar( appBarTitle = diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListsScreen.kt index 08ec0ee503..0d2a47e026 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListsScreen.kt @@ -60,7 +60,7 @@ import org.koin.androidx.compose.koinViewModel private fun PreviewAccountScreen( @PreviewParameter(CustomListsUiStatePreviewParameterProvider::class) state: CustomListsUiState ) { - AppTheme { CustomListsScreen(state = state, SnackbarHostState()) } + AppTheme { CustomListsScreen(state = state, SnackbarHostState(), {}, { _ -> }, {}) } } @Composable @@ -112,10 +112,10 @@ fun CustomLists( @Composable fun CustomListsScreen( state: CustomListsUiState, - snackbarHostState: SnackbarHostState, - addCustomList: () -> Unit = {}, - openCustomList: (CustomList) -> Unit = {}, - onBackClick: () -> Unit = {}, + snackbarHostState: SnackbarHostState = remember { SnackbarHostState() }, + addCustomList: () -> Unit, + openCustomList: (CustomList) -> Unit, + onBackClick: () -> Unit, ) { ScaffoldWithMediumTopBar( appBarTitle = stringResource(id = R.string.edit_custom_lists), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DaitaScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DaitaScreen.kt index a6a2a279dc..70e0d1622a 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DaitaScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DaitaScreen.kt @@ -50,7 +50,15 @@ import org.koin.androidx.compose.koinViewModel @Preview @Composable private fun PreviewDaitaScreen() { - AppTheme { DaitaScreen(state = DaitaUiState(daitaEnabled = false, directOnly = false)) } + AppTheme { + DaitaScreen( + state = DaitaUiState(daitaEnabled = false, directOnly = false), + { _ -> }, + { _ -> }, + {}, + {}, + ) + } } @Destination<RootGraph>(style = SlideInFromRightTransition::class) @@ -87,10 +95,10 @@ fun Daita( @Composable fun DaitaScreen( state: DaitaUiState, - onDaitaEnabled: (enable: Boolean) -> Unit = {}, - onDirectOnlyClick: (enable: Boolean) -> Unit = {}, - onDirectOnlyInfoClick: () -> Unit = {}, - onBackClick: () -> Unit = {}, + onDaitaEnabled: (enable: Boolean) -> Unit, + onDirectOnlyClick: (enable: Boolean) -> Unit, + onDirectOnlyInfoClick: () -> Unit, + onBackClick: () -> Unit, ) { ScaffoldWithMediumTopBar( appBarTitle = stringResource(id = R.string.daita), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt index beb83a9b2e..34ac8d98b7 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt @@ -74,7 +74,7 @@ import org.koin.androidx.compose.koinViewModel private fun PreviewDeviceListScreenContent( @PreviewParameter(DeviceListUiStatePreviewParameterProvider::class) state: DeviceListUiState ) { - AppTheme { DeviceListScreen(state = state) } + AppTheme { DeviceListScreen(state = state, SnackbarHostState(), {}, {}, {}, {}, {}) } } data class DeviceListNavArgs(val accountNumber: AccountNumber) @@ -139,11 +139,11 @@ fun DeviceList( fun DeviceListScreen( state: DeviceListUiState, snackbarHostState: SnackbarHostState = remember { SnackbarHostState() }, - onBackClick: () -> Unit = {}, - onContinueWithLogin: () -> Unit = {}, - onSettingsClicked: () -> Unit = {}, - onTryAgainClicked: () -> Unit = {}, - navigateToRemoveDeviceConfirmationDialog: (device: Device) -> Unit = {}, + onBackClick: () -> Unit, + onContinueWithLogin: () -> Unit, + onSettingsClicked: () -> Unit, + onTryAgainClicked: () -> Unit, + navigateToRemoveDeviceConfirmationDialog: (device: Device) -> Unit, ) { ScaffoldWithTopBar( diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceRevokedScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceRevokedScreen.kt index 39f8f2fd84..d0a334d561 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceRevokedScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceRevokedScreen.kt @@ -46,7 +46,7 @@ private fun PreviewDeviceRevokedScreen( @PreviewParameter(DeviceRevokedUiStatePreviewParameterProvider::class) state: DeviceRevokedUiState ) { - AppTheme { DeviceRevokedScreen(state = state) } + AppTheme { DeviceRevokedScreen(state = state, {}, {}) } } @Destination<RootGraph> @@ -76,8 +76,8 @@ fun DeviceRevoked(navigator: DestinationsNavigator) { @Composable fun DeviceRevokedScreen( state: DeviceRevokedUiState, - onSettingsClicked: () -> Unit = {}, - onGoToLoginClicked: () -> Unit = {}, + onSettingsClicked: () -> Unit, + onGoToLoginClicked: () -> Unit, ) { val topColor = if (state == DeviceRevokedUiState.SECURED) { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditApiAccessMethodScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditApiAccessMethodScreen.kt index 6596f7c343..768c43d588 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditApiAccessMethodScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditApiAccessMethodScreen.kt @@ -79,7 +79,23 @@ private fun PreviewEditApiAccessMethodScreen( @PreviewParameter(EditApiAccessMethodUiStatePreviewParameterProvider::class) state: EditApiAccessMethodUiState ) { - AppTheme { EditApiAccessMethodScreen(state = state) } + AppTheme { + EditApiAccessMethodScreen( + state = state, + SnackbarHostState(), + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + ) + } } data class EditApiAccessMethodNavArgs(val accessMethodId: ApiAccessMethodId?) @@ -192,17 +208,17 @@ fun EditApiAccessMethod( fun EditApiAccessMethodScreen( state: EditApiAccessMethodUiState, snackbarHostState: SnackbarHostState = SnackbarHostState(), - onNameChanged: (String) -> Unit = {}, - onTypeSelected: (ApiAccessMethodTypes) -> Unit = {}, - onIpChanged: (String) -> Unit = {}, - onPortChanged: (String) -> Unit = {}, - onPasswordChanged: (String) -> Unit = {}, - onCipherChange: (Cipher) -> Unit = {}, - onToggleAuthenticationEnabled: (Boolean) -> Unit = {}, - onUsernameChanged: (String) -> Unit = {}, - onTestMethod: () -> Unit = {}, - onAddMethod: () -> Unit = {}, - onNavigateBack: () -> Unit = {}, + onNameChanged: (String) -> Unit, + onTypeSelected: (ApiAccessMethodTypes) -> Unit, + onIpChanged: (String) -> Unit, + onPortChanged: (String) -> Unit, + onPasswordChanged: (String) -> Unit, + onCipherChange: (Cipher) -> Unit, + onToggleAuthenticationEnabled: (Boolean) -> Unit, + onUsernameChanged: (String) -> Unit, + onTestMethod: () -> Unit, + onAddMethod: () -> Unit, + onNavigateBack: () -> Unit, ) { ScaffoldWithSmallTopBar( snackbarHostState = snackbarHostState, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditCustomListScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditCustomListScreen.kt index 30f5491c73..513bc636d4 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditCustomListScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditCustomListScreen.kt @@ -62,7 +62,7 @@ private fun PreviewEditCustomListScreen( @PreviewParameter(EditCustomListUiStatePreviewParameterProvider::class) state: EditCustomListUiState ) { - AppTheme { EditCustomListScreen(state = state) } + AppTheme { EditCustomListScreen(state = state, { _, _ -> }, { _, _ -> }, {}, {}) } } data class EditCustomListNavArgs(val customListId: CustomListId) @@ -116,10 +116,10 @@ fun EditCustomList( @Composable fun EditCustomListScreen( state: EditCustomListUiState, - onDeleteList: (id: CustomListId, name: CustomListName) -> Unit = { _, _ -> }, - onNameClicked: (id: CustomListId, name: CustomListName) -> Unit = { _, _ -> }, - onLocationsClicked: (CustomListId) -> Unit = {}, - onBackClick: () -> Unit = {}, + onDeleteList: (id: CustomListId, name: CustomListName) -> Unit, + onNameClicked: (id: CustomListId, name: CustomListName) -> Unit, + onLocationsClicked: (CustomListId) -> Unit, + onBackClick: () -> Unit, ) { ScaffoldWithMediumTopBar( appBarTitle = stringResource(id = R.string.edit_list), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/FilterScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/FilterScreen.kt index 9b3142b161..60788bffd5 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/FilterScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/FilterScreen.kt @@ -64,6 +64,8 @@ private fun PreviewFilterScreen( onSelectedOwnership = {}, onSelectedProvider = { _, _ -> }, onAllProviderCheckChange = {}, + onBackClick = {}, + onApplyClick = {}, ) } } @@ -92,11 +94,11 @@ fun Filter(navigator: DestinationsNavigator) { @Composable fun FilterScreen( state: RelayFilterUiState, - onBackClick: () -> Unit = {}, - onApplyClick: () -> Unit = {}, - onSelectedOwnership: (ownership: Ownership?) -> Unit = {}, - onAllProviderCheckChange: (isChecked: Boolean) -> Unit = {}, - onSelectedProvider: (checked: Boolean, provider: Provider) -> Unit = { _, _ -> }, + onBackClick: () -> Unit, + onApplyClick: () -> Unit, + onSelectedOwnership: (ownership: Ownership?) -> Unit, + onAllProviderCheckChange: (isChecked: Boolean) -> Unit, + onSelectedProvider: (checked: Boolean, provider: Provider) -> Unit, ) { var providerExpanded by rememberSaveable { mutableStateOf(false) } var ownershipExpanded by rememberSaveable { mutableStateOf(false) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ImportOverridesByTextScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ImportOverridesByTextScreen.kt index 3abcc5842d..228cfff16f 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ImportOverridesByTextScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ImportOverridesByTextScreen.kt @@ -29,11 +29,12 @@ import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.compose.component.MullvadSmallTopBar import net.mullvad.mullvadvpn.compose.textfield.mullvadWhiteTextFieldColors import net.mullvad.mullvadvpn.compose.transitions.DefaultTransition +import net.mullvad.mullvadvpn.lib.theme.AppTheme @Preview @Composable private fun PreviewImportOverridesByText() { - ImportOverridesByTextScreen({}, {}) + AppTheme { ImportOverridesByTextScreen({}, {}) } } @Destination<RootGraph>(style = DefaultTransition::class) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt index ba799d55c1..fef29516c5 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt @@ -95,7 +95,7 @@ import org.koin.androidx.compose.koinViewModel private fun PreviewLoginScreen( @PreviewParameter(LoginUiStatePreviewParameterProvider::class) state: LoginUiState ) { - AppTheme { LoginScreen(state = state) } + AppTheme { LoginScreen(state = state, SnackbarHostState(), {}, {}, {}, {}, {}) } } private const val TOP_SPACER_WEIGHT = 1f @@ -172,11 +172,11 @@ fun Login( private fun LoginScreen( state: LoginUiState, snackbarHostState: SnackbarHostState = SnackbarHostState(), - onLoginClick: (String) -> Unit = {}, - onCreateAccountClick: () -> Unit = {}, - onDeleteHistoryClick: () -> Unit = {}, - onAccountNumberChange: (String) -> Unit = {}, - onSettingsClick: () -> Unit = {}, + onLoginClick: (String) -> Unit, + onCreateAccountClick: () -> Unit, + onDeleteHistoryClick: () -> Unit, + onAccountNumberChange: (String) -> Unit, + onSettingsClick: () -> Unit, ) { ScaffoldWithTopBar( snackbarHostState = snackbarHostState, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/MultihopScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/MultihopScreen.kt index 5491fc624c..0c7be2aadc 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/MultihopScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/MultihopScreen.kt @@ -33,7 +33,7 @@ import org.koin.androidx.compose.koinViewModel @Preview @Composable private fun PreviewMultihopScreen() { - AppTheme { MultihopScreen(state = MultihopUiState(false)) } + AppTheme { MultihopScreen(state = MultihopUiState(false), {}, {}) } } @Destination<RootGraph>(style = SlideInFromRightTransition::class) @@ -51,8 +51,8 @@ fun Multihop(navigator: DestinationsNavigator) { @Composable fun MultihopScreen( state: MultihopUiState, - onMultihopClick: (enable: Boolean) -> Unit = {}, - onBackClick: () -> Unit = {}, + onMultihopClick: (enable: Boolean) -> Unit, + onBackClick: () -> Unit, ) { ScaffoldWithMediumTopBar( appBarTitle = stringResource(id = R.string.multihop), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/OutOfTimeScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/OutOfTimeScreen.kt index 10fc9cd3af..95056dba4a 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/OutOfTimeScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/OutOfTimeScreen.kt @@ -69,7 +69,7 @@ import org.koin.androidx.compose.koinViewModel private fun PreviewOutOfTimeScreen( @PreviewParameter(OutOfTimeScreenPreviewParameterProvider::class) state: OutOfTimeUiState ) { - AppTheme { OutOfTimeScreen(state = state) } + AppTheme { OutOfTimeScreen(state = state, SnackbarHostState(), {}, {}, {}, {}, {}, {}, {}) } } @Destination<RootGraph>(style = HomeTransition::class) @@ -137,14 +137,14 @@ fun OutOfTime( @Composable fun OutOfTimeScreen( state: OutOfTimeUiState, - snackbarHostState: SnackbarHostState = SnackbarHostState(), - onDisconnectClick: () -> Unit = {}, - onSitePaymentClick: () -> Unit = {}, - onRedeemVoucherClick: () -> Unit = {}, - onSettingsClick: () -> Unit = {}, - onAccountClick: () -> Unit = {}, - onPurchaseBillingProductClick: (ProductId) -> Unit = { _ -> }, - navigateToVerificationPendingDialog: () -> Unit = {}, + snackbarHostState: SnackbarHostState = remember { SnackbarHostState() }, + onDisconnectClick: () -> Unit, + onSitePaymentClick: () -> Unit, + onRedeemVoucherClick: () -> Unit, + onSettingsClick: () -> Unit, + onAccountClick: () -> Unit, + onPurchaseBillingProductClick: (ProductId) -> Unit, + navigateToVerificationPendingDialog: () -> Unit, ) { val scrollState = rememberScrollState() diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ReportProblemScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ReportProblemScreen.kt index 2e5688da81..a3338d2e24 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ReportProblemScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ReportProblemScreen.kt @@ -72,7 +72,7 @@ private fun PreviewReportProblemScreen( @PreviewParameter(ReportProblemUiStatePreviewParameterProvider::class) state: ReportProblemUiState ) { - AppTheme { ReportProblemScreen(state = state) } + AppTheme { ReportProblemScreen(state = state, {}, {}, {}, {}, {}, {}) } } @Destination<RootGraph>(style = SlideInFromRightTransition::class) @@ -115,12 +115,12 @@ fun ReportProblem( @Composable private fun ReportProblemScreen( state: ReportProblemUiState, - onSendReport: () -> Unit = {}, - onClearSendResult: () -> Unit = {}, - onNavigateToViewLogs: () -> Unit = {}, - onEmailChanged: (String) -> Unit = {}, - onDescriptionChanged: (String) -> Unit = {}, - onBackClick: () -> Unit = {}, + onSendReport: () -> Unit, + onClearSendResult: () -> Unit, + onNavigateToViewLogs: () -> Unit, + onEmailChanged: (String) -> Unit, + onDescriptionChanged: (String) -> Unit, + onBackClick: () -> Unit, ) { ScaffoldWithMediumTopBar( diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreen.kt index 15754990f2..6bef82fd9e 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreen.kt @@ -57,7 +57,7 @@ import org.koin.androidx.compose.koinViewModel private fun PreviewSettingsScreen( @PreviewParameter(SettingsUiStatePreviewParameterProvider::class) state: SettingsUiState ) { - AppTheme { SettingsScreen(state = state) } + AppTheme { SettingsScreen(state = state, {}, {}, {}, {}, {}, {}, {}, {}) } } @OptIn(ExperimentalMaterial3Api::class) @@ -81,18 +81,17 @@ fun Settings(navigator: DestinationsNavigator) { ) } -@ExperimentalMaterial3Api @Composable fun SettingsScreen( state: SettingsUiState, - onVpnSettingCellClick: () -> Unit = {}, - onSplitTunnelingCellClick: () -> Unit = {}, - onAppInfoClick: () -> Unit = {}, - onReportProblemCellClick: () -> Unit = {}, - onApiAccessClick: () -> Unit = {}, - onMultihopClick: () -> Unit = {}, - onDaitaClick: () -> Unit = {}, - onBackClick: () -> Unit = {}, + onVpnSettingCellClick: () -> Unit, + onSplitTunnelingCellClick: () -> Unit, + onAppInfoClick: () -> Unit, + onReportProblemCellClick: () -> Unit, + onApiAccessClick: () -> Unit, + onMultihopClick: () -> Unit, + onDaitaClick: () -> Unit, + onBackClick: () -> Unit, ) { ScaffoldWithMediumTopBar( appBarTitle = stringResource(id = R.string.settings), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ShadowsocksSettingsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ShadowsocksSettingsScreen.kt index 0ea4b7fbb0..05a99a1c49 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ShadowsocksSettingsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ShadowsocksSettingsScreen.kt @@ -39,7 +39,10 @@ import org.koin.androidx.compose.koinViewModel private fun PreviewShadowsocksSettingsScreen() { AppTheme { ShadowsocksSettingsScreen( - state = ShadowsocksSettingsState(port = Constraint.Any, validPortRanges = emptyList()) + state = ShadowsocksSettingsState(port = Constraint.Any, validPortRanges = emptyList()), + {}, + {}, + {}, ) } } @@ -82,9 +85,9 @@ fun ShadowsocksSettings( @Composable fun ShadowsocksSettingsScreen( state: ShadowsocksSettingsState, - navigateToCustomPortDialog: () -> Unit = {}, - onObfuscationPortSelected: (Constraint<Port>) -> Unit = {}, - onBackClick: () -> Unit = {}, + navigateToCustomPortDialog: () -> Unit, + onObfuscationPortSelected: (Constraint<Port>) -> Unit, + onBackClick: () -> Unit, ) { ScaffoldWithMediumTopBar( appBarTitle = stringResource(id = R.string.shadowsocks), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SplitTunnelingScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SplitTunnelingScreen.kt index 0dddd926fc..5061655003 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SplitTunnelingScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SplitTunnelingScreen.kt @@ -59,7 +59,7 @@ private fun PreviewSplitTunnelingScreen( @PreviewParameter(SplitTunnelingUiStatePreviewParameterProvider::class) state: SplitTunnelingUiState ) { - AppTheme { SplitTunnelingScreen(state = state) } + AppTheme { SplitTunnelingScreen(state = state, {}, {}, {}, {}, {}, { null }) } } @Destination<RootGraph>(style = SlideInFromRightTransition::class) @@ -86,12 +86,12 @@ fun SplitTunneling(navigator: DestinationsNavigator) { @Composable fun SplitTunnelingScreen( state: SplitTunnelingUiState, - onEnableSplitTunneling: (Boolean) -> Unit = {}, - onShowSystemAppsClick: (show: Boolean) -> Unit = {}, - onExcludeAppClick: (packageName: String) -> Unit = {}, - onIncludeAppClick: (packageName: String) -> Unit = {}, - onBackClick: () -> Unit = {}, - onResolveIcon: (String) -> Bitmap? = { null }, + onEnableSplitTunneling: (Boolean) -> Unit, + onShowSystemAppsClick: (show: Boolean) -> Unit, + onExcludeAppClick: (packageName: String) -> Unit, + onIncludeAppClick: (packageName: String) -> Unit, + onBackClick: () -> Unit, + onResolveIcon: (String) -> Bitmap?, ) { val focusManager = LocalFocusManager.current diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/Udp2TcpSettingsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/Udp2TcpSettingsScreen.kt index 436d8c9020..079311f123 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/Udp2TcpSettingsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/Udp2TcpSettingsScreen.kt @@ -31,7 +31,9 @@ import org.koin.androidx.compose.koinViewModel @Preview @Composable private fun PreviewUdp2TcpSettingsScreen() { - AppTheme { Udp2TcpSettingsScreen(state = Udp2TcpSettingsState(port = Constraint.Any)) } + AppTheme { + Udp2TcpSettingsScreen(state = Udp2TcpSettingsState(port = Constraint.Any), {}, {}, {}) + } } @Destination<RootGraph>(style = SlideInFromRightTransition::class) @@ -51,9 +53,9 @@ fun Udp2TcpSettings(navigator: DestinationsNavigator) { @Composable fun Udp2TcpSettingsScreen( state: Udp2TcpSettingsState, - onObfuscationPortSelected: (Constraint<Port>) -> Unit = {}, - navigateUdp2TcpInfo: () -> Unit = {}, - onBackClick: () -> Unit = {}, + onObfuscationPortSelected: (Constraint<Port>) -> Unit, + navigateUdp2TcpInfo: () -> Unit, + onBackClick: () -> Unit, ) { ScaffoldWithMediumTopBar( appBarTitle = stringResource(id = R.string.upd_over_tcp), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ViewLogsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ViewLogsScreen.kt index 7b227f9a9f..621fb42885 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ViewLogsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ViewLogsScreen.kt @@ -63,7 +63,7 @@ import org.koin.androidx.compose.koinViewModel private fun PreviewViewLogsScreen( @PreviewParameter(ViewLogsUiStatePreviewParameterProvider::class) state: ViewLogsUiState ) { - AppTheme { ViewLogsScreen(state = state) } + AppTheme { ViewLogsScreen(state = state, {}) } } @Destination<RootGraph>(style = SlideInFromRightTransition::class) @@ -75,7 +75,7 @@ fun ViewLogs(navigator: DestinationsNavigator) { } @Composable -fun ViewLogsScreen(state: ViewLogsUiState, onBackClick: () -> Unit = {}) { +fun ViewLogsScreen(state: ViewLogsUiState, onBackClick: () -> Unit) { val snackbarHostState = remember { SnackbarHostState() } val clipboardHandle = createCopyToClipboardHandle(snackbarHostState = snackbarHostState) Scaffold( diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreen.kt index 6489b53e79..c44972e781 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreen.kt @@ -129,6 +129,19 @@ private fun PreviewVpnSettings( onSelectObfuscationMode = {}, onSelectQuantumResistanceSetting = {}, onWireguardPortSelected = {}, + navigateToShadowSocksSettings = {}, + navigateToUdp2TcpSettings = {}, + onToggleAutoStartAndConnectOnBoot = { _ -> }, + navigateToMalwareInfo = {}, + navigateToContentBlockersInfo = {}, + navigateToAutoConnectScreen = {}, + navigateToCustomDnsInfo = {}, + navigateToObfuscationInfo = {}, + navigateToQuantumResistanceInfo = {}, + navigateToWireguardPortInfo = {}, + navigateToLocalNetworkSharingInfo = {}, + navigateToWireguardPortDialog = {}, + navigateToServerIpOverrides = {}, ) } } @@ -255,39 +268,39 @@ fun VpnSettings( ) } -@Suppress("LongMethod") +@Suppress("LongMethod", "LongParameterList") @OptIn(ExperimentalFoundationApi::class) @Composable fun VpnSettingsScreen( state: VpnSettingsUiState, snackbarHostState: SnackbarHostState = remember { SnackbarHostState() }, - navigateToContentBlockersInfo: () -> Unit = {}, - navigateToAutoConnectScreen: () -> Unit = {}, - navigateToCustomDnsInfo: () -> Unit = {}, - navigateToMalwareInfo: () -> Unit = {}, - navigateToObfuscationInfo: () -> Unit = {}, - navigateToQuantumResistanceInfo: () -> Unit = {}, - navigateToWireguardPortInfo: (availablePortRanges: List<PortRange>) -> Unit = {}, - navigateToLocalNetworkSharingInfo: () -> Unit = {}, - navigateToWireguardPortDialog: () -> Unit = {}, - navigateToServerIpOverrides: () -> Unit = {}, - onToggleBlockTrackers: (Boolean) -> Unit = {}, - onToggleBlockAds: (Boolean) -> Unit = {}, - onToggleBlockMalware: (Boolean) -> Unit = {}, - onToggleLocalNetworkSharing: (Boolean) -> Unit = {}, - onToggleBlockAdultContent: (Boolean) -> Unit = {}, - onToggleBlockGambling: (Boolean) -> Unit = {}, - onToggleBlockSocialMedia: (Boolean) -> Unit = {}, - navigateToMtuDialog: (mtu: Mtu?) -> Unit = {}, - navigateToDns: (index: Int?, address: String?) -> Unit = { _, _ -> }, - onToggleDnsClick: (Boolean) -> Unit = {}, - onBackClick: () -> Unit = {}, - onSelectObfuscationMode: (obfuscationMode: ObfuscationMode) -> Unit = {}, - onSelectQuantumResistanceSetting: (quantumResistant: QuantumResistantState) -> Unit = {}, - onWireguardPortSelected: (port: Constraint<Port>) -> Unit = {}, - navigateToShadowSocksSettings: () -> Unit = {}, - navigateToUdp2TcpSettings: () -> Unit = {}, - onToggleAutoStartAndConnectOnBoot: (Boolean) -> Unit = {}, + navigateToContentBlockersInfo: () -> Unit, + navigateToAutoConnectScreen: () -> Unit, + navigateToCustomDnsInfo: () -> Unit, + navigateToMalwareInfo: () -> Unit, + navigateToObfuscationInfo: () -> Unit, + navigateToQuantumResistanceInfo: () -> Unit, + navigateToWireguardPortInfo: (availablePortRanges: List<PortRange>) -> Unit, + navigateToLocalNetworkSharingInfo: () -> Unit, + navigateToWireguardPortDialog: () -> Unit, + navigateToServerIpOverrides: () -> Unit, + onToggleBlockTrackers: (Boolean) -> Unit, + onToggleBlockAds: (Boolean) -> Unit, + onToggleBlockMalware: (Boolean) -> Unit, + onToggleLocalNetworkSharing: (Boolean) -> Unit, + onToggleBlockAdultContent: (Boolean) -> Unit, + onToggleBlockGambling: (Boolean) -> Unit, + onToggleBlockSocialMedia: (Boolean) -> Unit, + navigateToMtuDialog: (mtu: Mtu?) -> Unit, + navigateToDns: (index: Int?, address: String?) -> Unit, + onToggleDnsClick: (Boolean) -> Unit, + onBackClick: () -> Unit, + onSelectObfuscationMode: (obfuscationMode: ObfuscationMode) -> Unit, + onSelectQuantumResistanceSetting: (quantumResistant: QuantumResistantState) -> Unit, + onWireguardPortSelected: (port: Constraint<Port>) -> Unit, + navigateToShadowSocksSettings: () -> Unit, + navigateToUdp2TcpSettings: () -> Unit, + onToggleAutoStartAndConnectOnBoot: (Boolean) -> Unit, ) { var expandContentBlockersState by rememberSaveable { mutableStateOf(false) } val biggerPadding = 54.dp diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SearchLocationScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SearchLocationScreen.kt index fc810e6882..737baa6f0c 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SearchLocationScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SearchLocationScreen.kt @@ -80,7 +80,25 @@ private fun PreviewSearchLocationScreen( @PreviewParameter(SearchLocationsUiStatePreviewParameterProvider::class) state: SearchLocationUiState ) { - AppTheme { SearchLocationScreen(state = state) } + AppTheme { + SearchLocationScreen( + state = state, + SnackbarHostState(), + {}, + { _, _, _ -> }, + {}, + {}, + {}, + { _, _ -> }, + { _, _ -> }, + {}, + {}, + {}, + {}, + {}, + {}, + ) + } } data class SearchLocationNavArgs(val relayListType: RelayListType) @@ -198,24 +216,20 @@ fun SearchLocation( @Composable fun SearchLocationScreen( state: SearchLocationUiState, - snackbarHostState: SnackbarHostState = SnackbarHostState(), - onSelectRelay: (RelayItem) -> Unit = {}, - onToggleExpand: (RelayItemId, CustomListId?, Boolean) -> Unit = { _, _, _ -> }, - onSearchInputChanged: (String) -> Unit = {}, - onCreateCustomList: (location: RelayItem.Location?) -> Unit = {}, - onEditCustomLists: () -> Unit = {}, - onAddLocationToList: (location: RelayItem.Location, customList: RelayItem.CustomList) -> Unit = - { _, _ -> - }, - onRemoveLocationFromList: (location: RelayItem.Location, customListId: CustomListId) -> Unit = - { _, _ -> - }, - onEditCustomListName: (RelayItem.CustomList) -> Unit = {}, - onEditLocationsCustomList: (RelayItem.CustomList) -> Unit = {}, - onDeleteCustomList: (RelayItem.CustomList) -> Unit = {}, - onRemoveOwnershipFilter: () -> Unit = {}, - onRemoveProviderFilter: () -> Unit = {}, - onGoBack: () -> Unit = {}, + snackbarHostState: SnackbarHostState = remember { SnackbarHostState() }, + onSelectRelay: (RelayItem) -> Unit, + onToggleExpand: (RelayItemId, CustomListId?, Boolean) -> Unit, + onSearchInputChanged: (String) -> Unit, + onCreateCustomList: (location: RelayItem.Location?) -> Unit, + onEditCustomLists: () -> Unit, + onAddLocationToList: (location: RelayItem.Location, customList: RelayItem.CustomList) -> Unit, + onRemoveLocationFromList: (location: RelayItem.Location, customListId: CustomListId) -> Unit, + onEditCustomListName: (RelayItem.CustomList) -> Unit, + onEditLocationsCustomList: (RelayItem.CustomList) -> Unit, + onDeleteCustomList: (RelayItem.CustomList) -> Unit, + onRemoveOwnershipFilter: () -> Unit, + onRemoveProviderFilter: () -> Unit, + onGoBack: () -> Unit, ) { val backgroundColor = MaterialTheme.colorScheme.surface val onBackgroundColor = MaterialTheme.colorScheme.onSurface diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SelectLocationScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SelectLocationScreen.kt index 079c1e175b..cac37053ad 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SelectLocationScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SelectLocationScreen.kt @@ -83,7 +83,27 @@ private fun PreviewSelectLocationScreen( @PreviewParameter(SelectLocationsUiStatePreviewParameterProvider::class) state: SelectLocationUiState ) { - AppTheme { SelectLocationScreen(state = state) } + AppTheme { + SelectLocationScreen( + state = state, + SnackbarHostState(), + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + { _, _ -> }, + { _, _ -> }, + {}, + {}, + {}, + {}, + {}, + ) + } } @SuppressLint("CheckResult") @@ -202,30 +222,26 @@ fun SelectLocation( ) } -@Suppress("LongMethod") +@Suppress("LongMethod", "LongParameterList") @Composable fun SelectLocationScreen( state: SelectLocationUiState, snackbarHostState: SnackbarHostState = remember { SnackbarHostState() }, - onSelectRelay: (item: RelayItem) -> Unit = {}, - onSearchClick: (RelayListType) -> Unit = {}, - onBackClick: () -> Unit = {}, - onFilterClick: () -> Unit = {}, - onCreateCustomList: (location: RelayItem.Location?) -> Unit = {}, - onEditCustomLists: () -> Unit = {}, - removeOwnershipFilter: () -> Unit = {}, - removeProviderFilter: () -> Unit = {}, - onAddLocationToList: (location: RelayItem.Location, customList: RelayItem.CustomList) -> Unit = - { _, _ -> - }, - onRemoveLocationFromList: (location: RelayItem.Location, customListId: CustomListId) -> Unit = - { _, _ -> - }, - onEditCustomListName: (RelayItem.CustomList) -> Unit = {}, - onEditLocationsCustomList: (RelayItem.CustomList) -> Unit = {}, - onDeleteCustomList: (RelayItem.CustomList) -> Unit = {}, - onSelectRelayList: (RelayListType) -> Unit = {}, - openDaitaSettings: () -> Unit = {}, + onSelectRelay: (item: RelayItem) -> Unit, + onSearchClick: (RelayListType) -> Unit, + onBackClick: () -> Unit, + onFilterClick: () -> Unit, + onCreateCustomList: (location: RelayItem.Location?) -> Unit, + onEditCustomLists: () -> Unit, + removeOwnershipFilter: () -> Unit, + removeProviderFilter: () -> Unit, + onAddLocationToList: (location: RelayItem.Location, customList: RelayItem.CustomList) -> Unit, + onRemoveLocationFromList: (location: RelayItem.Location, customListId: CustomListId) -> Unit, + onEditCustomListName: (RelayItem.CustomList) -> Unit, + onEditLocationsCustomList: (RelayItem.CustomList) -> Unit, + onDeleteCustomList: (RelayItem.CustomList) -> Unit, + onSelectRelayList: (RelayListType) -> Unit, + openDaitaSettings: () -> Unit, ) { val backgroundColor = MaterialTheme.colorScheme.surface diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/util/Snackbar.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/util/Snackbar.kt index 88ec729d46..f67c1e7320 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/util/Snackbar.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/util/Snackbar.kt @@ -8,15 +8,15 @@ import androidx.compose.material3.SnackbarResult suspend fun SnackbarHostState.showSnackbarImmediately( message: String, actionLabel: String? = null, - onAction: (() -> Unit) = {}, + onAction: (() -> Unit)? = null, withDismissAction: Boolean = false, - onDismiss: (() -> Unit) = {}, + onDismiss: (() -> Unit)? = null, duration: SnackbarDuration = if (actionLabel == null) SnackbarDuration.Short else SnackbarDuration.Indefinite, ) { currentSnackbarData?.dismiss() when (showSnackbar(message, actionLabel, withDismissAction, duration)) { - SnackbarResult.ActionPerformed -> onAction() - SnackbarResult.Dismissed -> onDismiss() + SnackbarResult.ActionPerformed -> onAction?.invoke() + SnackbarResult.Dismissed -> onDismiss?.invoke() } } |
