From 13a6b228a58909b874246846b7a74ef20624b0da Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Tue, 28 Mar 2023 12:46:17 -0700 Subject: [PATCH] Updating PinShortcutRequestActivityInfo to provide pinRequest lazily Bug: 275407282 Test: Verified on device Change-Id: I81867ada454219b44663b58b942329422fb81196 --- .../PinShortcutRequestActivityInfo.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/com/android/launcher3/dragndrop/PinShortcutRequestActivityInfo.java b/src/com/android/launcher3/dragndrop/PinShortcutRequestActivityInfo.java index 6b215229fd..dd74125573 100644 --- a/src/com/android/launcher3/dragndrop/PinShortcutRequestActivityInfo.java +++ b/src/com/android/launcher3/dragndrop/PinShortcutRequestActivityInfo.java @@ -39,6 +39,8 @@ import com.android.launcher3.model.data.WorkspaceItemInfo; import com.android.launcher3.pm.PinRequestHelper; import com.android.launcher3.pm.ShortcutConfigActivityInfo; +import java.util.function.Supplier; + /** * Extension of ShortcutConfigActivityInfo to be used in the confirmation prompt for pin item * request. @@ -50,15 +52,19 @@ public class PinShortcutRequestActivityInfo extends ShortcutConfigActivityInfo { // actual existing class. private static final String STUB_COMPONENT_CLASS = "pinned-shortcut"; - private final PinItemRequest mRequest; + private final Supplier mRequestSupplier; private final ShortcutInfo mInfo; private final Context mContext; public PinShortcutRequestActivityInfo(PinItemRequest request, Context context) { - super(new ComponentName(request.getShortcutInfo().getPackage(), STUB_COMPONENT_CLASS), - request.getShortcutInfo().getUserHandle()); - mRequest = request; - mInfo = request.getShortcutInfo(); + this(request.getShortcutInfo(), () -> request, context); + } + + public PinShortcutRequestActivityInfo( + ShortcutInfo si, Supplier requestSupplier, Context context) { + super(new ComponentName(si.getPackage(), STUB_COMPONENT_CLASS), si.getUserHandle()); + mRequestSupplier = requestSupplier; + mInfo = si; mContext = context; } @@ -91,7 +97,7 @@ public class PinShortcutRequestActivityInfo extends ShortcutConfigActivityInfo { true /* isToState */); // Delay the actual accept() call until the drop animation is complete. return PinRequestHelper.createWorkspaceItemFromPinItemRequest( - mContext, mRequest, duration); + mContext, mRequestSupplier.get(), duration); } @Override