fix: Conflict incoming changes from 15-dev

This commit is contained in:
Pun Butrach committed 2026-01-10 20:49:12 +07:00
1 parent 14e352c827
commit 2e76c99dad
1726 files changed
+146970 -95027

No files matched your search

@@ -16,10 +16,9 @@
package com.android.launcher3.model;
import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT;
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.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.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;
@@ -60,7 +59,6 @@ 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;
@@ -242,12 +240,12 @@ public class PackageUpdatedTask implements ModelUpdateTask {
// Update shortcut infos
if (mOp == OP_ADD || flagOp != FlagOp.NO_OP) {
final ArrayList<ItemInfo> updatedWorkspaceItems = new ArrayList<>();
final List<ItemInfo> updatedItems;
// For system apps, package manager send OP_UPDATE when an app is enabled.
final boolean isNewApkAvailable = mOp == OP_ADD || mOp == OP_UPDATE;
synchronized (dataModel) {
dataModel.forAllWorkspaceItemInfos(mUser, itemInfo -> {
updatedItems = dataModel.updateAndCollectWorkspaceItemInfos(mUser, itemInfo -> {
boolean infoUpdated = false;
boolean shortcutUpdated = false;
@@ -259,7 +257,7 @@ public class PackageUpdatedTask implements ModelUpdateTask {
if (itemInfo.hasStatusFlag(WorkspaceItemInfo.FLAG_SUPPORTS_WEB_UI)) {
forceKeepShortcuts.add(itemInfo.id);
if (mOp == OP_REMOVE) {
return;
return false;
}
}
@@ -316,7 +314,7 @@ public class PackageUpdatedTask implements ModelUpdateTask {
+ ", status=" + itemInfo.status
+ ", isArchived=" + itemInfo.isArchived());
}
return;
return false;
}
} else if (!isTargetValid) {
removedShortcuts.add(itemInfo.id);
@@ -327,7 +325,7 @@ public class PackageUpdatedTask implements ModelUpdateTask {
+ " package=" + itemInfo.getTargetPackage()
+ " status=" + itemInfo.status);
}
return;
return false;
} else {
itemInfo.status = WorkspaceItemInfo.DEFAULT;
infoUpdated = true;
@@ -382,36 +380,30 @@ 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(updatedWorkspaceItems);
taskController.bindUpdatedWorkspaceItems(updatedItems);
if (!removedShortcuts.isEmpty()) {
taskController.deleteAndBindComponentsRemoved(
ItemInfoMatcher.ofItemIds(removedShortcuts),
@@ -475,7 +467,7 @@ public class PackageUpdatedTask implements ModelUpdateTask {
if (PreferenceExtensionsKt.firstBlocking(pref2.getDeckLayout())) {
LawndeckManager deckManager = new LawndeckManager(context);
ModelWriter modelWriter = taskController.getModelWriter();
for (int i = 0; i < packageCount; i++) {
for (int i = 0; i < N; i++) {
deckManager.addNewlyInstalledApp(packages[i], mUser, modelWriter, dataModel);
}
}