summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
author Matt Casey <mrcasey@google.com> 2024-02-15 05:20:19 +0000
committer Matt Casey <mrcasey@google.com> 2024-02-15 13:57:03 +0000
commit98120650d1177cb17e42cd8209d2a26f5f24473f (patch)
tree6e7765fa19ae954602e3fe6fd46e3c795d38819c /java/src
parent8fd3fc98c8618ee65439a6f955b0988c2b0cf828 (diff)
Fix infinite loop in edit/copy callbacks
Minor refactor to allow for some testing of the change as well. Test: atest chooserActionFactoryTest Test: Manual verification of bug fix with ShareTest Bug: 325365738 Change-Id: I27a785164ad660a37159d5fb7793d2e2e2b8be5c
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 072c56de..25e2521f 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);
}
/*