From 3ad21e72a986d8c2bfeff1f05a57ac5fd49ceef8 Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Thu, 5 Sep 2024 16:04:18 +0200 Subject: [PATCH] Clean up by using Int instead of Float for compression level --- .../amethyst/ui/actions/EditPostViewModel.kt | 4 ++-- .../amethyst/ui/actions/NewMediaModel.kt | 4 ++-- .../amethyst/ui/actions/NewMediaView.kt | 10 +++++----- .../amethyst/ui/actions/NewPostView.kt | 11 ++++++----- .../amethyst/ui/actions/NewPostViewModel.kt | 4 ++-- .../amethyst/ui/components/MediaCompressor.kt | 18 +++++++++--------- .../screen/loggedIn/chatrooms/ChannelScreen.kt | 2 +- .../loggedIn/chatrooms/ChatroomScreen.kt | 2 +- 8 files changed, 28 insertions(+), 27 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/EditPostViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/EditPostViewModel.kt index c4aa58e04..b0d3826a5 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/EditPostViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/EditPostViewModel.kt @@ -148,7 +148,7 @@ open class EditPostViewModel : ViewModel() { galleryUri: Uri, alt: String?, sensitiveContent: Boolean, - mediaQuality: Float, + mediaQuality: Int, isPrivate: Boolean = false, server: ServerOption, onError: (String, String) -> Unit, @@ -224,7 +224,7 @@ open class EditPostViewModel : ViewModel() { isUploadingImage = false onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, it)) }, - mediaQuality = MediaCompressor().floatToCompressorQuality(mediaQuality), + mediaQuality = MediaCompressor().intToCompressorQuality(mediaQuality), ) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaModel.kt index eba29cd0b..0c8ac3137 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaModel.kt @@ -79,7 +79,7 @@ open class NewMediaModel : ViewModel() { fun upload( context: Context, relayList: List? = null, - mediaQuality: Float, + mediaQuality: Int, onError: (String) -> Unit = {}, ) { isUploadingImage = true @@ -167,7 +167,7 @@ open class NewMediaModel : ViewModel() { uploadingDescription.value = null onError(stringRes(context, R.string.error_when_compressing_media, it)) }, - mediaQuality = MediaCompressor().floatToCompressorQuality(mediaQuality), + mediaQuality = MediaCompressor().intToCompressorQuality(mediaQuality), ) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaView.kt index a6f30f09a..d829c6b24 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewMediaView.kt @@ -51,7 +51,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.livedata.observeAsState -import androidx.compose.runtime.mutableFloatStateOf +import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue @@ -106,7 +106,7 @@ fun NewMediaView( var showRelaysDialog by remember { mutableStateOf(false) } var relayList = remember { accountViewModel.account.activeWriteRelays().toImmutableList() } - var mediaQualitySlider by remember { mutableFloatStateOf(1f) } // 0 = Low, 1 = Medium, 2 = High + var mediaQualitySlider by remember { mutableIntStateOf(1) } // 0 = Low, 1 = Medium, 2 = High Dialog( onDismissRequest = { onClose() }, @@ -220,15 +220,15 @@ fun NewMediaView( ) { Column(horizontalAlignment = Alignment.CenterHorizontally) { Slider( - value = mediaQualitySlider, - onValueChange = { mediaQualitySlider = it }, + value = mediaQualitySlider.toFloat(), + onValueChange = { mediaQualitySlider = it.toInt() }, valueRange = 0f..2f, steps = 1, ) Text( text = - when (mediaQualitySlider.toInt()) { + when (mediaQualitySlider) { 0 -> stringRes(context, R.string.media_compression_quality_low) 1 -> stringRes(context, R.string.media_compression_quality_medium) 2 -> stringRes(context, R.string.media_compression_quality_high) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostView.kt index bd47e04e0..9e11af688 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostView.kt @@ -88,6 +88,7 @@ import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.livedata.observeAsState +import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope @@ -1610,7 +1611,7 @@ fun CreateButton( fun ImageVideoDescription( uri: Uri, defaultServer: Nip96MediaServers.ServerName, - onAdd: (String, ServerOption, Boolean, Float) -> Unit, + onAdd: (String, ServerOption, Boolean, Int) -> Unit, onCancel: () -> Unit, onError: (Int) -> Unit, accountViewModel: AccountViewModel, @@ -1668,7 +1669,7 @@ fun ImageVideoDescription( } var message by remember { mutableStateOf("") } var sensitiveContent by remember { mutableStateOf(false) } - var mediaQualitySlider by remember { mutableStateOf(1f) } // 0 = Low, 1 = Medium, 2 = High + var mediaQualitySlider by remember { mutableIntStateOf(1) } // 0 = Low, 1 = Medium, 2 = High Column( modifier = @@ -1880,15 +1881,15 @@ fun ImageVideoDescription( ) { Column(horizontalAlignment = Alignment.CenterHorizontally) { Slider( - value = mediaQualitySlider, - onValueChange = { mediaQualitySlider = it }, + value = mediaQualitySlider.toFloat(), + onValueChange = { mediaQualitySlider = it.toInt() }, valueRange = 0f..2f, steps = 1, ) Text( text = - when (mediaQualitySlider.toInt()) { + when (mediaQualitySlider) { 0 -> stringRes(R.string.media_compression_quality_low) 1 -> stringRes(R.string.media_compression_quality_medium) 2 -> stringRes(R.string.media_compression_quality_high) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt index ee3358115..ad7402f66 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostViewModel.kt @@ -834,7 +834,7 @@ open class NewPostViewModel : ViewModel() { galleryUri: Uri, alt: String?, sensitiveContent: Boolean, - mediaQuality: Float, + mediaQuality: Int, isPrivate: Boolean = false, server: ServerOption, onError: (title: String, message: String) -> Unit, @@ -910,7 +910,7 @@ open class NewPostViewModel : ViewModel() { isUploadingImage = false onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, it)) }, - mediaQuality = MediaCompressor().floatToCompressorQuality(mediaQuality), + mediaQuality = MediaCompressor().intToCompressorQuality(mediaQuality), ) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/MediaCompressor.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/MediaCompressor.kt index 643153cde..bf53e718d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/MediaCompressor.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/MediaCompressor.kt @@ -183,20 +183,20 @@ class MediaCompressor { return arrayOf(name, extension) } - fun floatToCompressorQuality(mediaQualityFloat: Float): CompressorQuality = + fun intToCompressorQuality(mediaQualityFloat: Int): CompressorQuality = when (mediaQualityFloat) { - 0f -> CompressorQuality.LOW - 1f -> CompressorQuality.MEDIUM - 2f -> CompressorQuality.HIGH + 0 -> CompressorQuality.LOW + 1 -> CompressorQuality.MEDIUM + 2 -> CompressorQuality.HIGH else -> CompressorQuality.MEDIUM } - fun compressorQualityToFloat(compressorQuality: CompressorQuality): Float = + fun compressorQualityToInt(compressorQuality: CompressorQuality): Int = when (compressorQuality) { - CompressorQuality.LOW -> 0f - CompressorQuality.MEDIUM -> 1f - CompressorQuality.HIGH -> 2f - else -> 1f + CompressorQuality.LOW -> 0 + CompressorQuality.MEDIUM -> 1 + CompressorQuality.HIGH -> 2 + else -> 1 } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chatrooms/ChannelScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chatrooms/ChannelScreen.kt index 975d7f9b6..f8a7a2337 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chatrooms/ChannelScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chatrooms/ChannelScreen.kt @@ -517,7 +517,7 @@ fun EditFieldRow( alt = null, sensitiveContent = false, // Use MEDIUM quality - mediaQuality = MediaCompressor().compressorQualityToFloat(CompressorQuality.MEDIUM), + mediaQuality = MediaCompressor().compressorQualityToInt(CompressorQuality.MEDIUM), server = ServerOption(accountViewModel.account.settings.defaultFileServer, false), onError = accountViewModel::toast, context = context, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chatrooms/ChatroomScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chatrooms/ChatroomScreen.kt index b7d5559a1..21d028a95 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chatrooms/ChatroomScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chatrooms/ChatroomScreen.kt @@ -587,7 +587,7 @@ fun PrivateMessageEditFieldRow( alt = null, sensitiveContent = false, // use MEDIUM quality - mediaQuality = MediaCompressor().compressorQualityToFloat(CompressorQuality.MEDIUM), + mediaQuality = MediaCompressor().compressorQualityToInt(CompressorQuality.MEDIUM), isPrivate = isPrivate, server = ServerOption(accountViewModel.account.settings.defaultFileServer, false), onError = accountViewModel::toast,