diff options
| author | David Göransson <david.goransson@mullvad.net> | 2024-07-19 11:29:26 +0200 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2024-07-19 11:29:26 +0200 |
| commit | 3a96d56cee566dd720a0f2ae5104ea57995868fc (patch) | |
| tree | 2ab232b4896f983e623eb082f9708c4047b130eb | |
| parent | feade99190b8282ef63512cc079a928c34baee13 (diff) | |
| parent | 7f616dd1b42792138c36d63a6c0e0ff816ef9b6d (diff) | |
| download | mullvadvpn-3a96d56cee566dd720a0f2ae5104ea57995868fc.tar.xz mullvadvpn-3a96d56cee566dd720a0f2ae5104ea57995868fc.zip | |
Merge branch 'align-screen-and-dialog-composable-names-droid-726'
42 files changed, 190 insertions, 119 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ApiAccessMethodInfoDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ApiAccessMethodInfoDialog.kt index 8b607fe676..db0f6a2ca1 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ApiAccessMethodInfoDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ApiAccessMethodInfoDialog.kt @@ -15,12 +15,12 @@ import net.mullvad.mullvadvpn.lib.theme.AppTheme @Preview @Composable private fun PreviewApiAccessMethodInfoDialog() { - AppTheme { ApiAccessMethodInfoDialog(EmptyDestinationsNavigator) } + AppTheme { ApiAccessMethodInfo(EmptyDestinationsNavigator) } } @Destination<RootGraph>(style = DestinationStyle.Dialog::class) @Composable -fun ApiAccessMethodInfoDialog(navigator: DestinationsNavigator) { +fun ApiAccessMethodInfo(navigator: DestinationsNavigator) { InfoDialog( message = buildString { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ContentBlockersInfoDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ContentBlockersInfoDialog.kt index 9e1913b498..bde7cfa73c 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ContentBlockersInfoDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ContentBlockersInfoDialog.kt @@ -12,7 +12,7 @@ import net.mullvad.mullvadvpn.compose.component.textResource @Destination<RootGraph>(style = DestinationStyle.Dialog::class) @Composable -fun ContentBlockersInfoDialog(navigator: DestinationsNavigator) { +fun ContentBlockersInfo(navigator: DestinationsNavigator) { InfoDialog( message = buildString { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CustomDnsInfoDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CustomDnsInfoDialog.kt index d8e52d96cd..7aa1f00c79 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CustomDnsInfoDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CustomDnsInfoDialog.kt @@ -14,12 +14,12 @@ import net.mullvad.mullvadvpn.R @Preview @Composable private fun PreviewCustomDnsInfoDialog() { - CustomDnsInfoDialog(EmptyDestinationsNavigator) + CustomDnsInfo(EmptyDestinationsNavigator) } @Destination<RootGraph>(style = DestinationStyle.Dialog::class) @Composable -fun CustomDnsInfoDialog(navigator: DestinationsNavigator) { +fun CustomDnsInfo(navigator: DestinationsNavigator) { InfoDialog( message = stringResource(id = R.string.settings_changes_effect_warning_content_blocker), onDismiss = dropUnlessResumed { navigator.navigateUp() } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DeviceNameInfoDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DeviceNameInfoDialog.kt index 98d1c4a87c..f0b0923a3f 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DeviceNameInfoDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DeviceNameInfoDialog.kt @@ -11,7 +11,7 @@ import net.mullvad.mullvadvpn.R @Destination<RootGraph>(style = DestinationStyle.Dialog::class) @Composable -fun DeviceNameInfoDialog(navigator: DestinationsNavigator) { +fun DeviceNameInfo(navigator: DestinationsNavigator) { InfoDialog( message = buildString { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DiscardChangesDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DiscardChangesDialog.kt index b6cb66ad93..61dfa4c85c 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DiscardChangesDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DiscardChangesDialog.kt @@ -18,7 +18,7 @@ import net.mullvad.mullvadvpn.compose.button.PrimaryButton @Destination<RootGraph>(style = DestinationStyle.Dialog::class) @Composable -fun DiscardChangesDialog(resultBackNavigator: ResultBackNavigator<Boolean>) { +fun DiscardChanges(resultBackNavigator: ResultBackNavigator<Boolean>) { AlertDialog( onDismissRequest = dropUnlessResumed { resultBackNavigator.navigateBack() }, title = { Text(text = stringResource(id = R.string.discard_changes)) }, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialog.kt index 518539dd64..9adaa5710d 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/DnsDialog.kt @@ -58,7 +58,7 @@ data class DnsDialogNavArgs( @Destination<RootGraph>(style = DestinationStyle.Dialog::class, navArgs = DnsDialogNavArgs::class) @Composable -fun DnsDialog( +fun Dns( resultNavigator: ResultBackNavigator<DnsDialogResult>, ) { val viewModel = koinViewModel<DnsDialogViewModel>() diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/LocalNetworkSharingInfoDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/LocalNetworkSharingInfoDialog.kt index 9f210ead70..66c9a72a70 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/LocalNetworkSharingInfoDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/LocalNetworkSharingInfoDialog.kt @@ -15,12 +15,12 @@ import net.mullvad.mullvadvpn.compose.component.textResource @Preview @Composable private fun PreviewLocalNetworkSharingInfoDialog() { - LocalNetworkSharingInfoDialog(EmptyDestinationsNavigator) + LocalNetworkSharingInfo(EmptyDestinationsNavigator) } @Destination<RootGraph>(style = DestinationStyle.Dialog::class) @Composable -fun LocalNetworkSharingInfoDialog(navigator: DestinationsNavigator) { +fun LocalNetworkSharingInfo(navigator: DestinationsNavigator) { InfoDialog( message = stringResource(id = R.string.local_network_sharing_info), additionalInfo = diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/MalwareInfoDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/MalwareInfoDialog.kt index 13e6c88632..a013ec0bcb 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/MalwareInfoDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/MalwareInfoDialog.kt @@ -14,12 +14,12 @@ import net.mullvad.mullvadvpn.R @Preview @Composable private fun PreviewMalwareInfoDialog() { - MalwareInfoDialog(EmptyDestinationsNavigator) + MalwareInfo(EmptyDestinationsNavigator) } @Destination<RootGraph>(style = DestinationStyle.Dialog::class) @Composable -fun MalwareInfoDialog(navigator: DestinationsNavigator) { +fun MalwareInfo(navigator: DestinationsNavigator) { InfoDialog( message = stringResource(id = R.string.malware_info), onDismiss = dropUnlessResumed { navigator.navigateUp() } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/MtuDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/MtuDialog.kt index f90182640d..a52fea2c48 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/MtuDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/MtuDialog.kt @@ -38,14 +38,14 @@ import org.koin.androidx.compose.koinViewModel @Preview @Composable private fun PreviewMtuDialog() { - AppTheme { MtuDialog(EmptyResultBackNavigator()) } + AppTheme { Mtu(EmptyResultBackNavigator()) } } data class MtuNavArgs(val initialMtu: Mtu? = null) @Destination<RootGraph>(style = DestinationStyle.Dialog::class, navArgs = MtuNavArgs::class) @Composable -fun MtuDialog(navigator: ResultBackNavigator<Boolean>) { +fun Mtu(navigator: ResultBackNavigator<Boolean>) { val viewModel = koinViewModel<MtuDialogViewModel>() val uiState by viewModel.uiState.collectAsStateWithLifecycle() diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ObfuscationInfoDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ObfuscationInfoDialog.kt index ba286e0302..e6096ca00d 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ObfuscationInfoDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ObfuscationInfoDialog.kt @@ -14,12 +14,12 @@ import net.mullvad.mullvadvpn.R @Preview @Composable private fun PreviewObfuscationInfoDialog() { - ObfuscationInfoDialog(EmptyDestinationsNavigator) + ObfuscationInfo(EmptyDestinationsNavigator) } @Destination<RootGraph>(style = DestinationStyle.Dialog::class) @Composable -fun ObfuscationInfoDialog(navigator: DestinationsNavigator) { +fun ObfuscationInfo(navigator: DestinationsNavigator) { InfoDialog( message = stringResource(id = R.string.obfuscation_info), onDismiss = dropUnlessResumed { navigator.navigateUp() } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/QuantumResistanceInfoDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/QuantumResistanceInfoDialog.kt index deaa8a1180..91ce85dbd3 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/QuantumResistanceInfoDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/QuantumResistanceInfoDialog.kt @@ -14,12 +14,12 @@ import net.mullvad.mullvadvpn.R @Preview @Composable private fun PreviewQuantumResistanceInfoDialog() { - QuantumResistanceInfoDialog(EmptyDestinationsNavigator) + QuantumResistanceInfo(EmptyDestinationsNavigator) } @Destination<RootGraph>(style = DestinationStyle.Dialog::class) @Composable -fun QuantumResistanceInfoDialog(navigator: DestinationsNavigator) { +fun QuantumResistanceInfo(navigator: DestinationsNavigator) { InfoDialog( message = stringResource(id = R.string.quantum_resistant_info_first_paragaph), additionalInfo = stringResource(id = R.string.quantum_resistant_info_second_paragaph), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/RemoveDeviceConfirmationDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/RemoveDeviceConfirmationDialog.kt index c37bd2dbb0..47d6a3cfcc 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/RemoveDeviceConfirmationDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/RemoveDeviceConfirmationDialog.kt @@ -37,12 +37,12 @@ import net.mullvad.mullvadvpn.lib.theme.Dimens private fun PreviewRemoveDeviceConfirmationDialog( @PreviewParameter(DevicePreviewParameterProvider::class) device: Device ) { - AppTheme { RemoveDeviceConfirmationDialog(EmptyResultBackNavigator(), device = device) } + AppTheme { RemoveDeviceConfirmation(EmptyResultBackNavigator(), device = device) } } @Destination<RootGraph>(style = DestinationStyle.Dialog::class) @Composable -fun RemoveDeviceConfirmationDialog(navigator: ResultBackNavigator<DeviceId>, device: Device) { +fun RemoveDeviceConfirmation(navigator: ResultBackNavigator<DeviceId>, device: Device) { AlertDialog( onDismissRequest = dropUnlessResumed { navigator.navigateBack() }, icon = { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ReportProblemNoEmailDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ReportProblemNoEmailDialog.kt index 344ea1ca9f..43072eb18c 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ReportProblemNoEmailDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ReportProblemNoEmailDialog.kt @@ -27,12 +27,12 @@ import net.mullvad.mullvadvpn.lib.theme.Dimens @Preview @Composable private fun PreviewReportProblemNoEmailDialog() { - AppTheme { ReportProblemNoEmailDialog(EmptyResultBackNavigator()) } + AppTheme { ReportProblemNoEmail(EmptyResultBackNavigator()) } } @Destination<RootGraph>(style = DestinationStyle.Dialog::class) @Composable -fun ReportProblemNoEmailDialog(resultBackNavigator: ResultBackNavigator<Boolean>) { +fun ReportProblemNoEmail(resultBackNavigator: ResultBackNavigator<Boolean>) { AlertDialog( onDismissRequest = dropUnlessResumed { resultBackNavigator.navigateBack() }, icon = { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ServerIpOverridesInfoDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ServerIpOverridesInfoDialog.kt index 777ac5d195..3fe00ce818 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ServerIpOverridesInfoDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/ServerIpOverridesInfoDialog.kt @@ -14,12 +14,12 @@ import net.mullvad.mullvadvpn.R @Preview @Composable private fun PreviewServerIpOverridesInfoDialog() { - ServerIpOverridesInfoDialog(EmptyDestinationsNavigator) + ServerIpOverridesInfo(EmptyDestinationsNavigator) } @Destination<RootGraph>(style = DestinationStyle.Dialog::class) @Composable -fun ServerIpOverridesInfoDialog(navigator: DestinationsNavigator) { +fun ServerIpOverridesInfo(navigator: DestinationsNavigator) { InfoDialog( message = buildString { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/UdpOverTcpPortInfoDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/UdpOverTcpPortInfoDialog.kt index a49380b8ee..ea8beaa8fc 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/UdpOverTcpPortInfoDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/UdpOverTcpPortInfoDialog.kt @@ -15,12 +15,12 @@ import net.mullvad.mullvadvpn.lib.theme.AppTheme @Preview @Composable private fun PreviewUdpOverTcpPortInfoDialog() { - AppTheme { UdpOverTcpPortInfoDialog(EmptyDestinationsNavigator) } + AppTheme { UdpOverTcpPortInfo(EmptyDestinationsNavigator) } } @Destination<RootGraph>(style = DestinationStyle.Dialog::class) @Composable -fun UdpOverTcpPortInfoDialog(navigator: DestinationsNavigator) { +fun UdpOverTcpPortInfo(navigator: DestinationsNavigator) { InfoDialog( message = stringResource(id = R.string.udp_over_tcp_port_info), onDismiss = dropUnlessResumed { navigator.navigateUp() } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/WireguardCustomPortDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/WireguardCustomPortDialog.kt index ace0be15c0..54b0807d8f 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/WireguardCustomPortDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/WireguardCustomPortDialog.kt @@ -39,7 +39,7 @@ import net.mullvad.mullvadvpn.util.inAnyOf @Composable private fun PreviewWireguardCustomPortDialog() { AppTheme { - WireguardCustomPortDialog( + WireguardCustomPort( WireguardCustomPortNavArgs( customPort = null, allowedPortRanges = listOf(PortRange(10..10), PortRange(40..50)), @@ -57,7 +57,7 @@ data class WireguardCustomPortNavArgs( @Destination<RootGraph>(style = DestinationStyle.Dialog::class) @Composable -fun WireguardCustomPortDialog( +fun WireguardCustomPort( navArg: WireguardCustomPortNavArgs, backNavigator: ResultBackNavigator<Port?>, ) { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/WireguardPortInfoDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/WireguardPortInfoDialog.kt index 0484c995fb..d5a73c74e2 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/WireguardPortInfoDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/WireguardPortInfoDialog.kt @@ -20,7 +20,7 @@ import net.mullvad.mullvadvpn.util.asString @Composable private fun PreviewWireguardPortInfoDialog() { AppTheme { - WireguardPortInfoDialog( + WireguardPortInfo( EmptyDestinationsNavigator, argument = WireguardPortInfoDialogArgument(listOf(PortRange(1..2))) ) @@ -31,10 +31,7 @@ private fun PreviewWireguardPortInfoDialog() { @Destination<RootGraph>(style = DestinationStyle.Dialog::class) @Composable -fun WireguardPortInfoDialog( - navigator: DestinationsNavigator, - argument: WireguardPortInfoDialogArgument -) { +fun WireguardPortInfo(navigator: DestinationsNavigator, argument: WireguardPortInfoDialogArgument) { InfoDialog( message = stringResource(id = R.string.wireguard_port_info_description), additionalInfo = diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/payment/VerificationPendingDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/payment/VerificationPendingDialog.kt index 6af4a328bf..739bacbf14 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/payment/VerificationPendingDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/payment/VerificationPendingDialog.kt @@ -25,7 +25,7 @@ private fun PreviewVerificationPendingDialog() { @Destination<RootGraph>(style = DestinationStyle.Dialog::class) @Composable -fun VerificationPendingDialog(navigator: DestinationsNavigator) { +fun VerificationPending(navigator: DestinationsNavigator) { VerificationPendingDialog(onClose = dropUnlessResumed { navigator.navigateUp() }) } 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 7e4ee70c64..8329c11ec9 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 @@ -28,11 +28,11 @@ import androidx.lifecycle.compose.dropUnlessResumed import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.generated.NavGraphs -import com.ramcosta.composedestinations.generated.destinations.DeviceNameInfoDialogDestination +import com.ramcosta.composedestinations.generated.destinations.DeviceNameInfoDestination import com.ramcosta.composedestinations.generated.destinations.LoginDestination import com.ramcosta.composedestinations.generated.destinations.PaymentDestination import com.ramcosta.composedestinations.generated.destinations.RedeemVoucherDestination -import com.ramcosta.composedestinations.generated.destinations.VerificationPendingDialogDestination +import com.ramcosta.composedestinations.generated.destinations.VerificationPendingDestination import com.ramcosta.composedestinations.navigation.DestinationsNavigator import com.ramcosta.composedestinations.result.NavResult import com.ramcosta.composedestinations.result.ResultRecipient @@ -136,12 +136,11 @@ fun Account( }, onCopyAccountNumber = vm::onCopyAccountNumber, onBackClick = dropUnlessResumed { navigator.navigateUp() }, - navigateToDeviceInfo = - dropUnlessResumed { navigator.navigate(DeviceNameInfoDialogDestination) }, + navigateToDeviceInfo = dropUnlessResumed { navigator.navigate(DeviceNameInfoDestination) }, onPurchaseBillingProductClick = dropUnlessResumed { productId -> navigator.navigate(PaymentDestination(productId)) }, navigateToVerificationPendingDialog = - dropUnlessResumed { navigator.navigate(VerificationPendingDialogDestination) } + dropUnlessResumed { navigator.navigate(VerificationPendingDestination) } ) } 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 b1a7334a1d..247e009f59 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 @@ -22,7 +22,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.generated.destinations.ApiAccessMethodDetailsDestination -import com.ramcosta.composedestinations.generated.destinations.ApiAccessMethodInfoDialogDestination +import com.ramcosta.composedestinations.generated.destinations.ApiAccessMethodInfoDestination import com.ramcosta.composedestinations.generated.destinations.EditApiAccessMethodDestination import com.ramcosta.composedestinations.navigation.DestinationsNavigator import net.mullvad.mullvadvpn.R @@ -67,7 +67,7 @@ fun ApiAccessList(navigator: DestinationsNavigator) { navigator.navigate(ApiAccessMethodDetailsDestination(it.id)) { launchSingleTop = true } }, onApiAccessInfoClick = { - navigator.navigate(ApiAccessMethodInfoDialogDestination) { launchSingleTop = true } + navigator.navigate(ApiAccessMethodInfoDestination) { launchSingleTop = true } }, onBackClick = navigator::navigateUp ) 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 9350b8776e..19b548153a 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 @@ -29,7 +29,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.dropUnlessResumed import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph -import com.ramcosta.composedestinations.generated.destinations.DiscardChangesDialogDestination +import com.ramcosta.composedestinations.generated.destinations.DiscardChangesDestination import com.ramcosta.composedestinations.navigation.DestinationsNavigator import com.ramcosta.composedestinations.result.NavResult import com.ramcosta.composedestinations.result.ResultBackNavigator @@ -80,7 +80,7 @@ data class CustomListLocationsNavArgs( fun CustomListLocations( navigator: DestinationsNavigator, backNavigator: ResultBackNavigator<LocationsChanged>, - discardChangesResultRecipient: ResultRecipient<DiscardChangesDialogDestination, Boolean>, + discardChangesResultRecipient: ResultRecipient<DiscardChangesDestination, Boolean>, ) { val customListsViewModel = koinViewModel<CustomListLocationsViewModel>() @@ -122,7 +122,7 @@ fun CustomListLocations( onBackClick = dropUnlessResumed { if (state.hasUnsavedChanges) { - navigator.navigate(DiscardChangesDialogDestination) + navigator.navigate(DiscardChangesDestination) } else { backNavigator.navigateBack() } 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 74d4714d6d..67f2dde6d4 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 @@ -35,7 +35,7 @@ import androidx.lifecycle.compose.dropUnlessResumed import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.generated.destinations.LoginDestination -import com.ramcosta.composedestinations.generated.destinations.RemoveDeviceConfirmationDialogDestination +import com.ramcosta.composedestinations.generated.destinations.RemoveDeviceConfirmationDestination import com.ramcosta.composedestinations.generated.destinations.SettingsDestination import com.ramcosta.composedestinations.navigation.DestinationsNavigator import com.ramcosta.composedestinations.result.NavResult @@ -108,8 +108,7 @@ data class DeviceListNavArgs(val accountNumber: AccountNumber) @Composable fun DeviceList( navigator: DestinationsNavigator, - confirmRemoveResultRecipient: - ResultRecipient<RemoveDeviceConfirmationDialogDestination, DeviceId> + confirmRemoveResultRecipient: ResultRecipient<RemoveDeviceConfirmationDestination, DeviceId> ) { val viewModel = koinViewModel<DeviceListViewModel>() val state by viewModel.uiState.collectAsStateWithLifecycle() @@ -156,7 +155,7 @@ fun DeviceList( onTryAgainClicked = viewModel::fetchDevices, navigateToRemoveDeviceConfirmationDialog = dropUnlessResumed<Device> { - navigator.navigate(RemoveDeviceConfirmationDialogDestination(it)) + navigator.navigate(RemoveDeviceConfirmationDestination(it)) } ) } 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 84162e501e..8e5104ca75 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 @@ -33,7 +33,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph -import com.ramcosta.composedestinations.generated.destinations.DiscardChangesDialogDestination +import com.ramcosta.composedestinations.generated.destinations.DiscardChangesDestination import com.ramcosta.composedestinations.generated.destinations.SaveApiAccessMethodDestination import com.ramcosta.composedestinations.navigation.DestinationsNavigator import com.ramcosta.composedestinations.result.ResultBackNavigator @@ -93,7 +93,7 @@ fun EditApiAccessMethod( navigator: DestinationsNavigator, backNavigator: ResultBackNavigator<Boolean>, saveApiAccessMethodResultRecipient: ResultRecipient<SaveApiAccessMethodDestination, Boolean>, - discardChangesResultRecipient: ResultRecipient<DiscardChangesDialogDestination, Boolean>, + discardChangesResultRecipient: ResultRecipient<DiscardChangesDestination, Boolean>, ) { val viewModel = koinViewModel<EditApiAccessMethodViewModel>() @@ -179,7 +179,7 @@ fun EditApiAccessMethod( onAddMethod = viewModel::trySave, onNavigateBack = { if (state.hasChanges()) { - navigator.navigate(DiscardChangesDialogDestination) { launchSingleTop = true } + navigator.navigate(DiscardChangesDestination) { launchSingleTop = true } } else { navigator.navigateUp() } 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 b9a551731c..3c3fe9e05b 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 @@ -70,7 +70,7 @@ private fun PreviewFilterScreen() { @Destination<RootGraph>(style = SlideInFromRightTransition::class) @Composable -fun FilterScreen(navigator: DestinationsNavigator) { +fun Filter(navigator: DestinationsNavigator) { val viewModel = koinViewModel<FilterViewModel>() val state by viewModel.uiState.collectAsStateWithLifecycle() diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/MullvadApp.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/MullvadApp.kt index 89d96f0189..c73e6601e5 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/MullvadApp.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/MullvadApp.kt @@ -13,7 +13,7 @@ import com.ramcosta.composedestinations.DestinationsNavHost import com.ramcosta.composedestinations.generated.NavGraphs import com.ramcosta.composedestinations.generated.destinations.ChangelogDestination import com.ramcosta.composedestinations.generated.destinations.ConnectDestination -import com.ramcosta.composedestinations.generated.destinations.NoDaemonScreenDestination +import com.ramcosta.composedestinations.generated.destinations.NoDaemonDestination import com.ramcosta.composedestinations.generated.destinations.OutOfTimeDestination import com.ramcosta.composedestinations.rememberNavHostEngine import com.ramcosta.composedestinations.utils.destination @@ -55,8 +55,8 @@ fun MullvadApp() { LaunchedEffectCollect(serviceVm.uiSideEffect) { when (it) { DaemonScreenEvent.Show -> - navController.navigate(NoDaemonScreenDestination) { launchSingleTop = true } - DaemonScreenEvent.Remove -> navController.popBackStack(NoDaemonScreenDestination, true) + navController.navigate(NoDaemonDestination) { launchSingleTop = true } + DaemonScreenEvent.Remove -> navController.popBackStack(NoDaemonDestination, true) } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/NoDaemonScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/NoDaemonScreen.kt index 863cb63258..f86edb4e54 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/NoDaemonScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/NoDaemonScreen.kt @@ -44,7 +44,7 @@ private fun PreviewNoDaemonScreen() { // Set this as the start destination of the default nav graph @Destination<RootGraph>(style = DefaultTransition::class) @Composable -fun NoDaemonScreen(navigator: DestinationsNavigator) { +fun NoDaemon(navigator: DestinationsNavigator) { NoDaemonScreen(dropUnlessResumed { navigator.navigate(SettingsDestination) }) } 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 b1a64ed6c2..ebdb0fe225 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 @@ -32,7 +32,7 @@ import com.ramcosta.composedestinations.generated.destinations.ConnectDestinatio import com.ramcosta.composedestinations.generated.destinations.PaymentDestination import com.ramcosta.composedestinations.generated.destinations.RedeemVoucherDestination import com.ramcosta.composedestinations.generated.destinations.SettingsDestination -import com.ramcosta.composedestinations.generated.destinations.VerificationPendingDialogDestination +import com.ramcosta.composedestinations.generated.destinations.VerificationPendingDestination import com.ramcosta.composedestinations.navigation.DestinationsNavigator import com.ramcosta.composedestinations.result.NavResult import com.ramcosta.composedestinations.result.ResultRecipient @@ -159,7 +159,7 @@ fun OutOfTime( onPurchaseBillingProductClick = dropUnlessResumed { productId -> navigator.navigate(PaymentDestination(productId)) }, navigateToVerificationPendingDialog = - dropUnlessResumed { navigator.navigate(VerificationPendingDialogDestination) } + dropUnlessResumed { navigator.navigate(VerificationPendingDestination) } ) } 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 82d0ad6a6b..19aa05b7f9 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 @@ -30,7 +30,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.dropUnlessResumed import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph -import com.ramcosta.composedestinations.generated.destinations.ReportProblemNoEmailDialogDestination +import com.ramcosta.composedestinations.generated.destinations.ReportProblemNoEmailDestination import com.ramcosta.composedestinations.generated.destinations.ViewLogsDestination import com.ramcosta.composedestinations.navigation.DestinationsNavigator import com.ramcosta.composedestinations.result.NavResult @@ -99,7 +99,7 @@ private fun PreviewReportProblemErrorScreen() { @Composable fun ReportProblem( navigator: DestinationsNavigator, - noEmailConfirmResultRecipent: ResultRecipient<ReportProblemNoEmailDialogDestination, Boolean> + noEmailConfirmResultRecipent: ResultRecipient<ReportProblemNoEmailDestination, Boolean> ) { val vm = koinViewModel<ReportProblemViewModel>() val state by vm.uiState.collectAsStateWithLifecycle() @@ -107,7 +107,7 @@ fun ReportProblem( LaunchedEffectCollect(vm.uiSideEffect) { when (it) { is ReportProblemSideEffect.ShowConfirmNoEmail -> - navigator.navigate(ReportProblemNoEmailDialogDestination) + navigator.navigate(ReportProblemNoEmailDestination) } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreen.kt index 27d9e55fd7..555983d51d 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreen.kt @@ -54,7 +54,7 @@ import com.ramcosta.composedestinations.generated.destinations.CustomListLocatio import com.ramcosta.composedestinations.generated.destinations.CustomListsDestination import com.ramcosta.composedestinations.generated.destinations.DeleteCustomListDestination import com.ramcosta.composedestinations.generated.destinations.EditCustomListNameDestination -import com.ramcosta.composedestinations.generated.destinations.FilterScreenDestination +import com.ramcosta.composedestinations.generated.destinations.FilterDestination import com.ramcosta.composedestinations.navigation.DestinationsNavigator import com.ramcosta.composedestinations.result.NavResult import com.ramcosta.composedestinations.result.ResultBackNavigator @@ -204,7 +204,7 @@ fun SelectLocation( onSelectRelay = vm::selectRelay, onSearchTermInput = vm::onSearchTermInput, onBackClick = dropUnlessResumed { backNavigator.navigateBack() }, - onFilterClick = dropUnlessResumed { navigator.navigate(FilterScreenDestination) }, + onFilterClick = dropUnlessResumed { navigator.navigate(FilterDestination) }, onCreateCustomList = dropUnlessResumed { relayItem -> navigator.navigate( diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ServerIpOverridesScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ServerIpOverridesScreen.kt index a067c1afb1..c323fcce3f 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ServerIpOverridesScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ServerIpOverridesScreen.kt @@ -45,7 +45,7 @@ import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.generated.destinations.ImportOverridesByTextDestination import com.ramcosta.composedestinations.generated.destinations.ResetServerIpOverridesConfirmationDestination -import com.ramcosta.composedestinations.generated.destinations.ServerIpOverridesInfoDialogDestination +import com.ramcosta.composedestinations.generated.destinations.ServerIpOverridesInfoDestination import com.ramcosta.composedestinations.navigation.DestinationsNavigator import com.ramcosta.composedestinations.result.ResultRecipient import kotlinx.coroutines.launch @@ -146,8 +146,7 @@ fun ServerIpOverrides( ServerIpOverridesScreen( state, onBackClick = dropUnlessResumed { navigator.navigateUp() }, - onInfoClick = - dropUnlessResumed { navigator.navigate(ServerIpOverridesInfoDialogDestination) }, + onInfoClick = dropUnlessResumed { navigator.navigate(ServerIpOverridesInfoDestination) }, onResetOverridesClick = dropUnlessResumed { navigator.navigate(ResetServerIpOverridesConfirmationDestination) }, onImportByFile = dropUnlessResumed { openFileLauncher.launch("application/json") }, 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 bed832b554..d92694afc2 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 @@ -35,18 +35,18 @@ import androidx.lifecycle.compose.dropUnlessResumed import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.generated.destinations.AutoConnectAndLockdownModeDestination -import com.ramcosta.composedestinations.generated.destinations.ContentBlockersInfoDialogDestination -import com.ramcosta.composedestinations.generated.destinations.CustomDnsInfoDialogDestination -import com.ramcosta.composedestinations.generated.destinations.DnsDialogDestination -import com.ramcosta.composedestinations.generated.destinations.LocalNetworkSharingInfoDialogDestination -import com.ramcosta.composedestinations.generated.destinations.MalwareInfoDialogDestination -import com.ramcosta.composedestinations.generated.destinations.MtuDialogDestination -import com.ramcosta.composedestinations.generated.destinations.ObfuscationInfoDialogDestination -import com.ramcosta.composedestinations.generated.destinations.QuantumResistanceInfoDialogDestination +import com.ramcosta.composedestinations.generated.destinations.ContentBlockersInfoDestination +import com.ramcosta.composedestinations.generated.destinations.CustomDnsInfoDestination +import com.ramcosta.composedestinations.generated.destinations.DnsDestination +import com.ramcosta.composedestinations.generated.destinations.LocalNetworkSharingInfoDestination +import com.ramcosta.composedestinations.generated.destinations.MalwareInfoDestination +import com.ramcosta.composedestinations.generated.destinations.MtuDestination +import com.ramcosta.composedestinations.generated.destinations.ObfuscationInfoDestination +import com.ramcosta.composedestinations.generated.destinations.QuantumResistanceInfoDestination import com.ramcosta.composedestinations.generated.destinations.ServerIpOverridesDestination -import com.ramcosta.composedestinations.generated.destinations.UdpOverTcpPortInfoDialogDestination -import com.ramcosta.composedestinations.generated.destinations.WireguardCustomPortDialogDestination -import com.ramcosta.composedestinations.generated.destinations.WireguardPortInfoDialogDestination +import com.ramcosta.composedestinations.generated.destinations.UdpOverTcpPortInfoDestination +import com.ramcosta.composedestinations.generated.destinations.WireguardCustomPortDestination +import com.ramcosta.composedestinations.generated.destinations.WireguardPortInfoDestination import com.ramcosta.composedestinations.navigation.DestinationsNavigator import com.ramcosta.composedestinations.result.ResultRecipient import kotlinx.coroutines.launch @@ -145,9 +145,9 @@ private fun PreviewVpnSettings() { @Suppress("LongMethod") fun VpnSettings( navigator: DestinationsNavigator, - dnsDialogResult: ResultRecipient<DnsDialogDestination, DnsDialogResult>, - customWgPortResult: ResultRecipient<WireguardCustomPortDialogDestination, Port?>, - mtuDialogResult: ResultRecipient<MtuDialogDestination, Boolean>, + dnsDialogResult: ResultRecipient<DnsDestination, DnsDialogResult>, + customWgPortResult: ResultRecipient<WireguardCustomPortDestination, Port?>, + mtuDialogResult: ResultRecipient<MtuDestination, Boolean>, ) { val vm = koinViewModel<VpnSettingsViewModel>() val state by vm.uiState.collectAsStateWithLifecycle() @@ -184,7 +184,7 @@ fun VpnSettings( is VpnSettingsSideEffect.ShowToast -> launch { snackbarHostState.showSnackbarImmediately(message = it.message(context)) } VpnSettingsSideEffect.NavigateToDnsDialog -> - navigator.navigate(DnsDialogDestination(null, null)) { launchSingleTop = true } + navigator.navigate(DnsDestination(null, null)) { launchSingleTop = true } } } @@ -203,29 +203,28 @@ fun VpnSettings( state = state, snackbarHostState = snackbarHostState, navigateToContentBlockersInfo = - dropUnlessResumed { navigator.navigate(ContentBlockersInfoDialogDestination) }, + dropUnlessResumed { navigator.navigate(ContentBlockersInfoDestination) }, navigateToAutoConnectScreen = dropUnlessResumed { navigator.navigate(AutoConnectAndLockdownModeDestination) }, navigateToCustomDnsInfo = - dropUnlessResumed { navigator.navigate(CustomDnsInfoDialogDestination) }, - navigateToMalwareInfo = - dropUnlessResumed { navigator.navigate(MalwareInfoDialogDestination) }, + dropUnlessResumed { navigator.navigate(CustomDnsInfoDestination) }, + navigateToMalwareInfo = dropUnlessResumed { navigator.navigate(MalwareInfoDestination) }, navigateToObfuscationInfo = - dropUnlessResumed { navigator.navigate(ObfuscationInfoDialogDestination) }, + dropUnlessResumed { navigator.navigate(ObfuscationInfoDestination) }, navigateToQuantumResistanceInfo = - dropUnlessResumed { navigator.navigate(QuantumResistanceInfoDialogDestination) }, + dropUnlessResumed { navigator.navigate(QuantumResistanceInfoDestination) }, navigateUdp2TcpInfo = - dropUnlessResumed { navigator.navigate(UdpOverTcpPortInfoDialogDestination) }, + dropUnlessResumed { navigator.navigate(UdpOverTcpPortInfoDestination) }, navigateToWireguardPortInfo = dropUnlessResumed { availablePortRanges: List<PortRange> -> navigator.navigate( - WireguardPortInfoDialogDestination( + WireguardPortInfoDestination( WireguardPortInfoDialogArgument(availablePortRanges) ), ) }, navigateToLocalNetworkSharingInfo = - dropUnlessResumed { navigator.navigate(LocalNetworkSharingInfoDialogDestination) }, + dropUnlessResumed { navigator.navigate(LocalNetworkSharingInfoDestination) }, navigateToServerIpOverrides = dropUnlessResumed { navigator.navigate(ServerIpOverridesDestination) }, onToggleBlockTrackers = vm::onToggleBlockTrackers, @@ -237,10 +236,10 @@ fun VpnSettings( onToggleBlockGambling = vm::onToggleBlockGambling, onToggleBlockSocialMedia = vm::onToggleBlockSocialMedia, navigateToMtuDialog = - dropUnlessResumed { mtu: Mtu? -> navigator.navigate(MtuDialogDestination(mtu)) }, + dropUnlessResumed { mtu: Mtu? -> navigator.navigate(MtuDestination(mtu)) }, navigateToDns = dropUnlessResumed { index: Int?, address: String? -> - navigator.navigate(DnsDialogDestination(index, address)) + navigator.navigate(DnsDestination(index, address)) }, navigateToWireguardPortDialog = dropUnlessResumed { @@ -249,7 +248,7 @@ fun VpnSettings( state.customWireguardPort?.toPortOrNull(), state.availablePortRanges ) - navigator.navigate(WireguardCustomPortDialogDestination(args)) + navigator.navigate(WireguardCustomPortDestination(args)) }, onToggleDnsClick = vm::onToggleCustomDns, onBackClick = dropUnlessResumed { navigator.navigateUp() }, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/WelcomeScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/WelcomeScreen.kt index 0c9e1244f3..34aee5d0bb 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/WelcomeScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/WelcomeScreen.kt @@ -33,11 +33,11 @@ import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.generated.NavGraphs import com.ramcosta.composedestinations.generated.destinations.AccountDestination import com.ramcosta.composedestinations.generated.destinations.ConnectDestination -import com.ramcosta.composedestinations.generated.destinations.DeviceNameInfoDialogDestination +import com.ramcosta.composedestinations.generated.destinations.DeviceNameInfoDestination import com.ramcosta.composedestinations.generated.destinations.PaymentDestination import com.ramcosta.composedestinations.generated.destinations.RedeemVoucherDestination import com.ramcosta.composedestinations.generated.destinations.SettingsDestination -import com.ramcosta.composedestinations.generated.destinations.VerificationPendingDialogDestination +import com.ramcosta.composedestinations.generated.destinations.VerificationPendingDestination import com.ramcosta.composedestinations.navigation.DestinationsNavigator import com.ramcosta.composedestinations.result.NavResult import com.ramcosta.composedestinations.result.ResultRecipient @@ -151,12 +151,12 @@ fun Welcome( onSettingsClick = dropUnlessResumed { navigator.navigate(SettingsDestination) }, onAccountClick = dropUnlessResumed { navigator.navigate(AccountDestination) }, navigateToDeviceInfoDialog = - dropUnlessResumed { navigator.navigate(DeviceNameInfoDialogDestination) }, + dropUnlessResumed { navigator.navigate(DeviceNameInfoDestination) }, onPurchaseBillingProductClick = dropUnlessResumed { productId -> navigator.navigate(PaymentDestination(productId)) }, onDisconnectClick = vm::onDisconnectClick, navigateToVerificationPendingDialog = - dropUnlessResumed { navigator.navigate(VerificationPendingDialogDestination) } + dropUnlessResumed { navigator.navigate(VerificationPendingDestination) } ) } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/transitions/SettingsTransition.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/transitions/SettingsTransition.kt index 1ec4034281..d9c9bd2f58 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/transitions/SettingsTransition.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/transitions/SettingsTransition.kt @@ -11,7 +11,7 @@ import androidx.compose.animation.slideInVertically import androidx.compose.animation.slideOutHorizontally import androidx.compose.animation.slideOutVertically import androidx.navigation.NavBackStackEntry -import com.ramcosta.composedestinations.generated.destinations.NoDaemonScreenDestination +import com.ramcosta.composedestinations.generated.destinations.NoDaemonDestination import com.ramcosta.composedestinations.spec.DestinationStyle import com.ramcosta.composedestinations.utils.destination import net.mullvad.mullvadvpn.constant.SCREEN_ANIMATION_TIME_MILLIS @@ -29,7 +29,7 @@ object SettingsTransition : DestinationStyle.Animated() { AnimatedContentTransitionScope<NavBackStackEntry>.() -> ExitTransition = { when (targetState.destination()) { - NoDaemonScreenDestination -> fadeOut(snap(SCREEN_ANIMATION_TIME_MILLIS)) + NoDaemonDestination -> fadeOut(snap(SCREEN_ANIMATION_TIME_MILLIS)) else -> slideOutHorizontally(targetOffsetX = { -it.withHorizontalScalingFactor() }) } } @@ -38,7 +38,7 @@ object SettingsTransition : DestinationStyle.Animated() { AnimatedContentTransitionScope<NavBackStackEntry>.() -> EnterTransition = { when (initialState.destination()) { - NoDaemonScreenDestination -> fadeIn(snap(0)) + NoDaemonDestination -> fadeIn(snap(0)) else -> slideInHorizontally(initialOffsetX = { -it.withHorizontalScalingFactor() }) } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/transitions/SlideInFromBottomTransition.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/transitions/SlideInFromBottomTransition.kt index 14dde875d7..7e796e5e01 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/transitions/SlideInFromBottomTransition.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/transitions/SlideInFromBottomTransition.kt @@ -11,7 +11,7 @@ import androidx.compose.animation.slideInVertically import androidx.compose.animation.slideOutHorizontally import androidx.compose.animation.slideOutVertically import androidx.navigation.NavBackStackEntry -import com.ramcosta.composedestinations.generated.destinations.NoDaemonScreenDestination +import com.ramcosta.composedestinations.generated.destinations.NoDaemonDestination import com.ramcosta.composedestinations.spec.DestinationStyle import com.ramcosta.composedestinations.utils.destination import net.mullvad.mullvadvpn.constant.SCREEN_ANIMATION_TIME_MILLIS @@ -28,7 +28,7 @@ object SlideInFromBottomTransition : DestinationStyle.Animated() { AnimatedContentTransitionScope<NavBackStackEntry>.() -> ExitTransition? = { when (targetState.destination()) { - NoDaemonScreenDestination -> fadeOut(snap(SCREEN_ANIMATION_TIME_MILLIS)) + NoDaemonDestination -> fadeOut(snap(SCREEN_ANIMATION_TIME_MILLIS)) else -> fadeOut() } } @@ -37,7 +37,7 @@ object SlideInFromBottomTransition : DestinationStyle.Animated() { AnimatedContentTransitionScope<NavBackStackEntry>.() -> EnterTransition = { when (initialState.destination()) { - NoDaemonScreenDestination -> fadeIn(snap(0)) + NoDaemonDestination -> fadeIn(snap(0)) else -> fadeIn() } } @@ -62,7 +62,7 @@ object SelectLocationTransition : DestinationStyle.Animated() { AnimatedContentTransitionScope<NavBackStackEntry>.() -> ExitTransition = { when (targetState.destination()) { - NoDaemonScreenDestination -> fadeOut(snap(SCREEN_ANIMATION_TIME_MILLIS)) + NoDaemonDestination -> fadeOut(snap(SCREEN_ANIMATION_TIME_MILLIS)) else -> slideOutHorizontally { -it.withHorizontalScalingFactor() } } } @@ -71,7 +71,7 @@ object SelectLocationTransition : DestinationStyle.Animated() { AnimatedContentTransitionScope<NavBackStackEntry>.() -> EnterTransition = { when (initialState.destination()) { - NoDaemonScreenDestination -> fadeIn(snap(0)) + NoDaemonDestination -> fadeIn(snap(0)) else -> slideInHorizontally { -it.withHorizontalScalingFactor() } } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/transitions/SlideInFromRightLeafTransition.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/transitions/SlideInFromRightLeafTransition.kt index 670877dfaa..c27ec16254 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/transitions/SlideInFromRightLeafTransition.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/transitions/SlideInFromRightLeafTransition.kt @@ -9,7 +9,7 @@ import androidx.compose.animation.fadeOut import androidx.compose.animation.slideInHorizontally import androidx.compose.animation.slideOutHorizontally import androidx.navigation.NavBackStackEntry -import com.ramcosta.composedestinations.generated.destinations.NoDaemonScreenDestination +import com.ramcosta.composedestinations.generated.destinations.NoDaemonDestination import com.ramcosta.composedestinations.spec.DestinationStyle import com.ramcosta.composedestinations.utils.destination import net.mullvad.mullvadvpn.constant.SCREEN_ANIMATION_TIME_MILLIS @@ -25,7 +25,7 @@ object SlideInFromRightLeafTransition : DestinationStyle.Animated() { AnimatedContentTransitionScope<NavBackStackEntry>.() -> ExitTransition = { when (targetState.destination()) { - NoDaemonScreenDestination -> fadeOut(snap(SCREEN_ANIMATION_TIME_MILLIS)) + NoDaemonDestination -> fadeOut(snap(SCREEN_ANIMATION_TIME_MILLIS)) else -> fadeOut() } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/transitions/SlideInFromRightTransition.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/transitions/SlideInFromRightTransition.kt index 6ff49210f6..fe785e1f6a 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/transitions/SlideInFromRightTransition.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/transitions/SlideInFromRightTransition.kt @@ -9,7 +9,7 @@ import androidx.compose.animation.fadeOut import androidx.compose.animation.slideInHorizontally import androidx.compose.animation.slideOutHorizontally import androidx.navigation.NavBackStackEntry -import com.ramcosta.composedestinations.generated.destinations.NoDaemonScreenDestination +import com.ramcosta.composedestinations.generated.destinations.NoDaemonDestination import com.ramcosta.composedestinations.spec.DestinationStyle import com.ramcosta.composedestinations.utils.destination import net.mullvad.mullvadvpn.constant.SCREEN_ANIMATION_TIME_MILLIS @@ -26,7 +26,7 @@ object SlideInFromRightTransition : DestinationStyle.Animated() { AnimatedContentTransitionScope<NavBackStackEntry>.() -> ExitTransition = { when (targetState.destination()) { - NoDaemonScreenDestination -> fadeOut(snap(SCREEN_ANIMATION_TIME_MILLIS)) + NoDaemonDestination -> fadeOut(snap(SCREEN_ANIMATION_TIME_MILLIS)) else -> slideOutHorizontally(targetOffsetX = { -it.withHorizontalScalingFactor() }) } } @@ -35,7 +35,7 @@ object SlideInFromRightTransition : DestinationStyle.Animated() { AnimatedContentTransitionScope<NavBackStackEntry>.() -> EnterTransition = { when (initialState.destination()) { - NoDaemonScreenDestination -> fadeIn(snap(0)) + NoDaemonDestination -> fadeIn(snap(0)) else -> slideInHorizontally(initialOffsetX = { -it.withHorizontalScalingFactor() }) } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DnsDialogViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DnsDialogViewModel.kt index 14d154498d..f9e2dd27c2 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DnsDialogViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DnsDialogViewModel.kt @@ -6,7 +6,7 @@ import androidx.lifecycle.viewModelScope import arrow.core.Either import arrow.core.raise.either import arrow.core.raise.ensure -import com.ramcosta.composedestinations.generated.destinations.DnsDialogDestination +import com.ramcosta.composedestinations.generated.destinations.DnsDestination import java.net.InetAddress import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Dispatchers @@ -53,7 +53,7 @@ class DnsDialogViewModel( savedStateHandle: SavedStateHandle, private val dispatcher: CoroutineDispatcher = Dispatchers.IO, ) : ViewModel() { - private val navArgs = DnsDialogDestination.argsFrom(savedStateHandle) + private val navArgs = DnsDestination.argsFrom(savedStateHandle) private val currentIndex = MutableStateFlow(navArgs.index) private val _ipAddressInput = MutableStateFlow(navArgs.initialValue ?: EMPTY_STRING) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/MtuDialogViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/MtuDialogViewModel.kt index fa29558f13..04484e5dbb 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/MtuDialogViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/MtuDialogViewModel.kt @@ -3,7 +3,7 @@ package net.mullvad.mullvadvpn.viewmodel import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.ramcosta.composedestinations.generated.destinations.MtuDialogDestination +import com.ramcosta.composedestinations.generated.destinations.MtuDestination import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.channels.Channel @@ -22,7 +22,7 @@ class MtuDialogViewModel( savedStateHandle: SavedStateHandle, private val dispatcher: CoroutineDispatcher = Dispatchers.IO ) : ViewModel() { - private val navArgs = MtuDialogDestination.argsFrom(savedStateHandle) + private val navArgs = MtuDestination.argsFrom(savedStateHandle) private val _mtuInput = MutableStateFlow(navArgs.initialMtu?.value?.toString() ?: "") private val _isValidMtu = MutableStateFlow(true) diff --git a/android/config/baseline.xml b/android/config/baseline.xml index 36bd121a12..9e87be5c25 100644 --- a/android/config/baseline.xml +++ b/android/config/baseline.xml @@ -5,10 +5,9 @@ <ID>CyclomaticComplexMethod:MockApiDispatcher.kt$MockApiDispatcher$override fun dispatch(request: RecordedRequest): MockResponse</ID> <ID>EmptyFunctionBlock:AccountTestRule.kt$AccountTestRule${}</ID> <ID>EmptyKtFile:build.gradle.kts$.build.gradle.kts</ID> - <ID>LargeClass:ConnectScreenTest.kt$ConnectScreenTest</ID> <ID>LongMethod:ApiAccessMethodDetailsScreen.kt$@Destination<RootGraph>( style = SlideInFromRightTransition::class, navArgs = ApiAccessMethodDetailsNavArgs::class ) @Composable fun ApiAccessMethodDetails( navigator: DestinationsNavigator, confirmDeleteListResultRecipient: ResultRecipient<DeleteApiAccessMethodConfirmationDestination, Boolean> )</ID> <ID>LongMethod:ConnectionButton.kt$@OptIn(ExperimentalMaterial3Api::class) @Composable private fun ConnectionButton( text: String, mainClick: () -> Unit, reconnectClick: () -> Unit, isReconnectButtonEnabled: Boolean, containerColor: Color, contentColor: Color, modifier: Modifier = Modifier, reconnectButtonTestTag: String = "" )</ID> - <ID>LongMethod:EditApiAccessMethodScreen.kt$@Destination<RootGraph>( style = SlideInFromRightTransition::class, navArgs = EditApiAccessMethodNavArgs::class ) @Composable fun EditApiAccessMethod( navigator: DestinationsNavigator, backNavigator: ResultBackNavigator<Boolean>, saveApiAccessMethodResultRecipient: ResultRecipient<SaveApiAccessMethodDestination, Boolean>, discardChangesResultRecipient: ResultRecipient<DiscardChangesDialogDestination, Boolean>, )</ID> + <ID>LongMethod:EditApiAccessMethodScreen.kt$@Destination<RootGraph>( style = SlideInFromRightTransition::class, navArgs = EditApiAccessMethodNavArgs::class ) @Composable fun EditApiAccessMethod( navigator: DestinationsNavigator, backNavigator: ResultBackNavigator<Boolean>, saveApiAccessMethodResultRecipient: ResultRecipient<SaveApiAccessMethodDestination, Boolean>, discardChangesResultRecipient: ResultRecipient<DiscardChangesDestination, Boolean>, )</ID> <ID>LongMethod:NotificationBanner.kt$@Composable private fun Notification(notificationBannerData: NotificationData)</ID> <ID>MagicNumber:Chevron.kt$100</ID> <ID>MagicNumber:Chevron.kt$270f</ID> diff --git a/android/gradle/verification-metadata.xml b/android/gradle/verification-metadata.xml index 3246b37650..70333d352f 100644 --- a/android/gradle/verification-metadata.xml +++ b/android/gradle/verification-metadata.xml @@ -66,6 +66,14 @@ <sha256 value="aa629fbdb50669248338956fab5b308ade51df188f355067d5d0726b3275ff1f" origin="Generated by Gradle"/> </artifact> </component> + <component group="androidx.activity" name="activity" version="1.8.0"> + <artifact name="activity-1.8.0.aar"> + <sha256 value="d3a676709dea04f2a8506e2ae85052fff763db526ac7f16b04de50fdd05b0720" origin="Generated by Gradle"/> + </artifact> + <artifact name="activity-1.8.0.module"> + <sha256 value="d145d8b53cfd11fd26e47e7dd45c007133ef96ea24f6715cb653c737645d1df6" origin="Generated by Gradle"/> + </artifact> + </component> <component group="androidx.activity" name="activity" version="1.8.2"> <artifact name="activity-1.8.2.aar"> <sha256 value="ecc119262530a6e2f9f373207e472d476306bed3d4b216fe61b1ea42e3bef688" origin="Generated by Gradle"/> @@ -82,6 +90,14 @@ <sha256 value="0750e6ebaaeee0fe793eb51a73691df0ddfa68b543e53e714be6e46c37f6a404" origin="Generated by Gradle"/> </artifact> </component> + <component group="androidx.activity" name="activity-compose" version="1.8.0"> + <artifact name="activity-compose-1.8.0.aar"> + <sha256 value="3b462bc760eba180956543232ca467c7b6200a091c5bfa146f906cfabc856314" origin="Generated by Gradle"/> + </artifact> + <artifact name="activity-compose-1.8.0.module"> + <sha256 value="3ba7e92f92e94d349193c2c6e166084684e72fe1ff3e066ed4faebc707f9bc1f" origin="Generated by Gradle"/> + </artifact> + </component> <component group="androidx.activity" name="activity-compose" version="1.8.2"> <artifact name="activity-compose-1.8.2.aar"> <sha256 value="5a67e984f14ed2afc585aa3a23edff1c1791c80caa2bf68a0f799c1b11a39038" origin="Generated by Gradle"/> @@ -119,6 +135,14 @@ <sha256 value="c5769b13afe55023c1dc30c72ea86189ab70aa3ca770ecfb04c970f4d6e6be65" origin="Generated by Gradle"/> </artifact> </component> + <component group="androidx.activity" name="activity-ktx" version="1.8.0"> + <artifact name="activity-ktx-1.8.0.aar"> + <sha256 value="bfee12c1c88c3f74954fbf6e6766bc183956f37478b7c024fae7f5b38493d7a5" origin="Generated by Gradle"/> + </artifact> + <artifact name="activity-ktx-1.8.0.module"> + <sha256 value="0251a826d94897d5c689e6a539fc533b4b7684d3f63e240221182d7cb4b4fb13" origin="Generated by Gradle"/> + </artifact> + </component> <component group="androidx.activity" name="activity-ktx" version="1.8.2"> <artifact name="activity-ktx-1.8.2.aar"> <sha256 value="5c78283d1956b14b22cf6ad70c712a73aa084116b7535526176c3b85e6a9205a" origin="Generated by Gradle"/> @@ -216,9 +240,6 @@ </artifact> </component> <component group="androidx.annotation" name="annotation-jvm" version="1.7.0"> - <artifact name="annotation-jvm-1.7.0.jar"> - <sha256 value="e36b8e4b8393a4adc74e3d4ab22ad5a36396f0cea2e40b5734eae14937dfd224" origin="Generated by Gradle"/> - </artifact> <artifact name="annotation-jvm-1.7.0.module"> <sha256 value="07ce60c377ab94e47c8c902589b9776030064fd1a7e4d5a01a38d700e35e5db4" origin="Generated by Gradle"/> </artifact> @@ -488,6 +509,14 @@ <sha256 value="98c2c2c70116dcd5a2a69f62c1439c05a364864ace450062d5a879812bc42e18" origin="Generated by Gradle"/> </artifact> </component> + <component group="androidx.compose.foundation" name="foundation-layout" version="1.6.0"> + <artifact name="foundation-layout-1.6.0.module"> + <sha256 value="3de795143914ffdcb3bff3f50bf62b18fce1b60bf856a9cfb84fcbcb34e94b48" origin="Generated by Gradle"/> + </artifact> + <artifact name="foundation-layout-metadata-1.6.0.jar"> + <sha256 value="4e75469751c9d4c464c7d06af283b9737693c20bc4aaf657630bb294c27bbff1" origin="Generated by Gradle"/> + </artifact> + </component> <component group="androidx.compose.foundation" name="foundation-layout" version="1.7.0-beta02"> <artifact name="foundation-layout-1.7.0-beta02.module"> <sha256 value="412f84f1754823d17b5b0e95139d90e2026911fbf43f0a978426d72e567e0768" origin="Generated by Gradle"/> @@ -685,6 +714,11 @@ <sha256 value="c0d6f142542d8d74f65481ef6526d2be265f01f812a112948fcde87a458f4fb6" origin="Generated by Gradle"/> </artifact> </component> + <component group="androidx.compose.runtime" name="runtime-saveable" version="1.7.0-beta02"> + <artifact name="runtime-saveable-1.7.0-beta02.module"> + <sha256 value="de13627950ff757292853d391712012d704f74b45c5c969eaf6c6683d18c9023" origin="Generated by Gradle"/> + </artifact> + </component> <component group="androidx.compose.runtime" name="runtime-saveable" version="1.7.0-beta03"> <artifact name="runtime-saveable-1.7.0-beta03.module"> <sha256 value="a6f4d5324fab4f71969a36c2f8f6c394b6e61d933c4c904683df4316e5a21d9c" origin="Generated by Gradle"/> @@ -1095,6 +1129,9 @@ </artifact> </component> <component group="androidx.core" name="core-ktx" version="1.9.0"> + <artifact name="core-ktx-1.9.0.aar"> + <sha256 value="1542a1df7be908c95fee91b8dbc03fd974f53f11d84a85d881f95a52551c4051" origin="Generated by Gradle"/> + </artifact> <artifact name="core-ktx-1.9.0.module"> <sha256 value="4d46646066c794f2812d5b33a9422d37e4f918c4d809cd1fb2579c7022ef2818" origin="Generated by Gradle"/> </artifact> @@ -1596,6 +1633,14 @@ <sha256 value="e2f55a6e22af3f44a65469ef459e855fec7a77a454a1334315a1935b18ecda64" origin="Generated by Gradle"/> </artifact> </component> + <component group="androidx.lifecycle" name="lifecycle-viewmodel-compose" version="2.6.2"> + <artifact name="lifecycle-viewmodel-compose-2.6.2.aar"> + <sha256 value="c2b820204c2ca58ef9cb015a3e5ffbe88d8c55b09e5cb851d62b445528a379e0" origin="Generated by Gradle"/> + </artifact> + <artifact name="lifecycle-viewmodel-compose-2.6.2.module"> + <sha256 value="55ba297e2fc68b1f9f673fbf9c2173e8deddf5aea23d9136f228eaa5fac57428" origin="Generated by Gradle"/> + </artifact> + </component> <component group="androidx.lifecycle" name="lifecycle-viewmodel-compose" version="2.8.2"> <artifact name="lifecycle-viewmodel-compose-2.8.2.module"> <sha256 value="93d79b051e42af5b2cf1f86d14b9cc7b10fe27869b9cc3d52449d88e1918294b" origin="Generated by Gradle"/> @@ -1665,6 +1710,11 @@ <sha256 value="8083710b758ac096891e91f51d91ee56a445b265d7becf230355377327c0418b" origin="Generated by Gradle"/> </artifact> </component> + <component group="androidx.lifecycle" name="lifecycle-viewmodel-savedstate" version="2.5.1"> + <artifact name="lifecycle-viewmodel-savedstate-2.5.1.module"> + <sha256 value="29acd5fe614b3f89123eb838f688d625eaa8b422c8d1905b48ad8e760cd7ad8b" origin="Generated by Gradle"/> + </artifact> + </component> <component group="androidx.lifecycle" name="lifecycle-viewmodel-savedstate" version="2.6.1"> <artifact name="lifecycle-viewmodel-savedstate-2.6.1.aar"> <sha256 value="c82f89221adbe19df7c7adbab63f4ecc857fc746e3c9494256ab8fa5c20491b2" origin="Generated by Gradle"/> diff --git a/android/test/arch/build.gradle.kts b/android/test/arch/build.gradle.kts index 2665083cb0..d2debc07dd 100644 --- a/android/test/arch/build.gradle.kts +++ b/android/test/arch/build.gradle.kts @@ -32,6 +32,7 @@ dependencies { testRuntimeOnly(Dependencies.junitEngine) testImplementation(Dependencies.Compose.uiToolingAndroidPreview) + testImplementation(Dependencies.Compose.destinations) testImplementation(Dependencies.AndroidX.appcompat) testImplementation(Dependencies.junitApi) testImplementation(Dependencies.konsist) diff --git a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/compose/ComposeDestinationsTest.kt b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/compose/ComposeDestinationsTest.kt new file mode 100644 index 0000000000..7a638fb242 --- /dev/null +++ b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/compose/ComposeDestinationsTest.kt @@ -0,0 +1,28 @@ +package net.mullvad.mullvadvpn.test.arch.compose + +import com.lemonappdev.konsist.api.Konsist +import com.lemonappdev.konsist.api.ext.list.withAllAnnotationsOf +import com.lemonappdev.konsist.api.verify.assertTrue +import com.ramcosta.composedestinations.annotation.Destination +import org.junit.jupiter.api.Test + +class ComposeDestinationsTest { + @Test + fun `ensure all destinations functions does not have invalid suffix`() = + allDestinationsFunctions().assertTrue { destinationFunction -> + DESTINATION_SUFFIXES.none { suffix -> destinationFunction.name.endsWith(suffix) } + } + + @Test + fun `ensure all files that contains destinations ends with a valid suffix`() = + allDestinationsFunctions().assertTrue { destinationFunction -> + DESTINATION_SUFFIXES.any { destinationFunction.containingFile.name.endsWith(it) } + } + + private fun allDestinationsFunctions() = + Konsist.scopeFromProduction("app").functions().withAllAnnotationsOf(Destination::class) + + companion object { + private val DESTINATION_SUFFIXES = listOf("Screen", "Dialog") + } +} |
