diff --git a/lawnchair/res/values/strings.xml b/lawnchair/res/values/strings.xml index d594a2b56a..fe2a8c0492 100644 --- a/lawnchair/res/values/strings.xml +++ b/lawnchair/res/values/strings.xml @@ -326,6 +326,9 @@ Show when Full Name is Typed Hide in Search Results + Bulk loading + Enable loading all apps icons in bulk + Search Show Search Bar Automatically Show Keyboard diff --git a/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt b/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt index 056f105e7c..13207e25be 100644 --- a/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt +++ b/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt @@ -84,6 +84,8 @@ class PreferenceManager private constructor(private val context: Context) : Base val searchResultSettingsEntry = BoolPref("pref_searchResultSettingsEntry", false, recreate) val searchResulRecentSuggestion = BoolPref("pref_searchResultRecentSuggestion", false, recreate) + val allAppBulkIconLoading = BoolPref("pref_allapps_bulk_icon_loading", false, recreate) + val themedIcons = BoolPref("themed_icons", true, recreate) val drawerThemedIcons = BoolPref("drawer_themed_icons", false, recreate) val hotseatQsbCornerRadius = FloatPref("pref_hotseatQsbCornerRadius", 1F, recreate) diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/AppDrawerPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/AppDrawerPreferences.kt index a2984949e5..95dab6c574 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/AppDrawerPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/AppDrawerPreferences.kt @@ -66,6 +66,11 @@ fun AppDrawerPreferences() { valueRange = 0F..1F, showAsPercentage = true, ) + SwitchPreference( + label = stringResource(id = R.string.pref_all_apps_bulk_icon_loading_title), + description = stringResource(id = R.string.pref_all_apps_bulk_icon_loading_description), + adapter = prefs.allAppBulkIconLoading.getAdapter(), + ) SuggestionsPreference() } diff --git a/src/com/android/launcher3/model/LoaderTask.java b/src/com/android/launcher3/model/LoaderTask.java index ce603e58e4..9357f9c304 100644 --- a/src/com/android/launcher3/model/LoaderTask.java +++ b/src/com/android/launcher3/model/LoaderTask.java @@ -108,6 +108,7 @@ import java.util.Set; import java.util.concurrent.CancellationException; import app.lawnchair.LawnchairAppKt; +import app.lawnchair.preferences.PreferenceManager; /** * Runnable for the thread that loads the contents of the launcher: @@ -939,6 +940,9 @@ public class LoaderTask implements Runnable { // Clear the list of apps mBgAllAppsList.clear(); + var pref = PreferenceManager.getInstance(mApp.getContext()); + var enableBulkLoading = pref.getAllAppBulkIconLoading().get(); + List> iconRequestInfos = new ArrayList<>(); for (UserHandle user : profiles) { // Query for the set of apps @@ -957,7 +961,7 @@ public class LoaderTask implements Runnable { iconRequestInfos.add(new IconRequestInfo<>( appInfo, app, /* useLowResIcon= */ false)); mBgAllAppsList.add( - appInfo, app, false); + appInfo, app, !enableBulkLoading); } allActivityList.addAll(apps); } @@ -968,7 +972,7 @@ public class LoaderTask implements Runnable { AppInfo promiseAppInfo = mBgAllAppsList.addPromiseApp( mApp.getContext(), PackageInstallInfo.fromInstallingState(info), - false); + !enableBulkLoading); if (promiseAppInfo != null) { iconRequestInfos.add(new IconRequestInfo<>( @@ -979,12 +983,14 @@ public class LoaderTask implements Runnable { } } - Trace.beginSection("LoadAllAppsIconsInBulk"); - try { - mIconCache.getTitlesAndIconsInBulk(iconRequestInfos); - iconRequestInfos.forEach(iconRequestInfo -> mBgAllAppsList.updateSectionName(iconRequestInfo.itemInfo)); - } finally { - Trace.endSection(); + if (enableBulkLoading) { + Trace.beginSection("LoadAllAppsIconsInBulk"); + try { + mIconCache.getTitlesAndIconsInBulk(iconRequestInfos); + iconRequestInfos.forEach(iconRequestInfo -> mBgAllAppsList.updateSectionName(iconRequestInfo.itemInfo)); + } finally { + Trace.endSection(); + } } mBgAllAppsList.setFlags(FLAG_QUIET_MODE_ENABLED,