Revert "Making mirror slider appear when brightness slider is used in split shade"

This reverts commit 263e907c1b.

Reason for revert: Breaking CTS tests
Fixes: 195071058
Fixes: 195069589
Fixes: 195070141
Fixes: 195070290
Fixes: 195070779

Change-Id: I454180839e081ac08a076f870dba5e3ad8cb7c5a
This commit is contained in:
Fabian Kozynski
2021-07-30 18:15:07 +00:00
parent 263e907c1b
commit 7b43d58976
12 changed files with 59 additions and 132 deletions

View File

@@ -50,7 +50,6 @@ import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
import com.android.systemui.statusbar.phone.KeyguardBypassController;
import com.android.systemui.statusbar.phone.NotificationsQuickSettingsContainer;
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
import com.android.systemui.util.InjectionInflationController;
import com.android.systemui.util.LifecycleFragment;
@@ -404,10 +403,8 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
}
}
public void setBrightnessMirrorController(
BrightnessMirrorController brightnessMirrorController) {
mQSPanelController.setBrightnessMirror(brightnessMirrorController);
mQuickQSPanelController.setBrightnessMirror(brightnessMirrorController);
public QSPanelController getQSPanelController() {
return mQSPanelController;
}
@Override

View File

@@ -40,7 +40,6 @@ import com.android.systemui.qs.customize.QSCustomizerController;
import com.android.systemui.qs.dagger.QSScope;
import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.settings.brightness.BrightnessController;
import com.android.systemui.settings.brightness.BrightnessMirrorHandler;
import com.android.systemui.settings.brightness.BrightnessSlider;
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
import com.android.systemui.tuner.TunerService;
@@ -61,9 +60,10 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
private final QSTileRevealController.Factory mQsTileRevealControllerFactory;
private final FalsingManager mFalsingManager;
private final BrightnessController mBrightnessController;
private final BrightnessSlider.Factory mBrightnessSliderFactory;
private final BrightnessSlider mBrightnessSlider;
private final BrightnessMirrorHandler mBrightnessMirrorHandler;
private BrightnessMirrorController mBrightnessMirrorController;
private boolean mGridContentVisible = true;
private final QSPanel.OnConfigurationChangedListener mOnConfigurationChangedListener =
@@ -75,10 +75,14 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
if (mView.isListening()) {
refreshAllTiles();
}
updateBrightnessMirror();
mView.switchSecurityFooter(mShouldUseSplitNotificationShade);
}
};
private final BrightnessMirrorController.BrightnessMirrorListener mBrightnessMirrorListener =
mirror -> updateBrightnessMirror();
private View.OnTouchListener mTileLayoutTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
@@ -106,12 +110,12 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
mQsTileRevealControllerFactory = qsTileRevealControllerFactory;
mFalsingManager = falsingManager;
mQsSecurityFooter.setHostEnvironment(qstileHost);
mBrightnessSliderFactory = brightnessSliderFactory;
mBrightnessSlider = brightnessSliderFactory.create(getContext(), mView);
mBrightnessSlider = mBrightnessSliderFactory.create(getContext(), mView);
mView.setBrightnessView(mBrightnessSlider.getRootView());
mBrightnessController = brightnessControllerFactory.create(mBrightnessSlider);
mBrightnessMirrorHandler = new BrightnessMirrorHandler(mBrightnessController);
}
@Override
@@ -138,7 +142,9 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
mView.addOnConfigurationChangedListener(mOnConfigurationChangedListener);
mView.setSecurityFooter(mQsSecurityFooter.getView(), mShouldUseSplitNotificationShade);
switchTileLayout(true);
mBrightnessMirrorHandler.onQsPanelAttached();
if (mBrightnessMirrorController != null) {
mBrightnessMirrorController.addCallback(mBrightnessMirrorListener);
}
((PagedTileLayout) mView.getOrCreateTileLayout())
.setOnTouchListener(mTileLayoutTouchListener);
@@ -154,7 +160,9 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
protected void onViewDetached() {
mTunerService.removeTunable(mView);
mView.removeOnConfigurationChangedListener(mOnConfigurationChangedListener);
mBrightnessMirrorHandler.onQsPanelDettached();
if (mBrightnessMirrorController != null) {
mBrightnessMirrorController.removeCallback(mBrightnessMirrorListener);
}
super.onViewDetached();
}
@@ -188,8 +196,23 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
}
}
/** */
public void setBrightnessMirror(BrightnessMirrorController brightnessMirrorController) {
mBrightnessMirrorHandler.setController(brightnessMirrorController);
mBrightnessMirrorController = brightnessMirrorController;
if (mBrightnessMirrorController != null) {
mBrightnessMirrorController.removeCallback(mBrightnessMirrorListener);
}
mBrightnessMirrorController = brightnessMirrorController;
if (mBrightnessMirrorController != null) {
mBrightnessMirrorController.addCallback(mBrightnessMirrorListener);
}
updateBrightnessMirror();
}
private void updateBrightnessMirror() {
if (mBrightnessMirrorController != null) {
mBrightnessSlider.setMirrorControllerAndMirror(mBrightnessMirrorController);
}
}
/** Get the QSTileHost this panel uses. */

