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

Commit 14fa4631 authored by Miranda Kephart's avatar Miranda Kephart Committed by Automerger Merge Worker
Browse files

Merge "Block clipboard UI when device is locked" into udc-dev am: d6d617e2

parents 31d42c75 d6d617e2
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBO

import static com.google.android.setupcompat.util.WizardManagerHelper.SETTINGS_SECURE_USER_SETUP_COMPLETE;

import android.app.KeyguardManager;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
@@ -57,6 +58,7 @@ public class ClipboardListener implements
    private final Provider<ClipboardOverlayController> mOverlayProvider;
    private final ClipboardToast mClipboardToast;
    private final ClipboardManager mClipboardManager;
    private final KeyguardManager mKeyguardManager;
    private final UiEventLogger mUiEventLogger;
    private ClipboardOverlay mClipboardOverlay;

@@ -65,11 +67,13 @@ public class ClipboardListener implements
            Provider<ClipboardOverlayController> clipboardOverlayControllerProvider,
            ClipboardToast clipboardToast,
            ClipboardManager clipboardManager,
            KeyguardManager keyguardManager,
            UiEventLogger uiEventLogger) {
        mContext = context;
        mOverlayProvider = clipboardOverlayControllerProvider;
        mClipboardToast = clipboardToast;
        mClipboardManager = clipboardManager;
        mKeyguardManager = keyguardManager;
        mUiEventLogger = uiEventLogger;
    }

@@ -92,7 +96,9 @@ public class ClipboardListener implements
            return;
        }

        if (!isUserSetupComplete() // user should not access intents from this state
        // user should not access intents before setup or while device is locked
        if (mKeyguardManager.isDeviceLocked()
                || !isUserSetupComplete()
                || clipData == null // shouldn't happen, but just in case
                || clipData.getItemCount() == 0) {
            if (shouldShowToast(clipData)) {
+17 −1
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;

import android.app.KeyguardManager;
import android.content.ClipData;
import android.content.ClipDescription;
import android.content.ClipboardManager;
@@ -59,6 +60,8 @@ public class ClipboardListenerTest extends SysuiTestCase {
    @Mock
    private ClipboardManager mClipboardManager;
    @Mock
    private KeyguardManager mKeyguardManager;
    @Mock
    private ClipboardOverlayController mOverlayController;
    @Mock
    private ClipboardToast mClipboardToast;
@@ -96,7 +99,7 @@ public class ClipboardListenerTest extends SysuiTestCase {
        when(mClipboardManager.getPrimaryClipSource()).thenReturn(mSampleSource);

        mClipboardListener = new ClipboardListener(getContext(), mOverlayControllerProvider,
                mClipboardToast, mClipboardManager, mUiEventLogger);
                mClipboardToast, mClipboardManager, mKeyguardManager, mUiEventLogger);
    }


@@ -190,6 +193,19 @@ public class ClipboardListenerTest extends SysuiTestCase {
        verifyZeroInteractions(mOverlayControllerProvider);
    }

    @Test
    public void test_deviceLocked_showsToast() {
        when(mKeyguardManager.isDeviceLocked()).thenReturn(true);

        mClipboardListener.start();
        mClipboardListener.onPrimaryClipChanged();

        verify(mUiEventLogger, times(1)).log(
                ClipboardOverlayEvent.CLIPBOARD_TOAST_SHOWN, 0, mSampleSource);
        verify(mClipboardToast, times(1)).showCopiedToast();
        verifyZeroInteractions(mOverlayControllerProvider);
    }

    @Test
    public void test_nullClipData_showsNothing() {
        when(mClipboardManager.getPrimaryClip()).thenReturn(null);