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

Commit 47d20692 authored by Anna Bauza's avatar Anna Bauza Committed by Automerger Merge Worker
Browse files

Merge "Fix "Welcome back Guest" dialog dismisses when screen turns off." into tm-dev am: c25797d7

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17182687

Change-Id: Idd0d9e36aeb63d3f7c5d6494f81686318678bd33
parents cf27004c c25797d7
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -128,7 +128,7 @@ public class GuestResumeSessionReceiver extends BroadcastReceiver {
                UserSwitcherController userSwitcherController,
                UserSwitcherController userSwitcherController,
                UiEventLogger uiEventLogger,
                UiEventLogger uiEventLogger,
                int userId) {
                int userId) {
            super(context);
            super(context, false /* dismissOnDeviceLock */);


            setTitle(context.getString(R.string.guest_wipe_session_title));
            setTitle(context.getString(R.string.guest_wipe_session_title));
            setMessage(context.getString(R.string.guest_wipe_session_message));
            setMessage(context.getString(R.string.guest_wipe_session_message));
+8 −2
Original line number Original line Diff line number Diff line
@@ -63,6 +63,8 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh
    // TODO(b/203389579): Remove this once the dialog width on large screens has been agreed on.
    // TODO(b/203389579): Remove this once the dialog width on large screens has been agreed on.
    private static final String FLAG_TABLET_DIALOG_WIDTH =
    private static final String FLAG_TABLET_DIALOG_WIDTH =
            "persist.systemui.flag_tablet_dialog_width";
            "persist.systemui.flag_tablet_dialog_width";
    private static final int DEFAULT_THEME = R.style.Theme_SystemUI_Dialog;
    private static final boolean DEFAULT_DISMISS_ON_DEVICE_LOCK = true;


    private final Context mContext;
    private final Context mContext;
    @Nullable private final DismissReceiver mDismissReceiver;
    @Nullable private final DismissReceiver mDismissReceiver;
@@ -78,11 +80,15 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh
    private List<Runnable> mOnCreateRunnables = new ArrayList<>();
    private List<Runnable> mOnCreateRunnables = new ArrayList<>();


    public SystemUIDialog(Context context) {
    public SystemUIDialog(Context context) {
        this(context, R.style.Theme_SystemUI_Dialog);
        this(context, DEFAULT_THEME, DEFAULT_DISMISS_ON_DEVICE_LOCK);
    }
    }


    public SystemUIDialog(Context context, int theme) {
    public SystemUIDialog(Context context, int theme) {
        this(context, theme, true /* dismissOnDeviceLock */);
        this(context, theme, DEFAULT_DISMISS_ON_DEVICE_LOCK);
    }

    public SystemUIDialog(Context context, boolean dismissOnDeviceLock) {
        this(context, DEFAULT_THEME, dismissOnDeviceLock);
    }
    }


    public SystemUIDialog(Context context, int theme, boolean dismissOnDeviceLock) {
    public SystemUIDialog(Context context, int theme, boolean dismissOnDeviceLock) {
+18 −4
Original line number Original line Diff line number Diff line
@@ -14,10 +14,12 @@


package com.android.systemui.statusbar.phone;
package com.android.systemui.statusbar.phone;


import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
import static junit.framework.Assert.assertTrue;


import static org.mockito.Matchers.any;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verify;


import android.content.BroadcastReceiver;
import android.content.BroadcastReceiver;
@@ -43,7 +45,6 @@ import org.mockito.MockitoAnnotations;
@SmallTest
@SmallTest
public class SystemUIDialogTest extends SysuiTestCase {
public class SystemUIDialogTest extends SysuiTestCase {


    private SystemUIDialog mDialog;
    @Mock
    @Mock
    private BroadcastDispatcher mBroadcastDispatcher;
    private BroadcastDispatcher mBroadcastDispatcher;


@@ -52,12 +53,11 @@ public class SystemUIDialogTest extends SysuiTestCase {
        MockitoAnnotations.initMocks(this);
        MockitoAnnotations.initMocks(this);


        mDependency.injectTestDependency(BroadcastDispatcher.class, mBroadcastDispatcher);
        mDependency.injectTestDependency(BroadcastDispatcher.class, mBroadcastDispatcher);

        mDialog = new SystemUIDialog(mContext);
    }
    }


    @Test
    @Test
    public void testRegisterReceiver() {
    public void testRegisterReceiver() {
        final SystemUIDialog mDialog = new SystemUIDialog(mContext);
        final ArgumentCaptor<BroadcastReceiver> broadcastReceiverCaptor =
        final ArgumentCaptor<BroadcastReceiver> broadcastReceiverCaptor =
                ArgumentCaptor.forClass(BroadcastReceiver.class);
                ArgumentCaptor.forClass(BroadcastReceiver.class);
        final ArgumentCaptor<IntentFilter> intentFilterCaptor =
        final ArgumentCaptor<IntentFilter> intentFilterCaptor =
@@ -66,10 +66,24 @@ public class SystemUIDialogTest extends SysuiTestCase {
        mDialog.show();
        mDialog.show();
        verify(mBroadcastDispatcher).registerReceiver(broadcastReceiverCaptor.capture(),
        verify(mBroadcastDispatcher).registerReceiver(broadcastReceiverCaptor.capture(),
                intentFilterCaptor.capture(), eq(null), any());
                intentFilterCaptor.capture(), eq(null), any());

        assertTrue(intentFilterCaptor.getValue().hasAction(Intent.ACTION_SCREEN_OFF));
        assertTrue(intentFilterCaptor.getValue().hasAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
        assertTrue(intentFilterCaptor.getValue().hasAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));


        mDialog.dismiss();
        mDialog.dismiss();
        verify(mBroadcastDispatcher).unregisterReceiver(eq(broadcastReceiverCaptor.getValue()));
        verify(mBroadcastDispatcher).unregisterReceiver(eq(broadcastReceiverCaptor.getValue()));
    }
    }


    @Test
    public void testNoRegisterReceiver() {
        final SystemUIDialog mDialog = new SystemUIDialog(mContext, false);

        mDialog.show();
        verify(mBroadcastDispatcher, never()).registerReceiver(any(), any(), eq(null), any());
        assertTrue(mDialog.isShowing());

        mDialog.dismiss();
        verify(mBroadcastDispatcher, never()).unregisterReceiver(any());
        assertFalse(mDialog.isShowing());
    }
}
}