diff options
| author | 2024-02-15 05:20:19 +0000 | |
|---|---|---|
| committer | 2024-02-15 13:57:03 +0000 | |
| commit | 98120650d1177cb17e42cd8209d2a26f5f24473f (patch) | |
| tree | 6e7765fa19ae954602e3fe6fd46e3c795d38819c /java/src | |
| parent | 8fd3fc98c8618ee65439a6f955b0988c2b0cf828 (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.java | 14 | ||||
| -rw-r--r-- | java/src/com/android/intentresolver/v2/ChooserActivity.java | 5 |
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); } /* |