summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/ConnectionButton.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/button/SwitchLocationButton.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/CustomPortCell.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/ConnectionStatusText.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/List.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/LocationInfo.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/NotificationBanner.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Scrollbar.kt8
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/dialog/CustomPortDialog.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreen.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceRevokedScreen.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/PrivacyDisclaimerScreen.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SelectLocationScreen.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SplitTunnelingScreen.kt2
-rw-r--r--android/buildSrc/src/main/kotlin/Dependencies.kt3
-rw-r--r--android/test/arch/build.gradle.kts15
-rw-r--r--android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/compose/ComposePreviewTests.kt22
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)
+}