فهرست منبع

fix(#187): update app drawer whenever a change was triggered (#194)

Joshua Kuestersteffen 2 سال پیش
والد
کامیت
4e4539b7c1
1فایلهای تغییر یافته به همراه6 افزوده شده و 3 حذف شده
  1. 6 3
      app/src/main/java/com/sduduzog/slimlauncher/adapters/AppDrawerAdapter.kt

+ 6 - 3
app/src/main/java/com/sduduzog/slimlauncher/adapters/AppDrawerAdapter.kt

@@ -80,13 +80,12 @@ class AppDrawerAdapter(
         return first.startsWith(query, true) and !second.startsWith(query, true);
     }
 
-    @SuppressLint("NotifyDataSetChanged")
     fun setAppFilter(query: String = "") {
         val filterQuery = regex.replace(query, "")
         updateFilteredApps(filterQuery)
-        notifyDataSetChanged()
     }
 
+    @SuppressLint("NotifyDataSetChanged")
     private fun updateFilteredApps(filterQuery: String = "") {
         val showDrawerHeadings = corePreferencesRepo.get().showDrawerHeadings
         val searchAllApps = corePreferencesRepo.get().searchAllAppsInDrawer && filterQuery != ""
@@ -97,7 +96,7 @@ class AppDrawerAdapter(
             }
 
         val includeHeadings = !showDrawerHeadings || filterQuery != ""
-        filteredApps = when (includeHeadings) {
+        val updatedApps = when (includeHeadings) {
             true -> displayableApps
                 .sortedWith { a, b ->
                     when {
@@ -122,6 +121,10 @@ class AppDrawerAdapter(
                     )
                 }
         }
+        if (updatedApps != filteredApps) {
+            filteredApps = updatedApps
+            notifyDataSetChanged()
+        }
     }
 
     val searchBoxListener: TextWatcher = object : TextWatcher {