Refactor permissions manager
This commit is contained in:
@@ -4,11 +4,14 @@ import android.content.Context
|
||||
import android.provider.MediaStore
|
||||
import androidx.core.database.getStringOrNull
|
||||
import de.mm20.launcher2.ktx.jsonObjectOf
|
||||
import de.mm20.launcher2.permissions.PermissionGroup
|
||||
import de.mm20.launcher2.permissions.PermissionsManager
|
||||
import de.mm20.launcher2.search.SearchableDeserializer
|
||||
import de.mm20.launcher2.search.SearchableSerializer
|
||||
import de.mm20.launcher2.search.data.*
|
||||
import org.json.JSONObject
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.get
|
||||
|
||||
class LocalFileSerializer : SearchableSerializer {
|
||||
override fun serialize(searchable: Searchable): String {
|
||||
@@ -24,11 +27,11 @@ class LocalFileSerializer : SearchableSerializer {
|
||||
|
||||
class LocalFileDeserializer(
|
||||
val context: Context
|
||||
) : SearchableDeserializer {
|
||||
) : SearchableDeserializer, KoinComponent {
|
||||
override fun deserialize(serialized: String): Searchable? {
|
||||
if (!PermissionsManager.checkPermission(
|
||||
context,
|
||||
PermissionsManager.EXTERNAL_STORAGE
|
||||
val permissionsManager: PermissionsManager = get()
|
||||
if (!permissionsManager.checkPermission(
|
||||
PermissionGroup.ExternalStorage
|
||||
)
|
||||
) return null
|
||||
val json = JSONObject(serialized)
|
||||
|
||||
@@ -21,10 +21,13 @@ import de.mm20.launcher2.files.R
|
||||
import de.mm20.launcher2.icons.LauncherIcon
|
||||
import de.mm20.launcher2.ktx.formatToString
|
||||
import de.mm20.launcher2.media.ThumbnailUtilsCompat
|
||||
import de.mm20.launcher2.permissions.PermissionGroup
|
||||
import de.mm20.launcher2.permissions.PermissionsManager
|
||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.get
|
||||
import java.io.IOException
|
||||
import java.util.*
|
||||
import java.io.File as JavaIOFile
|
||||
@@ -161,14 +164,14 @@ open class LocalFile(
|
||||
|
||||
|
||||
|
||||
companion object {
|
||||
companion object: KoinComponent {
|
||||
fun search(context: Context, query: String): List<LocalFile> {
|
||||
val results = mutableListOf<LocalFile>()
|
||||
if (!LauncherPreferences.instance.searchFiles) return results
|
||||
if (query.isBlank()) return results
|
||||
if (!PermissionsManager.checkPermission(
|
||||
context,
|
||||
PermissionsManager.EXTERNAL_STORAGE
|
||||
val permissionsManager: PermissionsManager = get()
|
||||
if (!permissionsManager.checkPermission(
|
||||
PermissionGroup.ExternalStorage
|
||||
)
|
||||
) return results
|
||||
val uri = MediaStore.Files.getContentUri("external").buildUpon()
|
||||
|
||||
Reference in New Issue
Block a user