Fixed Downloaded folder showing up as not downloaded
This commit is contained in:
@@ -37,18 +37,57 @@ import xyz.quaver.hitomi.GalleryInfo
|
||||
import xyz.quaver.io.FileX
|
||||
import xyz.quaver.io.util.*
|
||||
import xyz.quaver.pupil.client
|
||||
import xyz.quaver.pupil.util.Preferences
|
||||
import java.io.File
|
||||
import java.io.IOException
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
|
||||
@Serializable
|
||||
data class Metadata(
|
||||
var galleryBlock: GalleryBlock? = null,
|
||||
var reader: GalleryInfo? = null,
|
||||
data class OldGalleryBlock(
|
||||
val code: String,
|
||||
val id: Int,
|
||||
val galleryUrl: String,
|
||||
val thumbnails: List<String>,
|
||||
val title: String,
|
||||
val artists: List<String>,
|
||||
val series: List<String>,
|
||||
val type: String,
|
||||
val language: String,
|
||||
val relatedTags: List<String>
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class OldReader(val code: String, val galleryInfo: GalleryInfo)
|
||||
|
||||
@Serializable
|
||||
data class OldMetadata(
|
||||
var galleryBlock: OldGalleryBlock? = null,
|
||||
var reader: OldReader? = null,
|
||||
var imageList: MutableList<String?>? = null
|
||||
) {
|
||||
fun copy(): Metadata = Metadata(galleryBlock, reader, imageList?.let { MutableList(it.size) { i -> it[i] } })
|
||||
fun copy(): OldMetadata = OldMetadata(galleryBlock, reader, imageList?.let { MutableList(it.size) { i -> it[i] } })
|
||||
}
|
||||
|
||||
@Serializable
|
||||
data class Metadata(
|
||||
var galleryBlock: GalleryBlock? = null,
|
||||
var galleryInfo: GalleryInfo? = null,
|
||||
var imageList: MutableList<String?>? = null
|
||||
) {
|
||||
constructor(old: OldMetadata) : this(old.galleryBlock?.let { galleryBlock -> GalleryBlock(
|
||||
galleryBlock.id,
|
||||
galleryBlock.galleryUrl,
|
||||
galleryBlock.thumbnails,
|
||||
galleryBlock.title,
|
||||
galleryBlock.artists,
|
||||
galleryBlock.series,
|
||||
galleryBlock.type,
|
||||
galleryBlock.language,
|
||||
galleryBlock.relatedTags) },
|
||||
old.reader?.galleryInfo,
|
||||
old.imageList
|
||||
)
|
||||
|
||||
fun copy(): Metadata = Metadata(galleryBlock, galleryInfo, imageList?.let { MutableList(it.size) { i -> it[i] } })
|
||||
}
|
||||
|
||||
class Cache private constructor(context: Context, val galleryID: Int) : ContextWrapper(context) {
|
||||
@@ -73,8 +112,12 @@ class Cache private constructor(context: Context, val galleryID: Int) : ContextW
|
||||
}
|
||||
|
||||
var metadata = kotlin.runCatching {
|
||||
findFile(".metadata")?.readText()?.let {
|
||||
Json.decodeFromString<Metadata>(it)
|
||||
findFile(".metadata")?.readText()?.let { metadata ->
|
||||
kotlin.runCatching {
|
||||
Json.decodeFromString<Metadata>(metadata)
|
||||
}.getOrElse {
|
||||
Metadata(Json.decodeFromString<OldMetadata>(metadata))
|
||||
}
|
||||
}
|
||||
}.getOrNull() ?: Metadata()
|
||||
|
||||
@@ -139,14 +182,14 @@ class Cache private constructor(context: Context, val galleryID: Int) : ContextW
|
||||
}.getOrNull()?.uri }
|
||||
} } ?: Uri.EMPTY
|
||||
|
||||
suspend fun getReader(): GalleryInfo? {
|
||||
suspend fun getGalleryInfo(): GalleryInfo? {
|
||||
|
||||
return metadata.reader
|
||||
return metadata.galleryInfo
|
||||
?: withContext(Dispatchers.IO) {
|
||||
try {
|
||||
xyz.quaver.hitomi.getGalleryInfo(galleryID).also {
|
||||
setMetadata { metadata ->
|
||||
metadata.reader = it
|
||||
metadata.galleryInfo = it
|
||||
|
||||
if (metadata.imageList == null)
|
||||
metadata.imageList = MutableList(it.files.size) { null }
|
||||
|
||||
Reference in New Issue
Block a user