From 843e1cc6a07c44fbdb0a562bbb01f5e7f83c17b4 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Tue, 9 Jul 2024 10:47:10 +0800 Subject: [PATCH] Fix MediaStore DATE_ADDED/DATE_MODIFIED They are in seconds not milliseconds as per the documentation. --- .../main/kotlin/com/hippo/ehviewer/ui/reader/PageActions.kt | 2 +- app/src/main/kotlin/com/hippo/files/AndroidFileSystem.kt | 5 +++-- .../kotlin/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PageActions.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PageActions.kt index def514b11..6d2902d49 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PageActions.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PageActions.kt @@ -97,7 +97,7 @@ suspend fun save(page: ReaderPage) { val values = ContentValues() val realPath: String values.put(MediaStore.MediaColumns.DISPLAY_NAME, filename) - values.put(MediaStore.Images.Media.DATE_ADDED, Clock.System.now().toEpochMilliseconds()) + values.put(MediaStore.MediaColumns.DATE_ADDED, Clock.System.now().epochSeconds) values.put(MediaStore.MediaColumns.MIME_TYPE, mimeType) if (isAtLeastQ) { realPath = Environment.DIRECTORY_PICTURES + File.separator + AppConfig.APP_DIRNAME diff --git a/app/src/main/kotlin/com/hippo/files/AndroidFileSystem.kt b/app/src/main/kotlin/com/hippo/files/AndroidFileSystem.kt index 67963f11a..4c447bf18 100644 --- a/app/src/main/kotlin/com/hippo/files/AndroidFileSystem.kt +++ b/app/src/main/kotlin/com/hippo/files/AndroidFileSystem.kt @@ -127,7 +127,8 @@ class AndroidFileSystem(context: Context) : FileSystem() { } val uri = path.toUri() - val projection = if (uri.authority == MediaStore.AUTHORITY) { + val isMediaUri = uri.authority == MediaStore.AUTHORITY + val projection = if (isMediaUri) { arrayOf(MediaStore.MediaColumns.MIME_TYPE, MediaStore.MediaColumns.DATE_MODIFIED) } else { arrayOf(Document.COLUMN_MIME_TYPE, Document.COLUMN_LAST_MODIFIED) @@ -138,7 +139,7 @@ class AndroidFileSystem(context: Context) : FileSystem() { if (!c.moveToNext()) return null val mimeType = c.getString(0) - val lastModified = c.getLongOrNull(1) + val lastModified = c.getLongOrNull(1)?.let { if (isMediaUri) it * 1000 else it } val isDirectory = mimeType == Document.MIME_TYPE_DIR FileMetadata( diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index f6ef4c987..3064aa1c1 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -433,7 +433,7 @@ class ReaderActivity : EhActivity() { val resolver = contentResolver val values = ContentValues() values.put(MediaStore.MediaColumns.DISPLAY_NAME, filename) - values.put(MediaStore.Images.Media.DATE_ADDED, Clock.System.now().toEpochMilliseconds()) + values.put(MediaStore.MediaColumns.DATE_ADDED, Clock.System.now().epochSeconds) values.put(MediaStore.MediaColumns.MIME_TYPE, mimeType) if (isAtLeastQ) { realPath = Environment.DIRECTORY_PICTURES + File.separator + AppConfig.APP_DIRNAME