fix: issue in which inline media picker does not use avatar circularity
Signed-off-by: Infi <infi@infi.sh>
This commit is contained in:
parent
50924dc4ce
commit
fa280dbe1b
|
|
@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.Spacer
|
||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.width
|
import androidx.compose.foundation.layout.width
|
||||||
import androidx.compose.foundation.shape.CircleShape
|
import androidx.compose.foundation.shape.CircleShape
|
||||||
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.filled.Add
|
import androidx.compose.material.icons.filled.Add
|
||||||
import androidx.compose.material.icons.filled.Close
|
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.text.style.TextAlign
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import chat.revolt.R
|
import chat.revolt.R
|
||||||
|
import chat.revolt.api.settings.GlobalState
|
||||||
import com.bumptech.glide.integration.compose.CrossFade
|
import com.bumptech.glide.integration.compose.CrossFade
|
||||||
import com.bumptech.glide.integration.compose.ExperimentalGlideComposeApi
|
import com.bumptech.glide.integration.compose.ExperimentalGlideComposeApi
|
||||||
import com.bumptech.glide.integration.compose.GlideImage
|
import com.bumptech.glide.integration.compose.GlideImage
|
||||||
|
|
@ -39,6 +41,7 @@ fun InlineMediaPicker(
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
mimeType: String = "image/*",
|
mimeType: String = "image/*",
|
||||||
circular: Boolean = false,
|
circular: Boolean = false,
|
||||||
|
useAvatarCircularity: Boolean = false,
|
||||||
onPick: (Uri) -> Unit,
|
onPick: (Uri) -> Unit,
|
||||||
canRemove: Boolean = true,
|
canRemove: Boolean = true,
|
||||||
onRemove: () -> Unit = {},
|
onRemove: () -> Unit = {},
|
||||||
|
|
@ -53,6 +56,7 @@ fun InlineMediaPicker(
|
||||||
currentModel = currentModel,
|
currentModel = currentModel,
|
||||||
mimeType = mimeType,
|
mimeType = mimeType,
|
||||||
circular = true,
|
circular = true,
|
||||||
|
useAvatarCircularity = useAvatarCircularity,
|
||||||
onPick = onPick
|
onPick = onPick
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -114,6 +118,7 @@ fun InlineMediaPickerMediaPicker(
|
||||||
currentModel: Any?,
|
currentModel: Any?,
|
||||||
mimeType: String = "image/*",
|
mimeType: String = "image/*",
|
||||||
circular: Boolean = false,
|
circular: Boolean = false,
|
||||||
|
useAvatarCircularity: Boolean = false,
|
||||||
enabled: Boolean = true,
|
enabled: Boolean = true,
|
||||||
onPick: (Uri) -> Unit
|
onPick: (Uri) -> Unit
|
||||||
) {
|
) {
|
||||||
|
|
@ -132,7 +137,13 @@ fun InlineMediaPickerMediaPicker(
|
||||||
contentScale = if (circular) ContentScale.Crop else ContentScale.FillWidth,
|
contentScale = if (circular) ContentScale.Crop else ContentScale.FillWidth,
|
||||||
modifier = if (circular) {
|
modifier = if (circular) {
|
||||||
Modifier
|
Modifier
|
||||||
.clip(CircleShape)
|
.then(
|
||||||
|
if (useAvatarCircularity) {
|
||||||
|
Modifier.clip(RoundedCornerShape(GlobalState.avatarRadius))
|
||||||
|
} else {
|
||||||
|
Modifier.clip(CircleShape)
|
||||||
|
}
|
||||||
|
)
|
||||||
.width(82.dp)
|
.width(82.dp)
|
||||||
.height(82.dp)
|
.height(82.dp)
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -149,7 +160,13 @@ fun InlineMediaPickerMediaPicker(
|
||||||
Box(
|
Box(
|
||||||
modifier = if (circular) {
|
modifier = if (circular) {
|
||||||
Modifier
|
Modifier
|
||||||
.clip(CircleShape)
|
.then(
|
||||||
|
if (useAvatarCircularity) {
|
||||||
|
Modifier.clip(RoundedCornerShape(GlobalState.avatarRadius))
|
||||||
|
} else {
|
||||||
|
Modifier.clip(CircleShape)
|
||||||
|
}
|
||||||
|
)
|
||||||
.width(82.dp)
|
.width(82.dp)
|
||||||
.height(82.dp)
|
.height(82.dp)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -346,6 +346,7 @@ fun ProfileSettingsScreen(
|
||||||
InlineMediaPicker(
|
InlineMediaPicker(
|
||||||
currentModel = viewModel.pfpModel,
|
currentModel = viewModel.pfpModel,
|
||||||
circular = true,
|
circular = true,
|
||||||
|
useAvatarCircularity = true,
|
||||||
onPick = {
|
onPick = {
|
||||||
viewModel.pfpModel = it.toString()
|
viewModel.pfpModel = it.toString()
|
||||||
viewModel.saveNewPfp()
|
viewModel.saveNewPfp()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue