diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 15bf23b..8c8dca5 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,8 +14,8 @@ android { applicationId = "cloud.alexandrevazquez.immichtv" minSdk = 26 targetSdk = 35 - versionCode = 2 - versionName = "1.1.0" + versionCode = 3 + versionName = "1.1.1" } signingConfigs { diff --git a/app/src/main/kotlin/cloud/alexandrevazquez/immichtv/data/ImmichApi.kt b/app/src/main/kotlin/cloud/alexandrevazquez/immichtv/data/ImmichApi.kt index b4a9d7e..b340e7b 100644 --- a/app/src/main/kotlin/cloud/alexandrevazquez/immichtv/data/ImmichApi.kt +++ b/app/src/main/kotlin/cloud/alexandrevazquez/immichtv/data/ImmichApi.kt @@ -104,13 +104,17 @@ class ImmichApi(baseUrl: String, private val apiKey: String) { width = w, height = h, fileName = o.optString("originalFileName", ""), - takenAt = o.optString("localDateTime").ifBlank { exif?.optString("dateTimeOriginal") }?.ifBlank { null }, - city = exif?.optString("city")?.ifBlank { null }, - country = exif?.optString("country")?.ifBlank { null }, + takenAt = o.str("localDateTime") ?: exif?.str("dateTimeOriginal"), + city = exif?.str("city"), + country = exif?.str("country"), durationMs = parseDuration(o.opt("duration")), ) } + /** Like optString but treats JSON null and blank as absent instead of returning "null". */ + private fun JSONObject.str(key: String): String? = + if (isNull(key)) null else optString(key).ifBlank { null } + private fun get(url: String): String = execute(Request.Builder().url(url).get().build()) private fun post(url: String, body: JSONObject): String = execute(