summaryrefslogtreecommitdiff
path: root/Source/Android/app/src
diff options
context:
space:
mode:
authorBlakDulz <blakdulz@gmail.com>2023-12-24 15:34:10 +0700
committerBlakDulz <blakdulz@gmail.com>2023-12-24 15:34:10 +0700
commit45d3c41d68b466115e2fe877305f32cb271aa6c0 (patch)
tree20a8d5f7ba56dfbda9f0341c3f51be3fe1b69bab /Source/Android/app/src
parentd667fca8d32df385f7b7e2a9d19cdb00bb24fbe6 (diff)
Make DocumentProvider Support Thumbnail
This will make DocumentUI or the built-in Android System Internal Files Manager app showing Thumbnail of Image file instead of image type icon.
Diffstat (limited to 'Source/Android/app/src')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/DocumentProvider.kt19
1 files changed, 17 insertions, 2 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/DocumentProvider.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/DocumentProvider.kt
index 434b344417..63d72160c5 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/DocumentProvider.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/DocumentProvider.kt
@@ -9,9 +9,10 @@
package org.dolphinemu.dolphinemu.features
import android.annotation.TargetApi
-import android.content.Context
+import android.content.res.AssetFileDescriptor
import android.database.Cursor
import android.database.MatrixCursor
+import android.graphics.Point
import android.net.Uri
import android.os.Build
import android.os.CancellationSignal
@@ -29,7 +30,7 @@ class DocumentProvider : DocumentsProvider() {
private var rootDirectory: File? = null
companion object {
- public const val ROOT_ID = "root"
+ const val ROOT_ID = "root"
private val DEFAULT_ROOT_PROJECTION = arrayOf(
DocumentsContract.Root.COLUMN_ROOT_ID,
@@ -111,6 +112,16 @@ class DocumentProvider : DocumentsProvider() {
return ParcelFileDescriptor.open(file, ParcelFileDescriptor.parseMode(mode))
}
+ override fun openDocumentThumbnail(
+ documentId: String,
+ sizeHint: Point,
+ signal: CancellationSignal
+ ): AssetFileDescriptor {
+ val file = documentIdToPath(documentId)
+ val pfd = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY)
+ return AssetFileDescriptor(pfd, 0, AssetFileDescriptor.UNKNOWN_LENGTH)
+ }
+
override fun createDocument(
parentDocumentId: String,
mimeType: String,
@@ -178,6 +189,10 @@ class DocumentProvider : DocumentsProvider() {
} else {
file.name
}
+ val mimeType = getTypeForFile(file)
+ if (file.exists() && mimeType.startsWith("image/")) {
+ flags = flags or DocumentsContract.Document.FLAG_SUPPORTS_THUMBNAIL
+ }
cursor.newRow().apply {
add(DocumentsContract.Document.COLUMN_DOCUMENT_ID, pathToDocumentId(file))
add(DocumentsContract.Document.COLUMN_MIME_TYPE, getTypeForFile(file))