mirror of
https://github.com/He4eT/yamf_launcher.git
synced 2026-05-04 17:37:25 +00:00
refactor search to not perform unnecessary updates
This commit is contained in:
parent
2cb6858593
commit
e38e7ced3f
2 changed files with 23 additions and 14 deletions
|
|
@ -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)
|
||||
when (menuView.displayedChild) {
|
||||
0 -> {
|
||||
val newFilteredApps = mutableListOf<Triple<LauncherActivityInfo, UserHandle, Int>>()
|
||||
val updatedApps = appUtils.getInstalledApps()
|
||||
|
||||
getFilteredApps(cleanQuery, newFilteredApps, updatedApps)
|
||||
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<Triple<LauncherActivityInfo, UserHandle, Int>>, updatedApps: List<Triple<LauncherActivityInfo, UserHandle, Int>>) {
|
||||
private suspend fun getFilteredApps(cleanQuery: String?, newFilteredApps: MutableList<Triple<LauncherActivityInfo, UserHandle, Int>>, updatedApps: List<Triple<LauncherActivityInfo, UserHandle, Int>>): List<Triple<LauncherActivityInfo, UserHandle, Int>>? {
|
||||
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<Triple<LauncherActivityInfo, UserHandle, Int>>) {
|
||||
private suspend fun applySearchFilter(newFilteredApps: List<Triple<LauncherActivityInfo, UserHandle, Int>>) {
|
||||
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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue