From f2df8963ed72d06089d4b62404015b0d64e5141a Mon Sep 17 00:00:00 2001 From: Miranda Kephart Date: Thu, 16 Dec 2021 16:05:09 -0500 Subject: [PATCH] Add clipboard overlay prototype Adds a floating window/overlay (similar to screenshots) when something is copied to the clipboard. Opens Markup or a lightweight test editing activity (as appropriate) when edit is tapped. Bug: 195554988 Test: manual (tested copying text/images, and interactions with screenshots) Change-Id: I02aff237a1245ed2fed130d5e43112472d320a9c --- .../sysui/SystemUiDeviceConfigFlags.java | 6 + packages/SystemUI/AndroidManifest.xml | 10 + .../res/drawable/ic_baseline_devices_24.xml | 27 + .../res/layout/clipboard_content_preview.xml | 60 +++ .../layout/clipboard_edit_text_activity.xml | 60 +++ .../SystemUI/res/layout/clipboard_overlay.xml | 61 +++ packages/SystemUI/res/values-night/styles.xml | 9 + packages/SystemUI/res/values/config.xml | 1 + packages/SystemUI/res/values/strings.xml | 5 + packages/SystemUI/res/values/styles.xml | 8 + .../clipboardoverlay/ClipboardListener.java | 72 +++ .../ClipboardOverlayController.java | 471 ++++++++++++++++++ .../DraggableConstraintLayout.java | 108 ++++ .../clipboardoverlay/EditTextActivity.java | 82 +++ .../systemui/dagger/SystemUIBinder.java | 7 + .../screenshot/FloatingWindowUtil.java | 75 +++ .../screenshot/ScreenshotActionChip.java | 20 +- .../screenshot/ScreenshotController.java | 118 ++--- .../systemui/screenshot/ScreenshotView.java | 197 ++------ .../screenshot/SwipeDismissHandler.java | 210 ++++++++ .../screenshot/TakeScreenshotService.java | 4 +- .../systemui/screenshot/TimeoutHandler.java | 102 ++++ 22 files changed, 1465 insertions(+), 248 deletions(-) create mode 100644 packages/SystemUI/res/drawable/ic_baseline_devices_24.xml create mode 100644 packages/SystemUI/res/layout/clipboard_content_preview.xml create mode 100644 packages/SystemUI/res/layout/clipboard_edit_text_activity.xml create mode 100644 packages/SystemUI/res/layout/clipboard_overlay.xml create mode 100644 packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardListener.java create mode 100644 packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java create mode 100644 packages/SystemUI/src/com/android/systemui/clipboardoverlay/DraggableConstraintLayout.java create mode 100644 packages/SystemUI/src/com/android/systemui/clipboardoverlay/EditTextActivity.java create mode 100644 packages/SystemUI/src/com/android/systemui/screenshot/FloatingWindowUtil.java create mode 100644 packages/SystemUI/src/com/android/systemui/screenshot/SwipeDismissHandler.java create mode 100644 packages/SystemUI/src/com/android/systemui/screenshot/TimeoutHandler.java diff --git a/core/java/com/android/internal/config/sysui/SystemUiDeviceConfigFlags.java b/core/java/com/android/internal/config/sysui/SystemUiDeviceConfigFlags.java index f90461048a3b5..13a39de3e3653 100644 --- a/core/java/com/android/internal/config/sysui/SystemUiDeviceConfigFlags.java +++ b/core/java/com/android/internal/config/sysui/SystemUiDeviceConfigFlags.java @@ -523,6 +523,12 @@ public final class SystemUiDeviceConfigFlags { */ public static final String TASK_MANAGER_ENABLED = "task_manager_enabled"; + + /** + * (boolean) Whether the clipboard overlay is enabled. + */ + public static final String CLIPBOARD_OVERLAY_ENABLED = "clipboard_overlay_enabled"; + private SystemUiDeviceConfigFlags() { } } diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index e907efbacb081..a741514209d98 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -299,6 +299,9 @@ + + + @@ -348,6 +351,7 @@ @@ -760,6 +764,12 @@ + + + + + + + diff --git a/packages/SystemUI/res/layout/clipboard_content_preview.xml b/packages/SystemUI/res/layout/clipboard_content_preview.xml new file mode 100644 index 0000000000000..7317a9480001b --- /dev/null +++ b/packages/SystemUI/res/layout/clipboard_content_preview.xml @@ -0,0 +1,60 @@ + + + + + + + + + diff --git a/packages/SystemUI/res/layout/clipboard_edit_text_activity.xml b/packages/SystemUI/res/layout/clipboard_edit_text_activity.xml new file mode 100644 index 0000000000000..8f6753a095d0a --- /dev/null +++ b/packages/SystemUI/res/layout/clipboard_edit_text_activity.xml @@ -0,0 +1,60 @@ + + + +