View File

@@ -19,8 +19,6 @@ package com.android.systemui.qs
import androidx.annotation.VisibleForTesting
import com.android.systemui.settings.brightness.BrightnessController
import com.android.systemui.settings.brightness.BrightnessSlider
import com.android.systemui.settings.brightness.MirroredBrightnessController
import com.android.systemui.statusbar.policy.BrightnessMirrorController
import javax.inject.Inject
/**
@@ -29,7 +27,7 @@ import javax.inject.Inject
*/
class QuickQSBrightnessController @VisibleForTesting constructor(
private val brightnessControllerFactory: () -> BrightnessController
) : MirroredBrightnessController {
) {
@Inject constructor(
brightnessControllerFactory: BrightnessController.Factory,
@@ -44,7 +42,6 @@ class QuickQSBrightnessController @VisibleForTesting constructor(
private var isListening = false
private var brightnessController: BrightnessController? = null
private var mirrorController: BrightnessMirrorController? = null
fun init(shouldUseSplitNotificationShade: Boolean) {
refreshVisibility(shouldUseSplitNotificationShade)
@@ -80,11 +77,6 @@ class QuickQSBrightnessController @VisibleForTesting constructor(
}
}
override fun setMirror(controller: BrightnessMirrorController) {
mirrorController = controller
mirrorController?.let { brightnessController?.setMirror(it) }
}
private fun hideBrightnessSlider() {
brightnessController?.hideSlider()
}
@@ -92,10 +84,11 @@ class QuickQSBrightnessController @VisibleForTesting constructor(
private fun showBrightnessSlider() {
if (brightnessController == null) {
brightnessController = brightnessControllerFactory()
mirrorController?.also { brightnessController?.setMirror(it) }
}
brightnessController?.showSlider()
if (!isListening) {
brightnessController?.registerCallbacks()
isListening = true
}
brightnessController?.showSlider()
}
}
}

View File

@@ -29,8 +29,6 @@ import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.qs.customize.QSCustomizerController;
import com.android.systemui.qs.dagger.QSScope;
import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.settings.brightness.BrightnessMirrorHandler;
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
import java.util.ArrayList;
import java.util.List;
@@ -52,7 +50,6 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
// brightness is visible only in split shade
private final QuickQSBrightnessController mBrightnessController;
private final BrightnessMirrorHandler mBrightnessMirrorHandler;
@Inject
QuickQSPanelController(QuickQSPanel view, QSTileHost qsTileHost,
@@ -66,7 +63,6 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
super(view, qsTileHost, qsCustomizerController, usingMediaPlayer, mediaHost, metricsLogger,
uiEventLogger, qsLogger, dumpManager);
mBrightnessController = quickQSBrightnessController;
mBrightnessMirrorHandler = new BrightnessMirrorHandler(mBrightnessController);
}
@Override
@@ -82,14 +78,12 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
protected void onViewAttached() {
super.onViewAttached();
mView.addOnConfigurationChangedListener(mOnConfigurationChangedListener);
mBrightnessMirrorHandler.onQsPanelAttached();
}
@Override
protected void onViewDetached() {
super.onViewDetached();
mView.removeOnConfigurationChangedListener(mOnConfigurationChangedListener);
mBrightnessMirrorHandler.onQsPanelDettached();
}
@Override
@@ -138,8 +132,4 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
public int getNumQuickTiles() {
return mView.getNumQuickTiles();
}
public void setBrightnessMirror(BrightnessMirrorController brightnessMirrorController) {
mBrightnessMirrorHandler.setController(brightnessMirrorController);
}
}

View File

@@ -50,13 +50,12 @@ import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.systemui.Dependency;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.settings.CurrentUserTracker;
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
import java.util.ArrayList;
import javax.inject.Inject;
public class BrightnessController implements ToggleSlider.Listener, MirroredBrightnessController {
public class BrightnessController implements ToggleSlider.Listener {
private static final String TAG = "StatusBar.BrightnessController";
private static final int SLIDER_ANIMATION_DURATION = 3000;
@@ -110,11 +109,6 @@ public class BrightnessController implements ToggleSlider.Listener, MirroredBrig
private ValueAnimator mSliderAnimator;
@Override
public void setMirror(BrightnessMirrorController controller) {
mControl.setMirrorControllerAndMirror(controller);
}
public interface BrightnessStateChangeCallback {
/** Indicates that some of the brightness settings have changed */
void onBrightnessLevelChanged();

View File

@@ -1,46 +0,0 @@
/*
* Copyright (C) 2021 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.statusbar.policy.BrightnessMirrorController
import com.android.systemui.statusbar.policy.BrightnessMirrorController.BrightnessMirrorListener
class BrightnessMirrorHandler(private val brightnessController: MirroredBrightnessController) {
private var mirrorController: BrightnessMirrorController? = null
private val brightnessMirrorListener = BrightnessMirrorListener { updateBrightnessMirror() }
fun onQsPanelAttached() {
mirrorController?.addCallback(brightnessMirrorListener)
}
fun onQsPanelDettached() {
mirrorController?.removeCallback(brightnessMirrorListener)
}
fun setController(controller: BrightnessMirrorController) {
mirrorController?.removeCallback(brightnessMirrorListener)
mirrorController = controller
mirrorController?.addCallback(brightnessMirrorListener)
updateBrightnessMirror()
}
private fun updateBrightnessMirror() {
mirrorController?.let { brightnessController.setMirror(it) }
}
}

View File

@@ -23,7 +23,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.SeekBar;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.android.settingslib.RestrictedLockUtils;
@@ -139,9 +138,15 @@ public class BrightnessSlider extends ViewController<BrightnessSliderView> imple
* @param c
*/
@Override
public void setMirrorControllerAndMirror(@NonNull BrightnessMirrorController c) {
public void setMirrorControllerAndMirror(BrightnessMirrorController c) {
mMirrorController = c;
setMirror(c.getToggleSlider());
if (c != null) {
setMirror(c.getToggleSlider());
} else {
// If there's no mirror, we may be the ones dispatching, events but we should not mirror
// them
mView.setOnDispatchTouchEventListener(null);
}
}
@Override

View File

@@ -1,26 +0,0 @@
/*
* Copyright (C) 2021 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.statusbar.policy.BrightnessMirrorController
/**
* Indicates controller that has brightness slider and uses [BrightnessMirrorController]
*/
interface MirroredBrightnessController {
fun setMirror(controller: BrightnessMirrorController)
}

View File

@@ -18,8 +18,6 @@ package com.android.systemui.settings.brightness;
import android.view.MotionEvent;
import androidx.annotation.NonNull;
import com.android.settingslib.RestrictedLockUtils;
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
@@ -29,7 +27,7 @@ public interface ToggleSlider {
}
void setEnforcedAdmin(RestrictedLockUtils.EnforcedAdmin admin);
void setMirrorControllerAndMirror(@NonNull BrightnessMirrorController c);
void setMirrorControllerAndMirror(BrightnessMirrorController c);
boolean mirrorTouchEvent(MotionEvent ev);
void setOnChangedListener(Listener l);

View File

@@ -1309,7 +1309,8 @@ public class StatusBar extends SystemUI implements DemoMode,
fragmentHostManager.addTagListener(QS.TAG, (tag, f) -> {
QS qs = (QS) f;
if (qs instanceof QSFragment) {
((QSFragment) qs).setBrightnessMirrorController(mBrightnessMirrorController);
mQSPanelController = ((QSFragment) qs).getQSPanelController();
mQSPanelController.setBrightnessMirror(mBrightnessMirrorController);
}
});
}

View File

@@ -19,15 +19,13 @@ package com.android.systemui.qs
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.settings.brightness.BrightnessController
import com.android.systemui.statusbar.policy.BrightnessMirrorController
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.mockito.Mock
import org.mockito.Mockito.times
import org.mockito.Mockito.verify
import org.mockito.Mockito.times
import org.mockito.Mockito.never
import org.mockito.Mockito.mock
import org.mockito.junit.MockitoJUnit
@SmallTest
@@ -106,13 +104,4 @@ class QuickQSBrightnessControllerTest : SysuiTestCase() {
verify(brightnessController, never()).registerCallbacks()
}
@Test
fun testMirrorIsSetWhenSliderIsShown() {
val mirrorController = mock(BrightnessMirrorController::class.java)
quickQSBrightnessController.setMirror(mirrorController)
quickQSBrightnessController.refreshVisibility(shouldUseSplitNotificationShade = true)
verify(brightnessController).setMirror(mirrorController)
}
}

View File

@@ -107,6 +107,15 @@ class BrightnessSliderTest : SysuiTestCase() {
verify(brightnessSliderView).setEnforcedAdmin(enforcedAdmin)
}
@Test
fun testNullMirrorControllerNotTrackingTouch() {
mController.setMirrorControllerAndMirror(null)
verify(brightnessSliderView, never()).max
verify(brightnessSliderView, never()).value
verify(brightnessSliderView).setOnDispatchTouchEventListener(isNull())
}
@Test
fun testNullMirrorNotTrackingTouch() {
whenever(mirrorController.toggleSlider).thenReturn(null)