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

Commit b90f5a1c authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes Ic0a028b2,Ifa50eadf,I8beb6065,I5562d8dd,I48d5e17c into main

* changes:
  Allow User switcher dialog to open on external displays
  Allow Internet tile to open dialogs on external displays
  Allow DataSaverTile to open dialogs on external displays
  Allow FgsManager to open dialogs on external displays
  Allow dialogs to be created from the shade when on external displays
parents cda2e0c8 564a41fd
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ import com.android.systemui.animation.DialogTransitionAnimator;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.shade.domain.interactor.FakeShadeDialogContextInteractor;
import com.android.systemui.statusbar.phone.SystemUIDialog;
import com.android.systemui.util.DeviceConfigProxyFake;
import com.android.systemui.util.concurrency.FakeExecutor;
@@ -84,6 +85,7 @@ public class FgsManagerControllerTest extends SysuiTestCase {
    FakeExecutor mMainExecutor;
    FakeExecutor mBackgroundExecutor;
    DeviceConfigProxyFake mDeviceConfigProxyFake;
    FakeShadeDialogContextInteractor mFakeShadeDialogContextInteractor;

    @Mock
    IActivityManager mIActivityManager;
@@ -118,6 +120,7 @@ public class FgsManagerControllerTest extends SysuiTestCase {
    public void setUp() throws RemoteException {
        MockitoAnnotations.initMocks(this);

        mFakeShadeDialogContextInteractor = new FakeShadeDialogContextInteractor(mContext);
        mDeviceConfigProxyFake = new DeviceConfigProxyFake();
        mSystemClock = new FakeSystemClock();
        mMainExecutor = new FakeExecutor(mSystemClock);
@@ -346,7 +349,6 @@ public class FgsManagerControllerTest extends SysuiTestCase {
                SystemUiDeviceConfigFlags.TASK_MANAGER_SHOW_USER_VISIBLE_JOBS,
                "true", false);
        FgsManagerController fmc = new FgsManagerControllerImpl(
                mContext,
                mContext.getResources(),
                mMainExecutor,
                mBackgroundExecutor,
@@ -359,7 +361,8 @@ public class FgsManagerControllerTest extends SysuiTestCase {
                mDialogTransitionAnimator,
                mBroadcastDispatcher,
                mDumpManager,
                mSystemUIDialogFactory
                mSystemUIDialogFactory,
                mFakeShadeDialogContextInteractor
        );
        fmc.init();
        Assert.assertTrue(fmc.getIncludesUserVisibleJobs());
@@ -374,7 +377,6 @@ public class FgsManagerControllerTest extends SysuiTestCase {
                SystemUiDeviceConfigFlags.TASK_MANAGER_SHOW_USER_VISIBLE_JOBS,
                "false", false);
        fmc = new FgsManagerControllerImpl(
                mContext,
                mContext.getResources(),
                mMainExecutor,
                mBackgroundExecutor,
@@ -387,7 +389,8 @@ public class FgsManagerControllerTest extends SysuiTestCase {
                mDialogTransitionAnimator,
                mBroadcastDispatcher,
                mDumpManager,
                mSystemUIDialogFactory
                mSystemUIDialogFactory,
                mFakeShadeDialogContextInteractor
        );
        fmc.init();
        Assert.assertFalse(fmc.getIncludesUserVisibleJobs());
@@ -487,7 +490,6 @@ public class FgsManagerControllerTest extends SysuiTestCase {
                ArgumentCaptor.forClass(BroadcastReceiver.class);

        FgsManagerController result = new FgsManagerControllerImpl(
                mContext,
                mContext.getResources(),
                mMainExecutor,
                mBackgroundExecutor,
@@ -500,7 +502,8 @@ public class FgsManagerControllerTest extends SysuiTestCase {
                mDialogTransitionAnimator,
                mBroadcastDispatcher,
                mDumpManager,
                mSystemUIDialogFactory
                mSystemUIDialogFactory,
                mFakeShadeDialogContextInteractor
        );
        result.init();

+2 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import com.android.systemui.qs.logging.QSLogger
import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.qs.tileimpl.QSTileImpl.DrawableIconWithRes
import com.android.systemui.res.R
import com.android.systemui.shade.domain.interactor.FakeShadeDialogContextInteractor
import com.android.systemui.statusbar.phone.SystemUIDialog
import com.android.systemui.statusbar.policy.DataSaverController
import com.android.systemui.util.mockito.whenever
@@ -96,6 +97,7 @@ class DataSaverTileTest(flags: FlagsParameterization) : SysuiTestCase() {
                dataSaverController,
                mDialogTransitionAnimator,
                systemUIDialogFactory,
                FakeShadeDialogContextInteractor(mContext),
            )
    }

+9 −7
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import com.android.systemui.plugins.FalsingManager
import com.android.systemui.qs.PseudoGridView
import com.android.systemui.qs.QSUserSwitcherEvent
import com.android.systemui.qs.tiles.UserDetailView
import com.android.systemui.shade.domain.interactor.FakeShadeDialogContextInteractor
import com.android.systemui.statusbar.phone.SystemUIDialog
import com.android.systemui.util.mockito.capture
import com.android.systemui.util.mockito.eq
@@ -84,6 +85,7 @@ class UserSwitchDialogControllerTest : SysuiTestCase() {
                mDialogTransitionAnimator,
                uiEventLogger,
                dialogFactory,
                FakeShadeDialogContextInteractor(mContext),
            )
    }

@@ -91,32 +93,32 @@ class UserSwitchDialogControllerTest : SysuiTestCase() {
    fun showDialog_callsDialogShow() {
        val launchController = mock<DialogTransitionAnimator.Controller>()
        `when`(launchExpandable.dialogTransitionController(any())).thenReturn(launchController)
        controller.showDialog(context, launchExpandable)
        controller.showDialog(launchExpandable)
        verify(mDialogTransitionAnimator).show(eq(dialog), eq(launchController), anyBoolean())
        verify(uiEventLogger).log(QSUserSwitcherEvent.QS_USER_DETAIL_OPEN)
    }

    @Test
    fun dialog_showForAllUsers() {
        controller.showDialog(context, launchExpandable)
        controller.showDialog(launchExpandable)
        verify(dialog).setShowForAllUsers(true)
    }

    @Test
    fun dialog_cancelOnTouchOutside() {
        controller.showDialog(context, launchExpandable)
        controller.showDialog(launchExpandable)
        verify(dialog).setCanceledOnTouchOutside(true)
    }

    @Test
    fun adapterAndGridLinked() {
        controller.showDialog(context, launchExpandable)
        controller.showDialog(launchExpandable)
        verify(userDetailViewAdapter).linkToViewGroup(any<PseudoGridView>())
    }

    @Test
    fun doneButtonLogsCorrectly() {
        controller.showDialog(context, launchExpandable)
        controller.showDialog(launchExpandable)

        verify(dialog).setPositiveButton(anyInt(), capture(clickCaptor))

@@ -129,7 +131,7 @@ class UserSwitchDialogControllerTest : SysuiTestCase() {
    fun clickSettingsButton_noFalsing_opensSettings() {
        `when`(falsingManager.isFalseTap(anyInt())).thenReturn(false)

        controller.showDialog(context, launchExpandable)
        controller.showDialog(launchExpandable)

        verify(dialog)
            .setNeutralButton(anyInt(), capture(clickCaptor), eq(false) /* dismissOnClick */)
@@ -150,7 +152,7 @@ class UserSwitchDialogControllerTest : SysuiTestCase() {
    fun clickSettingsButton_Falsing_notOpensSettings() {
        `when`(falsingManager.isFalseTap(anyInt())).thenReturn(true)

        controller.showDialog(context, launchExpandable)
        controller.showDialog(launchExpandable)

        verify(dialog)
            .setNeutralButton(anyInt(), capture(clickCaptor), eq(false) /* dismissOnClick */)
+2 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import com.android.systemui.kosmos.mainCoroutineContext
import com.android.systemui.kosmos.testScope
import com.android.systemui.plugins.activityStarter
import com.android.systemui.runOnMainThreadAndWaitForIdleSync
import com.android.systemui.shade.data.repository.shadeDialogContextInteractor
import com.android.systemui.statusbar.phone.SystemUIDialog
import com.android.systemui.statusbar.phone.systemUIDialogFactory
import com.android.systemui.statusbar.policy.ui.dialog.viewmodel.modesDialogViewModel
@@ -78,6 +79,7 @@ class ModesDialogDelegateTest : SysuiTestCase() {
                { kosmos.modesDialogViewModel },
                mockDialogEventLogger,
                kosmos.mainCoroutineContext,
                kosmos.shadeDialogContextInteractor,
            )
    }

+8 −5
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import com.android.internal.R as InternalR
import com.android.internal.logging.UiEventLogger
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.res.R
import com.android.systemui.shade.domain.interactor.ShadeDialogContextInteractor
import com.android.systemui.statusbar.phone.SystemUIDialog
import com.android.systemui.util.time.SystemClock
import dagger.assisted.Assisted
@@ -68,6 +69,7 @@ internal constructor(
    private val uiEventLogger: UiEventLogger,
    private val logger: BluetoothTileDialogLogger,
    private val systemuiDialogFactory: SystemUIDialog.Factory,
    private val shadeDialogContextInteractor: ShadeDialogContextInteractor,
) : SystemUIDialog.Delegate {

    private val mutableBluetoothStateToggle: MutableStateFlow<Boolean?> = MutableStateFlow(null)
@@ -105,7 +107,7 @@ internal constructor(
    }

    override fun createDialog(): SystemUIDialog {
        return systemuiDialogFactory.create(this)
        return systemuiDialogFactory.create(this, shadeDialogContextInteractor.context)
    }

    override fun onCreate(dialog: SystemUIDialog, savedInstanceState: Bundle?) {
@@ -405,7 +407,8 @@ internal constructor(
                    }

                    // updating icon colors
                    val tintColor = context.getColor(
                    val tintColor =
                        context.getColor(
                            if (item.isActive) InternalR.color.materialColorOnPrimaryContainer
                            else InternalR.color.materialColorOnSurface
                        )
Loading