From fa280dbe1b9ef0131dbfb046f236d7aed2aa362f Mon Sep 17 00:00:00 2001 From: Infi Date: Sat, 22 Jun 2024 02:38:59 +0200 Subject: [PATCH] fix: issue in which inline media picker does not use avatar circularity Signed-off-by: Infi --- .../components/generic/InlineMediaPicker.kt | 21 +++++++++++++++++-- .../screens/settings/ProfileSettngsScreen.kt | 1 + 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/chat/revolt/components/generic/InlineMediaPicker.kt b/app/src/main/java/chat/revolt/components/generic/InlineMediaPicker.kt index 8336b15a..6ab5fe2b 100644 --- a/app/src/main/java/chat/revolt/components/generic/InlineMediaPicker.kt +++ b/app/src/main/java/chat/revolt/components/generic/InlineMediaPicker.kt @@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Add import androidx.compose.material.icons.filled.Close @@ -29,6 +30,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import chat.revolt.R +import chat.revolt.api.settings.GlobalState import com.bumptech.glide.integration.compose.CrossFade import com.bumptech.glide.integration.compose.ExperimentalGlideComposeApi import com.bumptech.glide.integration.compose.GlideImage @@ -39,6 +41,7 @@ fun InlineMediaPicker( modifier: Modifier = Modifier, mimeType: String = "image/*", circular: Boolean = false, + useAvatarCircularity: Boolean = false, onPick: (Uri) -> Unit, canRemove: Boolean = true, onRemove: () -> Unit = {}, @@ -53,6 +56,7 @@ fun InlineMediaPicker( currentModel = currentModel, mimeType = mimeType, circular = true, + useAvatarCircularity = useAvatarCircularity, onPick = onPick ) @@ -114,6 +118,7 @@ fun InlineMediaPickerMediaPicker( currentModel: Any?, mimeType: String = "image/*", circular: Boolean = false, + useAvatarCircularity: Boolean = false, enabled: Boolean = true, onPick: (Uri) -> Unit ) { @@ -132,7 +137,13 @@ fun InlineMediaPickerMediaPicker( contentScale = if (circular) ContentScale.Crop else ContentScale.FillWidth, modifier = if (circular) { Modifier - .clip(CircleShape) + .then( + if (useAvatarCircularity) { + Modifier.clip(RoundedCornerShape(GlobalState.avatarRadius)) + } else { + Modifier.clip(CircleShape) + } + ) .width(82.dp) .height(82.dp) } else { @@ -149,7 +160,13 @@ fun InlineMediaPickerMediaPicker( Box( modifier = if (circular) { Modifier - .clip(CircleShape) + .then( + if (useAvatarCircularity) { + Modifier.clip(RoundedCornerShape(GlobalState.avatarRadius)) + } else { + Modifier.clip(CircleShape) + } + ) .width(82.dp) .height(82.dp) } else { diff --git a/app/src/main/java/chat/revolt/screens/settings/ProfileSettngsScreen.kt b/app/src/main/java/chat/revolt/screens/settings/ProfileSettngsScreen.kt index 7e7e718f..304506e8 100644 --- a/app/src/main/java/chat/revolt/screens/settings/ProfileSettngsScreen.kt +++ b/app/src/main/java/chat/revolt/screens/settings/ProfileSettngsScreen.kt @@ -346,6 +346,7 @@ fun ProfileSettingsScreen( InlineMediaPicker( currentModel = viewModel.pfpModel, circular = true, + useAvatarCircularity = true, onPick = { viewModel.pfpModel = it.toString() viewModel.saveNewPfp()