Plugin sdk: add file owner and meta data fields

This commit is contained in:
MM20
2023-12-11 16:32:57 +01:00
parent d13ca6cd6c
commit bdf8b1f0d7
4 changed files with 153 additions and 6 deletions
@@ -1,7 +1,50 @@
package de.mm20.launcher2.sdk.files
import android.net.Uri
import de.mm20.launcher2.plugin.config.StorageStrategy
data class FileDimensions(
val width: Int,
val height: Int,
)
data class FileMetadata(
/**
* Song title, for audio files.
*/
val title: String? = null,
/**
* Artist name, for audio files.
*/
val artist: String? = null,
/**
* Album name, for audio files.
*/
val album: String? = null,
/**
* Duration in milliseconds, for audio and video files.
*/
val duration: Long? = null,
/**
* Year, for media files.
*/
val year: Int? = null,
/**
* Dimensions in pixels, for image and video files.
*/
val dimensions: FileDimensions? = null,
/**
* Geo location, for image and video files.
*/
val location: String? = null,
/**
* App name, for APK files.
*/
val appName: String? = null,
/**
* App package name, for APK files.
*/
val appPackageName: String? = null,
)
data class File(
/**
@@ -50,4 +93,14 @@ data class File(
* If null, a default icon will be shown, depending on the file type.
*/
val thumbnailUri: Uri? = null,
/**
* Name of the owner of this file (i.e. when this file was shared with the user by another person).
*/
val owner: String? = null,
/**
* Additional metadata for this file.
*/
val metadata: FileMetadata = FileMetadata(),
)
@@ -26,6 +26,17 @@ abstract class FileProvider(
FilePluginContract.FileColumns.ContentUri,
FilePluginContract.FileColumns.ThumbnailUri,
FilePluginContract.FileColumns.IsDirectory,
FilePluginContract.FileColumns.Owner,
FilePluginContract.FileColumns.MetaTitle,
FilePluginContract.FileColumns.MetaArtist,
FilePluginContract.FileColumns.MetaAlbum,
FilePluginContract.FileColumns.MetaDuration,
FilePluginContract.FileColumns.MetaYear,
FilePluginContract.FileColumns.MetaWidth,
FilePluginContract.FileColumns.MetaHeight,
FilePluginContract.FileColumns.MetaLocation,
FilePluginContract.FileColumns.MetaAppName,
FilePluginContract.FileColumns.MetaAppPackageName,
),
capacity,
)
@@ -42,6 +53,17 @@ abstract class FileProvider(
item.uri.toString(),
item.thumbnailUri?.toString(),
if (item.isDirectory) 1 else 0,
item.owner,
item.metadata.title,
item.metadata.artist,
item.metadata.album,
item.metadata.duration,
item.metadata.year,
item.metadata.dimensions?.width,
item.metadata.dimensions?.height,
item.metadata.location,
item.metadata.appName,
item.metadata.appPackageName,
)
)
}