Clean up by using Int instead of Float for compression level

This commit is contained in:
David Kaspar
2024-09-05 16:04:18 +02:00
parent 790b9359bd
commit 3ad21e72a9
8 changed files with 28 additions and 27 deletions

View File

@@ -148,7 +148,7 @@ open class EditPostViewModel : ViewModel() {
galleryUri: Uri, galleryUri: Uri,
alt: String?, alt: String?,
sensitiveContent: Boolean, sensitiveContent: Boolean,
mediaQuality: Float, mediaQuality: Int,
isPrivate: Boolean = false, isPrivate: Boolean = false,
server: ServerOption, server: ServerOption,
onError: (String, String) -> Unit, onError: (String, String) -> Unit,
@@ -224,7 +224,7 @@ open class EditPostViewModel : ViewModel() {
isUploadingImage = false isUploadingImage = false
onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, it)) onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, it))
}, },
mediaQuality = MediaCompressor().floatToCompressorQuality(mediaQuality), mediaQuality = MediaCompressor().intToCompressorQuality(mediaQuality),
) )
} }
} }

View File

@@ -79,7 +79,7 @@ open class NewMediaModel : ViewModel() {
fun upload( fun upload(
context: Context, context: Context,
relayList: List<RelaySetupInfo>? = null, relayList: List<RelaySetupInfo>? = null,
mediaQuality: Float, mediaQuality: Int,
onError: (String) -> Unit = {}, onError: (String) -> Unit = {},
) { ) {
isUploadingImage = true isUploadingImage = true
@@ -167,7 +167,7 @@ open class NewMediaModel : ViewModel() {
uploadingDescription.value = null uploadingDescription.value = null
onError(stringRes(context, R.string.error_when_compressing_media, it)) onError(stringRes(context, R.string.error_when_compressing_media, it))
}, },
mediaQuality = MediaCompressor().floatToCompressorQuality(mediaQuality), mediaQuality = MediaCompressor().intToCompressorQuality(mediaQuality),
) )
} }
} }

View File

