summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
author Matt Casey <mrcasey@google.com> 2024-02-15 15:26:09 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-02-15 15:26:09 +0000
commite0d0d0658d2547d4edab56e3a6b46c52f5b29fdc (patch)
treed38192b03421088b797d7dea6e5235215baf9c0c /java/src
parent5c69324432495571e7fcf52cee7180a088e55ed1 (diff)
parent98120650d1177cb17e42cd8209d2a26f5f24473f (diff)
Merge "Fix infinite loop in edit/copy callbacks" into main
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/intentresolver/v2/ChooserActionFactory.java14
-rw-r--r--java/src/com/android/intentresolver/v2/ChooserActivity.java5
2 files changed, 10 insertions, 9 deletions
diff --git a/java/src/com/android/intentresolver/v2/ChooserActionFactory.java b/java/src/com/android/intentresolver/v2/ChooserActionFactory.java
index f9de9f4b..9077a18d 100644
--- a/java/src/com/android/intentresolver/v2/ChooserActionFactory.java
+++ b/java/src/com/android/intentresolver/v2/ChooserActionFactory.java
@@ -131,11 +131,12 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
Callable</* @Nullable */ View> firstVisibleImageQuery,
ActionActivityStarter activityStarter,
@Nullable ShareResultSender shareResultSender,
- Consumer</* @Nullable */ Integer> finishCallback) {
+ Consumer</* @Nullable */ Integer> finishCallback,
+ ClipboardManager clipboardManager) {
this(
context,
makeCopyButtonRunnable(
- context,
+ clipboardManager,
targetIntent,
referrerPackageName,
finishCallback,
@@ -181,13 +182,12 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
if (mShareResultSender != null) {
mEditButtonRunnable = () -> {
mShareResultSender.onActionSelected(ShareAction.SYSTEM_EDIT);
- mEditButtonRunnable.run();
+ editButtonRunnable.run();
};
if (mCopyButtonRunnable != null) {
mCopyButtonRunnable = () -> {
mShareResultSender.onActionSelected(ShareAction.SYSTEM_COPY);
- //noinspection DataFlowIssue
- mCopyButtonRunnable.run();
+ copyButtonRunnable.run();
};
}
}
@@ -245,7 +245,7 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
@Nullable
private static Runnable makeCopyButtonRunnable(
- Context context,
+ ClipboardManager clipboardManager,
Intent targetIntent,
String referrerPackageName,
Consumer<Integer> finishCallback,
@@ -261,8 +261,6 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
return null;
}
return () -> {
- ClipboardManager clipboardManager = (ClipboardManager) context.getSystemService(
- Context.CLIPBOARD_SERVICE);
clipboardManager.setPrimaryClipAsPackage(clipData, referrerPackageName);
log.logActionSelected(EventLog.SELECTION_TYPE_COPY);
diff --git a/java/src/com/android/intentresolver/v2/ChooserActivity.java b/java/src/com/android/intentresolver/v2/ChooserActivity.java
index 1a7dd9d6..510d3bc9 100644
--- a/java/src/com/android/intentresolver/v2/ChooserActivity.java
+++ b/java/src/com/android/intentresolver/v2/ChooserActivity.java
@@ -47,6 +47,7 @@ import android.app.prediction.AppPredictor;
import android.app.prediction.AppTarget;
import android.app.prediction.AppTargetEvent;
import android.app.prediction.AppTargetId;
+import android.content.ClipboardManager;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
@@ -278,6 +279,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
@Inject public TargetDataLoader mTargetDataLoader;
@Inject public DevicePolicyResources mDevicePolicyResources;
@Inject public PackageManager mPackageManager;
+ @Inject public ClipboardManager mClipboardManager;
@Inject public IntentForwarding mIntentForwarding;
@Inject public ShareResultSenderFactory mShareResultSenderFactory;
@Nullable
@@ -2149,7 +2151,8 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
setResult(status);
}
finish();
- });
+ },
+ mClipboardManager);
}
/*