diff options
| author | 2022-04-01 13:02:49 +0000 | |
|---|---|---|
| committer | 2022-04-01 13:02:49 +0000 | |
| commit | e57ad24bbe04d544f10872f61deeea058364c90e (patch) | |
| tree | a43801295d80f2a458897a7e426f6b4f72d9a625 | |
| parent | a540ab52b28060d25823471b65a9aee346b2ca03 (diff) | |
| parent | daa7263f1fb0d4e7c64196fd4c7e0d3265c13361 (diff) | |
Merge "Add ClipData to clipboard REMOTE_COPY intent" into tm-dev
| -rw-r--r-- | packages/SystemUI/res/values/config.xml | 4 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java | 40 |
2 files changed, 26 insertions, 18 deletions
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index d5331e8eae7e..f2ddf9e645b6 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -446,6 +446,10 @@ This name is in the ComponentName flattened format (package/class) --> <string name="config_screenshotEditor" translatable="false"></string> + <!-- Remote copy default activity. Must handle REMOTE_COPY_ACTION intents. + This name is in the ComponentName flattened format (package/class) --> + <string name="config_remoteCopyPackage" translatable="false"></string> + <!-- On debuggable builds, alert the user if SystemUI PSS goes over this number (in kb) --> <integer name="watch_heap_limit">256000</integer> diff --git a/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java index 8fca295a48fd..29cdf99ed4e5 100644 --- a/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java +++ b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java @@ -221,17 +221,6 @@ public class ClipboardOverlayController { mRemoteCopyChip.setIcon( Icon.createWithResource(mContext, R.drawable.ic_baseline_devices_24), true); - // Only show remote copy if it's available. - PackageManager packageManager = mContext.getPackageManager(); - if (packageManager.resolveActivity(getRemoteCopyIntent(), 0) != null) { - mRemoteCopyChip.setOnClickListener((v) -> { - showNearby(); - }); - mRemoteCopyChip.setAlpha(1f); - } else { - mRemoteCopyChip.setVisibility(View.GONE); - } - attachWindow(); withWindowAttached(() -> { mWindow.setContentView(mContainer); @@ -294,6 +283,20 @@ public class ClipboardOverlayController { showTextPreview( mContext.getResources().getString(R.string.clipboard_overlay_text_copied)); } + Intent remoteCopyIntent = getRemoteCopyIntent(clipData); + // Only show remote copy if it's available. + PackageManager packageManager = mContext.getPackageManager(); + if (remoteCopyIntent != null && packageManager.resolveActivity( + remoteCopyIntent, PackageManager.ResolveInfoFlags.of(0)) != null) { + mRemoteCopyChip.setOnClickListener((v) -> { + mUiEventLogger.log(CLIPBOARD_OVERLAY_REMOTE_COPY_TAPPED); + mContext.startActivity(remoteCopyIntent); + animateOut(); + }); + mRemoteCopyChip.setAlpha(1f); + } else { + mRemoteCopyChip.setVisibility(View.GONE); + } mTimeoutHandler.resetTimeout(); } @@ -397,12 +400,6 @@ public class ClipboardOverlayController { animateOut(); } - private void showNearby() { - mUiEventLogger.log(CLIPBOARD_OVERLAY_REMOTE_COPY_TAPPED); - mContext.startActivity(getRemoteCopyIntent()); - animateOut(); - } - private void showTextPreview(CharSequence text) { mTextPreview.setVisibility(View.VISIBLE); mImagePreview.setVisibility(View.GONE); @@ -442,8 +439,15 @@ public class ClipboardOverlayController { mImagePreview.setOnClickListener(listener); } - private Intent getRemoteCopyIntent() { + private Intent getRemoteCopyIntent(ClipData clipData) { + String remoteCopyPackage = mContext.getString(R.string.config_remoteCopyPackage); + if (TextUtils.isEmpty(remoteCopyPackage)) { + return null; + } Intent nearbyIntent = new Intent(REMOTE_COPY_ACTION); + nearbyIntent.setComponent(ComponentName.unflattenFromString(remoteCopyPackage)); + nearbyIntent.setClipData(clipData); + nearbyIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); nearbyIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); return nearbyIntent; } |