summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
author Matt Casey <mrcasey@google.com> 2024-05-22 20:15:53 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-05-22 20:15:53 +0000
commit3517284339deac6c24bf9eca3183d44e7e01fe9d (patch)
tree15b50a9e888d1137406df187ba51905887c8d5b0 /java/src
parent6a47cd2ebc510237b44426ee9d9c82b2d4f0aa8e (diff)
parent5129b5fe7cee819811d0fd166176e54ca139cd82 (diff)
Merge "Content description fixes for shareousel" into main
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselCardComposable.kt4
-rw-r--r--java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselComposable.kt17
2 files changed, 17 insertions, 4 deletions
diff --git a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselCardComposable.kt b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselCardComposable.kt
index f33558c7..0efaa3bb 100644
--- a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselCardComposable.kt
+++ b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselCardComposable.kt
@@ -58,7 +58,7 @@ fun ShareouselCard(
private fun AnimationIcon(modifier: Modifier = Modifier) {
Icon(
painterResource(id = R.drawable.ic_play_circle_filled_24px),
- "animating",
+ contentDescription = null, // Video attribute described at a higher level.
tint = Color.White,
modifier = Modifier.size(20.dp).then(modifier)
)
@@ -71,7 +71,7 @@ private fun SelectionIcon(selected: Boolean, modifier: Modifier = Modifier) {
Icon(
painter = painterResource(id = R.drawable.checkbox),
tint = Color.White,
- contentDescription = "selected",
+ contentDescription = null,
modifier =
Modifier.shadow(
elevation = 50.dp,
diff --git a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselComposable.kt b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselComposable.kt
index 38b9c6da..36c94b59 100644
--- a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselComposable.kt
+++ b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselComposable.kt
@@ -18,7 +18,6 @@ package com.android.intentresolver.contentpreview.payloadtoggle.ui.composable
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.border
-import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
@@ -34,6 +33,7 @@ import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.foundation.lazy.rememberLazyListState
+import androidx.compose.foundation.selection.toggleable
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.systemGestureExclusion
import androidx.compose.material3.AssistChip
@@ -50,6 +50,9 @@ import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.graphics.asImageBitmap
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.res.dimensionResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.semantics.contentDescription
+import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.unit.dp
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.intentresolver.R
@@ -115,6 +118,12 @@ private fun ShareouselCard(viewModel: ShareouselPreviewViewModel) {
viewModel.contentType.collectAsStateWithLifecycle(initialValue = ContentType.Image)
val borderColor = MaterialTheme.colorScheme.primary
val scope = rememberCoroutineScope()
+ val contentDescription =
+ when (contentType) {
+ ContentType.Image -> stringResource(R.string.selectable_image)
+ ContentType.Video -> stringResource(R.string.selectable_video)
+ else -> stringResource(R.string.selectable_item)
+ }
ShareouselCard(
image = {
// TODO: max ratio is actually equal to the viewport ratio
@@ -142,8 +151,12 @@ private fun ShareouselCard(viewModel: ShareouselPreviewViewModel) {
shape = RoundedCornerShape(size = 12.dp),
)
}
+ .semantics { this.contentDescription = contentDescription }
.clip(RoundedCornerShape(size = 12.dp))
- .clickable { scope.launch { viewModel.setSelected(!selected) } },
+ .toggleable(
+ value = selected,
+ onValueChange = { scope.launch { viewModel.setSelected(it) } },
+ )
)
}