Fix quick launch item (again)
This commit is contained in:
@@ -124,14 +124,5 @@ class LawnchairSearchAdapterProvider(
|
||||
LayoutType.WIDGET_LIVE to SEARCH_RESULT_RECENT_TILE,
|
||||
LayoutType.CALCULATOR to SEARCH_RESULT_CALCULATOR,
|
||||
)
|
||||
|
||||
fun setFirstItemQuickLaunch(items: List<SearchAdapterItem>) {
|
||||
val hasQuickLaunch = items.any { it.searchTarget.extras.getBoolean(EXTRA_QUICK_LAUNCH, false) }
|
||||
if (!hasQuickLaunch) {
|
||||
items.firstOrNull()?.searchTarget?.extras?.apply {
|
||||
putBoolean(EXTRA_QUICK_LAUNCH, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@ import androidx.core.os.bundleOf
|
||||
import app.lawnchair.compat.LawnchairQuickstepCompat
|
||||
import app.lawnchair.preferences.PreferenceChangeListener
|
||||
import app.lawnchair.preferences.PreferenceManager
|
||||
import app.lawnchair.search.LawnchairSearchAdapterProvider
|
||||
import app.lawnchair.search.adapter.SearchTargetCompat
|
||||
import app.lawnchair.util.requireSystemService
|
||||
import com.android.launcher3.LauncherAppState
|
||||
@@ -110,8 +109,8 @@ class LawnchairASISearchAlgorithm(context: Context) :
|
||||
override fun accept(platformTargets: List<SearchTarget>) {
|
||||
if (!canceled) {
|
||||
val targets = platformTargets.map { SearchTargetCompat.wrap(it) }
|
||||
setFirstItemQuickLaunch(targets)
|
||||
val adapterItems = transformSearchResults(targets)
|
||||
LawnchairSearchAdapterProvider.setFirstItemQuickLaunch(adapterItems)
|
||||
callback.onSearchResult(
|
||||
query,
|
||||
ArrayList<BaseAllAppsAdapter.AdapterItem>(adapterItems),
|
||||
|
||||
@@ -3,7 +3,6 @@ package app.lawnchair.search.algorithms
|
||||
import android.content.Context
|
||||
import android.os.Handler
|
||||
import app.lawnchair.preferences2.PreferenceManager2
|
||||
import app.lawnchair.search.LawnchairSearchAdapterProvider
|
||||
import app.lawnchair.search.adapter.GenerateSearchTarget
|
||||
import app.lawnchair.search.adapter.SPACE
|
||||
import app.lawnchair.search.adapter.SearchTargetCompat
|
||||
@@ -85,18 +84,18 @@ class LawnchairAppSearchAlgorithm(context: Context) : LawnchairSearchAlgorithm(c
|
||||
val searchTargets = mutableListOf<SearchTargetCompat>()
|
||||
|
||||
if (appResults.isNotEmpty()) {
|
||||
appResults.mapTo(searchTargets, ::createSearchTarget)
|
||||
}
|
||||
|
||||
if (appResults.size == 1 && context.isDefaultLauncher()) {
|
||||
val singleAppResult = appResults.firstOrNull()
|
||||
val shortcuts = singleAppResult?.let { searchUtils.getShortcuts(it, context) }
|
||||
if (shortcuts != null) {
|
||||
if (shortcuts.isNotEmpty()) {
|
||||
searchTargets.add(generateSearchTarget.getHeaderTarget(SPACE))
|
||||
searchTargets.add(createSearchTarget(singleAppResult, true))
|
||||
searchTargets.addAll(shortcuts.map(::createSearchTarget))
|
||||
if (appResults.size == 1 && context.isDefaultLauncher()) {
|
||||
val singleAppResult = appResults.firstOrNull()
|
||||
val shortcuts = singleAppResult?.let { searchUtils.getShortcuts(it, context) }
|
||||
if (shortcuts != null) {
|
||||
if (shortcuts.isNotEmpty()) {
|
||||
searchTargets.add(generateSearchTarget.getHeaderTarget(SPACE))
|
||||
searchTargets.add(createSearchTarget(singleAppResult, true))
|
||||
searchTargets.addAll(shortcuts.map(::createSearchTarget))
|
||||
}
|
||||
}
|
||||
} else {
|
||||
appResults.mapTo(searchTargets, ::createSearchTarget)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,8 +103,8 @@ class LawnchairAppSearchAlgorithm(context: Context) : LawnchairSearchAlgorithm(c
|
||||
|
||||
generateSearchTarget.getMarketSearchItem(query)?.let { searchTargets.add(it) }
|
||||
|
||||
setFirstItemQuickLaunch(searchTargets)
|
||||
val adapterItems = transformSearchResults(searchTargets)
|
||||
LawnchairSearchAdapterProvider.setFirstItemQuickLaunch(adapterItems)
|
||||
return ArrayList(adapterItems)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,19 +148,19 @@ class LawnchairLocalSearchAlgorithm(context: Context) : LawnchairSearchAlgorithm
|
||||
|
||||
val searchTargets = mutableListOf<SearchTargetCompat>()
|
||||
|
||||
if (appResults.isNotEmpty() && searchApps) {
|
||||
appResults.mapTo(searchTargets, ::createSearchTarget)
|
||||
}
|
||||
|
||||
if (appResults.size == 1 && searchApps && context.isDefaultLauncher()) {
|
||||
val singleAppResult = appResults.firstOrNull()
|
||||
val shortcuts = singleAppResult?.let { searchUtils.getShortcuts(it, context) }
|
||||
if (shortcuts != null) {
|
||||
if (shortcuts.isNotEmpty()) {
|
||||
searchTargets.add(generateSearchTarget.getHeaderTarget(SPACE))
|
||||
searchTargets.add(createSearchTarget(singleAppResult, true))
|
||||
searchTargets.addAll(shortcuts.map(::createSearchTarget))
|
||||
if (appResults.isNotEmpty()) {
|
||||
if (appResults.size == 1 && context.isDefaultLauncher()) {
|
||||
val singleAppResult = appResults.firstOrNull()
|
||||
val shortcuts = singleAppResult?.let { searchUtils.getShortcuts(it, context) }
|
||||
if (shortcuts != null) {
|
||||
if (shortcuts.isNotEmpty()) {
|
||||
searchTargets.add(generateSearchTarget.getHeaderTarget(SPACE))
|
||||
searchTargets.add(createSearchTarget(singleAppResult, true))
|
||||
searchTargets.addAll(shortcuts.map(::createSearchTarget))
|
||||
}
|
||||
}
|
||||
} else {
|
||||
appResults.mapTo(searchTargets, ::createSearchTarget)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -217,8 +217,8 @@ class LawnchairLocalSearchAlgorithm(context: Context) : LawnchairSearchAlgorithm
|
||||
if (useWebSuggestions) searchTargets.add(generateSearchTarget.getStartPageSearchItem(query))
|
||||
generateSearchTarget.getMarketSearchItem(query)?.let { searchTargets.add(it) }
|
||||
|
||||
setFirstItemQuickLaunch(searchTargets)
|
||||
val adapterItems = transformSearchResults(searchTargets)
|
||||
LawnchairSearchAdapterProvider.setFirstItemQuickLaunch(adapterItems)
|
||||
return ArrayList(adapterItems)
|
||||
}
|
||||
|
||||
|
||||
@@ -86,23 +86,32 @@ sealed class LawnchairSearchAlgorithm(
|
||||
|
||||
if (target.extras.getBoolean(EXTRA_QUICK_LAUNCH, false)) {
|
||||
SearchAdapterItem.createAdapterItem(target, normalBackground)
|
||||
} else {
|
||||
val background = getBackground(
|
||||
target.layoutType,
|
||||
index,
|
||||
isFirst,
|
||||
isLast,
|
||||
smallIconIndices,
|
||||
iconRowIndices,
|
||||
peopleTileIndices,
|
||||
suggestionIndices,
|
||||
fileIndices,
|
||||
settingIndices,
|
||||
recentIndices,
|
||||
calculator,
|
||||
)
|
||||
SearchAdapterItem.createAdapterItem(target, background)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val background = getBackground(
|
||||
target.layoutType,
|
||||
index,
|
||||
isFirst,
|
||||
isLast,
|
||||
smallIconIndices,
|
||||
iconRowIndices,
|
||||
peopleTileIndices,
|
||||
suggestionIndices,
|
||||
fileIndices,
|
||||
settingIndices,
|
||||
recentIndices,
|
||||
calculator,
|
||||
)
|
||||
SearchAdapterItem.createAdapterItem(target, background)
|
||||
protected fun setFirstItemQuickLaunch(searchTargets: List<SearchTargetCompat>) {
|
||||
val hasQuickLaunch = searchTargets.any {it.extras.getBoolean(EXTRA_QUICK_LAUNCH, false) }
|
||||
if (!hasQuickLaunch) {
|
||||
searchTargets.firstOrNull()?.extras?.apply {
|
||||
putBoolean(EXTRA_QUICK_LAUNCH, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user