Skip to content

Commit 811a4c8

Browse files
committed
Results cell UI. Fix filter dropdown text.
1 parent 37f70ba commit 811a4c8

File tree

7 files changed

+50
-17
lines changed

7 files changed

+50
-17
lines changed

composeApp/src/commonMain/kotlin/org/ooni/probe/ui/dashboard/TestDescriptorLabel.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import androidx.compose.runtime.Composable
1010
import androidx.compose.ui.Alignment
1111
import androidx.compose.ui.Modifier
1212
import androidx.compose.ui.graphics.Color
13+
import androidx.compose.ui.text.font.FontWeight
14+
import androidx.compose.ui.text.style.TextOverflow
1315
import androidx.compose.ui.unit.dp
1416
import ooniprobe.composeapp.generated.resources.Res
1517
import ooniprobe.composeapp.generated.resources.ooni_empty_state
@@ -33,6 +35,9 @@ fun TestDescriptorLabel(descriptor: Descriptor) {
3335
Text(
3436
descriptor.title(),
3537
style = MaterialTheme.typography.titleMedium,
38+
fontWeight = FontWeight.SemiBold,
39+
maxLines = 1,
40+
overflow = TextOverflow.Ellipsis,
3641
)
3742
}
3843
}

composeApp/src/commonMain/kotlin/org/ooni/probe/ui/results/ResultCell.kt

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import androidx.compose.material3.Text
1414
import androidx.compose.runtime.Composable
1515
import androidx.compose.ui.Alignment
1616
import androidx.compose.ui.Modifier
17+
import androidx.compose.ui.text.style.TextOverflow
1718
import androidx.compose.ui.unit.dp
1819
import ooniprobe.composeapp.generated.resources.Res
1920
import ooniprobe.composeapp.generated.resources.Snackbar_ResultsNotUploaded_Text
@@ -41,7 +42,6 @@ fun ResultCell(
4142
} else {
4243
MaterialTheme.colorScheme.surfaceVariant
4344
},
44-
modifier = Modifier.padding(top = 1.dp),
4545
) {
4646
Row(
4747
verticalAlignment = Alignment.Bottom,
@@ -55,13 +55,27 @@ fun ResultCell(
5555
) {
5656
TestDescriptorLabel(item.descriptor)
5757

58+
item.network?.networkName?.let { networkName ->
59+
Text(
60+
networkName,
61+
style = MaterialTheme.typography.titleMedium,
62+
maxLines = 2,
63+
overflow = TextOverflow.Ellipsis,
64+
)
65+
}
66+
67+
val asn = item.network?.asn ?: stringResource(Res.string.TestResults_UnknownASN)
5868
Text(
59-
item.network?.networkName ?: stringResource(Res.string.TestResults_UnknownASN),
69+
"($asn)",
6070
style = MaterialTheme.typography.titleMedium,
61-
maxLines = 3,
71+
maxLines = 1,
72+
overflow = TextOverflow.Ellipsis,
6273
)
6374

64-
Text(item.result.startTime.relativeDateTime())
75+
Text(
76+
item.result.startTime.relativeDateTime(),
77+
style = MaterialTheme.typography.labelMedium,
78+
)
6579
}
6680
Column(
6781
horizontalAlignment = Alignment.End,

composeApp/src/commonMain/kotlin/org/ooni/probe/ui/results/ResultFilterViews.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import androidx.compose.runtime.mutableStateOf
1111
import androidx.compose.runtime.remember
1212
import androidx.compose.runtime.setValue
1313
import androidx.compose.ui.Modifier
14+
import androidx.compose.ui.text.style.TextOverflow
1415
import ooniprobe.composeapp.generated.resources.Res
1516
import ooniprobe.composeapp.generated.resources.task_origin_all
1617
import ooniprobe.composeapp.generated.resources.task_origin_auto_run
@@ -48,7 +49,13 @@ fun DescriptorFilter(
4849
) {
4950
list.forEach { option ->
5051
DropdownMenuItem(
51-
text = { Text(option.label()) },
52+
text = {
53+
Text(
54+
option.label(),
55+
maxLines = 2,
56+
overflow = TextOverflow.Ellipsis,
57+
)
58+
},
5259
onClick = {
5360
onFilterChanged(option)
5461
expanded = false

composeApp/src/commonMain/kotlin/org/ooni/probe/ui/results/ResultsScreen.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import androidx.compose.foundation.lazy.LazyColumn
1515
import androidx.compose.foundation.lazy.items
1616
import androidx.compose.material3.AlertDialog
1717
import androidx.compose.material3.CircularProgressIndicator
18+
import androidx.compose.material3.HorizontalDivider
1819
import androidx.compose.material3.Icon
1920
import androidx.compose.material3.IconButton
2021
import androidx.compose.material3.LocalContentColor
@@ -33,6 +34,7 @@ import androidx.compose.ui.Alignment
3334
import androidx.compose.ui.Modifier
3435
import androidx.compose.ui.draw.alpha
3536
import androidx.compose.ui.draw.shadow
37+
import androidx.compose.ui.platform.LocalDensity
3638
import androidx.compose.ui.text.style.TextAlign
3739
import androidx.compose.ui.unit.dp
3840
import kotlinx.datetime.LocalDate
@@ -139,6 +141,7 @@ fun ResultsScreen(
139141
item = result,
140142
onResultClick = { onEvent(ResultsViewModel.Event.ResultClick(result)) },
141143
)
144+
HorizontalDivider(thickness = with(LocalDensity.current) { 1.toDp() })
142145
}
143146
}
144147
}

composeApp/src/dwMain/kotlin/org/ooni/probe/ui/Colors.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ val onErrorLight = Color(0xFFFFFFFF)
1919
val errorContainerLight = Color(0xFFFFDAD6)
2020
val onErrorContainerLight = Color(0xFF410002)
2121
val backgroundLight = Color(0xFFF7F9FF)
22-
val onBackgroundLight = Color(0xFF231918)
22+
val onBackgroundLight = Color(0xFF000000)
2323
val surfaceLight = Color(0xFFF7F9FF)
24-
val onSurfaceLight = Color(0xFF231918)
25-
val surfaceVariantLight = Color(0xFFE0E2EC)
26-
val onSurfaceVariantLight = Color(0xFF44474E)
24+
val onSurfaceLight = Color(0xFF000000)
25+
val surfaceVariantLight = Color(0xFFF0F0F0)
26+
val onSurfaceVariantLight = Color(0xFF000000)
2727
val outlineLight = Color(0xFF74777F)
2828
val outlineVariantLight = Color(0xFFC4C6D0)
2929
val scrimLight = Color(0xFF000000)

composeApp/src/dwMain/res/drawable/ic_launcher_foreground.xml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
xmlns:tools="http://schemas.android.com/tools"
23
android:width="108dp"
34
android:height="108dp"
45
android:viewportWidth="487"
@@ -10,14 +11,17 @@
1011
<path
1112
android:pathData="M428,261H0V400H428V261ZM188.05,348.22H169.26C168.85,352.41 167.87,355.92 166.32,358.74C164.81,361.57 162.6,363.71 159.69,365.17C156.82,366.63 153.08,367.35 148.48,367.35C144.7,367.35 141.44,366.63 138.7,365.17C135.97,363.71 133.74,361.59 132,358.81C130.27,356.03 129,352.64 128.18,348.63C127.36,344.62 126.95,340.08 126.95,335.02V327.3C126.95,322.01 127.4,317.37 128.31,313.36C129.23,309.3 130.59,305.93 132.41,303.24C134.24,300.51 136.52,298.45 139.25,297.09C142.03,295.72 145.24,295.04 148.89,295.04C153.58,295.04 157.34,295.81 160.17,297.36C163.04,298.86 165.18,301.08 166.59,303.99C168.05,306.91 168.96,310.46 169.32,314.65H188.12C187.48,307.91 185.62,301.94 182.52,296.75C179.42,291.55 175.07,287.47 169.46,284.51C163.86,281.5 157,280 148.89,280C142.65,280 136.99,281.12 131.94,283.35C126.92,285.58 122.62,288.77 119.02,292.92C115.46,297.02 112.73,301.99 110.82,307.82C108.9,313.65 107.94,320.19 107.94,327.44V335.02C107.94,342.27 108.88,348.81 110.75,354.64C112.61,360.43 115.3,365.39 118.81,369.54C122.37,373.64 126.63,376.81 131.59,379.04C136.61,381.23 142.23,382.32 148.48,382.32C156.59,382.32 163.49,380.86 169.19,377.95C174.88,375.03 179.33,371.02 182.52,365.92C185.71,360.77 187.55,354.87 188.05,348.22ZM76.78,349.99C77.37,351.5 77.66,353.2 77.66,355.12C77.66,357.58 77.03,359.77 75.75,361.68C74.52,363.6 72.65,365.1 70.15,366.19C67.68,367.24 64.54,367.76 60.71,367.76C57.75,367.76 54.99,367.45 52.44,366.81C49.89,366.17 47.66,365.17 45.74,363.8C43.88,362.39 42.42,360.59 41.37,358.4C40.37,356.17 39.87,353.48 39.87,350.33H21C21,355.76 22.14,360.5 24.42,364.55C26.7,368.56 29.75,371.89 33.58,374.53C37.4,377.13 41.67,379.09 46.36,380.41C51.1,381.69 55.88,382.32 60.71,382.32C66.14,382.32 71.03,381.71 75.41,380.48C79.83,379.25 83.61,377.45 86.75,375.08C89.9,372.71 92.31,369.84 94,366.47C95.69,363.09 96.53,359.27 96.53,354.98C96.53,350.93 95.82,347.3 94.41,344.11C93.04,340.92 90.97,338.05 88.19,335.5C85.46,332.95 82.02,330.67 77.87,328.67C73.77,326.66 68.98,324.84 63.52,323.2C60.1,322.15 57.09,321.1 54.49,320.05C51.94,318.96 49.8,317.8 48.07,316.57C46.34,315.29 45.04,313.95 44.17,312.54C43.31,311.08 42.87,309.44 42.87,307.61C42.87,305.2 43.49,303.01 44.72,301.05C45.99,299.09 47.89,297.54 50.39,296.4C52.94,295.27 56.13,294.7 59.96,294.7C63.93,294.7 67.21,295.38 69.8,296.75C72.45,298.11 74.41,299.98 75.68,302.35C77,304.72 77.66,307.45 77.66,310.55H96.39C96.39,304.81 94.91,299.64 91.95,295.04C88.99,290.43 84.8,286.79 79.37,284.1C74,281.41 67.62,280.07 60.23,280.07C54.9,280.07 50.03,280.73 45.61,282.05C41.23,283.37 37.43,285.26 34.19,287.72C30.96,290.14 28.45,293.03 26.67,296.4C24.94,299.78 24.08,303.51 24.08,307.61C24.08,311.81 24.92,315.5 26.6,318.69C28.29,321.83 30.64,324.61 33.65,327.03C36.7,329.44 40.23,331.56 44.24,333.38C48.25,335.21 52.58,336.85 57.23,338.3C61.42,339.63 64.84,340.9 67.48,342.13C70.17,343.32 72.24,344.55 73.7,345.82C75.2,347.05 76.23,348.44 76.78,349.99ZM248.48,281.43H243.83H235.7H231.12L193.93,380.96H213.82L221.26,358.81H258.43L265.91,380.96H285.87L248.48,281.43ZM253.42,343.98H226.25L239.8,303.64L253.42,343.98ZM376.09,380.96V281.43H357.36V350.54L314.92,281.43H296.12V380.96H314.92V311.92L357.23,380.96H376.09Z"
1213
android:fillColor="#ffffff"
13-
android:fillType="evenOdd"/>
14+
android:fillType="evenOdd"
15+
tools:ignore="VectorPath"/>
1416
<path
1517
android:pathData="M487,135H0V261H487V135ZM36.93,148H45.47L72.67,222.91L99.81,148H108.35H116.15H124.35V247.52H105.55V216.83L107.39,171.55L79.17,247.52H66.11L37.9,171.46L39.8,216.83V247.52H21V148H29.2H36.93ZM209.45,232.76V247.52H162.28H156.54H143.49V148H156.54H162.28H209.24V162.83H162.28V189.08H202.54V203.5H162.28V232.76H209.45ZM241.3,247.52H252.24C259.03,247.52 265.2,246.4 270.76,244.17C276.32,241.94 281.1,238.75 285.11,234.6C289.17,230.46 292.27,225.49 294.41,219.7C296.6,213.87 297.69,207.4 297.69,200.29V195.3C297.69,188.15 296.6,181.68 294.41,175.89C292.27,170.1 289.17,165.13 285.11,160.99C281.1,156.79 276.34,153.58 270.83,151.35C265.36,149.12 259.3,148 252.65,148H241.3H230.36H222.5V247.52H230.77H241.3ZM241.3,232.76H252.24C258.02,232.76 262.88,231.48 266.8,228.93C270.71,226.33 273.68,222.62 275.68,217.79C277.69,212.91 278.69,207.08 278.69,200.29V195.16C278.69,189.92 278.12,185.3 276.98,181.29C275.84,177.28 274.15,173.91 271.92,171.17C269.73,168.44 267.02,166.36 263.79,164.95C260.55,163.54 256.84,162.83 252.65,162.83H241.3V232.76ZM333.71,148V247.52H314.92V148H333.71ZM396.46,148H401.11L438.5,247.52H418.54L411.06,225.38H373.89L366.45,247.52H346.56L383.75,148H388.33H396.46ZM378.88,210.54H406.05L392.43,170.21L378.88,210.54Z"
1618
android:fillColor="#ffffff"
17-
android:fillType="evenOdd"/>
19+
android:fillType="evenOdd"
20+
tools:ignore="VectorPath"/>
1821
<path
1922
android:pathData="M458,0H0V135H458V0ZM372.74,84.05C373.34,85.55 373.63,87.26 373.63,89.18C373.63,91.64 372.99,93.82 371.72,95.74C370.49,97.65 368.62,99.16 366.11,100.25C363.65,101.3 360.51,101.82 356.68,101.82C353.72,101.82 350.96,101.5 348.41,100.86C345.86,100.23 343.63,99.22 341.71,97.86C339.84,96.44 338.39,94.64 337.34,92.46C336.33,90.22 335.83,87.54 335.83,84.39H316.97C316.97,89.81 318.11,94.55 320.39,98.61C322.66,102.62 325.72,105.94 329.55,108.59C333.37,111.18 337.63,113.14 342.33,114.47C347.07,115.74 351.85,116.38 356.68,116.38C362.1,116.38 367,115.76 371.38,114.54C375.8,113.3 379.58,111.5 382.72,109.14C385.87,106.76 388.28,103.89 389.97,100.52C391.65,97.15 392.5,93.32 392.5,89.04C392.5,84.98 391.79,81.36 390.38,78.17C389.01,74.98 386.94,72.11 384.16,69.56C381.42,67.01 377.98,64.73 373.84,62.72C369.74,60.72 364.95,58.9 359.48,57.26C356.07,56.21 353.06,55.16 350.46,54.11C347.91,53.02 345.77,51.86 344.04,50.63C342.3,49.35 341.01,48.01 340.14,46.59C339.27,45.13 338.84,43.49 338.84,41.67C338.84,39.26 339.46,37.07 340.69,35.11C341.96,33.15 343.85,31.6 346.36,30.46C348.91,29.32 352.1,28.75 355.93,28.75C359.89,28.75 363.17,29.44 365.77,30.8C368.41,32.17 370.37,34.04 371.65,36.41C372.97,38.78 373.63,41.51 373.63,44.61H392.36C392.36,38.87 390.88,33.7 387.92,29.09C384.96,24.49 380.76,20.85 375.34,18.16C369.96,15.47 363.58,14.13 356.2,14.13C350.87,14.13 345.99,14.79 341.58,16.11C337.2,17.43 333.39,19.32 330.16,21.78C326.92,24.2 324.42,27.09 322.64,30.46C320.91,33.83 320.04,37.57 320.04,41.67C320.04,45.86 320.89,49.55 322.57,52.74C324.26,55.89 326.61,58.67 329.61,61.08C332.67,63.5 336.2,65.62 340.21,67.44C344.22,69.26 348.55,70.9 353.2,72.36C357.39,73.68 360.8,74.96 363.45,76.19C366.14,77.37 368.21,78.6 369.67,79.88C371.17,81.11 372.2,82.5 372.74,84.05ZM100.5,115.01V15.49H81.77V84.6L39.32,15.49H20.52V115.01H39.32V45.98L81.63,115.01H100.5ZM185.6,115.01V100.25H138.43V70.99H178.69V56.57H138.43V30.32H185.39V15.49H138.43H132.69H119.63V115.01H132.69H138.43H185.6ZM214.51,115.01H221.82H226.88H233.17L250.84,46.15L268.44,115.01H274.73H279.78H287.1L309.65,15.49H290.93L276.49,87.54L258.8,15.49H253.67H248.14H242.94L225.21,87.45L210.61,15.49H191.95L214.51,115.01Z"
2023
android:fillColor="#ffffff"
21-
android:fillType="evenOdd"/>
24+
android:fillType="evenOdd"
25+
tools:ignore="VectorPath"/>
2226
</group>
2327
</vector>

composeApp/src/ooniMain/kotlin/org/ooni/probe/ui/Colors.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ val onErrorLight = Color(0xFFFFFFFF)
1919
val errorContainerLight = Color(0xFFFFDAD6)
2020
val onErrorContainerLight = Color(0xFF3B0908)
2121
val backgroundLight = Color(0xFFF7F9FF)
22-
val onBackgroundLight = Color(0xFF181C20)
23-
val surfaceLight = Color(0xFFF5FAFB)
24-
val onSurfaceLight = Color(0xFF171D1E)
25-
val surfaceVariantLight = Color(0xFFE0E2EC)
26-
val onSurfaceVariantLight = Color(0xFF44474E)
22+
val onBackgroundLight = Color(0xFF000000)
23+
val surfaceLight = Color(0xFFF7F9FF)
24+
val onSurfaceLight = Color(0xFF000000)
25+
val surfaceVariantLight = Color(0xFFF0F0F0)
26+
val onSurfaceVariantLight = Color(0xFF000000)
2727
val outlineLight = Color(0xFF74777F)
2828
val outlineVariantLight = Color(0xFFC4C6D0)
2929
val scrimLight = Color(0xFF000000)

0 commit comments

Comments
 (0)