From a82fc7334631a8c02221e782c109b727b230284d Mon Sep 17 00:00:00 2001 From: Oleg Koretsky Date: Tue, 7 Mar 2023 22:02:53 +0200 Subject: [PATCH] Rearrange buttons on the new post screen. Add icons --- .../amethyst/ui/actions/NewPostView.kt | 43 +++++++++++++------ .../amethyst/ui/actions/UploadFromGallery.kt | 24 +++++++---- .../main/res/drawable-anydpi/ic_add_photo.xml | 5 +++ app/src/main/res/drawable-anydpi/ic_close.xml | 5 +++ app/src/main/res/values-ru/strings.xml | 2 +- app/src/main/res/values-uk/strings.xml | 2 +- 6 files changed, 57 insertions(+), 24 deletions(-) create mode 100644 app/src/main/res/drawable-anydpi/ic_add_photo.xml create mode 100644 app/src/main/res/drawable-anydpi/ic_close.xml diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostView.kt index f903635fa..b7b51786b 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostView.kt @@ -37,7 +37,6 @@ import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.model.Note import com.vitorpamplona.amethyst.ui.components.* -import com.vitorpamplona.amethyst.ui.navigation.UploadFromGallery import com.vitorpamplona.amethyst.ui.note.ReplyInformation import com.vitorpamplona.amethyst.ui.screen.loggedIn.UserLine import kotlinx.coroutines.delay @@ -75,9 +74,16 @@ fun NewPostView(onClose: () -> Unit, baseReplyTo: Note? = null, quote: Note? = n decorFitsSystemWindows = false ) ) { - Surface(modifier = Modifier.fillMaxWidth().fillMaxHeight()) { - Column(modifier = Modifier.fillMaxWidth().fillMaxHeight()) { - Column(modifier = Modifier.padding(10.dp).imePadding().weight(1f)) { + Surface(modifier = Modifier + .fillMaxWidth() + .fillMaxHeight()) { + Column(modifier = Modifier + .fillMaxWidth() + .fillMaxHeight()) { + Column(modifier = Modifier + .padding(start = 10.dp, end = 10.dp, top = 10.dp) + .imePadding() + .weight(1f)) { Row( modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween, @@ -88,12 +94,6 @@ fun NewPostView(onClose: () -> Unit, baseReplyTo: Note? = null, quote: Note? = n onClose() }) - UploadFromGallery( - isUploading = postViewModel.isUploadingImage, - ) { - postViewModel.upload(it, context) - } - PostButton( onPost = { postViewModel.sendPost() @@ -105,9 +105,13 @@ fun NewPostView(onClose: () -> Unit, baseReplyTo: Note? = null, quote: Note? = n } Row( - modifier = Modifier.fillMaxWidth().weight(1f) + modifier = Modifier + .fillMaxWidth() + .weight(1f) ) { - Column(modifier = Modifier.fillMaxWidth().verticalScroll(scroolState)) { + Column(modifier = Modifier + .fillMaxWidth() + .verticalScroll(scroolState)) { if (postViewModel.replyTos != null && baseReplyTo?.event is TextNoteEvent) { ReplyInformation(postViewModel.replyTos, postViewModel.mentions, account, "✖ ") { postViewModel.removeFromReplyList(it) @@ -204,6 +208,14 @@ fun NewPostView(onClose: () -> Unit, baseReplyTo: Note? = null, quote: Note? = n } } } + + Row(modifier = Modifier.fillMaxWidth()) { + UploadFromGallery( + isUploading = postViewModel.isUploadingImage, + ) { + postViewModel.upload(it, context) + } + } } } } @@ -222,7 +234,12 @@ fun CloseButton(onCancel: () -> Unit) { backgroundColor = Color.Gray ) ) { - Text(text = stringResource(R.string.cancel), color = Color.White) + Icon( + painter = painterResource(id = R.drawable.ic_close), + contentDescription = stringResource(id = R.string.cancel), + modifier = Modifier.size(20.dp), + tint = Color.White + ) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/UploadFromGallery.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/UploadFromGallery.kt index 00e52dd37..a8f7d3510 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/UploadFromGallery.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/UploadFromGallery.kt @@ -1,17 +1,15 @@ -package com.vitorpamplona.amethyst.ui.navigation +package com.vitorpamplona.amethyst.ui.actions import android.net.Uri import android.os.Build import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.result.contract.ActivityResultContracts -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.padding -import androidx.compose.material.Button -import androidx.compose.material.Text +import androidx.compose.foundation.layout.* +import androidx.compose.material.* import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.google.accompanist.permissions.ExperimentalPermissionsApi @@ -46,15 +44,23 @@ fun UploadFromGallery( ) } else { Box() { - Button( + TextButton( modifier = Modifier - .align(Alignment.TopCenter) - .padding(4.dp), + .align(Alignment.TopCenter), enabled = !isUploading, onClick = { showGallerySelect = true } ) { + Icon( + painter = painterResource(id = R.drawable.ic_add_photo), + contentDescription = stringResource(id = R.string.upload_image), + modifier = Modifier + .height(20.dp) + .padding(end = 8.dp), + tint = MaterialTheme.colors.primary + ) + if (!isUploading) { Text(stringResource(R.string.upload_image)) } else { diff --git a/app/src/main/res/drawable-anydpi/ic_add_photo.xml b/app/src/main/res/drawable-anydpi/ic_add_photo.xml new file mode 100644 index 000000000..4ebcf7e03 --- /dev/null +++ b/app/src/main/res/drawable-anydpi/ic_add_photo.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable-anydpi/ic_close.xml b/app/src/main/res/drawable-anydpi/ic_close.xml new file mode 100644 index 000000000..844b6b62e --- /dev/null +++ b/app/src/main/res/drawable-anydpi/ic_close.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 2e571abd3..6501cff66 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -92,7 +92,7 @@ LN URL (устаревш.) Фото сохранено в галерею Не удалось сохранить фото - Загрузить\nфото + Загрузить фото Загрузка… Пользователь не установил Lightning адрес для получения чаевых "ответить.. " diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 9b115bb30..07f348f19 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -92,7 +92,7 @@ LN URL (застарівш.) Фото збережено до галереї Не вдалося зберегти фото - Завантажити\nфото + Завантажити фото Завантаження… Користувач не встановив Lightning адресу для отримання чайових "відповісти.. "