Loading packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardListener.java +10 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,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; Loading Loading @@ -59,18 +60,21 @@ public class ClipboardListener extends CoreStartable private final ClipboardOverlayControllerFactory mOverlayFactory; private final ClipboardToast mClipboardToast; private final ClipboardManager mClipboardManager; private final KeyguardManager mKeyguardManager; private final UiEventLogger mUiEventLogger; private ClipboardOverlayController mClipboardOverlayController; @Inject public ClipboardListener(Context context, DeviceConfigProxy deviceConfigProxy, ClipboardOverlayControllerFactory overlayFactory, ClipboardManager clipboardManager, ClipboardToast clipboardToast,UiEventLogger uiEventLogger) { ClipboardToast clipboardToast, KeyguardManager keyguardManager, UiEventLogger uiEventLogger) { super(context); mDeviceConfig = deviceConfigProxy; mOverlayFactory = overlayFactory; mClipboardToast = clipboardToast; mClipboardManager = clipboardManager; mKeyguardManager = keyguardManager; mUiEventLogger = uiEventLogger; } Loading @@ -96,8 +100,11 @@ public class ClipboardListener extends CoreStartable return; } if (!isUserSetupComplete()) { // just show a toast, 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)) { mUiEventLogger.log(CLIPBOARD_TOAST_SHOWN, 0, clipSource); mClipboardToast.showCopiedToast(); Loading packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardListenerTest.java +46 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,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; Loading @@ -51,6 +52,8 @@ import org.mockito.Captor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import java.util.ArrayList; @SmallTest @RunWith(AndroidJUnit4.class) public class ClipboardListenerTest extends SysuiTestCase { Loading @@ -60,6 +63,8 @@ public class ClipboardListenerTest extends SysuiTestCase { @Mock private ClipboardOverlayControllerFactory mClipboardOverlayControllerFactory; @Mock private KeyguardManager mKeyguardManager; @Mock private ClipboardOverlayController mOverlayController; @Mock private ClipboardToast mClipboardToast; Loading Loading @@ -97,7 +102,7 @@ public class ClipboardListenerTest extends SysuiTestCase { mClipboardListener = new ClipboardListener(getContext(), mDeviceConfigProxy, mClipboardOverlayControllerFactory, mClipboardManager,mClipboardToast, mUiEventLogger); mKeyguardManager, mUiEventLogger); } @Test Loading Loading @@ -201,4 +206,44 @@ public class ClipboardListenerTest extends SysuiTestCase { verify(mClipboardToast, times(1)).showCopiedToast(); verifyZeroInteractions(mClipboardOverlayControllerFactory); } @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(mClipboardOverlayControllerFactory); } @Test public void test_nullClipData_showsNothing() { when(mClipboardManager.getPrimaryClip()).thenReturn(null); mClipboardListener.start(); mClipboardListener.onPrimaryClipChanged(); verifyZeroInteractions(mUiEventLogger); verifyZeroInteractions(mClipboardToast); verifyZeroInteractions(mClipboardOverlayControllerFactory); } @Test public void test_emptyClipData_showsToast() { ClipDescription description = new ClipDescription("Test", new String[0]); ClipData noItems = new ClipData(description, new ArrayList<>()); when(mClipboardManager.getPrimaryClip()).thenReturn(noItems); mClipboardListener.start(); mClipboardListener.onPrimaryClipChanged(); verify(mUiEventLogger, times(1)).log( ClipboardOverlayEvent.CLIPBOARD_TOAST_SHOWN, 0, mSampleSource); verify(mClipboardToast, times(1)).showCopiedToast(); verifyZeroInteractions(mClipboardOverlayControllerFactory); } } packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardOverlayEventTest.java +4 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.KeyguardManager; import android.content.ClipData; import android.content.ClipboardManager; import android.provider.DeviceConfig; Loading Loading @@ -51,6 +52,8 @@ public class ClipboardOverlayEventTest extends SysuiTestCase { @Mock private ClipboardOverlayController mOverlayController; @Mock private KeyguardManager mKeyguardManager; @Mock private ClipboardToast mClipboardToast; @Mock private UiEventLogger mUiEventLogger; Loading Loading @@ -78,7 +81,7 @@ public class ClipboardOverlayEventTest extends SysuiTestCase { mClipboardListener = new ClipboardListener(getContext(), deviceConfigProxy, mClipboardOverlayControllerFactory, mClipboardManager, mClipboardToast, mUiEventLogger); mKeyguardManager, mUiEventLogger); } @Test Loading Loading
packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardListener.java +10 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,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; Loading Loading @@ -59,18 +60,21 @@ public class ClipboardListener extends CoreStartable private final ClipboardOverlayControllerFactory mOverlayFactory; private final ClipboardToast mClipboardToast; private final ClipboardManager mClipboardManager; private final KeyguardManager mKeyguardManager; private final UiEventLogger mUiEventLogger; private ClipboardOverlayController mClipboardOverlayController; @Inject public ClipboardListener(Context context, DeviceConfigProxy deviceConfigProxy, ClipboardOverlayControllerFactory overlayFactory, ClipboardManager clipboardManager, ClipboardToast clipboardToast,UiEventLogger uiEventLogger) { ClipboardToast clipboardToast, KeyguardManager keyguardManager, UiEventLogger uiEventLogger) { super(context); mDeviceConfig = deviceConfigProxy; mOverlayFactory = overlayFactory; mClipboardToast = clipboardToast; mClipboardManager = clipboardManager; mKeyguardManager = keyguardManager; mUiEventLogger = uiEventLogger; } Loading @@ -96,8 +100,11 @@ public class ClipboardListener extends CoreStartable return; } if (!isUserSetupComplete()) { // just show a toast, 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)) { mUiEventLogger.log(CLIPBOARD_TOAST_SHOWN, 0, clipSource); mClipboardToast.showCopiedToast(); Loading
packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardListenerTest.java +46 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,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; Loading @@ -51,6 +52,8 @@ import org.mockito.Captor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import java.util.ArrayList; @SmallTest @RunWith(AndroidJUnit4.class) public class ClipboardListenerTest extends SysuiTestCase { Loading @@ -60,6 +63,8 @@ public class ClipboardListenerTest extends SysuiTestCase { @Mock private ClipboardOverlayControllerFactory mClipboardOverlayControllerFactory; @Mock private KeyguardManager mKeyguardManager; @Mock private ClipboardOverlayController mOverlayController; @Mock private ClipboardToast mClipboardToast; Loading Loading @@ -97,7 +102,7 @@ public class ClipboardListenerTest extends SysuiTestCase { mClipboardListener = new ClipboardListener(getContext(), mDeviceConfigProxy, mClipboardOverlayControllerFactory, mClipboardManager,mClipboardToast, mUiEventLogger); mKeyguardManager, mUiEventLogger); } @Test Loading Loading @@ -201,4 +206,44 @@ public class ClipboardListenerTest extends SysuiTestCase { verify(mClipboardToast, times(1)).showCopiedToast(); verifyZeroInteractions(mClipboardOverlayControllerFactory); } @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(mClipboardOverlayControllerFactory); } @Test public void test_nullClipData_showsNothing() { when(mClipboardManager.getPrimaryClip()).thenReturn(null); mClipboardListener.start(); mClipboardListener.onPrimaryClipChanged(); verifyZeroInteractions(mUiEventLogger); verifyZeroInteractions(mClipboardToast); verifyZeroInteractions(mClipboardOverlayControllerFactory); } @Test public void test_emptyClipData_showsToast() { ClipDescription description = new ClipDescription("Test", new String[0]); ClipData noItems = new ClipData(description, new ArrayList<>()); when(mClipboardManager.getPrimaryClip()).thenReturn(noItems); mClipboardListener.start(); mClipboardListener.onPrimaryClipChanged(); verify(mUiEventLogger, times(1)).log( ClipboardOverlayEvent.CLIPBOARD_TOAST_SHOWN, 0, mSampleSource); verify(mClipboardToast, times(1)).showCopiedToast(); verifyZeroInteractions(mClipboardOverlayControllerFactory); } }
packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardOverlayEventTest.java +4 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.KeyguardManager; import android.content.ClipData; import android.content.ClipboardManager; import android.provider.DeviceConfig; Loading Loading @@ -51,6 +52,8 @@ public class ClipboardOverlayEventTest extends SysuiTestCase { @Mock private ClipboardOverlayController mOverlayController; @Mock private KeyguardManager mKeyguardManager; @Mock private ClipboardToast mClipboardToast; @Mock private UiEventLogger mUiEventLogger; Loading Loading @@ -78,7 +81,7 @@ public class ClipboardOverlayEventTest extends SysuiTestCase { mClipboardListener = new ClipboardListener(getContext(), deviceConfigProxy, mClipboardOverlayControllerFactory, mClipboardManager, mClipboardToast, mUiEventLogger); mKeyguardManager, mUiEventLogger); } @Test Loading