diff --git a/app/build.gradle b/app/build.gradle index 83536419..6704f213 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,7 +38,7 @@ android { minSdkVersion 16 targetSdkVersion 30 versionCode 64 - versionName "5.1.7" + versionName "5.1.7-hotfix1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true } diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index 6ceb8054..e8294f64 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -11,7 +11,7 @@ "type": "SINGLE", "filters": [], "versionCode": 64, - "versionName": "5.1.7", + "versionName": "5.1.7-hotfix1", "outputFile": "app-release.apk" } ] diff --git a/app/src/main/java/xyz/quaver/pupil/util/misc.kt b/app/src/main/java/xyz/quaver/pupil/util/misc.kt index 50f1b862..5aba4d89 100644 --- a/app/src/main/java/xyz/quaver/pupil/util/misc.kt +++ b/app/src/main/java/xyz/quaver/pupil/util/misc.kt @@ -137,5 +137,9 @@ operator fun JsonElement.get(index: Int) = operator fun JsonElement.get(tag: String) = this.jsonObject[tag] +fun JsonElement.getOrNull(tag: String) = kotlin.runCatching { + this.jsonObject.getOrDefault(tag, null) +}.getOrNull() + val JsonElement.content get() = this.jsonPrimitive.contentOrNull \ No newline at end of file diff --git a/app/src/main/java/xyz/quaver/pupil/util/update.kt b/app/src/main/java/xyz/quaver/pupil/util/update.kt index dab3ba5f..c034d074 100644 --- a/app/src/main/java/xyz/quaver/pupil/util/update.kt +++ b/app/src/main/java/xyz/quaver/pupil/util/update.kt @@ -285,11 +285,11 @@ fun xyz.quaver.pupil.util.downloader.DownloadManager.migrate() { folder.getChild(".metadata").readText()?.let { Json.parseToJsonElement(it) } }.getOrNull() - val galleryID = metadata?.get("reader")?.get("galleryInfo")?.get("id")?.content?.toIntOrNull() + val galleryID = metadata?.getOrNull("reader")?.getOrNull("galleryInfo")?.getOrNull("id")?.content?.toIntOrNull() ?: folder.name.toIntOrNull() ?: return@forEachIndexed val galleryBlock: GalleryBlock? = kotlin.runCatching { - metadata?.get("galleryBlock")?.let { Json.decodeFromJsonElement(it) } + metadata?.getOrNull("galleryBlock")?.let { Json.decodeFromJsonElement(it) } }.getOrNull() ?: kotlin.runCatching { getGalleryBlock(galleryID) }.getOrNull() ?: kotlin.runCatching { @@ -297,14 +297,14 @@ fun xyz.quaver.pupil.util.downloader.DownloadManager.migrate() { }.getOrNull() val reader: Reader? = kotlin.runCatching { - metadata?.get("reader")?.let { Json.decodeFromJsonElement(it) } + metadata?.getOrNull("reader")?.let { Json.decodeFromJsonElement(it) } }.getOrNull() ?: kotlin.runCatching { getReader(galleryID) }.getOrNull() ?: kotlin.runCatching { xyz.quaver.hiyobi.getReader(galleryID) }.getOrNull() - metadata?.get("thumbnail")?.jsonPrimitive?.contentOrNull?.also { thumbnail -> + metadata?.getOrNull("thumbnail")?.jsonPrimitive?.contentOrNull?.also { thumbnail -> val file = folder.getChild(".thumbnail").also { if (it.exists()) it.delete()