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

Unverified Commit e78f4727 authored by LuK1337's avatar LuK1337 Committed by Michael Bestas
Browse files

frameworks: Add device controls shortcut to power menu

Change-Id: I4bc00a7b631216d41c72f7c216925f1120606b7c
parent cc4ce459
Loading
Loading
Loading
Loading
+41 −1
Original line number Diff line number Diff line
@@ -132,6 +132,10 @@ import com.android.systemui.animation.DialogTransitionAnimator;
import com.android.systemui.animation.Expandable;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.controls.dagger.ControlsComponent;
import com.android.systemui.controls.management.ControlsListingController;
import com.android.systemui.controls.ui.ControlsActivity;
import com.android.systemui.controls.ui.ControlsUiController;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.globalactions.domain.interactor.GlobalActionsInteractor;
@@ -277,6 +281,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
    private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
    private final DialogTransitionAnimator mDialogTransitionAnimator;
    private final GlobalActionsInteractor mInteractor;
    private final ControlsComponent mControlsComponent;

    @VisibleForTesting
    public enum GlobalActionsEvent implements UiEventLogger.UiEventEnum {
@@ -392,7 +397,8 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
            KeyguardUpdateMonitor keyguardUpdateMonitor,
            DialogTransitionAnimator dialogTransitionAnimator,
            SelectedUserInteractor selectedUserInteractor,
            GlobalActionsInteractor interactor) {
            GlobalActionsInteractor interactor,
            ControlsComponent controlsComponent) {
        mContext = context;
        mWindowManagerFuncs = windowManagerFuncs;
        mAudioManager = audioManager;
@@ -413,6 +419,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
        mTelecomManager = telecomManager;
        mMetricsLogger = metricsLogger;
        mUiEventLogger = uiEventLogger;
        mControlsComponent = controlsComponent;
        mLineageGlobalActions = LineageGlobalActions.getInstance(mContext);
        mSysuiColorExtractor = colorExtractor;
        mStatusBarService = statusBarService;
@@ -712,6 +719,8 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
                }
            } else if (GLOBAL_ACTION_KEY_SYSTEM_UPDATE.equals(actionKey)) {
                addIfShouldShowAction(tempActions, new SystemUpdateAction());
            } else if (GLOBAL_ACTION_KEY_DEVICECONTROLS.equals(actionKey)) {
                addIfShouldShowAction(tempActions, new DeviceControlsAction());
            } else {
                Log.e(TAG, "Invalid global action key " + actionKey);
            }
@@ -2459,6 +2468,37 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
        }
    }

    private final class DeviceControlsAction extends SinglePressAction {
        private DeviceControlsAction() {
            super(com.android.systemui.res.R.drawable.controls_icon,
                    com.android.systemui.res.R.string.quick_controls_title);
        }

        @Override
        public boolean showDuringKeyguard() {
            return true;
        }

        @Override
        public boolean showBeforeProvisioning() {
            return false;
        }

        @Override
        public void onPress() {
            Intent intent = new Intent(mContext, ControlsActivity.class)
                    .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)
                    .putExtra(ControlsUiController.EXTRA_ANIMATE, true);
            mContext.startActivity(intent);
        }

        @Override
        public boolean shouldShow() {
            return super.shouldShow() &&
                    mControlsComponent.getControlsListingController().isPresent();
        }
    }

    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
+4 −1
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@ import com.android.systemui.SysuiTestCase;
import com.android.systemui.animation.DialogTransitionAnimator;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.controls.dagger.ControlsComponent;
import com.android.systemui.globalactions.domain.interactor.GlobalActionsInteractor;
import com.android.systemui.kosmos.KosmosJavaAdapter;
import com.android.systemui.plugins.ActivityStarter;
@@ -140,6 +141,7 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase {
    @Mock private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
    @Mock private DialogTransitionAnimator mDialogTransitionAnimator;
    @Mock private SelectedUserInteractor mSelectedUserInteractor;
    @Mock private ControlsComponent mControlsComponent;
    @Mock private OnBackInvokedDispatcher mOnBackInvokedDispatcher;
    @Captor private ArgumentCaptor<OnBackInvokedCallback> mOnBackInvokedCallback;

@@ -197,7 +199,8 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase {
                mKeyguardUpdateMonitor,
                mDialogTransitionAnimator,
                mSelectedUserInteractor,
                mInteractor);
                mInteractor,
                mControlsComponent);
        mGlobalActionsDialogLite.setZeroDialogPressDelayForTesting();

        ColorExtractor.GradientColors backdropColors = new ColorExtractor.GradientColors();