From e173a5c456e785118fa54565337d2826aa4b64a4 Mon Sep 17 00:00:00 2001 From: Pablo Pajuelo Cabezas Date: Fri, 24 Jan 2025 12:20:49 +0100 Subject: [PATCH] fix: update image selector dialog --- .../ui/dialog/ImagePickerOptionsDialog.kt | 87 ++++++++++--------- .../provider/inputfield/ImageInputProvider.kt | 1 + form/src/main/res/values/strings.xml | 2 +- 3 files changed, 48 insertions(+), 42 deletions(-) diff --git a/form/src/main/java/org/dhis2/form/ui/dialog/ImagePickerOptionsDialog.kt b/form/src/main/java/org/dhis2/form/ui/dialog/ImagePickerOptionsDialog.kt index a5836dc47a..47870ab0ef 100644 --- a/form/src/main/java/org/dhis2/form/ui/dialog/ImagePickerOptionsDialog.kt +++ b/form/src/main/java/org/dhis2/form/ui/dialog/ImagePickerOptionsDialog.kt @@ -6,24 +6,24 @@ import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.animation.slideInVertically import androidx.compose.animation.slideOutVertically -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Arrangement.spacedBy -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.material3.Text +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.CameraAlt +import androidx.compose.material.icons.outlined.Collections +import androidx.compose.material.icons.outlined.Image +import androidx.compose.material3.Icon import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import org.dhis2.form.R import org.hisp.dhis.mobile.ui.designsystem.component.BottomSheetShell -import org.hisp.dhis.mobile.ui.designsystem.theme.Spacing +import org.hisp.dhis.mobile.ui.designsystem.component.ButtonCarousel +import org.hisp.dhis.mobile.ui.designsystem.component.CarouselButtonData +import org.hisp.dhis.mobile.ui.designsystem.theme.SurfaceColor +import org.hisp.dhis.mobile.ui.designsystem.theme.TextColor @Composable internal fun ImagePickerOptionsDialog( + title: String, showImageOptions: Boolean, onDismiss: () -> Unit, onTakePicture: (Context) -> Unit, @@ -35,44 +35,49 @@ internal fun ImagePickerOptionsDialog( exit = slideOutVertically() + fadeOut(), ) { BottomSheetShell( - title = stringResource(R.string.select_option), + title = title, + icon = { + Icon(Icons.Outlined.Image, contentDescription = null, tint = SurfaceColor.Primary) + }, onDismiss = onDismiss, - content = { - Column( - modifier = Modifier - .fillMaxWidth() - .padding( - horizontal = Spacing.Spacing16, - vertical = Spacing.Spacing24, - ), - verticalArrangement = spacedBy(Spacing.Spacing16), - ) { - val context = LocalContext.current - Box( - modifier = Modifier - .fillMaxWidth() - .clickable { + buttonBlock = { + val context = LocalContext.current + ButtonCarousel( + carouselButtonList = listOf( + CarouselButtonData( + onClick = { onDismiss() onTakePicture(context) }, - contentAlignment = Alignment.CenterStart, - ) { - Text(stringResource(R.string.take_photo)) - } - - Box( - modifier = Modifier - .fillMaxWidth() - .clickable { + enabled = true, + text = stringResource(R.string.take_photo), + icon = { + Icon( + Icons.Outlined.CameraAlt, + contentDescription = null, + tint = TextColor.OnSurface, + ) + }, + ), + CarouselButtonData( + onClick = { onDismiss() - onSelectFromGallery() + onTakePicture(context) }, - contentAlignment = Alignment.CenterStart, - ) { - Text(stringResource(R.string.from_gallery)) - } - } + enabled = true, + text = stringResource(R.string.from_gallery_v2), + icon = { + Icon( + Icons.Outlined.Collections, + contentDescription = null, + tint = TextColor.OnSurface, + ) + }, + ), + ), + ) }, + content = null, ) } } diff --git a/form/src/main/java/org/dhis2/form/ui/provider/inputfield/ImageInputProvider.kt b/form/src/main/java/org/dhis2/form/ui/provider/inputfield/ImageInputProvider.kt index f1cc8344e2..a6014a5968 100644 --- a/form/src/main/java/org/dhis2/form/ui/provider/inputfield/ImageInputProvider.kt +++ b/form/src/main/java/org/dhis2/form/ui/provider/inputfield/ImageInputProvider.kt @@ -108,6 +108,7 @@ internal fun ProvideInputImage( ) ImagePickerOptionsDialog( + title = fieldUiModel.label, showImageOptions = showImageOptions, onDismiss = { showImageOptions = false }, onTakePicture = { context -> diff --git a/form/src/main/res/values/strings.xml b/form/src/main/res/values/strings.xml index c64d2249ac..28d8b9d85f 100644 --- a/form/src/main/res/values/strings.xml +++ b/form/src/main/res/values/strings.xml @@ -78,7 +78,7 @@ Copied No info for this field Take Photo - Choose from gallery + From gallery Check this! Do not show again the provided value is not allowed for this field