From 0851ba3891c88ef73387a97a48f1ec1482053234 Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Sun, 12 Jun 2022 15:03:34 +0200 Subject: [PATCH] Use default dispatcher for search --- .../launcher2/applications/AppRepository.kt | 6 +++-- .../launcher2/ui/launcher/search/SearchVM.kt | 22 +++++++++---------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/applications/src/main/java/de/mm20/launcher2/applications/AppRepository.kt b/applications/src/main/java/de/mm20/launcher2/applications/AppRepository.kt index f1032cf0..63f2b0a4 100644 --- a/applications/src/main/java/de/mm20/launcher2/applications/AppRepository.kt +++ b/applications/src/main/java/de/mm20/launcher2/applications/AppRepository.kt @@ -7,6 +7,8 @@ import android.content.pm.LauncherActivityInfo import android.content.pm.LauncherApps import android.content.pm.PackageInstaller import android.content.pm.ShortcutInfo +import android.os.Handler +import android.os.Looper import android.os.Process import android.os.UserHandle import android.util.Log @@ -111,7 +113,7 @@ internal class AppRepositoryImpl( suspendedPackages.value.filter { packageNames.contains(it) } } - }) + }, Handler(Looper.getMainLooper())) val apps = profiles.map { p -> launcherApps.getActivityList(null, p).mapNotNull { getApplication(it, p) } }.flatten() @@ -158,7 +160,7 @@ internal class AppRepositoryImpl( inst.add(appInstallation) installations.value = inst } - }) + }, Handler(Looper.getMainLooper())) } diff --git a/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/SearchVM.kt b/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/SearchVM.kt index 401f5f81..bdba5406 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/SearchVM.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/launcher/search/SearchVM.kt @@ -106,7 +106,7 @@ class SearchVM : ViewModel(), KoinComponent { searchJob = viewModelScope.launch { isSearching.postValue(true) val jobs = mutableListOf>() - jobs += async { + jobs += async(Dispatchers.Default) { appRepository.search(query).collectLatest { apps -> hiddenItemKeys.collectLatest { hiddenKeys -> val results = apps.partition { !hiddenKeys.contains(it.key) } @@ -117,7 +117,7 @@ class SearchVM : ViewModel(), KoinComponent { } } } - jobs += async { + jobs += async(Dispatchers.Default) { contactRepository.search(query).collectLatest { contacts -> hiddenItemKeys.collectLatest { hiddenKeys -> val results = contacts.partition { !hiddenKeys.contains(it.key) } @@ -128,7 +128,7 @@ class SearchVM : ViewModel(), KoinComponent { } } } - jobs += async { + jobs += async(Dispatchers.Default) { calendarRepository.search(query).collectLatest { events -> hiddenItemKeys.collectLatest { hiddenKeys -> val results = events.partition { !hiddenKeys.contains(it.key) } @@ -139,27 +139,27 @@ class SearchVM : ViewModel(), KoinComponent { } } } - jobs += async { + jobs += async(Dispatchers.Default) { wikipediaRepository.search(query).collectLatest { wikipediaResult.postValue(it) } } - jobs += async { + jobs += async(Dispatchers.Default) { unitConverterRepository.search(query).collectLatest { unitConverterResult.postValue(it) } } - jobs += async { + jobs += async(Dispatchers.Default) { calculatorRepository.search(query).collectLatest { calculatorResult.postValue(it) } } - jobs += async { + jobs += async(Dispatchers.Default) { websiteRepository.search(query).collectLatest { websiteResult.postValue(it) } } - jobs += async { + jobs += async(Dispatchers.Default) { fileRepository.search(query).collectLatest { files -> hiddenItemKeys.collectLatest { hiddenKeys -> val results = files.partition { !hiddenKeys.contains(it.key) } @@ -170,19 +170,19 @@ class SearchVM : ViewModel(), KoinComponent { } } } - jobs += async { + jobs += async(Dispatchers.Default) { websearchRepository.search(query).collectLatest { websearchResults.postValue(it) } } - jobs += async { + jobs += async(Dispatchers.Default) { appShortcutRepository.search(query).collectLatest { shortcuts -> hiddenItemKeys.collectLatest { hidden -> appShortcutResults.postValue(shortcuts.filter { !hidden.contains(it.key) }) } } } - launch { + launch(Dispatchers.Default) { hiddenItems.collectLatest { hiddenResults.postValue(it.joinToList()) }