Otter-App-Android-Funkwhale/app/src/main/java/com/github/apognu/otter/utils/Util.kt

65 lines
2.1 KiB
Kotlin

package com.github.apognu.otter.utils
import android.content.Context
import android.widget.Toast
import com.google.android.exoplayer2.util.Log
import com.preference.PowerPreference
import java.net.URI
fun Context?.toast(message: String, length: Int = Toast.LENGTH_SHORT) {
if (this != null) {
Toast.makeText(this, message, length).show()
}
}
fun Any.log(message: String) {
Log.d("FUNKWHALE", "${this.javaClass.simpleName}: $message")
}
fun Any.log() {
Log.d("FUNKWHALE", this.toString())
}
fun maybeNormalizeUrl(url: String?): String? {
if (url == null || url.isEmpty()) return null
val fallbackHost = PowerPreference.getFileByName(AppContext.PREFS_CREDENTIALS).getString("hostname")
val uri = URI(url).takeIf { it.host != null } ?: URI("$fallbackHost$url")
return uri.run {
URI("https", host, path, query, null)
}.toString()
}
fun mustNormalizeUrl(url: String): String {
val fallbackHost = PowerPreference.getFileByName(AppContext.PREFS_CREDENTIALS).getString("hostname")
val uri = URI(url).takeIf { it.host != null } ?: URI("$fallbackHost$url")
return uri.run {
URI("https", host, path, query, null)
}.toString()
}
fun toDurationString(duration: Long, showSeconds: Boolean = false): String {
val days = (duration / 86400)
val hours = (duration % 86400) / 3600
val minutes = (duration % 86400 % 3600) / 60
val seconds = duration % 86400 % 3600 % 60
val ret = StringBuilder()
if (days > 0) ret.append("${days}d ")
if (hours > 0) ret.append("${hours}h ")
if (minutes > 0) ret.append("${minutes}m ")
if (showSeconds && seconds > 0) ret.append("${seconds}s")
return ret.toString()
}
object Settings {
fun hasAccessToken() = PowerPreference.getFileByName(AppContext.PREFS_CREDENTIALS).contains("access_token")
fun getAccessToken(): String = PowerPreference.getFileByName(AppContext.PREFS_CREDENTIALS).getString("access_token", "")
fun isAnonymous() = PowerPreference.getFileByName(AppContext.PREFS_CREDENTIALS).getBoolean("anonymous", false)
fun areExperimentsEnabled() = PowerPreference.getDefaultFile().getBoolean("experiments", false)
}