summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2024-03-11 11:50:51 +0100
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2024-03-11 11:50:51 +0100
commit7ce802876646dafdcb35f8842a7c75eecc9fdddc (patch)
treeefd590e43341be928bef1caf31317c8cfbe45bad
parent2e727ca6552a694480faa6debd5100666d57711b (diff)
parent79a591abcf5b859d719851bc60d84c57e3f8cce5 (diff)
downloadmullvadvpn-7ce802876646dafdcb35f8842a7c75eecc9fdddc.tar.xz
mullvadvpn-7ce802876646dafdcb35f8842a7c75eecc9fdddc.zip
Merge branch 'use-horizontaldivider-and-verticaldivider-droid-677'
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt2
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/VerticalDivider.kt28
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/LazyListExtensions.kt18
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/DeviceListScreen.kt4
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/FilterScreen.kt25
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreen.kt6
6 files changed, 27 insertions, 56 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt
index e340b959d6..68899f7f77 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/cell/RelayLocationCell.kt
@@ -17,6 +17,7 @@ import androidx.compose.foundation.layout.wrapContentHeight
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
+import androidx.compose.material3.VerticalDivider
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable
@@ -29,7 +30,6 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.compose.component.Chevron
-import net.mullvad.mullvadvpn.compose.component.VerticalDivider
import net.mullvad.mullvadvpn.lib.theme.AppTheme
import net.mullvad.mullvadvpn.lib.theme.Dimens
import net.mullvad.mullvadvpn.lib.theme.color.Alpha40
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/VerticalDivider.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/VerticalDivider.kt
deleted file mode 100644
index d7e4709b5d..0000000000
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/VerticalDivider.kt
+++ /dev/null
@@ -1,28 +0,0 @@
-package net.mullvad.mullvadvpn.compose.component
-
-import androidx.compose.foundation.background
-import androidx.compose.foundation.layout.Box
-import androidx.compose.foundation.layout.fillMaxHeight
-import androidx.compose.foundation.layout.width
-import androidx.compose.material3.DividerDefaults
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.platform.LocalDensity
-import androidx.compose.ui.unit.Dp
-import androidx.compose.ui.unit.dp
-
-@Composable
-fun VerticalDivider(
- modifier: Modifier = Modifier,
- thickness: Dp = DividerDefaults.Thickness,
- color: Color = DividerDefaults.color,
-) {
- val targetThickness =
- if (thickness == Dp.Hairline) {
- (1f / LocalDensity.current.density).dp
- } else {
- thickness
- }
- Box(modifier.fillMaxHeight().width(targetThickness).background(color = color))
-}
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/LazyListExtensions.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/LazyListExtensions.kt
index 8e1f562b47..594eac4c7a 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/LazyListExtensions.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/LazyListExtensions.kt
@@ -2,8 +2,9 @@ package net.mullvad.mullvadvpn.compose.extensions
import androidx.compose.foundation.lazy.LazyItemScope
import androidx.compose.foundation.lazy.LazyListScope
+import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.itemsIndexed
-import androidx.compose.material3.Divider
+import androidx.compose.material3.HorizontalDivider
import androidx.compose.runtime.Composable
inline fun LazyListScope.itemWithDivider(
@@ -13,7 +14,18 @@ inline fun LazyListScope.itemWithDivider(
) =
item(key = key, contentType = contentType) {
itemContent()
- Divider()
+ HorizontalDivider()
+ }
+
+inline fun <T> LazyListScope.itemsWithDivider(
+ items: List<T>,
+ noinline key: ((item: T) -> Any)? = null,
+ noinline contentType: (item: T) -> Any? = { null },
+ crossinline itemContent: @Composable LazyItemScope.(item: T) -> Unit
+) =
+ items(items = items, key = key, contentType = contentType) { item ->
+ itemContent(item)
+ HorizontalDivider()
}
inline fun <T> LazyListScope.itemsIndexedWithDivider(
@@ -24,5 +36,5 @@ inline fun <T> LazyListScope.itemsIndexedWithDivider(
) =
itemsIndexed(items = items, key = key, contentType = contentType) { index, item ->
itemContent(index, item)
- Divider()
+ HorizontalDivider()
}
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 f1306538d0..99fc28fdb5 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
@@ -12,7 +12,7 @@ import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.wrapContentHeight
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
-import androidx.compose.material3.Divider
+import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
@@ -274,7 +274,7 @@ private fun ColumnScope.DeviceListContent(
navigateToRemoveDeviceConfirmationDialog(deviceUiState.device)
}
if (state.deviceUiItems.lastIndex != index) {
- Divider()
+ HorizontalDivider()
}
}
}
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 b67807ad28..000ad9a1cd 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
@@ -9,8 +9,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.systemBarsPadding
import androidx.compose.foundation.lazy.LazyColumn
-import androidx.compose.foundation.lazy.items
-import androidx.compose.material3.Divider
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
@@ -37,6 +35,8 @@ import net.mullvad.mullvadvpn.compose.button.ApplyButton
import net.mullvad.mullvadvpn.compose.cell.CheckboxCell
import net.mullvad.mullvadvpn.compose.cell.ExpandableComposeCell
import net.mullvad.mullvadvpn.compose.cell.SelectableCell
+import net.mullvad.mullvadvpn.compose.extensions.itemWithDivider
+import net.mullvad.mullvadvpn.compose.extensions.itemsWithDivider
import net.mullvad.mullvadvpn.compose.state.RelayFilterState
import net.mullvad.mullvadvpn.compose.transitions.SlideInFromRightTransition
import net.mullvad.mullvadvpn.lib.theme.AppTheme
@@ -146,28 +146,17 @@ fun FilterScreen(
},
) { contentPadding ->
LazyColumn(modifier = Modifier.padding(contentPadding).fillMaxSize()) {
- item {
- Divider()
- OwnershipHeader(ownershipExpanded, { ownershipExpanded = it })
- }
+ itemWithDivider { OwnershipHeader(ownershipExpanded) { ownershipExpanded = it } }
if (ownershipExpanded) {
item { AnyOwnership(state, onSelectedOwnership) }
- items(state.filteredOwnershipByProviders) { ownership ->
- Divider()
+ itemsWithDivider(state.filteredOwnershipByProviders) { ownership ->
Ownership(ownership, state, onSelectedOwnership)
}
}
- item {
- Divider()
- ProvidersHeader(providerExpanded, { providerExpanded = it })
- }
+ itemWithDivider() { ProvidersHeader(providerExpanded) { providerExpanded = it } }
if (providerExpanded) {
- item {
- Divider()
- AllProviders(state, onAllProviderCheckChange)
- }
- items(state.filteredProvidersByOwnership) { provider ->
- Divider()
+ itemWithDivider { AllProviders(state, onAllProviderCheckChange) }
+ itemsWithDivider(state.filteredProvidersByOwnership) { provider ->
Provider(provider, state, onSelectedProvider)
}
}
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 0aeece1c19..6928e8fb43 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
@@ -7,8 +7,6 @@ import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
-import androidx.compose.foundation.lazy.itemsIndexed
-import androidx.compose.material3.Divider
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
@@ -67,6 +65,7 @@ import net.mullvad.mullvadvpn.compose.destinations.WireguardPortInfoDialogDestin
import net.mullvad.mullvadvpn.compose.dialog.WireguardCustomPortNavArgs
import net.mullvad.mullvadvpn.compose.dialog.WireguardPortInfoDialogArgument
import net.mullvad.mullvadvpn.compose.extensions.itemWithDivider
+import net.mullvad.mullvadvpn.compose.extensions.itemsIndexedWithDivider
import net.mullvad.mullvadvpn.compose.state.VpnSettingsUiState
import net.mullvad.mullvadvpn.compose.test.LAZY_LIST_LAST_ITEM_TEST_TAG
import net.mullvad.mullvadvpn.compose.test.LAZY_LIST_QUANTUM_ITEM_OFF_TEST_TAG
@@ -436,7 +435,7 @@ fun VpnSettingsScreen(
}
if (state.isCustomDnsEnabled) {
- itemsIndexed(state.customDnsItems) { index, item ->
+ itemsIndexedWithDivider(state.customDnsItems) { index, item ->
DnsCell(
address = item.address,
isUnreachableLocalDnsWarningVisible =
@@ -444,7 +443,6 @@ fun VpnSettingsScreen(
onClick = { navigateToDns(index, item.address) },
modifier = Modifier.animateItemPlacement()
)
- Divider()
}
itemWithDivider {