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()