Updating PinShortcutRequestActivityInfo to provide pinRequest lazily

Bug: 275407282
Test: Verified on device
Change-Id: I81867ada454219b44663b58b942329422fb81196
diff --git a/src/com/android/launcher3/dragndrop/PinShortcutRequestActivityInfo.java b/src/com/android/launcher3/dragndrop/PinShortcutRequestActivityInfo.java
index 6b21522..dd74125 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.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 @@
     // actual existing class.
     private static final String STUB_COMPONENT_CLASS = "pinned-shortcut";
 
-    private final PinItemRequest mRequest;
+    private final Supplier<PinItemRequest> 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<PinItemRequest> requestSupplier, Context context) {
+        super(new ComponentName(si.getPackage(), STUB_COMPONENT_CLASS), si.getUserHandle());
+        mRequestSupplier = requestSupplier;
+        mInfo = si;
         mContext = context;
     }
 
@@ -91,7 +97,7 @@
                         true /* isToState */);
         // Delay the actual accept() call until the drop animation is complete.
         return PinRequestHelper.createWorkspaceItemFromPinItemRequest(
-                mContext, mRequest, duration);
+                mContext, mRequestSupplier.get(), duration);
     }
 
     @Override