chore: Cleanup, and hidden feature logged

Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
This commit is contained in:
Pun Butrach committed 2026-01-10 20:48:25 +07:00
1 parent 5180c3d4c4
commit 11f7abcb66
1818 files changed
+104945 -147848

No files matched your search

@@ -16,9 +16,10 @@
package com.android.launcher3.model;
import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT;
import static com.android.launcher3.model.data.AppsListData.FLAG_PRIVATE_PROFILE_QUIET_MODE_ENABLED;
import static com.android.launcher3.model.data.AppsListData.FLAG_QUIET_MODE_ENABLED;
import static com.android.launcher3.model.data.AppsListData.FLAG_WORK_PROFILE_QUIET_MODE_ENABLED;
import static com.android.launcher3.model.BgDataModel.Callbacks.FLAG_PRIVATE_PROFILE_QUIET_MODE_ENABLED;
import static com.android.launcher3.model.BgDataModel.Callbacks.FLAG_QUIET_MODE_ENABLED;
import static com.android.launcher3.model.BgDataModel.Callbacks.FLAG_WORK_PROFILE_QUIET_MODE_ENABLED;
import static com.android.launcher3.model.ModelUtils.WIDGET_FILTER;
import static com.android.launcher3.model.data.ItemInfoWithIcon.FLAG_ARCHIVED;
import static com.android.launcher3.model.data.LauncherAppWidgetInfo.FLAG_PROVIDER_NOT_READY;
import static com.android.launcher3.model.data.WorkspaceItemInfo.FLAG_AUTOINSTALL_ICON;
@@ -59,6 +60,7 @@ import com.android.launcher3.util.PackageManagerHelper;
import com.android.launcher3.util.PackageUserKey;
import com.android.launcher3.util.SafeCloseable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
@@ -237,12 +239,12 @@ public class PackageUpdatedTask implements ModelUpdateTask {
// Update shortcut infos
if (mOp == OP_ADD || flagOp != FlagOp.NO_OP) {
final List<ItemInfo> updatedItems;
final ArrayList<ItemInfo> updatedWorkspaceItems = new ArrayList<>();
// For system apps, package manager send OP_UPDATE when an app is enabled.
final boolean isNewApkAvailable = mOp == OP_ADD || mOp == OP_UPDATE;
synchronized (dataModel) {
updatedItems = dataModel.updateAndCollectWorkspaceItemInfos(mUser, itemInfo -> {
dataModel.forAllWorkspaceItemInfos(mUser, itemInfo -> {
boolean infoUpdated = false;
boolean shortcutUpdated = false;
@@ -254,7 +256,7 @@ public class PackageUpdatedTask implements ModelUpdateTask {
if (itemInfo.hasStatusFlag(WorkspaceItemInfo.FLAG_SUPPORTS_WEB_UI)) {
forceKeepShortcuts.add(itemInfo.id);
if (mOp == OP_REMOVE) {
return false;
return;
}
}
@@ -311,7 +313,7 @@ public class PackageUpdatedTask implements ModelUpdateTask {
+ ", status=" + itemInfo.status
+ ", isArchived=" + itemInfo.isArchived());
}
return false;
return;
}
} else if (!isTargetValid) {
removedShortcuts.add(itemInfo.id);
@@ -322,7 +324,7 @@ public class PackageUpdatedTask implements ModelUpdateTask {
+ " package=" + itemInfo.getTargetPackage()
+ " status=" + itemInfo.status);
}
return false;
return;
} else {
itemInfo.status = WorkspaceItemInfo.DEFAULT;
infoUpdated = true;
@@ -377,30 +379,36 @@ public class PackageUpdatedTask implements ModelUpdateTask {
}
}
if (infoUpdated || shortcutUpdated) {
updatedWorkspaceItems.add(itemInfo);
}
if (infoUpdated && itemInfo.id != ItemInfo.NO_ID) {
taskController.getModelWriter().updateItemInDatabase(itemInfo);
}
return infoUpdated || shortcutUpdated;
}, widget -> {
if (widget.hasRestoreFlag(FLAG_PROVIDER_NOT_READY)
&& packageSet.contains(widget.providerName.getPackageName())) {
widget.restoreStatus &=
~FLAG_PROVIDER_NOT_READY
& ~LauncherAppWidgetInfo.FLAG_RESTORE_STARTED;
// adding this flag ensures that launcher shows 'click to setup'
// if the widget has a config activity. In case there is no config
// activity, it will be marked as 'restored' during bind.
widget.restoreStatus |= LauncherAppWidgetInfo.FLAG_UI_NOT_READY;
widget.installProgress = 100;
taskController.getModelWriter().updateItemInDatabase(widget);
return true;
}
return false;
});
dataModel.itemsIdMap.stream()
.filter(WIDGET_FILTER)
.filter(item -> mUser.equals(item.user))
.map(item -> (LauncherAppWidgetInfo) item)
.filter(widget -> widget.hasRestoreFlag(FLAG_PROVIDER_NOT_READY)
&& packageSet.contains(widget.providerName.getPackageName()))
.forEach(widgetInfo -> {
widgetInfo.restoreStatus &=
~FLAG_PROVIDER_NOT_READY
& ~LauncherAppWidgetInfo.FLAG_RESTORE_STARTED;
// adding this flag ensures that launcher shows 'click to setup'
// if the widget has a config activity. In case there is no config
// activity, it will be marked as 'restored' during bind.
widgetInfo.restoreStatus |= LauncherAppWidgetInfo.FLAG_UI_NOT_READY;
widgetInfo.installProgress = 100;
updatedWorkspaceItems.add(widgetInfo);
taskController.getModelWriter().updateItemInDatabase(widgetInfo);
});
}
taskController.bindUpdatedWorkspaceItems(updatedItems);
taskController.bindUpdatedWorkspaceItems(updatedWorkspaceItems);
if (!removedShortcuts.isEmpty()) {
taskController.deleteAndBindComponentsRemoved(
ItemInfoMatcher.ofItemIds(removedShortcuts),