Check permission before attempting to query app shortcuts
This commit is contained in:
parent
18d96929a1
commit
417961cfac
@ -7,6 +7,7 @@ import android.content.pm.PackageManager
|
|||||||
import android.os.Process
|
import android.os.Process
|
||||||
import androidx.core.content.getSystemService
|
import androidx.core.content.getSystemService
|
||||||
import com.github.promeg.pinyinhelper.Pinyin
|
import com.github.promeg.pinyinhelper.Pinyin
|
||||||
|
import de.mm20.launcher2.permissions.PermissionGroup
|
||||||
import de.mm20.launcher2.permissions.PermissionsManager
|
import de.mm20.launcher2.permissions.PermissionsManager
|
||||||
import de.mm20.launcher2.preferences.LauncherDataStore
|
import de.mm20.launcher2.preferences.LauncherDataStore
|
||||||
import de.mm20.launcher2.search.data.AppShortcut
|
import de.mm20.launcher2.search.data.AppShortcut
|
||||||
@ -65,17 +66,21 @@ internal class AppShortcutRepositoryImpl(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun search(query: String) = channelFlow<List<AppShortcut>> {
|
override fun search(query: String) = channelFlow<List<AppShortcut>> {
|
||||||
|
if (query.length < 3) {
|
||||||
|
send(emptyList())
|
||||||
|
return@channelFlow
|
||||||
|
}
|
||||||
withContext(Dispatchers.IO) {
|
withContext(Dispatchers.IO) {
|
||||||
|
if (!permissionsManager.checkPermissionOnce(PermissionGroup.AppShortcuts)) {
|
||||||
|
send(emptyList())
|
||||||
|
return@withContext
|
||||||
|
}
|
||||||
dataStore.data.map { it.appShortcutSearch.enabled }.collectLatest { enabled ->
|
dataStore.data.map { it.appShortcutSearch.enabled }.collectLatest { enabled ->
|
||||||
if (!enabled) {
|
if (!enabled) {
|
||||||
send(emptyList())
|
send(emptyList())
|
||||||
return@collectLatest
|
return@collectLatest
|
||||||
}
|
}
|
||||||
|
|
||||||
if (query.length < 3) {
|
|
||||||
return@collectLatest send(emptyList())
|
|
||||||
}
|
|
||||||
|
|
||||||
val launcherApps =
|
val launcherApps =
|
||||||
context.getSystemService<LauncherApps>() ?: return@collectLatest send(
|
context.getSystemService<LauncherApps>() ?: return@collectLatest send(
|
||||||
emptyList()
|
emptyList()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user