From a0632b216c316dc0f9ee23678e760cde52627df1 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 21 Apr 2026 16:35:52 +0200 Subject: [PATCH] MediaDetailsBottomSheet: update wording and dividers. --- .../impl/details/MediaDetailsBottomSheet.kt | 9 +++++++-- .../mediaviewer/impl/viewer/MediaViewerView.kt | 5 ++++- .../impl/details/MediaDetailsBottomSheetTest.kt | 10 +++++----- .../mediaviewer/impl/viewer/MediaViewerViewTest.kt | 8 ++++---- libraries/ui-strings/src/main/res/values/localazy.xml | 1 + 5 files changed, 21 insertions(+), 12 deletions(-) diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheet.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheet.kt index e25f2ffde1..0e1e3a04c0 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheet.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheet.kt @@ -46,6 +46,9 @@ import io.element.android.libraries.mediaviewer.api.MediaInfo import io.element.android.libraries.mediaviewer.impl.R import io.element.android.libraries.ui.strings.CommonStrings +/** + * Ref: https://www.figma.com/design/pDlJZGBsri47FNTXMnEdXB/Compound-Android-Templates?node-id=2229-149220 + */ @OptIn(ExperimentalMaterial3Api::class) @Composable fun MediaDetailsBottomSheet( @@ -99,6 +102,7 @@ fun MediaDetailsBottomSheet( onViewInTimeline(state.eventId) } ) + HorizontalDivider() ListItem( leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.ShareAndroid())), headlineContent = { Text(stringResource(CommonStrings.action_share)) }, @@ -115,9 +119,10 @@ fun MediaDetailsBottomSheet( onForward(state.eventId) } ) + HorizontalDivider() ListItem( leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.Download())), - headlineContent = { Text(stringResource(CommonStrings.action_save)) }, + headlineContent = { Text(stringResource(CommonStrings.action_download)) }, style = ListItemStyle.Primary, onClick = { onDownload(state.eventId) @@ -127,7 +132,7 @@ fun MediaDetailsBottomSheet( HorizontalDivider() ListItem( leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.Delete())), - headlineContent = { Text(stringResource(CommonStrings.action_remove)) }, + headlineContent = { Text(stringResource(CommonStrings.action_delete)) }, style = ListItemStyle.Destructive, onClick = { onDelete(state.eventId) diff --git a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerView.kt b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerView.kt index ee7a235390..6b62a04d0f 100644 --- a/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerView.kt +++ b/libraries/mediaviewer/impl/src/main/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerView.kt @@ -101,6 +101,9 @@ import me.saket.telephoto.zoomable.rememberZoomableState val topAppBarHeight = 88.dp +/** + * Ref: https://www.figma.com/design/pDlJZGBsri47FNTXMnEdXB/Compound-Android-Templates?node-id=3361-16623 + */ @Composable fun MediaViewerView( state: MediaViewerState, @@ -537,7 +540,7 @@ private fun MediaViewerTopBar( ) { Icon( imageVector = CompoundIcons.Download(), - contentDescription = stringResource(id = CommonStrings.action_save), + contentDescription = stringResource(id = CommonStrings.action_download), ) } if (canShowInfo) { diff --git a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheetTest.kt b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheetTest.kt index 580cd89c72..74bc1bd648 100644 --- a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheetTest.kt +++ b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/details/MediaDetailsBottomSheetTest.kt @@ -72,28 +72,28 @@ class MediaDetailsBottomSheetTest { @Test @Config(qualifiers = "h1024dp") - fun `clicking on Save invokes expected callback`() { + fun `clicking on Download invokes expected callback`() { val state = aMediaDetailsBottomSheetState() ensureCalledOnceWithParam(state.eventId) { callback -> rule.setMediaDetailsBottomSheet( state = state, onDownload = callback, ) - rule.clickOn(CommonStrings.action_save) + rule.clickOn(CommonStrings.action_download) } } @Config(qualifiers = "h1024dp") @Test - fun `clicking on Remove invokes expected callback`() { + fun `clicking on Delete invokes expected callback`() { val state = aMediaDetailsBottomSheetState() ensureCalledOnceWithParam(state.eventId) { callback -> rule.setMediaDetailsBottomSheet( state = state, onDelete = callback, ) - rule.onNodeWithText(rule.activity.getString(CommonStrings.action_remove)).assertExists() - rule.clickOn(CommonStrings.action_remove) + rule.onNodeWithText(rule.activity.getString(CommonStrings.action_delete)).assertExists() + rule.clickOn(CommonStrings.action_delete) } } diff --git a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerViewTest.kt b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerViewTest.kt index 1522f5d5c1..d41841a9f0 100644 --- a/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerViewTest.kt +++ b/libraries/mediaviewer/impl/src/test/kotlin/io/element/android/libraries/mediaviewer/impl/viewer/MediaViewerViewTest.kt @@ -99,13 +99,13 @@ class MediaViewerViewTest { } @Test - fun `clicking on top action save emits expected Event`() { + fun `clicking on top action download emits expected Event`() { val data = aMediaViewerPageData( downloadedMedia = AsyncData.Success(aLocalMedia(uri = mockMediaUrl)), ) testMenuAction( data, - CommonStrings.action_save, + CommonStrings.action_download, MediaViewerEvent.SaveOnDisk(data), ) } @@ -135,11 +135,11 @@ class MediaViewerViewTest { @Test @Config(qualifiers = "h1024dp") - fun `clicking on save emit expected Event`() { + fun `clicking on download emit expected Event`() { val data = aMediaViewerPageData() testBottomSheetAction( data, - CommonStrings.action_save, + CommonStrings.action_download, MediaViewerEvent.SaveOnDisk(data), ) } diff --git a/libraries/ui-strings/src/main/res/values/localazy.xml b/libraries/ui-strings/src/main/res/values/localazy.xml index a8a7b90dee..28b28e814a 100644 --- a/libraries/ui-strings/src/main/res/values/localazy.xml +++ b/libraries/ui-strings/src/main/res/values/localazy.xml @@ -96,6 +96,7 @@ "Discard" "Dismiss" "Done" + "Download" "Edit" "Edit caption" "Edit poll"