From 4b77d80772e2d52202d6ffe0171a91edf38ab09c Mon Sep 17 00:00:00 2001 From: Miranda Kephart Date: Wed, 16 Nov 2022 11:11:51 -0500 Subject: Add clip source to clipboard UI logging Bug: 246808749 Test: atest ClipboardOverlayControllerTest Change-Id: I596e25cbab36f445a31def9dd6111681f3b6f2c1 --- .../clipboardoverlay/ClipboardOverlayController.java | 9 ++++++++- .../ClipboardOverlayControllerTest.java | 19 ++++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java index c853671519c0..fb37defd844d 100644 --- a/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java +++ b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java @@ -266,6 +266,7 @@ public class ClipboardOverlayController implements ClipboardListener.ClipboardOv mExitAnimator.cancel(); } reset(); + mClipboardLogger.setClipSource(clipSource); String accessibilityAnnouncement = mContext.getString(R.string.clipboard_content_copied); boolean isSensitive = clipData != null && clipData.getDescription().getExtras() != null @@ -525,21 +526,27 @@ public class ClipboardOverlayController implements ClipboardListener.ClipboardOv static class ClipboardLogger { private final UiEventLogger mUiEventLogger; + private String mClipSource; private boolean mGuarded = false; ClipboardLogger(UiEventLogger uiEventLogger) { mUiEventLogger = uiEventLogger; } + void setClipSource(String clipSource) { + mClipSource = clipSource; + } + void logSessionComplete(@NonNull UiEventLogger.UiEventEnum event) { if (!mGuarded) { mGuarded = true; - mUiEventLogger.log(event); + mUiEventLogger.log(event, 0, mClipSource); } } void reset() { mGuarded = false; + mClipSource = null; } } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardOverlayControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardOverlayControllerTest.java index a872e4b96cce..d6e621f1f135 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardOverlayControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardOverlayControllerTest.java @@ -25,6 +25,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; import android.animation.Animator; @@ -171,7 +172,7 @@ public class ClipboardOverlayControllerTest extends SysuiTestCase { mCallbacks.onShareButtonTapped(); - verify(mUiEventLogger, times(1)).log(CLIPBOARD_OVERLAY_SHARE_TAPPED); + verify(mUiEventLogger, times(1)).log(CLIPBOARD_OVERLAY_SHARE_TAPPED, 0, ""); verify(mClipboardOverlayView, times(1)).getExitAnimation(); } @@ -181,7 +182,7 @@ public class ClipboardOverlayControllerTest extends SysuiTestCase { mCallbacks.onDismissButtonTapped(); - verify(mUiEventLogger, times(1)).log(CLIPBOARD_OVERLAY_DISMISS_TAPPED); + verify(mUiEventLogger, times(1)).log(CLIPBOARD_OVERLAY_DISMISS_TAPPED, 0, ""); verify(mClipboardOverlayView, times(1)).getExitAnimation(); } @@ -192,7 +193,7 @@ public class ClipboardOverlayControllerTest extends SysuiTestCase { mCallbacks.onSwipeDismissInitiated(mAnimator); mCallbacks.onDismissButtonTapped(); - verify(mUiEventLogger, times(1)).log(CLIPBOARD_OVERLAY_SWIPE_DISMISSED); + verify(mUiEventLogger, times(1)).log(CLIPBOARD_OVERLAY_SWIPE_DISMISSED, 0, null); verify(mUiEventLogger, never()).log(CLIPBOARD_OVERLAY_DISMISS_TAPPED); } @@ -224,4 +225,16 @@ public class ClipboardOverlayControllerTest extends SysuiTestCase { verify(mTimeoutHandler).resetTimeout(); } + + @Test + public void test_logsUseLastClipSource() { + mOverlayController.setClipData(mSampleClipData, "first.package"); + mCallbacks.onDismissButtonTapped(); + mOverlayController.setClipData(mSampleClipData, "second.package"); + mCallbacks.onDismissButtonTapped(); + + verify(mUiEventLogger).log(CLIPBOARD_OVERLAY_DISMISS_TAPPED, 0, "first.package"); + verify(mUiEventLogger).log(CLIPBOARD_OVERLAY_DISMISS_TAPPED, 0, "second.package"); + verifyNoMoreInteractions(mUiEventLogger); + } } -- cgit v1.2.3-59-g8ed1b