komikku/app/src/main/java/exh/util/DataSaver.kt

32 lines
1.3 KiB
Kotlin
Raw Normal View History

2020-08-21 21:32:29 +02:00
package exh.util
2021-02-27 02:11:15 +01:00
import com.tfcporciuncula.flow.Preference
2020-08-21 21:32:29 +02:00
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import uy.kohesive.injekt.injectLazy
2020-08-21 21:32:29 +02:00
object DataSaver {
private val preferences: PreferencesHelper by injectLazy()
2020-08-21 21:32:29 +02:00
fun compress(imageUrl: String): String {
return if (preferences.dataSaver().get() && preferences.dataSaverServer().get().isNotBlank() && !imageUrl.contains(preferences.dataSaverServer().get() + "/?")) {
when {
imageUrl.contains(".jpeg", true) || imageUrl.contains(".jpg", true) -> if (preferences.ignoreJpeg().get()) imageUrl else getUrl(imageUrl)
imageUrl.contains(".gif", true) -> if (preferences.ignoreGif().get()) imageUrl else getUrl(imageUrl)
else -> getUrl(imageUrl)
}
} else imageUrl
}
private fun getUrl(imageUrl: String): String {
val server = preferences.dataSaverServer().get() + "/?"
2021-02-27 02:11:15 +01:00
val format = "jpg=" + preferences.dataSaverImageFormatJpeg().toIntRepresentation()
val quality = "l=" + preferences.dataSaverImageQuality().get()
val colorBW = "bw=" + preferences.dataSaverColorBW().toIntRepresentation()
val url = "url=$imageUrl"
2020-08-21 21:32:29 +02:00
return "$server&$format&$quality&$colorBW&$url"
2020-08-21 21:32:29 +02:00
}
2021-02-27 02:11:15 +01:00
private fun Preference<Boolean>.toIntRepresentation() = if (get()) "1" else "0"
2020-08-21 21:32:29 +02:00
}