diff options
6 files changed, 21 insertions, 28 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java index 7155626a1aa1..29f3e2ad10e5 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java @@ -465,6 +465,8 @@ public class QSPanel extends LinearLayout implements Tunable { ? Math.max(mMediaTotalBottomMargin - getPaddingBottom(), 0) : 0; layoutParams.topMargin = mediaNeedsTopMargin() && !horizontal ? mMediaTopMargin : 0; + // Call setLayoutParams explicitly to ensure that requestLayout happens + hostView.setLayoutParams(layoutParams); } } diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java index 918c6be582e7..a15cffd4f7ad 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java @@ -21,7 +21,6 @@ import static com.android.systemui.media.dagger.MediaModule.QS_PANEL; import static com.android.systemui.qs.QSPanel.QS_SHOW_BRIGHTNESS; import static com.android.systemui.qs.dagger.QSFragmentModule.QS_USING_MEDIA_PLAYER; -import android.content.res.Configuration; import android.view.MotionEvent; import android.view.View; @@ -63,17 +62,6 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> { private boolean mGridContentVisible = true; - private final QSPanel.OnConfigurationChangedListener mOnConfigurationChangedListener = - new QSPanel.OnConfigurationChangedListener() { - @Override - public void onConfigurationChange(Configuration newConfig) { - mView.updateResources(); - if (mView.isListening()) { - refreshAllTiles(); - } - } - }; - private View.OnTouchListener mTileLayoutTouchListener = new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { @@ -131,7 +119,6 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> { if (mView.isListening()) { refreshAllTiles(); } - mView.addOnConfigurationChangedListener(mOnConfigurationChangedListener); switchTileLayout(true); mBrightnessMirrorHandler.onQsPanelAttached(); @@ -148,11 +135,18 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> { @Override protected void onViewDetached() { mTunerService.removeTunable(mView); - mView.removeOnConfigurationChangedListener(mOnConfigurationChangedListener); mBrightnessMirrorHandler.onQsPanelDettached(); super.onViewDetached(); } + @Override + protected void onConfigurationChanged() { + mView.updateResources(); + if (mView.isListening()) { + refreshAllTiles(); + } + } + /** */ public void setVisibility(int visibility) { mView.setVisibility(visibility); diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java index 6d5f844667e7..9e1c0034f55a 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java @@ -90,11 +90,11 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr LargeScreenUtils.shouldUseSplitNotificationShade(getResources()); mQSLogger.logOnConfigurationChanged(mLastOrientation, newConfig.orientation, mView.getDumpableTag()); - onConfigurationChanged(); if (newConfig.orientation != mLastOrientation) { mLastOrientation = newConfig.orientation; switchTileLayout(false); } + onConfigurationChanged(); } }; @@ -408,6 +408,8 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr } if (mMediaHost != null) { pw.println(" media bounds: " + mMediaHost.getCurrentBounds()); + pw.println(" horizontal layout: " + mUsingHorizontalLayout); + pw.println(" last orientation: " + mLastOrientation); } } diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java index 833573dd3873..8ca7b2770b99 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanelController.java @@ -44,14 +44,6 @@ import javax.inject.Named; @QSScope public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel> { - private final QSPanel.OnConfigurationChangedListener mOnConfigurationChangedListener = - newConfig -> { - int newMaxTiles = getResources().getInteger(R.integer.quick_qs_panel_max_tiles); - if (newMaxTiles != mView.getNumQuickTiles()) { - setMaxTiles(newMaxTiles); - } - }; - private final boolean mUsingCollapsedLandscapeMedia; @Inject @@ -95,13 +87,11 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel> @Override protected void onViewAttached() { super.onViewAttached(); - mView.addOnConfigurationChangedListener(mOnConfigurationChangedListener); } @Override protected void onViewDetached() { super.onViewDetached(); - mView.removeOnConfigurationChangedListener(mOnConfigurationChangedListener); } private void setMaxTiles(int parseNumTiles) { @@ -111,6 +101,10 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel> @Override protected void onConfigurationChanged() { + int newMaxTiles = getResources().getInteger(R.integer.quick_qs_panel_max_tiles); + if (newMaxTiles != mView.getNumQuickTiles()) { + setMaxTiles(newMaxTiles); + } updateMediaExpansion(); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerBaseTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerBaseTest.java index c127a6b87da7..3cad2a005882 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerBaseTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSPanelControllerBaseTest.java @@ -224,7 +224,9 @@ public class QSPanelControllerBaseTest extends SysuiTestCase { + " Tile records:\n" + " " + mockTileString + "\n" + " " + mockTileViewString + "\n" - + " media bounds: null\n"; + + " media bounds: null\n" + + " horizontal layout: false\n" + + " last orientation: 0\n"; assertEquals(expected, w.getBuffer().toString()); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QuickQSPanelControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/QuickQSPanelControllerTest.kt index 1f28210acc64..e98f2146d062 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QuickQSPanelControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QuickQSPanelControllerTest.kt @@ -126,8 +126,7 @@ class QuickQSPanelControllerTest : SysuiTestCase() { @Test fun testMediaExpansionUpdatedWhenConfigurationChanged() { - // times(2) because both controller and base controller are registering their listeners - verify(quickQSPanel, times(2)).addOnConfigurationChangedListener(captor.capture()) + verify(quickQSPanel).addOnConfigurationChangedListener(captor.capture()) // verify that media starts in the expanded state by default verify(mediaHost).expansion = MediaHostState.EXPANDED |