diff options
| author | 2023-02-04 05:34:26 +0000 | |
|---|---|---|
| committer | 2023-02-04 05:34:26 +0000 | |
| commit | fb86bd0412c7a771ff4e314eaa35fcfc68c6c568 (patch) | |
| tree | f10f091f6954ad917132c435c330dc32515c533e /java/src/com | |
| parent | 046abfea3d685dd0d56d364165b153812debe133 (diff) | |
| parent | af0d515fdc4968e0858da5e01a2632d497b2afd1 (diff) | |
Add MultiDisplayResolveInfo#cloneFilledIn() implementation. am: 651ea96e4e am: af0d515fdc
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/IntentResolver/+/21225073
Change-Id: Ida1edd4d0d2136a0f18cbe95679ec6538c37d0a3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'java/src/com')
| -rw-r--r-- | java/src/com/android/intentresolver/chooser/DisplayResolveInfo.java | 4 | ||||
| -rw-r--r-- | java/src/com/android/intentresolver/chooser/MultiDisplayResolveInfo.java | 19 |
2 files changed, 20 insertions, 3 deletions
diff --git a/java/src/com/android/intentresolver/chooser/DisplayResolveInfo.java b/java/src/com/android/intentresolver/chooser/DisplayResolveInfo.java index db5ae0b4..1b729c0e 100644 --- a/java/src/com/android/intentresolver/chooser/DisplayResolveInfo.java +++ b/java/src/com/android/intentresolver/chooser/DisplayResolveInfo.java @@ -169,6 +169,10 @@ public class DisplayResolveInfo implements TargetInfo { @Override public TargetInfo cloneFilledIn(Intent fillInIntent, int flags) { + return cloneFilledInInternal(fillInIntent, flags); + } + + protected final DisplayResolveInfo cloneFilledInInternal(Intent fillInIntent, int flags) { return new DisplayResolveInfo(this, fillInIntent, flags, mPresentationGetter); } diff --git a/java/src/com/android/intentresolver/chooser/MultiDisplayResolveInfo.java b/java/src/com/android/intentresolver/chooser/MultiDisplayResolveInfo.java index 29f00a35..e4cec887 100644 --- a/java/src/com/android/intentresolver/chooser/MultiDisplayResolveInfo.java +++ b/java/src/com/android/intentresolver/chooser/MultiDisplayResolveInfo.java @@ -17,6 +17,7 @@ package com.android.intentresolver.chooser; import android.app.Activity; +import android.content.Intent; import android.os.Bundle; import android.os.UserHandle; @@ -30,7 +31,7 @@ import java.util.List; */ public class MultiDisplayResolveInfo extends DisplayResolveInfo { - ArrayList<DisplayResolveInfo> mTargetInfos = new ArrayList<>(); + final ArrayList<DisplayResolveInfo> mTargetInfos; // Index of selected target private int mSelected = -1; @@ -66,8 +67,9 @@ public class MultiDisplayResolveInfo extends DisplayResolveInfo { /** * List of all {@link DisplayResolveInfo}s included in this target. - * TODO: provide as a generic {@code List<DisplayResolveInfo>} once {@link ChooserActivity} - * stops requiring the signature to match that of the other "lists" it builds up. + * TODO: provide as a generic {@code List<DisplayResolveInfo>} once + * {@link com.android.intentresolver.ChooserActivity} stops requiring the signature to match + * that of the other "lists" it builds up. */ @Override public ArrayList<DisplayResolveInfo> getAllDisplayTargets() { @@ -93,6 +95,17 @@ public class MultiDisplayResolveInfo extends DisplayResolveInfo { } @Override + public TargetInfo cloneFilledIn(Intent fillInIntent, int flags) { + ArrayList<DisplayResolveInfo> targetInfos = new ArrayList<>(mTargetInfos.size()); + for (int i = 0, size = mTargetInfos.size(); i < size; i++) { + targetInfos.add(mTargetInfos.get(i).cloneFilledInInternal(fillInIntent, flags)); + } + MultiDisplayResolveInfo clone = new MultiDisplayResolveInfo(targetInfos); + clone.mSelected = mSelected; + return clone; + } + + @Override public boolean start(Activity activity, Bundle options) { return mTargetInfos.get(mSelected).start(activity, options); } |