mirror of
https://github.com/He4eT/yamf_launcher.git
synced 2026-05-04 17:37:25 +00:00
Merge pull request 'refactor search to not perform unnecessary updates' (#40) from KorigamiK/yamlauncher:main into main
Reviewed-on: https://codeberg.org/ottoptj/yamlauncher/pulls/40
This commit is contained in:
commit
c0ac8179c9
2 changed files with 23 additions and 14 deletions
|
|
@ -886,6 +886,9 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setAppViewDetails() {
|
private fun setAppViewDetails() {
|
||||||
|
lifecycleScope.launch(Dispatchers.Default) {
|
||||||
|
filterItems(searchView.text.toString())
|
||||||
|
}
|
||||||
searchSwitcher.setImageDrawable(
|
searchSwitcher.setImageDrawable(
|
||||||
ResourcesCompat.getDrawable(
|
ResourcesCompat.getDrawable(
|
||||||
resources,
|
resources,
|
||||||
|
|
@ -980,21 +983,29 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun filterItems(query: String?) {
|
private suspend fun filterItems(query: String?) {
|
||||||
|
|
||||||
val cleanQuery = stringUtils.cleanString(query)
|
val cleanQuery = stringUtils.cleanString(query)
|
||||||
val newFilteredApps = mutableListOf<Triple<LauncherActivityInfo, UserHandle, Int>>()
|
when (menuView.displayedChild) {
|
||||||
val updatedApps = appUtils.getInstalledApps()
|
0 -> {
|
||||||
|
val newFilteredApps = mutableListOf<Triple<LauncherActivityInfo, UserHandle, Int>>()
|
||||||
getFilteredApps(cleanQuery, newFilteredApps, updatedApps)
|
val updatedApps = appUtils.getInstalledApps()
|
||||||
if (sharedPreferenceManager.areContactsEnabled() && cleanQuery != null) {
|
val filteredApps = getFilteredApps(cleanQuery, newFilteredApps, updatedApps)
|
||||||
updateContacts(cleanQuery)
|
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()) {
|
if (cleanQuery.isNullOrEmpty()) {
|
||||||
isJobActive = true
|
isJobActive = true
|
||||||
updateMenu(updatedApps)
|
updateMenu(updatedApps)
|
||||||
|
return null
|
||||||
} else {
|
} else {
|
||||||
isJobActive = false
|
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) {
|
if (sharedPreferenceManager.isAutoLaunchEnabled() && menuView.displayedChild == 0 && appAdapter?.shortcutTextView == null && newFilteredApps.size == 1) {
|
||||||
appUtils.launchApp(newFilteredApps[0].first.componentName, newFilteredApps[0].second)
|
appUtils.launchApp(newFilteredApps[0].first.componentName, newFilteredApps[0].second)
|
||||||
} else if (!listsEqual(installedApps, newFilteredApps)) {
|
} else {
|
||||||
updateMenu(newFilteredApps)
|
updateMenu(newFilteredApps)
|
||||||
|
|
||||||
installedApps = newFilteredApps
|
installedApps = newFilteredApps
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,7 @@ import androidx.preference.SwitchPreference
|
||||||
import eu.ottop.yamlauncher.R
|
import eu.ottop.yamlauncher.R
|
||||||
import eu.ottop.yamlauncher.utils.PermissionUtils
|
import eu.ottop.yamlauncher.utils.PermissionUtils
|
||||||
|
|
||||||
class AppMenuSettingsFragment : PreferenceFragmentCompat(), TitleProvider {
|
class AppMenuSettingsFragment : PreferenceFragmentCompat(), TitleProvider { private val permissionUtils = PermissionUtils()
|
||||||
private val permissionUtils = PermissionUtils()
|
|
||||||
private var contactPref: SwitchPreference? = null
|
private var contactPref: SwitchPreference? = null
|
||||||
private var webSearchPref: SwitchPreference? = null
|
private var webSearchPref: SwitchPreference? = null
|
||||||
private var autoLaunchPref: SwitchPreference? = null
|
private var autoLaunchPref: SwitchPreference? = null
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue