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

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

frameworks: Add device controls shortcut to power menu

Change-Id: I4bc00a7b631216d41c72f7c216925f1120606b7c
parent c9fdffba
Loading
Loading
Loading
Loading
+41 −1
Original line number Diff line number Diff line
@@ -125,6 +125,10 @@ import com.android.systemui.animation.DialogLaunchAnimator;
import com.android.systemui.animation.Interpolators;
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.plugins.GlobalActions.GlobalActionsManager;
@@ -258,6 +262,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
    private final Optional<CentralSurfaces> mCentralSurfacesOptional;
    private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
    private final DialogLaunchAnimator mDialogLaunchAnimator;
    private final ControlsComponent mControlsComponent;

    @VisibleForTesting
    public enum GlobalActionsEvent implements UiEventLogger.UiEventEnum {
@@ -364,7 +369,8 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
            PackageManager packageManager,
            Optional<CentralSurfaces> centralSurfacesOptional,
            KeyguardUpdateMonitor keyguardUpdateMonitor,
            DialogLaunchAnimator dialogLaunchAnimator) {
            DialogLaunchAnimator dialogLaunchAnimator,
            ControlsComponent controlsComponent) {
        mContext = context;
        mWindowManagerFuncs = windowManagerFuncs;
        mAudioManager = audioManager;
@@ -383,6 +389,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
        mTelecomManager = telecomManager;
        mMetricsLogger = metricsLogger;
        mUiEventLogger = uiEventLogger;
        mControlsComponent = controlsComponent;
        mLineageGlobalActions = LineageGlobalActions.getInstance(mContext);
        mSysuiColorExtractor = colorExtractor;
        mStatusBarService = statusBarService;
@@ -667,6 +674,8 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
                if (shouldDisplayEmergency()) {
                    addIfShouldShowAction(tempActions, new EmergencyDialerAction());
                }
            } else if (GLOBAL_ACTION_KEY_DEVICECONTROLS.equals(actionKey)) {
                addIfShouldShowAction(tempActions, new DeviceControlsAction());
            } else {
                Log.e(TAG, "Invalid global action key " + actionKey);
            }
@@ -2341,6 +2350,37 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
        }
    }

    private final class DeviceControlsAction extends SinglePressAction {
        private DeviceControlsAction() {
            super(com.android.systemui.R.drawable.controls_icon,
                    com.android.systemui.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
@@ -56,6 +56,7 @@ import com.android.systemui.SysuiTestCase;
import com.android.systemui.animation.DialogLaunchAnimator;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.controls.dagger.ControlsComponent;
import com.android.systemui.plugins.GlobalActions;
import com.android.systemui.settings.UserContextProvider;
import com.android.systemui.statusbar.NotificationShadeWindowController;
@@ -114,6 +115,7 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase {
    @Mock private CentralSurfaces mCentralSurfaces;
    @Mock private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
    @Mock private DialogLaunchAnimator mDialogLaunchAnimator;
    @Mock private ControlsComponent mControlsComponent;

    private TestableLooper mTestableLooper;

@@ -157,7 +159,8 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase {
                mPackageManager,
                Optional.of(mCentralSurfaces),
                mKeyguardUpdateMonitor,
                mDialogLaunchAnimator);
                mDialogLaunchAnimator,
                mControlsComponent);
        mGlobalActionsDialogLite.setZeroDialogPressDelayForTesting();

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