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

Commit 06dfb450 authored by Behnam Heydarshahi's avatar Behnam Heydarshahi Committed by Android (Google) Code Review
Browse files

Merge "Remove flicker at device shutdown" into main

parents c60fd464 daf7bef0
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ import static android.app.StatusBarManager.DISABLE2_GLOBAL_ACTIONS;
import android.content.Context;

import com.android.systemui.plugins.GlobalActions;
import com.android.systemui.statusbar.BlurUtils;
import com.android.systemui.shade.ShadeController;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
@@ -31,26 +31,27 @@ public class GlobalActionsImpl implements GlobalActions, CommandQueue.Callbacks
    private final Context mContext;
    private final KeyguardStateController mKeyguardStateController;
    private final DeviceProvisionedController mDeviceProvisionedController;
    private final BlurUtils mBlurUtils;
    private final CommandQueue mCommandQueue;
    private final GlobalActionsDialogLite mGlobalActionsDialog;
    private boolean mDisabled;
    private ShutdownUi mShutdownUi;
    private ShadeController mShadeController;

    @Inject
    public GlobalActionsImpl(Context context, CommandQueue commandQueue,
            GlobalActionsDialogLite globalActionsDialog, BlurUtils blurUtils,
            GlobalActionsDialogLite globalActionsDialog,
            KeyguardStateController keyguardStateController,
            DeviceProvisionedController deviceProvisionedController,
            ShadeController shadeController,
            ShutdownUi shutdownUi) {
        mContext = context;
        mGlobalActionsDialog = globalActionsDialog;
        mKeyguardStateController = keyguardStateController;
        mDeviceProvisionedController = deviceProvisionedController;
        mCommandQueue = commandQueue;
        mBlurUtils = blurUtils;
        mCommandQueue.addCallback(this);
        mShutdownUi = shutdownUi;
        mShadeController = shadeController;
    }

    @Override
@@ -70,6 +71,7 @@ public class GlobalActionsImpl implements GlobalActions, CommandQueue.Callbacks
    @Override
    public void showShutdownUi(boolean isReboot, String reason) {
        mShutdownUi.showShutdownUi(isReboot, reason);
        mShadeController.collapseShade();
    }
    @Override
    public void disable(int displayId, int state1, int state2, boolean animate) {
+67 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2025 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.systemui.globalactions

import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.shade.ShadeController
import com.android.systemui.statusbar.commandQueue
import com.android.systemui.statusbar.policy.deviceProvisionedController
import com.android.systemui.statusbar.policy.keyguardStateController
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.kotlin.mock
import org.mockito.kotlin.verify

@SmallTest
@RunWith(AndroidJUnit4::class)
class GlobalActionsImplTest : SysuiTestCase() {
    private val shadeController = mock<ShadeController>()
    private lateinit var underTest: GlobalActionsImpl

    @Before
    fun setUp() {
        val kosmos = Kosmos()
        underTest =
            GlobalActionsImpl(
                context,
                kosmos.commandQueue,
                kosmos.globalActionsDialogLite,
                kosmos.keyguardStateController,
                kosmos.deviceProvisionedController,
                shadeController,
                mock<ShutdownUi>(),
            )
    }

    @Test
    fun testShutdown_collapsesShade() {
        underTest.showShutdownUi(false, "test")

        verify(shadeController).collapseShade()
    }

    @Test
    fun testReboot_collapsesShade() {
        underTest.showShutdownUi(true, "test")

        verify(shadeController).collapseShade()
    }
}