Fixed Downloaded folder gets deleted when opened with no network
This commit is contained in:
@@ -35,9 +35,14 @@ import xyz.quaver.pupil.client
|
|||||||
import xyz.quaver.pupil.hitomi.*
|
import xyz.quaver.pupil.hitomi.*
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.io.InputStream
|
|
||||||
import java.util.concurrent.ConcurrentHashMap
|
import java.util.concurrent.ConcurrentHashMap
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class OldReader(
|
||||||
|
val code: String,
|
||||||
|
val galleryInfo: OldGalleryInfo
|
||||||
|
)
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class OldGalleryInfo(
|
data class OldGalleryInfo(
|
||||||
val language_localname: String? = null,
|
val language_localname: String? = null,
|
||||||
@@ -63,7 +68,7 @@ data class OldGalleryFiles(
|
|||||||
@Serializable
|
@Serializable
|
||||||
data class OldMetadata(
|
data class OldMetadata(
|
||||||
var galleryBlock: GalleryBlock? = null,
|
var galleryBlock: GalleryBlock? = null,
|
||||||
var reader: OldGalleryInfo? = null,
|
var reader: OldReader? = null,
|
||||||
var imageList: MutableList<String?>? = null
|
var imageList: MutableList<String?>? = null
|
||||||
) {
|
) {
|
||||||
fun copy(): OldMetadata = OldMetadata(galleryBlock, reader, imageList?.let { MutableList(it.size) { i -> it[i] } })
|
fun copy(): OldMetadata = OldMetadata(galleryBlock, reader, imageList?.let { MutableList(it.size) { i -> it[i] } })
|
||||||
@@ -75,12 +80,36 @@ data class Metadata(
|
|||||||
var galleryInfo: GalleryInfo? = null,
|
var galleryInfo: GalleryInfo? = null,
|
||||||
var imageList: MutableList<String?>? = null
|
var imageList: MutableList<String?>? = null
|
||||||
) {
|
) {
|
||||||
constructor(old: OldMetadata) : this(old.galleryBlock, getGalleryInfo(old.galleryBlock?.id ?: throw Exception()), old.imageList)
|
constructor(old: OldMetadata) : this(
|
||||||
|
old.galleryBlock,
|
||||||
|
old.reader?.galleryInfo?.let { oldGalleryInfo ->
|
||||||
|
GalleryInfo(
|
||||||
|
oldGalleryInfo.id.toString(),
|
||||||
|
oldGalleryInfo.title ?: "",
|
||||||
|
null,
|
||||||
|
oldGalleryInfo.language,
|
||||||
|
oldGalleryInfo.type ?: "",
|
||||||
|
oldGalleryInfo.date ?: "",
|
||||||
|
files = oldGalleryInfo.files.map {
|
||||||
|
GalleryFiles(
|
||||||
|
it.width,
|
||||||
|
it.hash,
|
||||||
|
it.haswebp,
|
||||||
|
it.name,
|
||||||
|
it.height,
|
||||||
|
it.hasavif,
|
||||||
|
it.hasavifsmalltn
|
||||||
|
)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
},
|
||||||
|
old.imageList
|
||||||
|
)
|
||||||
|
|
||||||
fun copy(): Metadata = Metadata(galleryBlock, galleryInfo, imageList?.let { MutableList(it.size) { i -> it[i] } })
|
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) {
|
class Cache private constructor(context: Context, val galleryID: Int) : ContextWrapper(context) {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val instances = ConcurrentHashMap<Int, Cache>()
|
val instances = ConcurrentHashMap<Int, Cache>()
|
||||||
|
|
||||||
@@ -103,7 +132,7 @@ class Cache private constructor(context: Context, val galleryID: Int) : ContextW
|
|||||||
var metadata = kotlin.runCatching {
|
var metadata = kotlin.runCatching {
|
||||||
findFile(".metadata")?.readText()?.let { metadata ->
|
findFile(".metadata")?.readText()?.let { metadata ->
|
||||||
kotlin.runCatching {
|
kotlin.runCatching {
|
||||||
json.decodeFromString<Metadata>(metadata)
|
Json.decodeFromString<Metadata>(metadata)
|
||||||
}.getOrElse {
|
}.getOrElse {
|
||||||
Metadata(json.decodeFromString<OldMetadata>(metadata))
|
Metadata(json.decodeFromString<OldMetadata>(metadata))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ buildscript {
|
|||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:7.1.0'
|
classpath 'com.android.tools.build:gradle:7.1.2'
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
|
||||||
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
|
||||||
|
|||||||
Reference in New Issue
Block a user