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,
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),
)
}
}

View File

@ -79,7 +79,7 @@ open class NewMediaModel : ViewModel() {
fun upload(
context: Context,
relayList: List<RelaySetupInfo>? = 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),
)
}
}

View File

@ -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)

View File

@ -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)

View File

@ -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),
)
}
}

View File

@ -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
}
}

View File

@ -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,

View File

@ -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,