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

Commit 69d342ab authored by Sunny Goyal's avatar Sunny Goyal Committed by Automerger Merge Worker
Browse files

Merge "Adding support for easily extending Launcher DragAndDrop support" into tm-dev am: d7281d09

parents 2cc50ce1 d7281d09
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.launcher3.appprediction;
import static com.android.quickstep.InstantAppResolverImpl.COMPONENT_CLASS_MARKER;

import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;

import com.android.launcher3.LauncherSettings;
@@ -38,8 +39,8 @@ public class InstantAppItemInfo extends AppInfo {
    }

    @Override
    public WorkspaceItemInfo makeWorkspaceItem() {
        WorkspaceItemInfo workspaceItemInfo = super.makeWorkspaceItem();
    public WorkspaceItemInfo makeWorkspaceItem(Context context) {
        WorkspaceItemInfo workspaceItemInfo = super.makeWorkspaceItem(context);
        workspaceItemInfo.itemType = LauncherSettings.Favorites.ITEM_TYPE_APPLICATION;
        workspaceItemInfo.status = WorkspaceItemInfo.FLAG_AUTOINSTALL_ICON
                | WorkspaceItemInfo.FLAG_RESTORE_STARTED
+2 −2
Original line number Diff line number Diff line
@@ -85,7 +85,7 @@ public class PredictionUpdateTask extends BaseModelUpdateTask {
                        .filter(info -> user.equals(info.user) && cn.equals(info.componentName))
                        .map(ai -> {
                            app.getIconCache().getTitleAndIcon(ai, false);
                            return ai.makeWorkspaceItem();
                            return ai.makeWorkspaceItem(context);
                        })
                        .findAny()
                        .orElseGet(() -> {
@@ -96,7 +96,7 @@ public class PredictionUpdateTask extends BaseModelUpdateTask {
                            }
                            AppInfo ai = new AppInfo(context, lai, user);
                            app.getIconCache().getTitleAndIcon(ai, lai, false);
                            return ai.makeWorkspaceItem();
                            return ai.makeWorkspaceItem(context);
                        });

                if (itemInfo == null) {
+1 −1
Original line number Diff line number Diff line
@@ -460,7 +460,7 @@ public class QuickstepModelDelegate extends ModelDelegate {
                    AppInfo info = new AppInfo(lai, user, mUMS.isUserQuiet(user));
                    mAppState.getIconCache().getTitleAndIcon(info, lai, false);
                    mReadCount++;
                    return info.makeWorkspaceItem();
                    return info.makeWorkspaceItem(mAppState.getContext());
                }
                case ITEM_TYPE_DEEP_SHORTCUT: {
                    ShortcutKey key = ShortcutKey.fromIntent(intent, user);
+2 −1
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ import com.android.launcher3.shortcuts.DeepShortcutView;
import com.android.launcher3.util.ComponentKey;
import com.android.launcher3.util.LauncherBindableItemsContainer;
import com.android.launcher3.util.PackageUserKey;
import com.android.launcher3.util.ShortcutUtil;
import com.android.launcher3.util.SplitConfigurationOptions.SplitPositionOption;
import com.android.launcher3.views.ActivityContext;
import com.android.quickstep.SystemUiProxy;
@@ -136,7 +137,7 @@ public class TaskbarPopupController implements TaskbarControllers.LoggableTaskba
            return null;
        }
        ItemInfo item = (ItemInfo) icon.getTag();
        if (!PopupContainerWithArrow.canShow(icon, item)) {
        if (!ShortcutUtil.supportsShortcuts(item)) {
            return null;
        }

+21 −16
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ import androidx.annotation.UiThread;

import com.android.launcher3.accessibility.BaseAccessibilityDelegate;
import com.android.launcher3.dot.DotInfo;
import com.android.launcher3.dragndrop.DragOptions.PreDragCondition;
import com.android.launcher3.dragndrop.DraggableView;
import com.android.launcher3.folder.FolderIcon;
import com.android.launcher3.graphics.IconShape;
@@ -65,12 +66,11 @@ import com.android.launcher3.icons.cache.HandlerRunnable;
import com.android.launcher3.model.data.AppInfo;
import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.model.data.ItemInfoWithIcon;
import com.android.launcher3.model.data.PackageItemInfo;
import com.android.launcher3.model.data.SearchActionItemInfo;
import com.android.launcher3.model.data.WorkspaceItemInfo;
import com.android.launcher3.popup.PopupContainerWithArrow;
import com.android.launcher3.util.SafeCloseable;
import com.android.launcher3.util.ShortcutUtil;
import com.android.launcher3.views.ActivityContext;
import com.android.launcher3.views.BubbleTextHolder;
import com.android.launcher3.views.IconLabelDotView;

import java.text.NumberFormat;
@@ -174,7 +174,6 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver,
    private HandlerRunnable mIconLoadRequest;

    private boolean mEnableIconUpdateAnimation = false;
    private BubbleTextHolder mBubbleTextHolder;

    public BubbleTextView(Context context) {
        this(context, null, 0);
@@ -362,15 +361,8 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver,
        setDownloadStateContentDescription(info, info.getProgressLevel());
    }

    private void setItemInfo(ItemInfoWithIcon itemInfo) {
    protected void setItemInfo(ItemInfoWithIcon itemInfo) {
        setTag(itemInfo);
        if (mBubbleTextHolder != null) {
            mBubbleTextHolder.onItemInfoUpdated(itemInfo);
        }
    }

    public void setBubbleTextHolder(BubbleTextHolder bubbleTextHolder) {
        mBubbleTextHolder = bubbleTextHolder;
    }

    @UiThread
@@ -920,10 +912,8 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver,
            } else if (info instanceof WorkspaceItemInfo) {
                applyFromWorkspaceItem((WorkspaceItemInfo) info);
                mActivity.invalidateParent(info);
            } else if (info instanceof PackageItemInfo) {
                applyFromItemInfoWithIcon((PackageItemInfo) info);
            } else if (info instanceof SearchActionItemInfo) {
                applyFromItemInfoWithIcon((SearchActionItemInfo) info);
            } else if (info != null) {
                applyFromItemInfoWithIcon(info);
            }

            mDisableRelayout = false;
@@ -1061,4 +1051,19 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver,
        args.put("count", notificationCount);
        return icuCountFormat.format(args);
    }

    /**
     * Starts a long press action and returns the corresponding pre-drag condition
     */
    public PreDragCondition startLongPressAction() {
        PopupContainerWithArrow popup = PopupContainerWithArrow.showForIcon(this);
        return popup != null ? popup.createPreDragCondition(true) : null;
    }

    /**
     * Returns true if the view can show long-press popup
     */
    public boolean canShowLongPressPopup() {
        return getTag() instanceof ItemInfo && ShortcutUtil.supportsShortcuts((ItemInfo) getTag());
    }
}
Loading