diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java index cfd845f8c24bc..06a31c94896a4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java @@ -66,8 +66,6 @@ public class PhoneStatusBarView extends PanelBar { @Nullable private List mExpansionChangedListeners; @Nullable - private PanelExpansionStateChangedListener mPanelExpansionStateChangedListener; - @Nullable private TouchEventHandler mTouchEventHandler; /** @@ -89,10 +87,6 @@ public class PhoneStatusBarView extends PanelBar { mExpansionChangedListeners = listeners; } - void setPanelExpansionStateChangedListener(PanelExpansionStateChangedListener listener) { - mPanelExpansionStateChangedListener = listener; - } - void setTouchEventHandler(TouchEventHandler handler) { mTouchEventHandler = handler; } @@ -211,14 +205,6 @@ public class PhoneStatusBarView extends PanelBar { @Override public void panelExpansionChanged(float frac, boolean expanded) { super.panelExpansionChanged(frac, expanded); - if ((frac == 0 || frac == 1)) { - if (mPanelExpansionStateChangedListener != null) { - mPanelExpansionStateChangedListener.onPanelExpansionStateChanged(); - } else { - Log.w(TAG, "No PanelExpansionStateChangedListener provided."); - } - } - if (mExpansionChangedListeners != null) { for (StatusBar.ExpansionChangedListener listener : mExpansionChangedListeners) { listener.onExpansionChanged(frac, expanded); @@ -305,12 +291,6 @@ public class PhoneStatusBarView extends PanelBar { getPaddingBottom()); } - /** A listener that will be notified when a panel's expansion state may have changed. */ - public interface PanelExpansionStateChangedListener { - /** Called when a panel's expansion state may have changed. */ - void onPanelExpansionStateChanged(); - } - /** * A handler repsonsible for all touch event handling on the status bar. * diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewController.kt index f4b10f045eeb7..e27f4585e3206 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewController.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewController.kt @@ -27,7 +27,6 @@ import com.android.systemui.util.ViewController class PhoneStatusBarViewController( view: PhoneStatusBarView, statusBarMoveFromCenterAnimationController: StatusBarMoveFromCenterAnimationController?, - panelExpansionStateChangedListener: PhoneStatusBarView.PanelExpansionStateChangedListener, touchEventHandler: PhoneStatusBarView.TouchEventHandler, ) : ViewController(view) { @@ -36,7 +35,6 @@ class PhoneStatusBarViewController( init { mView.setTouchEventHandler(touchEventHandler) - mView.setPanelExpansionStateChangedListener(panelExpansionStateChangedListener) statusBarMoveFromCenterAnimationController?.let { animationController -> val statusBarLeftSide: View = mView.findViewById(R.id.status_bar_left_side) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 6fd0d06b31c2c..caa0dbe1a2c9a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -902,6 +902,7 @@ public class StatusBar extends SystemUI implements mExpansionChangedListeners = new ArrayList<>(); addExpansionChangedListener( (expansion, expanded) -> mScrimController.setRawPanelExpansionFraction(expansion)); + addExpansionChangedListener(this::onPanelExpansionChanged); mBubbleExpandListener = (isExpanding, key) -> mContext.getMainExecutor().execute(() -> { @@ -1185,7 +1186,6 @@ public class StatusBar extends SystemUI implements new PhoneStatusBarViewController( mStatusBarView, moveFromCenterAnimation, - this::onPanelExpansionStateChanged, mNotificationPanelViewController.getStatusBarTouchEventHandler() ); mPhoneStatusBarViewController.init(); @@ -1456,12 +1456,14 @@ public class StatusBar extends SystemUI implements } } - private void onPanelExpansionStateChanged() { - if (getNavigationBarView() != null) { - getNavigationBarView().onStatusBarPanelStateChanged(); - } - if (getNotificationPanelViewController() != null) { - getNotificationPanelViewController().updateSystemUiStateFlags(); + private void onPanelExpansionChanged(float frac, boolean expanded) { + if (frac == 0 || frac == 1) { + if (getNavigationBarView() != null) { + getNavigationBarView().onStatusBarPanelStateChanged(); + } + if (getNotificationPanelViewController() != null) { + getNotificationPanelViewController().updateSystemUiStateFlags(); + } } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewControllerTest.kt index b53db88c01e75..033f689945c86 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewControllerTest.kt @@ -24,7 +24,6 @@ import androidx.test.filters.SmallTest import androidx.test.platform.app.InstrumentationRegistry import com.android.systemui.R import com.android.systemui.SysuiTestCase -import com.android.systemui.statusbar.CommandQueue import com.android.systemui.util.mockito.any import com.google.common.truth.Truth.assertThat import org.junit.Before @@ -38,11 +37,8 @@ import org.mockito.MockitoAnnotations @SmallTest class PhoneStatusBarViewControllerTest : SysuiTestCase() { - private val stateChangeListener = TestStateChangedListener() private val touchEventHandler = TestTouchEventHandler() - @Mock - private lateinit var commandQueue: CommandQueue @Mock private lateinit var panelViewController: PanelViewController @Mock @@ -73,7 +69,6 @@ class PhoneStatusBarViewControllerTest : SysuiTestCase() { controller = PhoneStatusBarViewController( view, null, - stateChangeListener, touchEventHandler, ) } @@ -90,31 +85,12 @@ class PhoneStatusBarViewControllerTest : SysuiTestCase() { @Test fun constructor_moveFromCenterAnimationIsNotNull_moveFromCenterAnimationInitialized() { controller = PhoneStatusBarViewController( - view, moveFromCenterAnimation, stateChangeListener, touchEventHandler + view, moveFromCenterAnimation, touchEventHandler ) verify(moveFromCenterAnimation).init(any(), any()) } - @Test - fun constructor_setsExpansionStateChangedListenerOnView() { - assertThat(stateChangeListener.stateChangeCalled).isFalse() - - // If the constructor correctly set the listener, then it should be used when - // [PhoneStatusBarView.panelExpansionChanged] is called. - view.panelExpansionChanged(0f, false) - - assertThat(stateChangeListener.stateChangeCalled).isTrue() - } - - private class TestStateChangedListener : PhoneStatusBarView.PanelExpansionStateChangedListener { - var stateChangeCalled: Boolean = false - - override fun onPanelExpansionStateChanged() { - stateChangeCalled = true - } - } - private class TestTouchEventHandler : PhoneStatusBarView.TouchEventHandler { var lastEvent: MotionEvent? = null override fun handleTouchEvent(event: MotionEvent?): Boolean { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewTest.kt index 5f72ff82c3441..fe3490399e81e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/PhoneStatusBarViewTest.kt @@ -54,37 +54,20 @@ class PhoneStatusBarViewTest : SysuiTestCase() { } @Test - fun panelExpansionChanged_fracZero_stateChangeListenerNotified() { - val listener = TestExpansionStateChangedListener() - view.setPanelExpansionStateChangedListener(listener) + fun panelExpansionChanged_expansionChangeListenerNotified() { + val listener = TestExpansionChangedListener() + view.setExpansionChangedListeners(listOf(listener)) + val fraction = 0.4f + val isExpanded = true - view.panelExpansionChanged(0f, false) + view.panelExpansionChanged(fraction, isExpanded) - assertThat(listener.stateChangeCalled).isTrue() + assertThat(listener.fraction).isEqualTo(fraction) + assertThat(listener.isExpanded).isEqualTo(isExpanded) } @Test - fun panelExpansionChanged_fracOne_stateChangeListenerNotified() { - val listener = TestExpansionStateChangedListener() - view.setPanelExpansionStateChangedListener(listener) - - view.panelExpansionChanged(1f, false) - - assertThat(listener.stateChangeCalled).isTrue() - } - - @Test - fun panelExpansionChanged_fracHalf_stateChangeListenerNotNotified() { - val listener = TestExpansionStateChangedListener() - view.setPanelExpansionStateChangedListener(listener) - - view.panelExpansionChanged(0.5f, false) - - assertThat(listener.stateChangeCalled).isFalse() - } - - @Test - fun panelExpansionChanged_noStateChangeListener_noCrash() { + fun panelExpansionChanged_noListeners_noCrash() { view.panelExpansionChanged(1f, false) // No assert needed, just testing no crash } @@ -123,12 +106,6 @@ class PhoneStatusBarViewTest : SysuiTestCase() { assertThat(listener.state).isEqualTo(PanelBar.STATE_CLOSED) } - @Test - fun panelStateChanged_noListener_noCrash() { - view.panelExpansionChanged(1f, true) - // No assert needed, just testing no crash - } - @Test fun onTouchEvent_listenerNotified() { val handler = TestTouchEventHandler() @@ -168,12 +145,14 @@ class PhoneStatusBarViewTest : SysuiTestCase() { // No assert needed, just testing no crash } - private class TestExpansionStateChangedListener - : PhoneStatusBarView.PanelExpansionStateChangedListener { - var stateChangeCalled: Boolean = false + private class TestExpansionChangedListener + : StatusBar.ExpansionChangedListener { + var fraction: Float = 0f + var isExpanded: Boolean = false - override fun onPanelExpansionStateChanged() { - stateChangeCalled = true + override fun onExpansionChanged(expansion: Float, expanded: Boolean) { + this.fraction = expansion + this.isExpanded = expanded } }