diff --git a/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt b/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt index 53e9513..39139d4 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt @@ -886,6 +886,9 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh } private fun setAppViewDetails() { + lifecycleScope.launch(Dispatchers.Default) { + filterItems(searchView.text.toString()) + } searchSwitcher.setImageDrawable( ResourcesCompat.getDrawable( resources, @@ -980,21 +983,29 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh } private suspend fun filterItems(query: String?) { - val cleanQuery = stringUtils.cleanString(query) - val newFilteredApps = mutableListOf>() - val updatedApps = appUtils.getInstalledApps() - - getFilteredApps(cleanQuery, newFilteredApps, updatedApps) - if (sharedPreferenceManager.areContactsEnabled() && cleanQuery != null) { - updateContacts(cleanQuery) + when (menuView.displayedChild) { + 0 -> { + val newFilteredApps = mutableListOf>() + val updatedApps = appUtils.getInstalledApps() + val filteredApps = getFilteredApps(cleanQuery, newFilteredApps, updatedApps) + if (filteredApps != null) { + applySearchFilter(filteredApps) + } + } + 1 -> { + if (sharedPreferenceManager.areContactsEnabled() && cleanQuery != null) { + updateContacts(cleanQuery) + } + } } } - private suspend fun getFilteredApps(cleanQuery: String?, newFilteredApps: MutableList>, updatedApps: List>) { + private suspend fun getFilteredApps(cleanQuery: String?, newFilteredApps: MutableList>, updatedApps: List>): List>? { if (cleanQuery.isNullOrEmpty()) { isJobActive = true updateMenu(updatedApps) + return null } else { isJobActive = false @@ -1020,16 +1031,15 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh } } } - applySearchFilter(newFilteredApps) + return newFilteredApps } } - private suspend fun applySearchFilter(newFilteredApps: MutableList>) { + private suspend fun applySearchFilter(newFilteredApps: List>) { if (sharedPreferenceManager.isAutoLaunchEnabled() && menuView.displayedChild == 0 && appAdapter?.shortcutTextView == null && newFilteredApps.size == 1) { appUtils.launchApp(newFilteredApps[0].first.componentName, newFilteredApps[0].second) - } else if (!listsEqual(installedApps, newFilteredApps)) { + } else { updateMenu(newFilteredApps) - installedApps = newFilteredApps } } diff --git a/app/src/main/java/eu/ottop/yamlauncher/settings/AppMenuSettingsFragment.kt b/app/src/main/java/eu/ottop/yamlauncher/settings/AppMenuSettingsFragment.kt index 52d3bcd..4bc2c48 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/settings/AppMenuSettingsFragment.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/settings/AppMenuSettingsFragment.kt @@ -8,8 +8,7 @@ import androidx.preference.SwitchPreference import eu.ottop.yamlauncher.R import eu.ottop.yamlauncher.utils.PermissionUtils -class AppMenuSettingsFragment : PreferenceFragmentCompat(), TitleProvider { - private val permissionUtils = PermissionUtils() +class AppMenuSettingsFragment : PreferenceFragmentCompat(), TitleProvider { private val permissionUtils = PermissionUtils() private var contactPref: SwitchPreference? = null private var webSearchPref: SwitchPreference? = null private var autoLaunchPref: SwitchPreference? = null