From 951f7a6ca38c2bacf075230a45085a64f667847e Mon Sep 17 00:00:00 2001 From: cvzi Date: Thu, 4 Aug 2022 09:29:59 +0200 Subject: [PATCH] Fix advanced settings error `No static field WEBP_LOSSY` Resolves #187 --- .../fragments/SettingAdvancedFragment.kt | 39 ++++++++++--------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/github/cvzi/screenshottile/fragments/SettingAdvancedFragment.kt b/app/src/main/java/com/github/cvzi/screenshottile/fragments/SettingAdvancedFragment.kt index 53bf69a3c..38d0bf340 100644 --- a/app/src/main/java/com/github/cvzi/screenshottile/fragments/SettingAdvancedFragment.kt +++ b/app/src/main/java/com/github/cvzi/screenshottile/fragments/SettingAdvancedFragment.kt @@ -101,27 +101,28 @@ class SettingAdvancedFragment : PreferenceFragmentCompat() { private fun compressionFormatToString(compressionOptions: CompressionOptions): String { @Suppress("DEPRECATION") - return when (compressionOptions.format) { - Bitmap.CompressFormat.JPEG -> "JPEG ${compressionOptions.quality}%" - Bitmap.CompressFormat.PNG -> "PNG (quality parameter has no effect)" - Bitmap.CompressFormat.WEBP -> { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && compressionOptions.quality == 100) { - "WEBP (Lossless 100%)" - } else { - "WEBP (Lossy ${compressionOptions.quality}%)" - } + // Do not use when, it is exhaustive and enumerates fields that are not available on + // all Android version, it will crashes with `No static field WEBP_LOSSY` on old Android + return if (compressionOptions.format == Bitmap.CompressFormat.JPEG) { + "JPEG ${compressionOptions.quality}%" + } else if (compressionOptions.format == Bitmap.CompressFormat.PNG) { + "PNG (quality parameter has no effect)" + } else if (compressionOptions.format == Bitmap.CompressFormat.WEBP) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && compressionOptions.quality == 100) { + "WEBP (Lossless 100%)" + } else { + "WEBP (Lossy ${compressionOptions.quality}%)" } - else -> { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - when (compressionOptions.format) { - Bitmap.CompressFormat.WEBP_LOSSY -> "WEBP (Lossy ${compressionOptions.quality}%)" - Bitmap.CompressFormat.WEBP_LOSSLESS -> "WEBP (Lossless ${compressionOptions.quality}%)" - else -> "${compressionOptions.format.name} ${compressionOptions.quality}%" - } - } else { - "${compressionOptions.format.name} ${compressionOptions.quality}%" - } + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + if (compressionOptions.format == Bitmap.CompressFormat.WEBP_LOSSY) { + "WEBP (Lossy ${compressionOptions.quality}%)" + } else if (compressionOptions.format == Bitmap.CompressFormat.WEBP_LOSSLESS) { + "WEBP (Lossless ${compressionOptions.quality}%)" + } else { + "${compressionOptions.format.name} ${compressionOptions.quality}%" } + } else { + "${compressionOptions.format.name} ${compressionOptions.quality}%" } }