Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4b77d807 authored by Miranda Kephart's avatar Miranda Kephart
Browse files

Add clip source to clipboard UI logging

Bug: 246808749
Test: atest ClipboardOverlayControllerTest
Change-Id: I596e25cbab36f445a31def9dd6111681f3b6f2c1
parent 712b0bcd
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -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;
        }
    }
}
+16 −3
Original line number Diff line number Diff line
@@ -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);
    }
}