@@ -51,7 +51,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.livedata.observeAsState 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.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
@@ -106,7 +106,7 @@ fun NewMediaView(
var showRelaysDialog by remember { mutableStateOf(false) } var showRelaysDialog by remember { mutableStateOf(false) }
var relayList = remember { accountViewModel.account.activeWriteRelays().toImmutableList() } 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( Dialog(
onDismissRequest = { onClose() }, onDismissRequest = { onClose() },
@@ -220,15 +220,15 @@ fun NewMediaView(
) { ) {
Column(horizontalAlignment = Alignment.CenterHorizontally) { Column(horizontalAlignment = Alignment.CenterHorizontally) {
Slider( Slider(
value = mediaQualitySlider, value = mediaQualitySlider.toFloat(),
onValueChange = { mediaQualitySlider = it }, onValueChange = { mediaQualitySlider = it.toInt() },
valueRange = 0f..2f, valueRange = 0f..2f,
steps = 1, steps = 1,
) )
Text( Text(
text = text =
when (mediaQualitySlider.toInt()) { when (mediaQualitySlider) {
0 -> stringRes(context, R.string.media_compression_quality_low) 0 -> stringRes(context, R.string.media_compression_quality_low)
1 -> stringRes(context, R.string.media_compression_quality_medium) 1 -> stringRes(context, R.string.media_compression_quality_medium)
2 -> stringRes(context, R.string.media_compression_quality_high) 2 -> stringRes(context, R.string.media_compression_quality_high)

View File

@@ -88,6 +88,7 @@ import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.livedata.observeAsState import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.rememberCoroutineScope
@@ -1610,7 +1611,7 @@ fun CreateButton(
fun ImageVideoDescription( fun ImageVideoDescription(
uri: Uri, uri: Uri,
defaultServer: Nip96MediaServers.ServerName, defaultServer: Nip96MediaServers.ServerName,
onAdd: (String, ServerOption, Boolean, Float) -> Unit, onAdd: (String, ServerOption, Boolean, Int) -> Unit,
onCancel: () -> Unit, onCancel: () -> Unit,
onError: (Int) -> Unit, onError: (Int) -> Unit,
accountViewModel: AccountViewModel, accountViewModel: AccountViewModel,
@@ -1668,7 +1669,7 @@ fun ImageVideoDescription(
} }
var message by remember { mutableStateOf("") } var message by remember { mutableStateOf("") }
var sensitiveContent by remember { mutableStateOf(false) } 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( Column(
modifier = modifier =
@@ -1880,15 +1881,15 @@ fun ImageVideoDescription(
) { ) {
Column(horizontalAlignment = Alignment.CenterHorizontally) { Column(horizontalAlignment = Alignment.CenterHorizontally) {
Slider( Slider(
value = mediaQualitySlider, value = mediaQualitySlider.toFloat(),
onValueChange = { mediaQualitySlider = it }, onValueChange = { mediaQualitySlider = it.toInt() },
valueRange = 0f..2f, valueRange = 0f..2f,
steps = 1, steps = 1,
) )
Text( Text(
text = text =
when (mediaQualitySlider.toInt()) { when (mediaQualitySlider) {
0 -> stringRes(R.string.media_compression_quality_low) 0 -> stringRes(R.string.media_compression_quality_low)
1 -> stringRes(R.string.media_compression_quality_medium) 1 -> stringRes(R.string.media_compression_quality_medium)
2 -> stringRes(R.string.media_compression_quality_high) 2 -> stringRes(R.string.media_compression_quality_high)

View File

@@ -834,7 +834,7 @@ open class NewPostViewModel : ViewModel() {
galleryUri: Uri, galleryUri: Uri,
alt: String?, alt: String?,
sensitiveContent: Boolean, sensitiveContent: Boolean,
mediaQuality: Float, mediaQuality: Int,
isPrivate: Boolean = false, isPrivate: Boolean = false,
server: ServerOption, server: ServerOption,
onError: (title: String, message: String) -> Unit, onError: (title: String, message: String) -> Unit,
@@ -910,7 +910,7 @@ open class NewPostViewModel : ViewModel() {
isUploadingImage = false isUploadingImage = false
onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, it)) onError(stringRes(context, R.string.failed_to_upload_media_no_details), stringRes(context, it))
}, },
mediaQuality = MediaCompressor().floatToCompressorQuality(mediaQuality), mediaQuality = MediaCompressor().intToCompressorQuality(mediaQuality),
) )
} }
} }

View File

@@ -183,20 +183,20 @@ class MediaCompressor {
return arrayOf(name, extension) return arrayOf(name, extension)
} }
fun floatToCompressorQuality(mediaQualityFloat: Float): CompressorQuality = fun intToCompressorQuality(mediaQualityFloat: Int): CompressorQuality =
when (mediaQualityFloat) { when (mediaQualityFloat) {
0f -> CompressorQuality.LOW 0 -> CompressorQuality.LOW
1f -> CompressorQuality.MEDIUM 1 -> CompressorQuality.MEDIUM
2f -> CompressorQuality.HIGH 2 -> CompressorQuality.HIGH
else -> CompressorQuality.MEDIUM else -> CompressorQuality.MEDIUM
} }
fun compressorQualityToFloat(compressorQuality: CompressorQuality): Float = fun compressorQualityToInt(compressorQuality: CompressorQuality): Int =
when (compressorQuality) { when (compressorQuality) {
CompressorQuality.LOW -> 0f CompressorQuality.LOW -> 0
CompressorQuality.MEDIUM -> 1f CompressorQuality.MEDIUM -> 1
CompressorQuality.HIGH -> 2f CompressorQuality.HIGH -> 2
else -> 1f else -> 1
} }
} }

View File

@@ -517,7 +517,7 @@ fun EditFieldRow(
alt = null, alt = null,
sensitiveContent = false, sensitiveContent = false,
// Use MEDIUM quality // Use MEDIUM quality
mediaQuality = MediaCompressor().compressorQualityToFloat(CompressorQuality.MEDIUM), mediaQuality = MediaCompressor().compressorQualityToInt(CompressorQuality.MEDIUM),
server = ServerOption(accountViewModel.account.settings.defaultFileServer, false), server = ServerOption(accountViewModel.account.settings.defaultFileServer, false),
onError = accountViewModel::toast, onError = accountViewModel::toast,
context = context, context = context,

View File

@@ -587,7 +587,7 @@ fun PrivateMessageEditFieldRow(
alt = null, alt = null,
sensitiveContent = false, sensitiveContent = false,
// use MEDIUM quality // use MEDIUM quality
mediaQuality = MediaCompressor().compressorQualityToFloat(CompressorQuality.MEDIUM), mediaQuality = MediaCompressor().compressorQualityToInt(CompressorQuality.MEDIUM),
isPrivate = isPrivate, isPrivate = isPrivate,
server = ServerOption(accountViewModel.account.settings.defaultFileServer, false), server = ServerOption(accountViewModel.account.settings.defaultFileServer, false),
onError = accountViewModel::toast, onError = accountViewModel::toast,