Remove OneDrive file classes
This commit is contained in:
parent
cdf824ac2e
commit
c40fb1ffb2
@ -4,12 +4,9 @@ import android.content.Context
|
|||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.provider.MediaStore
|
import android.provider.MediaStore
|
||||||
import androidx.core.database.getStringOrNull
|
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.GDriveFile
|
||||||
import de.mm20.launcher2.files.providers.LocalFile
|
import de.mm20.launcher2.files.providers.LocalFile
|
||||||
import de.mm20.launcher2.files.providers.NextcloudFile
|
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.OwncloudFile
|
||||||
import de.mm20.launcher2.files.providers.PluginFile
|
import de.mm20.launcher2.files.providers.PluginFile
|
||||||
import de.mm20.launcher2.files.providers.PluginFileProvider
|
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.permissions.PermissionsManager
|
||||||
import de.mm20.launcher2.plugin.PluginRepository
|
import de.mm20.launcher2.plugin.PluginRepository
|
||||||
import de.mm20.launcher2.plugin.config.StorageStrategy
|
import de.mm20.launcher2.plugin.config.StorageStrategy
|
||||||
import de.mm20.launcher2.search.File
|
|
||||||
import de.mm20.launcher2.search.FileMetaType
|
import de.mm20.launcher2.search.FileMetaType
|
||||||
import de.mm20.launcher2.search.SavableSearchable
|
import de.mm20.launcher2.search.SavableSearchable
|
||||||
import de.mm20.launcher2.search.SearchableDeserializer
|
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<FileMetaType, String>()
|
|
||||||
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 {
|
internal class NextcloudFileSerializer : SearchableSerializer {
|
||||||
override fun serialize(searchable: SavableSearchable): String {
|
override fun serialize(searchable: SavableSearchable): String {
|
||||||
searchable as NextcloudFile
|
searchable as NextcloudFile
|
||||||
|
|||||||
@ -3,7 +3,6 @@ package de.mm20.launcher2.files
|
|||||||
import de.mm20.launcher2.files.providers.GDriveFile
|
import de.mm20.launcher2.files.providers.GDriveFile
|
||||||
import de.mm20.launcher2.files.providers.LocalFile
|
import de.mm20.launcher2.files.providers.LocalFile
|
||||||
import de.mm20.launcher2.files.providers.NextcloudFile
|
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.OwncloudFile
|
||||||
import de.mm20.launcher2.files.providers.PluginFile
|
import de.mm20.launcher2.files.providers.PluginFile
|
||||||
import de.mm20.launcher2.search.File
|
import de.mm20.launcher2.search.File
|
||||||
@ -24,7 +23,6 @@ val filesModule = module {
|
|||||||
factory<SearchableDeserializer>(named(LocalFile.Domain)) { LocalFileDeserializer(androidContext()) }
|
factory<SearchableDeserializer>(named(LocalFile.Domain)) { LocalFileDeserializer(androidContext()) }
|
||||||
factory<SearchableDeserializer>(named(OwncloudFile.Domain)) { OwncloudFileDeserializer() }
|
factory<SearchableDeserializer>(named(OwncloudFile.Domain)) { OwncloudFileDeserializer() }
|
||||||
factory<SearchableDeserializer>(named(NextcloudFile.Domain)) { NextcloudFileDeserializer() }
|
factory<SearchableDeserializer>(named(NextcloudFile.Domain)) { NextcloudFileDeserializer() }
|
||||||
factory<SearchableDeserializer>(named(OneDriveFile.Domain)) { OneDriveFileDeserializer() }
|
|
||||||
factory<SearchableDeserializer>(named(GDriveFile.Domain)) { GDriveFileDeserializer() }
|
factory<SearchableDeserializer>(named(GDriveFile.Domain)) { GDriveFileDeserializer() }
|
||||||
factory<SearchableDeserializer>(named(PluginFile.Domain)) {
|
factory<SearchableDeserializer>(named(PluginFile.Domain)) {
|
||||||
PluginFileDeserializer(
|
PluginFileDeserializer(
|
||||||
|
|||||||
@ -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<FileMetaType, String>,
|
|
||||||
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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
x
Reference in New Issue
Block a user