diff --git a/packages/SystemUI/res/drawable/screenshot_border.xml b/packages/SystemUI/res/drawable/overlay_border.xml
similarity index 100%
rename from packages/SystemUI/res/drawable/screenshot_border.xml
rename to packages/SystemUI/res/drawable/overlay_border.xml
diff --git a/packages/SystemUI/res/drawable/screenshot_cancel.xml b/packages/SystemUI/res/drawable/overlay_cancel.xml
similarity index 100%
rename from packages/SystemUI/res/drawable/screenshot_cancel.xml
rename to packages/SystemUI/res/drawable/overlay_cancel.xml
diff --git a/packages/SystemUI/res/drawable/screenshot_preview_background.xml b/packages/SystemUI/res/drawable/overlay_preview_background.xml
similarity index 100%
rename from packages/SystemUI/res/drawable/screenshot_preview_background.xml
rename to packages/SystemUI/res/drawable/overlay_preview_background.xml
diff --git a/packages/SystemUI/res/layout/clipboard_content_preview.xml b/packages/SystemUI/res/layout/clipboard_content_preview.xml
deleted file mode 100644
index 7317a9480001b..0000000000000
--- a/packages/SystemUI/res/layout/clipboard_content_preview.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/packages/SystemUI/res/layout/clipboard_overlay.xml b/packages/SystemUI/res/layout/clipboard_overlay.xml
index 76280d816cd90..7ffb3b2358122 100644
--- a/packages/SystemUI/res/layout/clipboard_overlay.xml
+++ b/packages/SystemUI/res/layout/clipboard_overlay.xml
@@ -17,9 +17,8 @@
+ android:layout_height="match_parent">
-
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/SystemUI/res/layout/screenshot.xml b/packages/SystemUI/res/layout/screenshot.xml
index 7c0ee665755ae..227212bd46345 100644
--- a/packages/SystemUI/res/layout/screenshot.xml
+++ b/packages/SystemUI/res/layout/screenshot.xml
@@ -40,7 +40,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
- android:elevation="@dimen/screenshot_preview_elevation"
+ android:elevation="@dimen/overlay_preview_elevation"
android:src="@android:color/white"/>
+ app:layout_constraintEnd_toEndOf="@id/screenshot_preview_end"
+ app:layout_constraintTop_toTopOf="@id/screenshot_preview_top"/>
+ app:layout_constraintBottom_toBottomOf="@id/screenshot_preview_border"
+ app:layout_constraintStart_toStartOf="@id/screenshot_preview_border"
+ app:layout_constraintEnd_toEndOf="@id/screenshot_preview_border"
+ app:layout_constraintTop_toTopOf="@id/screenshot_preview_border">
+ android:layout_margin="@dimen/overlay_dismiss_button_margin"
+ android:src="@drawable/overlay_cancel"/>
+ android:elevation="@dimen/overlay_preview_elevation"/>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index ceaacfc1271b0..67d5b2f02d3b3 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -261,11 +261,6 @@
80dp
242dp
- 4dp
- 8dp
- 16dp
- 48dp
- 8dp
18dp
4dp
8dp
@@ -289,6 +284,19 @@
3dp
8dp
+
+ 8dp
+ 16dp
+ 4dp
+ 7dp
+ 48dp
+ 8dp
+ 4dp
+
+ -4dp
+
+ @dimen/screenshot_x_scale
+
70dp
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index 41d5735c8d804..1835d2b14bae3 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -2364,4 +2364,6 @@
Copy
Copied
+
+ Dismiss copy UI
diff --git a/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java
index ae0702c68201a..caf0307d44360 100644
--- a/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java
+++ b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java
@@ -59,6 +59,7 @@ import android.view.View;
import android.view.ViewTreeObserver;
import android.view.WindowInsets;
import android.view.WindowManager;
+import android.view.accessibility.AccessibilityManager;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
@@ -91,6 +92,7 @@ public class ClipboardOverlayController {
private final WindowManager.LayoutParams mWindowLayoutParams;
private final PhoneWindow mWindow;
private final TimeoutHandler mTimeoutHandler;
+ private final AccessibilityManager mAccessibilityManager;
private final DraggableConstraintLayout mView;
private final ImageView mImagePreview;
@@ -98,6 +100,7 @@ public class ClipboardOverlayController {
private final ScreenshotActionChip mEditChip;
private final ScreenshotActionChip mRemoteCopyChip;
private final View mActionContainerBackground;
+ private final View mDismissButton;
private Runnable mOnSessionCompleteListener;
@@ -113,6 +116,8 @@ public class ClipboardOverlayController {
final Context displayContext = context.createDisplayContext(getDefaultDisplay());
mContext = displayContext.createWindowContext(TYPE_SCREENSHOT, null);
+ mAccessibilityManager = AccessibilityManager.getInstance(mContext);
+
mWindowManager = mContext.getSystemService(WindowManager.class);
mTimeoutHandler = timeoutHandler;
@@ -135,10 +140,13 @@ public class ClipboardOverlayController {
mTextPreview = requireNonNull(mView.findViewById(R.id.text_preview));
mEditChip = requireNonNull(mView.findViewById(R.id.edit_chip));
mRemoteCopyChip = requireNonNull(mView.findViewById(R.id.remote_copy_chip));
+ mDismissButton = requireNonNull(mView.findViewById(R.id.dismiss_button));
mView.setOnDismissCallback(this::hideImmediate);
mView.setOnInteractionCallback(() -> mTimeoutHandler.resetTimeout());
+ mDismissButton.setOnClickListener(view -> animateOut());
+
mEditChip.setIcon(Icon.createWithResource(mContext, R.drawable.ic_screenshot_edit), true);
mRemoteCopyChip.setIcon(
Icon.createWithResource(mContext, R.drawable.ic_baseline_devices_24), true);
@@ -158,10 +166,10 @@ public class ClipboardOverlayController {
withWindowAttached(() -> {
mWindow.setContentView(mView);
updateInsets(mWindowManager.getCurrentWindowMetrics().getWindowInsets());
- getEnterAnimation().start();
+ mView.post(() -> getEnterAnimation().start());
});
- mTimeoutHandler.setOnTimeoutRunnable(() -> animateOut());
+ mTimeoutHandler.setOnTimeoutRunnable(this::animateOut);
mCloseDialogsReceiver = new BroadcastReceiver() {
@Override
@@ -226,8 +234,8 @@ public class ClipboardOverlayController {
mView.getLocationOnScreen(pt);
Rect rect = new Rect(pt[0], pt[1], pt[0] + mView.getWidth(),
pt[1] + mView.getHeight());
- if (!rect.contains((int) motionEvent.getRawX(),
- (int) motionEvent.getRawY())) {
+ if (!rect.contains(
+ (int) motionEvent.getRawX(), (int) motionEvent.getRawY())) {
animateOut();
}
}
@@ -311,11 +319,15 @@ public class ClipboardOverlayController {
ValueAnimator anim = ValueAnimator.ofFloat(0, 1);
mView.setAlpha(0);
+ mDismissButton.setVisibility(View.GONE);
final View previewBorder = requireNonNull(mView.findViewById(R.id.preview_border));
final View actionBackground = requireNonNull(
mView.findViewById(R.id.actions_container_background));
mImagePreview.setVisibility(View.VISIBLE);
mActionContainerBackground.setVisibility(View.VISIBLE);
+ if (mAccessibilityManager.isEnabled()) {
+ mDismissButton.setVisibility(View.VISIBLE);
+ }
anim.addUpdateListener(animation -> {
mView.setAlpha(animation.getAnimatedFraction());
@@ -385,7 +397,7 @@ public class ClipboardOverlayController {
private void reset() {
mView.setTranslationX(0);
- mView.setAlpha(1);
+ mView.setAlpha(0);
mTimeoutHandler.cancelTimeout();
}