Implement missig SDK method

This commit is contained in:
MM20 2024-06-30 16:48:11 +02:00
parent 93f55e84d1
commit 80b1c2eb49
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
2 changed files with 37 additions and 1 deletions

View File

@ -7,7 +7,7 @@ minSdk = "26"
compileSdk = "34"
targetSdk = "35"
pluginSdk = "2.0.0"
pluginSdk = "2.0.1"
gradle = "8.1.2"
android-gradle-plugin = "8.2.2"

View File

@ -1,10 +1,13 @@
package de.mm20.launcher2.sdk.files
import android.database.Cursor
import android.net.Uri
import android.os.Bundle
import de.mm20.launcher2.plugin.PluginType
import de.mm20.launcher2.plugin.config.QueryPluginConfig
import de.mm20.launcher2.plugin.contracts.FilePluginContract.FileColumns
import de.mm20.launcher2.plugin.data.buildCursor
import de.mm20.launcher2.plugin.data.get
import de.mm20.launcher2.sdk.base.StringPluginProvider
abstract class FileProvider(
@ -38,4 +41,37 @@ abstract class FileProvider(
put(FileColumns.MetaAppPackageName, it.metadata.appPackageName)
}
}
override fun Bundle.toResult(): File? {
return File(
id = get(FileColumns.Id) ?: return null,
displayName = get(FileColumns.DisplayName) ?: return null,
mimeType = get(FileColumns.MimeType) ?: return null,
size = get(FileColumns.Size) ?: 0L,
path = get(FileColumns.Path) ?: "",
uri = get(FileColumns.ContentUri)?.let { Uri.parse(it) } ?: return null,
thumbnailUri = get(FileColumns.ThumbnailUri)?.let { Uri.parse(it) },
isDirectory = get(FileColumns.IsDirectory) == false,
owner = get(FileColumns.Owner),
metadata = FileMetadata(
title = get(FileColumns.MetaTitle),
artist = get(FileColumns.MetaArtist),
album = get(FileColumns.MetaAlbum),
duration = get(FileColumns.MetaDuration),
year = get(FileColumns.MetaYear),
dimensions = run {
val width = get(FileColumns.MetaWidth)
val height = get(FileColumns.MetaHeight)
if (width != null && height != null) {
FileDimensions(width, height)
} else {
null
}
},
location = get(FileColumns.MetaLocation),
appName = get(FileColumns.MetaAppName),
appPackageName = get(FileColumns.MetaAppPackageName),
),
)
}
}