diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/util/ext/File.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/util/ext/File.kt index 54505f1ba..92741f1d5 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/core/util/ext/File.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/core/util/ext/File.kt @@ -16,8 +16,10 @@ import org.koitharu.kotatsu.R import org.koitharu.kotatsu.core.fs.FileSequence import java.io.File import java.io.FileFilter +import java.nio.file.attribute.BasicFileAttributes import java.util.zip.ZipEntry import java.util.zip.ZipFile +import kotlin.io.path.readAttributes fun File.subdir(name: String) = File(this, name).also { if (!it.exists()) it.mkdirs() @@ -99,3 +101,10 @@ private suspend fun SequenceScope.listFilesRecursiveImpl(root: File, filte fun File.children() = FileSequence(this) fun Sequence.filterWith(filter: FileFilter): Sequence = filter { f -> filter.accept(f) } + +val File.creationTime + get() = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + toPath().readAttributes().creationTime().toMillis() + } else { + lastModified() + } diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/local/data/input/LocalMangaDirInput.kt b/app/src/main/kotlin/org/koitharu/kotatsu/local/data/input/LocalMangaDirInput.kt index f500558b9..554dc9ecc 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/local/data/input/LocalMangaDirInput.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/local/data/input/LocalMangaDirInput.kt @@ -5,6 +5,7 @@ import androidx.core.net.toUri import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.runInterruptible import org.koitharu.kotatsu.core.util.AlphanumComparator +import org.koitharu.kotatsu.core.util.ext.creationTime import org.koitharu.kotatsu.core.util.ext.listFilesRecursive import org.koitharu.kotatsu.core.util.ext.longHashCode import org.koitharu.kotatsu.core.util.ext.toListSorted @@ -62,7 +63,7 @@ class LocalMangaDirInput(root: File) : LocalMangaInput(root) { name = f.nameWithoutExtension.toHumanReadable(), number = i + 1, source = MangaSource.LOCAL, - uploadDate = f.lastModified(), + uploadDate = f.creationTime, url = f.toUri().toString(), scanlator = null, branch = null, diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/local/domain/model/LocalManga.kt b/app/src/main/kotlin/org/koitharu/kotatsu/local/domain/model/LocalManga.kt index 26b15966b..0714be953 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/local/domain/model/LocalManga.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/local/domain/model/LocalManga.kt @@ -2,6 +2,7 @@ package org.koitharu.kotatsu.local.domain.model import androidx.core.net.toFile import androidx.core.net.toUri +import org.koitharu.kotatsu.core.util.ext.creationTime import org.koitharu.kotatsu.parsers.model.Manga import org.koitharu.kotatsu.parsers.model.MangaTag import java.io.File @@ -15,7 +16,7 @@ data class LocalManga( private set get() { if (field == -1L) { - field = file.lastModified() + field = file.creationTime } return field }