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

Commit d6c73e65 authored by Fabian Kozynski's avatar Fabian Kozynski
Browse files

Re-enable mirror for brightness slider

There's a current issue (both in old and new brightness) with a scrim
covering the background when sliding in lockscreen (but not with device
unlocked).

Bug: 141690457
Bug: 171319433
Test: manual
Test: atest com.android.systemui.settings.brightness
Change-Id: I904af84a574f1ad1bfff3d014c45fe6b94094224
parent ec012bc4
Loading
Loading
Loading
Loading
+0 −49
Original line number Diff line number Diff line
/*
 * Copyright (C) 2020 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.settings.brightness;

import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.statusbar.FeatureFlags;

import javax.inject.Inject;

/**
 * Settings for prototyping thick brightness slider
 */
@SysUISingleton
public class BrightnessControllerSettings {

    private static final String THICK_BRIGHTNESS_SLIDER = "sysui_thick_brightness";
    private final FeatureFlags mFeatureFlags;

    @Inject
    public BrightnessControllerSettings(FeatureFlags featureFlags) {
        mFeatureFlags = featureFlags;
    }

    // Changing this setting between zero and non-zero may crash systemui down the line. Better to
    // restart systemui after changing it.
    /** */
    boolean useThickSlider() {
        return mFeatureFlags.useNewBrightnessSlider();
    }

    /** */
    boolean useMirrorOnThickSlider() {
        return !useThickSlider();
    }
}
+9 −12
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import com.android.systemui.Gefingerpoken;
import com.android.systemui.R;
import com.android.systemui.classifier.Classifier;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
import com.android.systemui.util.ViewController;

@@ -52,7 +53,6 @@ public class BrightnessSlider extends ViewController<View> implements ToggleSlid
    private final BrightnessSliderView mBrightnessSliderView;
    private BrightnessMirrorController mMirrorController;
    private boolean mTracking;
    private final boolean mUseMirror;
    private final FalsingManager mFalsingManager;

    private final Gefingerpoken mOnInterceptListener = new Gefingerpoken() {
@@ -75,11 +75,9 @@ public class BrightnessSlider extends ViewController<View> implements ToggleSlid
    BrightnessSlider(
            View rootView,
            BrightnessSliderView brightnessSliderView,
            boolean useMirror,
            FalsingManager falsingManager) {
        super(rootView);
        mBrightnessSliderView = brightnessSliderView;
        mUseMirror = useMirror;
        mFalsingManager = falsingManager;
    }

@@ -152,7 +150,6 @@ public class BrightnessSlider extends ViewController<View> implements ToggleSlid
     */
    @Override
    public void setMirrorControllerAndMirror(BrightnessMirrorController c) {
        if (!mUseMirror) return;
        mMirrorController = c;
        if (c != null) {
            setMirror(c.getToggleSlider());
@@ -264,16 +261,16 @@ public class BrightnessSlider extends ViewController<View> implements ToggleSlid
    /**
     * Creates a {@link BrightnessSlider} with its associated view.
     *
     * The views inflated are determined by {@link BrightnessControllerSettings#useThickSlider()}.
     * The views inflated are determined by {@link FeatureFlags#useNewBrightnessSlider()}.
     */
    public static class Factory {

        BrightnessControllerSettings mSettings;
        final FeatureFlags mFeatureFlags;
        private final FalsingManager mFalsingManager;

        @Inject
        public Factory(BrightnessControllerSettings settings, FalsingManager falsingManager) {
            mSettings = settings;
        public Factory(FeatureFlags featureFlags, FalsingManager falsingManager) {
            mFeatureFlags = featureFlags;
            mFalsingManager = falsingManager;
        }

@@ -288,18 +285,18 @@ public class BrightnessSlider extends ViewController<View> implements ToggleSlid
            int layout = getLayout();
            ViewGroup root = (ViewGroup) LayoutInflater.from(context)
                    .inflate(layout, viewRoot, false);
            return fromTree(root, mSettings.useMirrorOnThickSlider());
            return fromTree(root);
        }

        private BrightnessSlider fromTree(ViewGroup root, boolean useMirror) {
        private BrightnessSlider fromTree(ViewGroup root) {
            BrightnessSliderView v = root.requireViewById(R.id.brightness_slider);

            return new BrightnessSlider(root, v, useMirror, mFalsingManager);
            return new BrightnessSlider(root, v, mFalsingManager);
        }

        /** Get the layout to inflate based on what slider to use */
        private int getLayout() {
            return mSettings.useThickSlider()
            return mFeatureFlags.useNewBrightnessSlider()
                    ? R.layout.quick_settings_brightness_dialog_thick
                    : R.layout.quick_settings_brightness_dialog;
        }
+1 −16
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ class BrightnessSliderTest : SysuiTestCase() {
        whenever(mirrorController.toggleSlider).thenReturn(mirror)
        whenever(motionEvent.copy()).thenReturn(motionEvent)

        mController = BrightnessSlider(rootView, brightnessSliderView, true, mFalsingManager)
        mController = BrightnessSlider(rootView, brightnessSliderView, mFalsingManager)
        mController.init()
        mController.setOnChangedListener(listener)
    }
@@ -160,21 +160,6 @@ class BrightnessSliderTest : SysuiTestCase() {
        verify(brightnessSliderView).setOnDispatchTouchEventListener(notNull())
    }

    @Test
    fun testSettingMirrorWhenNotUseMirrorIsNoOp() {
        val otherController = BrightnessSlider(
                rootView, brightnessSliderView, false, mFalsingManager)
        otherController.init()

        otherController.setMirrorControllerAndMirror(mirrorController)

        verify(brightnessSliderView, never()).max
        verify(brightnessSliderView, never()).value
        verify(brightnessSliderView, never()).isChecked
        verify(brightnessSliderView, never()).setOnDispatchTouchEventListener(
                any(BrightnessSliderView.DispatchTouchEventListener::class.java))
    }

    @Test
    fun testSetCheckedRelayed_true() {
        mController.isChecked = true