From c40fb1ffb2a2ca7e574b9478e426beef47032556 Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Fri, 26 Jul 2024 17:35:25 +0200 Subject: [PATCH] Remove OneDrive file classes --- .../mm20/launcher2/files/FileSerialization.kt | 59 ------------------- .../java/de/mm20/launcher2/files/Module.kt | 2 - .../launcher2/files/providers/OneDriveFile.kt | 55 ----------------- 3 files changed, 116 deletions(-) delete mode 100644 data/files/src/main/java/de/mm20/launcher2/files/providers/OneDriveFile.kt diff --git a/data/files/src/main/java/de/mm20/launcher2/files/FileSerialization.kt b/data/files/src/main/java/de/mm20/launcher2/files/FileSerialization.kt index 79a77886..48c92181 100644 --- a/data/files/src/main/java/de/mm20/launcher2/files/FileSerialization.kt +++ b/data/files/src/main/java/de/mm20/launcher2/files/FileSerialization.kt @@ -4,12 +4,9 @@ import android.content.Context import android.net.Uri import android.provider.MediaStore import androidx.core.database.getStringOrNull -import de.mm20.launcher2.crashreporter.CrashReporter -import de.mm20.launcher2.files.providers.DeferredFile import de.mm20.launcher2.files.providers.GDriveFile import de.mm20.launcher2.files.providers.LocalFile import de.mm20.launcher2.files.providers.NextcloudFile -import de.mm20.launcher2.files.providers.OneDriveFile import de.mm20.launcher2.files.providers.OwncloudFile import de.mm20.launcher2.files.providers.PluginFile import de.mm20.launcher2.files.providers.PluginFileProvider @@ -18,7 +15,6 @@ import de.mm20.launcher2.permissions.PermissionGroup import de.mm20.launcher2.permissions.PermissionsManager import de.mm20.launcher2.plugin.PluginRepository import de.mm20.launcher2.plugin.config.StorageStrategy -import de.mm20.launcher2.search.File import de.mm20.launcher2.search.FileMetaType import de.mm20.launcher2.search.SavableSearchable import de.mm20.launcher2.search.SearchableDeserializer @@ -152,61 +148,6 @@ internal class GDriveFileDeserializer : SearchableDeserializer { } } -internal class OneDriveFileSerializer : SearchableSerializer { - override fun serialize(searchable: SavableSearchable): String { - searchable as OneDriveFile - return jsonObjectOf( - "id" to searchable.fileId, - "label" to searchable.label, - "mimeType" to searchable.mimeType, - "size" to searchable.size, - "directory" to searchable.isDirectory, - "webUrl" to searchable.webUrl - ).apply { - for ((k, v) in searchable.metaData) { - put( - when (k) { - FileMetaType.Owner -> "owner" - FileMetaType.Dimensions -> "dimensions" - else -> "other" - }, v - ) - } - }.toString() - } - - override val typePrefix: String - get() = "onedrive" -} - -internal class OneDriveFileDeserializer : SearchableDeserializer { - override suspend fun deserialize(serialized: String): SavableSearchable { - val json = JSONObject(serialized) - val fileId = json.getString("id") - val label = json.getString("label") - val mimeType = json.getString("mimeType") - val size = json.getLong("size") - val isDirectory = json.getBoolean("directory") - val webUrl = json.getString("webUrl") - val owner = json.optString("owner") - val dimensions = json.optString("dimensions") - val metaData = mutableMapOf() - owner.takeIf { it.isNotEmpty() }?.let { metaData[FileMetaType.Owner] = it } - dimensions.takeIf { it.isNotEmpty() } - ?.let { metaData[FileMetaType.Dimensions] = it } - return OneDriveFile( - fileId = fileId, - label = label, - path = "", - mimeType = mimeType, - size = size, - isDirectory = isDirectory, - metaData = metaData.toImmutableMap(), - webUrl = webUrl - ) - } -} - internal class NextcloudFileSerializer : SearchableSerializer { override fun serialize(searchable: SavableSearchable): String { searchable as NextcloudFile diff --git a/data/files/src/main/java/de/mm20/launcher2/files/Module.kt b/data/files/src/main/java/de/mm20/launcher2/files/Module.kt index 1691e75a..35d655a9 100644 --- a/data/files/src/main/java/de/mm20/launcher2/files/Module.kt +++ b/data/files/src/main/java/de/mm20/launcher2/files/Module.kt @@ -3,7 +3,6 @@ package de.mm20.launcher2.files import de.mm20.launcher2.files.providers.GDriveFile import de.mm20.launcher2.files.providers.LocalFile import de.mm20.launcher2.files.providers.NextcloudFile -import de.mm20.launcher2.files.providers.OneDriveFile import de.mm20.launcher2.files.providers.OwncloudFile import de.mm20.launcher2.files.providers.PluginFile import de.mm20.launcher2.search.File @@ -24,7 +23,6 @@ val filesModule = module { factory(named(LocalFile.Domain)) { LocalFileDeserializer(androidContext()) } factory(named(OwncloudFile.Domain)) { OwncloudFileDeserializer() } factory(named(NextcloudFile.Domain)) { NextcloudFileDeserializer() } - factory(named(OneDriveFile.Domain)) { OneDriveFileDeserializer() } factory(named(GDriveFile.Domain)) { GDriveFileDeserializer() } factory(named(PluginFile.Domain)) { PluginFileDeserializer( diff --git a/data/files/src/main/java/de/mm20/launcher2/files/providers/OneDriveFile.kt b/data/files/src/main/java/de/mm20/launcher2/files/providers/OneDriveFile.kt deleted file mode 100644 index b2a2346a..00000000 --- a/data/files/src/main/java/de/mm20/launcher2/files/providers/OneDriveFile.kt +++ /dev/null @@ -1,55 +0,0 @@ -package de.mm20.launcher2.files.providers - -import android.content.Context -import android.content.Intent -import android.net.Uri -import android.os.Bundle -import de.mm20.launcher2.files.OneDriveFileSerializer -import de.mm20.launcher2.files.R -import de.mm20.launcher2.ktx.tryStartActivity -import de.mm20.launcher2.search.File -import de.mm20.launcher2.search.FileMetaType -import de.mm20.launcher2.search.SearchableSerializer -import kotlinx.collections.immutable.ImmutableMap - -internal data class OneDriveFile( - val fileId: String, - override val label: String, - override val path: String, - override val mimeType: String, - override val size: Long, - override val isDirectory: Boolean, - override val metaData: ImmutableMap, - val webUrl: String, - override val labelOverride: String? = null, -) : File { - - override fun overrideLabel(label: String): OneDriveFile { - return this.copy(labelOverride = label) - } - - override val domain: String = Domain - - override val key: String = "$domain://$fileId" - - override val providerIconRes = R.drawable.ic_badge_onedrive - - private fun getLaunchIntent(): Intent { - return Intent(Intent.ACTION_VIEW).apply { - data = Uri.parse(webUrl) - flags = Intent.FLAG_ACTIVITY_NEW_TASK - } - } - - override fun launch(context: Context, options: Bundle?): Boolean { - return context.tryStartActivity(getLaunchIntent(), options) - } - - override fun getSerializer(): SearchableSerializer { - return OneDriveFileSerializer() - } - - companion object { - const val Domain = "onedrive" - } -} \ No newline at end of file