Merge "Revert "Making mirror slider appear when brightness slider is used in split shade"" into sc-v2-dev

This commit is contained in:
Fabian Kozynski
2021-07-30 20:37:02 +00:00
committed by Android (Google) Code Review
12 changed files with 59 additions and 132 deletions

View File

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

View File

@@ -19,8 +19,6 @@ package com.android.systemui.qs
import androidx.annotation.VisibleForTesting import androidx.annotation.VisibleForTesting
import com.android.systemui.settings.brightness.BrightnessController import com.android.systemui.settings.brightness.BrightnessController
import com.android.systemui.settings.brightness.BrightnessSlider 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 import javax.inject.Inject
/** /**
@@ -29,7 +27,7 @@ import javax.inject.Inject
*/ */
class QuickQSBrightnessController @VisibleForTesting constructor( class QuickQSBrightnessController @VisibleForTesting constructor(
private val brightnessControllerFactory: () -> BrightnessController private val brightnessControllerFactory: () -> BrightnessController
) : MirroredBrightnessController { ) {
@Inject constructor( @Inject constructor(
brightnessControllerFactory: BrightnessController.Factory, brightnessControllerFactory: BrightnessController.Factory,
@@ -44,7 +42,6 @@ class QuickQSBrightnessController @VisibleForTesting constructor(
private var isListening = false private var isListening = false
private var brightnessController: BrightnessController? = null private var brightnessController: BrightnessController? = null
private var mirrorController: BrightnessMirrorController? = null
fun init(shouldUseSplitNotificationShade: Boolean) { fun init(shouldUseSplitNotificationShade: Boolean) {
refreshVisibility(shouldUseSplitNotificationShade) 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() { private fun hideBrightnessSlider() {
brightnessController?.hideSlider() brightnessController?.hideSlider()
} }
@@ -92,10 +84,11 @@ class QuickQSBrightnessController @VisibleForTesting constructor(
private fun showBrightnessSlider() { private fun showBrightnessSlider() {
if (brightnessController == null) { if (brightnessController == null) {
brightnessController = brightnessControllerFactory() brightnessController = brightnessControllerFactory()
mirrorController?.also { brightnessController?.setMirror(it) } }
brightnessController?.showSlider()
if (!isListening) {
brightnessController?.registerCallbacks() brightnessController?.registerCallbacks()
isListening = true 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.customize.QSCustomizerController;
import com.android.systemui.qs.dagger.QSScope; import com.android.systemui.qs.dagger.QSScope;
import com.android.systemui.qs.logging.QSLogger; 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.ArrayList;
import java.util.List; import java.util.List;
@@ -52,7 +50,6 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
// brightness is visible only in split shade // brightness is visible only in split shade
private final QuickQSBrightnessController mBrightnessController; private final QuickQSBrightnessController mBrightnessController;
private final BrightnessMirrorHandler mBrightnessMirrorHandler;
@Inject @Inject
QuickQSPanelController(QuickQSPanel view, QSTileHost qsTileHost, QuickQSPanelController(QuickQSPanel view, QSTileHost qsTileHost,
@@ -66,7 +63,6 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
super(view, qsTileHost, qsCustomizerController, usingMediaPlayer, mediaHost, metricsLogger, super(view, qsTileHost, qsCustomizerController, usingMediaPlayer, mediaHost, metricsLogger,
uiEventLogger, qsLogger, dumpManager); uiEventLogger, qsLogger, dumpManager);
mBrightnessController = quickQSBrightnessController; mBrightnessController = quickQSBrightnessController;
mBrightnessMirrorHandler = new BrightnessMirrorHandler(mBrightnessController);
} }
@Override @Override
@@ -82,14 +78,12 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
protected void onViewAttached() { protected void onViewAttached() {
super.onViewAttached(); super.onViewAttached();
mView.addOnConfigurationChangedListener(mOnConfigurationChangedListener); mView.addOnConfigurationChangedListener(mOnConfigurationChangedListener);
mBrightnessMirrorHandler.onQsPanelAttached();
} }
@Override @Override
protected void onViewDetached() { protected void onViewDetached() {
super.onViewDetached(); super.onViewDetached();
mView.removeOnConfigurationChangedListener(mOnConfigurationChangedListener); mView.removeOnConfigurationChangedListener(mOnConfigurationChangedListener);
mBrightnessMirrorHandler.onQsPanelDettached();
} }
@Override @Override
@@ -138,8 +132,4 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
public int getNumQuickTiles() { public int getNumQuickTiles() {
return mView.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.Dependency;
import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.settings.CurrentUserTracker; import com.android.systemui.settings.CurrentUserTracker;
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
import java.util.ArrayList; import java.util.ArrayList;
import javax.inject.Inject; 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 String TAG = "StatusBar.BrightnessController";
private static final int SLIDER_ANIMATION_DURATION = 3000; private static final int SLIDER_ANIMATION_DURATION = 3000;
@@ -110,11 +109,6 @@ public class BrightnessController implements ToggleSlider.Listener, MirroredBrig
private ValueAnimator mSliderAnimator; private ValueAnimator mSliderAnimator;
@Override
public void setMirror(BrightnessMirrorController controller) {
mControl.setMirrorControllerAndMirror(controller);
}
public interface BrightnessStateChangeCallback { public interface BrightnessStateChangeCallback {
/** Indicates that some of the brightness settings have changed */ /** Indicates that some of the brightness settings have changed */
void onBrightnessLevelChanged(); 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.view.ViewGroup;
import android.widget.SeekBar; import android.widget.SeekBar;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils;
@@ -139,9 +138,15 @@ public class BrightnessSlider extends ViewController<BrightnessSliderView> imple
* @param c * @param c
*/ */
@Override @Override
public void setMirrorControllerAndMirror(@NonNull BrightnessMirrorController c) { public void setMirrorControllerAndMirror(BrightnessMirrorController c) {
mMirrorController = c; mMirrorController = c;
if (c != null) {
setMirror(c.getToggleSlider()); 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 @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 android.view.MotionEvent;
import androidx.annotation.NonNull;
import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils;
import com.android.systemui.statusbar.policy.BrightnessMirrorController; import com.android.systemui.statusbar.policy.BrightnessMirrorController;
@@ -29,7 +27,7 @@ public interface ToggleSlider {
} }
void setEnforcedAdmin(RestrictedLockUtils.EnforcedAdmin admin); void setEnforcedAdmin(RestrictedLockUtils.EnforcedAdmin admin);
void setMirrorControllerAndMirror(@NonNull BrightnessMirrorController c); void setMirrorControllerAndMirror(BrightnessMirrorController c);
boolean mirrorTouchEvent(MotionEvent ev); boolean mirrorTouchEvent(MotionEvent ev);
void setOnChangedListener(Listener l); void setOnChangedListener(Listener l);

View File

@@ -1354,7 +1354,8 @@ public class StatusBar extends SystemUI implements
fragmentHostManager.addTagListener(QS.TAG, (tag, f) -> { fragmentHostManager.addTagListener(QS.TAG, (tag, f) -> {
QS qs = (QS) f; QS qs = (QS) f;
if (qs instanceof QSFragment) { 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 androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.settings.brightness.BrightnessController import com.android.systemui.settings.brightness.BrightnessController
import com.android.systemui.statusbar.policy.BrightnessMirrorController
import org.junit.Before import org.junit.Before
import org.junit.Rule import org.junit.Rule
import org.junit.Test import org.junit.Test
import org.mockito.Mock import org.mockito.Mock
import org.mockito.Mockito.times
import org.mockito.Mockito.verify import org.mockito.Mockito.verify
import org.mockito.Mockito.times
import org.mockito.Mockito.never import org.mockito.Mockito.never
import org.mockito.Mockito.mock
import org.mockito.junit.MockitoJUnit import org.mockito.junit.MockitoJUnit
@SmallTest @SmallTest
@@ -106,13 +104,4 @@ class QuickQSBrightnessControllerTest : SysuiTestCase() {
verify(brightnessController, never()).registerCallbacks() 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) verify(brightnessSliderView).setEnforcedAdmin(enforcedAdmin)
} }
@Test
fun testNullMirrorControllerNotTrackingTouch() {
mController.setMirrorControllerAndMirror(null)
verify(brightnessSliderView, never()).max
verify(brightnessSliderView, never()).value
verify(brightnessSliderView).setOnDispatchTouchEventListener(isNull())
}
@Test @Test
fun testNullMirrorNotTrackingTouch() { fun testNullMirrorNotTrackingTouch() {
whenever(mirrorController.toggleSlider).thenReturn(null) whenever(mirrorController.toggleSlider).thenReturn(null)