From 518df96fccefed17c630cd12a50e8ced897c40d9 Mon Sep 17 00:00:00 2001 From: Suphon Thanakornpakapong Date: Thu, 28 Oct 2021 17:31:57 +0700 Subject: [PATCH] Only add quick launch for apps search --- .../src/app/lawnchair/search/LawnchairAppSearchAlgorithm.kt | 4 +++- .../app/lawnchair/search/LawnchairDeviceSearchAlgorithm.java | 3 ++- .../app/lawnchair/search/LawnchairSearchAdapterProvider.kt | 2 +- .../src/app/lawnchair/search/LawnchairSearchAlgorithm.kt | 5 ++--- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lawnchair/src/app/lawnchair/search/LawnchairAppSearchAlgorithm.kt b/lawnchair/src/app/lawnchair/search/LawnchairAppSearchAlgorithm.kt index d9db7cdd64..30ab38a0cf 100644 --- a/lawnchair/src/app/lawnchair/search/LawnchairAppSearchAlgorithm.kt +++ b/lawnchair/src/app/lawnchair/search/LawnchairAppSearchAlgorithm.kt @@ -26,6 +26,7 @@ import com.android.launcher3.util.PackageManagerHelper import me.xdrop.fuzzywuzzy.FuzzySearch import me.xdrop.fuzzywuzzy.algorithms.WeightedRatio import java.util.* +import kotlin.collections.ArrayList class LawnchairAppSearchAlgorithm(context: Context) : LawnchairSearchAlgorithm(context) { @@ -74,7 +75,8 @@ class LawnchairAppSearchAlgorithm(context: Context) : LawnchairSearchAlgorithm(c if (results.isEmpty()) { results.add(getEmptySearchItem(query)) } - return transformSearchResults(results) + val adapterItems = transformSearchResults(results) + return ArrayList(LawnchairSearchAdapterProvider.setFirstItemQuickLaunch(adapterItems)) } private fun getShortcuts(app: AppInfo): List { diff --git a/lawnchair/src/app/lawnchair/search/LawnchairDeviceSearchAlgorithm.java b/lawnchair/src/app/lawnchair/search/LawnchairDeviceSearchAlgorithm.java index 5c44845f0a..6e39a255f6 100644 --- a/lawnchair/src/app/lawnchair/search/LawnchairDeviceSearchAlgorithm.java +++ b/lawnchair/src/app/lawnchair/search/LawnchairDeviceSearchAlgorithm.java @@ -23,6 +23,7 @@ import com.android.launcher3.LauncherAppState; import com.android.launcher3.allapps.AllAppsGridAdapter; import com.android.launcher3.search.SearchCallback; +import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; import java.util.stream.Collectors; @@ -102,7 +103,7 @@ public class LawnchairDeviceSearchAlgorithm extends LawnchairSearchAlgorithm { List targets = platformTargets.stream().map(SearchTargetCompat::wrap).collect(Collectors.toList()); targets.forEach(target -> Log.d("DeviceSearchAlg", "type=" + target.getResultType() + ", layout=" + target.getLayoutType() + ", id=" + target.getId())); Log.d("DeviceSearchAlg", "====="); - mCallback.onSearchResult(mQuery, transformSearchResults(targets)); + mCallback.onSearchResult(mQuery, new ArrayList<>(transformSearchResults(targets))); } } diff --git a/lawnchair/src/app/lawnchair/search/LawnchairSearchAdapterProvider.kt b/lawnchair/src/app/lawnchair/search/LawnchairSearchAdapterProvider.kt index ea42a28f14..db1983c2b3 100644 --- a/lawnchair/src/app/lawnchair/search/LawnchairSearchAdapterProvider.kt +++ b/lawnchair/src/app/lawnchair/search/LawnchairSearchAdapterProvider.kt @@ -75,7 +75,7 @@ class LawnchairSearchAdapterProvider( LayoutType.EMPTY_DIVIDER to SEARCH_RESULT_DIVIDER, ) - fun decorateSearchResults(items: List): List { + fun setFirstItemQuickLaunch(items: List): List { items.firstOrNull()?.searchTarget?.extras?.apply { putBoolean(SearchResultView.EXTRA_QUICK_LAUNCH, true) } diff --git a/lawnchair/src/app/lawnchair/search/LawnchairSearchAlgorithm.kt b/lawnchair/src/app/lawnchair/search/LawnchairSearchAlgorithm.kt index f820215e08..082fef34e5 100644 --- a/lawnchair/src/app/lawnchair/search/LawnchairSearchAlgorithm.kt +++ b/lawnchair/src/app/lawnchair/search/LawnchairSearchAlgorithm.kt @@ -34,12 +34,12 @@ abstract class LawnchairSearchAlgorithm( roundTop = false, roundBottom = true ) - protected fun transformSearchResults(results: List): ArrayList { + protected fun transformSearchResults(results: List): List { val filtered = results .filter { it.packageName != BuildConfig.APPLICATION_ID } .filter { it.packageName != "com.android.settings" } .filter { LawnchairSearchAdapterProvider.viewTypeMap[it.layoutType] != null } - val items = filtered + return filtered .mapIndexedNotNull { index, target -> val isFirst = index == 0 || filtered[index - 1].isDivider val isLast = index == filtered.lastIndex || filtered[index + 1].isDivider @@ -53,7 +53,6 @@ abstract class LawnchairSearchAlgorithm( } SearchAdapterItem.createAdapterItem(index, target, background) } - return ArrayList(LawnchairSearchAdapterProvider.decorateSearchResults(items)) } companion object {