diff options
| author | David Göransson <david.goransson90@gmail.com> | 2023-09-29 20:02:08 +0200 |
|---|---|---|
| committer | David Göransson <david.goransson90@gmail.com> | 2023-10-02 16:06:03 +0200 |
| commit | 3d38b605ca87c63e293afecb3e37f062c4f31265 (patch) | |
| tree | cbce556569110b160120a9ede5eea2697b0d710b /android | |
| parent | 0995760e5ea6dde06b56065ea45346c1f9672839 (diff) | |
| download | mullvadvpn-3d38b605ca87c63e293afecb3e37f062c4f31265.tar.xz mullvadvpn-3d38b605ca87c63e293afecb3e37f062c4f31265.zip | |
Add Compose Preview test and fix issues
Diffstat (limited to 'android')
18 files changed, 47 insertions, 29 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 7852159247..18eebb8b85 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 @@ -100,7 +100,7 @@ fun ConnectionButton( @Preview @Composable -fun PreviewConnectionButton() { +private fun PreviewConnectionButton() { AppTheme { ConnectionButton( text = "Disconnect", diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/SwitchLocationButton.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/SwitchLocationButton.kt index e58e7e2202..906afbb65c 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/SwitchLocationButton.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/SwitchLocationButton.kt @@ -22,7 +22,7 @@ import net.mullvad.mullvadvpn.lib.theme.Dimens @Preview @Composable -fun PreviewSwitchLocationButton() { +private fun PreviewSwitchLocationButton() { AppTheme { SpacedColumn { SwitchLocationButton(onClick = {}, text = "Switch Location", showChevron = false) 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 ab3e45c5c4..7021081963 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 @@ -33,7 +33,7 @@ import net.mullvad.mullvadvpn.lib.theme.Dimens @Preview @Composable -fun PreviewCustomPortCell() { +private fun PreviewCustomPortCell() { AppTheme { SpacedColumn(Modifier.background(MaterialTheme.colorScheme.background)) { CustomPortCell(title = "Title", isSelected = true, port = "444") diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/ConnectionStatusText.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/ConnectionStatusText.kt index fa896b2c9a..742302ce91 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/ConnectionStatusText.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/ConnectionStatusText.kt @@ -15,7 +15,7 @@ import net.mullvad.talpid.tunnel.ErrorStateCause @Preview @Composable -fun PreviewConnectionStatusText() { +private fun PreviewConnectionStatusText() { AppTheme { SpacedColumn { ConnectionStatusText(TunnelState.Disconnected) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/List.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/List.kt index 7ff5b7f6cf..66d9aea0fa 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/List.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/List.kt @@ -32,7 +32,7 @@ import net.mullvad.mullvadvpn.lib.theme.typeface.listItemText @Preview @Composable -fun PreviewListItem() { +private fun PreviewListItem() { AppTheme { Column { ListItem(text = "No subtext No icon not loading", isLoading = false, onClick = {}) diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/LocationInfo.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/LocationInfo.kt index 3f12457b86..161bce9b75 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/LocationInfo.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/LocationInfo.kt @@ -25,7 +25,7 @@ import net.mullvad.talpid.net.TransportProtocol @Preview @Composable -fun PreviewLocationInfo() { +private fun PreviewLocationInfo() { AppTheme { LocationInfo( onToggleTunnelInfo = {}, diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/NotificationBanner.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/NotificationBanner.kt index 4e638d56b2..0f7fa74117 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/NotificationBanner.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/NotificationBanner.kt @@ -40,7 +40,7 @@ import org.joda.time.DateTime @Preview @Composable -fun PreviewNotificationBanner() { +private fun PreviewNotificationBanner() { AppTheme { SpacedColumn(Modifier.background(color = MaterialTheme.colorScheme.background)) { val versionInfoNotification = diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Scrollbar.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Scrollbar.kt index 4af39cf4b5..35ddc58592 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Scrollbar.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Scrollbar.kt @@ -287,7 +287,7 @@ private val FadeOutAnimationSpec = @Preview(widthDp = 400, heightDp = 400, showBackground = true) @Composable -internal fun ScrollbarPreview() { +private fun PreviewScrollbar() { val state = rememberScrollState() Column( modifier = Modifier.drawVerticalScrollbar(state).verticalScroll(state), @@ -300,7 +300,7 @@ internal fun ScrollbarPreview() { @Preview(widthDp = 400, heightDp = 400, showBackground = true) @Composable -internal fun LazyListScrollbarPreview() { +private fun PreviewLazyListScrollbar() { val state = rememberLazyListState() LazyColumn(modifier = Modifier.drawVerticalScrollbar(state), state = state) { items(50) { @@ -311,7 +311,7 @@ internal fun LazyListScrollbarPreview() { @Preview(widthDp = 400, showBackground = true) @Composable -internal fun HorizontalScrollbarPreview() { +private fun PreviewHorizontalScrollbar() { val state = rememberScrollState() Row(modifier = Modifier.drawHorizontalScrollbar(state).horizontalScroll(state)) { repeat(50) { @@ -325,7 +325,7 @@ internal fun HorizontalScrollbarPreview() { @Preview(widthDp = 400, showBackground = true) @Composable -internal fun LazyListHorizontalScrollbarPreview() { +private fun PreviewLazyListHorizontalScrollbar() { val state = rememberLazyListState() LazyRow(modifier = Modifier.drawHorizontalScrollbar(state), state = state) { items(50) { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CustomPortDialog.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CustomPortDialog.kt index 3c36ca8f88..e23af13564 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CustomPortDialog.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CustomPortDialog.kt @@ -30,7 +30,7 @@ import net.mullvad.mullvadvpn.util.isPortInValidRanges @Preview @Composable -fun PreviewCustomPortDialog() { +private fun PreviewCustomPortDialog() { AppTheme { CustomPortDialog( onSave = {}, 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 8ca98c410a..f2d5f9cd95 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 @@ -55,7 +55,7 @@ private const val CONNECT_BUTTON_THROTTLE_MILLIS = 1000 @Preview @Composable -fun PreviewConnectScreen() { +private fun PreviewConnectScreen() { val state = ConnectUiState.INITIAL AppTheme { ConnectScreen( 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 2e72e12801..37669a9851 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 @@ -41,7 +41,7 @@ import net.mullvad.mullvadvpn.util.formatDate @Composable @Preview -fun PreviewDeviceListScreen() { +private fun PreviewDeviceListScreen() { AppTheme { DeviceListScreen( state = 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 c7f0c8416f..22fa8a0469 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 @@ -32,7 +32,7 @@ import net.mullvad.mullvadvpn.lib.theme.AppTheme @Preview @Composable -fun PreivewDeviceRevokedScreen() { +private fun PreviewDeviceRevokedScreen() { AppTheme { DeviceRevokedScreen(state = DeviceRevokedUiState.SECURED) } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/PrivacyDisclaimerScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/PrivacyDisclaimerScreen.kt index 50ec92c45e..3de32531e8 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/PrivacyDisclaimerScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/PrivacyDisclaimerScreen.kt @@ -36,7 +36,7 @@ import net.mullvad.mullvadvpn.lib.theme.AppTheme @Preview @Composable -fun PreviewPrivacyDisclaimerScreen() { +private fun PreviewPrivacyDisclaimerScreen() { AppTheme { PrivacyDisclaimerScreen({}, {}) } } 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 3376ffe422..b7f23ea768 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 net.mullvad.mullvadvpn.relaylist.RelayItem @Preview @Composable -fun PreviewSelectLocationScreen() { +private fun PreviewSelectLocationScreen() { val state = SelectLocationUiState.ShowData( countries = listOf(RelayCountry("Country 1", "Code 1", false, emptyList())), 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 f5e512f8f6..ad9a7d3af2 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 @@ -44,7 +44,7 @@ import net.mullvad.mullvadvpn.lib.theme.Dimens @Preview @Composable -fun PreviewSplitTunnelingScreen() { +private fun PreviewSplitTunnelingScreen() { AppTheme { SplitTunnelingScreen( uiState = diff --git a/android/buildSrc/src/main/kotlin/Dependencies.kt b/android/buildSrc/src/main/kotlin/Dependencies.kt index 80c3313683..d23399c915 100644 --- a/android/buildSrc/src/main/kotlin/Dependencies.kt +++ b/android/buildSrc/src/main/kotlin/Dependencies.kt @@ -62,6 +62,9 @@ object Dependencies { const val uiTooling = "androidx.compose.ui:ui-tooling:${Versions.Compose.base}" const val uiToolingPreview = "androidx.compose.ui:ui-tooling-preview:${Versions.Compose.base}" + const val uiToolingAndroidPreview = + "androidx.compose.ui:ui-tooling-preview-android:${Versions.Compose.base}" + } object Koin { diff --git a/android/test/arch/build.gradle.kts b/android/test/arch/build.gradle.kts index 0a28fd2fab..dff039f0e2 100644 --- a/android/test/arch/build.gradle.kts +++ b/android/test/arch/build.gradle.kts @@ -7,18 +7,14 @@ android { namespace = "net.mullvad.mullvadvpn.test.arch" compileSdk = Versions.Android.compileSdkVersion - defaultConfig { - minSdk = Versions.Android.minSdkVersion - } + defaultConfig { minSdk = Versions.Android.minSdkVersion } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } - kotlinOptions { - jvmTarget = Versions.jvmTarget - } + kotlinOptions { jvmTarget = Versions.jvmTarget } lint { lintConfig = file("${rootProject.projectDir}/config/lint.xml") @@ -28,14 +24,11 @@ android { } androidComponents { - beforeVariants { variantBuilder -> - variantBuilder.apply { - enable = name != "release" - } - } + beforeVariants { variantBuilder -> variantBuilder.apply { enable = name != "release" } } } dependencies { + testImplementation(Dependencies.Compose.uiToolingAndroidPreview) testImplementation(Dependencies.AndroidX.appcompat) testImplementation(Dependencies.junit) testImplementation(Dependencies.konsist) diff --git a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/compose/ComposePreviewTests.kt b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/compose/ComposePreviewTests.kt new file mode 100644 index 0000000000..64b221d0c0 --- /dev/null +++ b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/compose/ComposePreviewTests.kt @@ -0,0 +1,22 @@ +package net.mullvad.mullvadvpn.test.arch.compose + +import androidx.compose.ui.tooling.preview.Preview +import com.lemonappdev.konsist.api.Konsist +import com.lemonappdev.konsist.api.ext.list.withAllAnnotationsOf +import com.lemonappdev.konsist.api.verify.assert +import org.junit.Test + +class ComposePreviewTests { + @Test + fun `all preview functions are private`() { + allPreviewFunctions().assert { it.hasPrivateModifier } + } + + @Test + fun `all preview functions are prefixed with Preview`() { + allPreviewFunctions().assert { it.name.startsWith("Preview") } + } + + private fun allPreviewFunctions() = + Konsist.scopeFromProduction().functions().withAllAnnotationsOf(Preview::class) +} |
