From 417961cfacdeef4dc1c78c22a0e9b3157aecd23e Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Mon, 21 Mar 2022 15:12:37 +0100 Subject: [PATCH] Check permission before attempting to query app shortcuts --- .../launcher2/appshortcuts/AppShortcutRepository.kt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/appshortcuts/src/main/java/de/mm20/launcher2/appshortcuts/AppShortcutRepository.kt b/appshortcuts/src/main/java/de/mm20/launcher2/appshortcuts/AppShortcutRepository.kt index b2bd6b80..d8545395 100644 --- a/appshortcuts/src/main/java/de/mm20/launcher2/appshortcuts/AppShortcutRepository.kt +++ b/appshortcuts/src/main/java/de/mm20/launcher2/appshortcuts/AppShortcutRepository.kt @@ -7,6 +7,7 @@ import android.content.pm.PackageManager import android.os.Process import androidx.core.content.getSystemService import com.github.promeg.pinyinhelper.Pinyin +import de.mm20.launcher2.permissions.PermissionGroup import de.mm20.launcher2.permissions.PermissionsManager import de.mm20.launcher2.preferences.LauncherDataStore import de.mm20.launcher2.search.data.AppShortcut @@ -65,17 +66,21 @@ internal class AppShortcutRepositoryImpl( } override fun search(query: String) = channelFlow> { + if (query.length < 3) { + send(emptyList()) + return@channelFlow + } withContext(Dispatchers.IO) { + if (!permissionsManager.checkPermissionOnce(PermissionGroup.AppShortcuts)) { + send(emptyList()) + return@withContext + } dataStore.data.map { it.appShortcutSearch.enabled }.collectLatest { enabled -> if (!enabled) { send(emptyList()) return@collectLatest } - if (query.length < 3) { - return@collectLatest send(emptyList()) - } - val launcherApps = context.getSystemService() ?: return@collectLatest send( emptyList()