Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 13d50111 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Log the reason why a WorkspaceItemInfo was removed" into tm-dev am: 8eaf87e7

parents cb406595 8eaf87e7
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -160,7 +160,7 @@ public class DeleteDropTarget extends ButtonDropTarget {
        // Remove the item from launcher and the db, we can ignore the containerInfo in this call
        // because we already remove the drag view from the folder (if the drag originated from
        // a folder) in Folder.beginDrag()
        mLauncher.removeItem(view, item, true /* deleteFromDb */);
        mLauncher.removeItem(view, item, true /* deleteFromDb */, "removed by accessibility drop");
        mLauncher.getWorkspace().stripEmptyScreens();
        mLauncher.getDragLayer()
                .announceForAccessibility(getContext().getString(R.string.item_removed));
+21 −8
Original line number Diff line number Diff line
@@ -1956,6 +1956,19 @@ public class Launcher extends StatefulActivity<LauncherState>
     * @param deleteFromDb whether or not to delete this item from the db.
     */
    public boolean removeItem(View v, final ItemInfo itemInfo, boolean deleteFromDb) {
        return removeItem(v, itemInfo, deleteFromDb, null);
    }

    /**
     * Unbinds the view for the specified item, and removes the item and all its children.
     *
     * @param v the view being removed.
     * @param itemInfo the {@link ItemInfo} for this view.
     * @param deleteFromDb whether or not to delete this item from the db.
     * @param reason the resaon for removal.
     */
    public boolean removeItem(View v, final ItemInfo itemInfo, boolean deleteFromDb,
            @Nullable final String reason) {
        if (itemInfo instanceof WorkspaceItemInfo) {
            // Remove the shortcut from the folder before removing it from launcher
            View folderIcon = mWorkspace.getHomescreenIconByItemId(itemInfo.container);
@@ -1965,7 +1978,7 @@ public class Launcher extends StatefulActivity<LauncherState>
                mWorkspace.removeWorkspaceItem(v);
            }
            if (deleteFromDb) {
                getModelWriter().deleteItemFromDatabase(itemInfo);
                getModelWriter().deleteItemFromDatabase(itemInfo, reason);
            }
        } else if (itemInfo instanceof FolderInfo) {
            final FolderInfo folderInfo = (FolderInfo) itemInfo;
@@ -1980,7 +1993,7 @@ public class Launcher extends StatefulActivity<LauncherState>
            final LauncherAppWidgetInfo widgetInfo = (LauncherAppWidgetInfo) itemInfo;
            mWorkspace.removeWorkspaceItem(v);
            if (deleteFromDb) {
                getModelWriter().deleteWidgetInfo(widgetInfo, getAppWidgetHost());
                getModelWriter().deleteWidgetInfo(widgetInfo, getAppWidgetHost(), reason);
            }
        } else {
            return false;
@@ -2399,8 +2412,7 @@ public class Launcher extends StatefulActivity<LauncherState>
                    if (FeatureFlags.IS_STUDIO_BUILD) {
                        throw (new RuntimeException(desc));
                    } else {
                        Log.d(TAG, desc);
                        getModelWriter().deleteItemFromDatabase(item);
                        getModelWriter().deleteItemFromDatabase(item, desc);
                        if (TestProtocol.sDebugTracing) {
                            Log.d(TestProtocol.MISSING_PROMISE_ICON,
                                    TAG + "bindItems failed for item=" + item);
@@ -2480,7 +2492,8 @@ public class Launcher extends StatefulActivity<LauncherState>
        if (item.hasOptionFlag(LauncherAppWidgetInfo.OPTION_SEARCH_WIDGET)) {
            item.providerName = QsbContainerView.getSearchComponentName(this);
            if (item.providerName == null) {
                getModelWriter().deleteItemFromDatabase(item);
                getModelWriter().deleteItemFromDatabase(item,
                        "search widget removed because search component cannot be found");
                return null;
            }
        }
@@ -2531,10 +2544,10 @@ public class Launcher extends StatefulActivity<LauncherState>
            if (!item.hasRestoreFlag(LauncherAppWidgetInfo.FLAG_PROVIDER_NOT_READY)
                    && (item.restoreStatus != LauncherAppWidgetInfo.RESTORE_COMPLETED)) {
                if (appWidgetInfo == null) {
                    FileLog.d(TAG, "Removing restored widget: id=" + item.appWidgetId
                    getModelWriter().deleteItemFromDatabase(item,
                            "Removing restored widget: id=" + item.appWidgetId
                            + " belongs to component " + item.providerName + " user " + item.user
                            + ", as the provider is null and " + removalReason);
                    getModelWriter().deleteItemFromDatabase(item);
                    return null;
                }

@@ -2604,7 +2617,7 @@ public class Launcher extends StatefulActivity<LauncherState>
                // Verify that we own the widget
                if (appWidgetInfo == null) {
                    FileLog.e(TAG, "Removing invalid widget: id=" + item.appWidgetId);
                    getModelWriter().deleteWidgetInfo(item, getAppWidgetHost());
                    getModelWriter().deleteWidgetInfo(item, getAppWidgetHost(), removalReason);
                    return null;
                }

+3 −1
Original line number Diff line number Diff line
@@ -477,7 +477,9 @@ public class LauncherModel extends LauncherApps.Callback implements InstallSessi
                }

                if (!removedIds.isEmpty()) {
                    deleteAndBindComponentsRemoved(ItemInfoMatcher.ofItemIds(removedIds));
                    deleteAndBindComponentsRemoved(
                            ItemInfoMatcher.ofItemIds(removedIds),
                            "removed because install session failed");
                }
            }
        });
+5 −3
Original line number Diff line number Diff line
@@ -3068,7 +3068,8 @@ public class Workspace<T extends View & PageIndicator> extends PagedView<T>
            if (info instanceof LauncherAppWidgetInfo) {
                LauncherAppWidgetInfo appWidgetInfo = (LauncherAppWidgetInfo) info;
                if (appWidgetInfo.appWidgetId == appWidgetId) {
                    mLauncher.removeItem(view, appWidgetInfo, true);
                    mLauncher.removeItem(view, appWidgetInfo, true,
                            "widget is removed in response to widget remove broadcast");
                    return true;
                }
            }
@@ -3318,8 +3319,9 @@ public class Workspace<T extends View & PageIndicator> extends PagedView<T>
     *
     * @param matcher  the matcher generated by the caller.
     */
    public void persistRemoveItemsByMatcher(Predicate<ItemInfo> matcher) {
        mLauncher.getModelWriter().deleteItemsFromDatabase(matcher);
    public void persistRemoveItemsByMatcher(Predicate<ItemInfo> matcher,
            @Nullable final String reason) {
        mLauncher.getModelWriter().deleteItemsFromDatabase(matcher, reason);
        removeItemsByMatcher(matcher);
    }

+2 −1
Original line number Diff line number Diff line
@@ -100,7 +100,8 @@ public class LauncherDelegate {
                    }

                    // Remove the folder
                    mLauncher.removeItem(folder.mFolderIcon, info, true /* deleteFromDb */);
                    mLauncher.removeItem(folder.mFolderIcon, info, true /* deleteFromDb */,
                            "folder removed because there's only 1 item in it");
                    if (folder.mFolderIcon instanceof DropTarget) {
                        folder.mDragController.removeDropTarget((DropTarget) folder.mFolderIcon);
                    }
Loading