summaryrefslogtreecommitdiffhomepage
path: root/android/app/src/main
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson@mullvad.net>2024-12-13 11:39:22 +0100
committerDavid Göransson <david.goransson@mullvad.net>2024-12-13 11:39:22 +0100
commit9573f3ed7a449f2aeb9f8efe0c6f4335ed0c326c (patch)
tree8ba79f4c7fde88f2996cb1cfdc24f76eb2254a48 /android/app/src/main
parentd1f2a58c6151527e6b29d3497728ff2913140291 (diff)
parent90174b2518dc15edcb1b1fe28392d6ad4fe34f89 (diff)
downloadmullvadvpn-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')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/ConnectionButton.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/CustomPortCell.kt20
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/DropdownMenuCell.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ExpandableComposeCell.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/ObfuscationModeCell.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SplitTunnelingCell.kt8
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/SwitchComposeCell.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ChangelogDialog.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CreateCustomListDialog.kt13
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DeleteCustomListConfirmationDialog.kt8
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/EditCustomListNameDialog.kt8
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/NegativeConfirmationDialog.kt17
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/RedeemVoucherDialog.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/SaveApiAccessMethodDialog.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/payment/PaymentDialog.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AccountScreen.kt18
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessListScreen.kt10
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ApiAccessMethodDetailsScreen.kt20
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/AutoConnectAndLockdownModeScreen.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt39
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListLocationsScreen.kt12
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/CustomListsScreen.kt10
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DaitaScreen.kt18
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt12
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceRevokedScreen.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditApiAccessMethodScreen.kt40
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/EditCustomListScreen.kt10
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/FilterScreen.kt12
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ImportOverridesByTextScreen.kt3
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt12
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/MultihopScreen.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/OutOfTimeScreen.kt18
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ReportProblemScreen.kt14
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreen.kt19
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ShadowsocksSettingsScreen.kt11
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SplitTunnelingScreen.kt14
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/Udp2TcpSettingsScreen.kt10
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ViewLogsScreen.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreen.kt69
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SearchLocationScreen.kt52
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/location/SelectLocationScreen.kt58
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/util/Snackbar.kt8
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()
}
}