diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3c34003f..d45bc377 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -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" diff --git a/plugins/sdk/src/main/java/de/mm20/launcher2/sdk/files/FileProvider.kt b/plugins/sdk/src/main/java/de/mm20/launcher2/sdk/files/FileProvider.kt index d9c3568b..3259013e 100644 --- a/plugins/sdk/src/main/java/de/mm20/launcher2/sdk/files/FileProvider.kt +++ b/plugins/sdk/src/main/java/de/mm20/launcher2/sdk/files/FileProvider.kt @@ -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), + ), + ) + } } \ No newline at end of file