Merge "Fix NPE when QSPanel not yet attached,"
This commit is contained in:
committed by
Android (Google) Code Review
commit
9196f07279
@@ -413,7 +413,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
||||
}
|
||||
}
|
||||
mFooter.setExpansion(onKeyguardAndExpanded ? 1 : expansion);
|
||||
mQSPanelController.getQsTileRevealController().setExpansion(expansion);
|
||||
mQSPanelController.setRevealExpansion(expansion);
|
||||
mQSPanelController.getTileLayout().setExpansion(expansion);
|
||||
mQSPanelScrollView.setTranslationY(translationScaleY * heightDiff);
|
||||
if (fullyCollapsed) {
|
||||
|
||||
@@ -56,7 +56,9 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
|
||||
protected final ArrayList<TileRecord> mRecords = new ArrayList<>();
|
||||
|
||||
private int mLastOrientation;
|
||||
private String mCachedSpecs = "";
|
||||
private QSTileRevealController mQsTileRevealController;
|
||||
private float mRevealExpansion;
|
||||
|
||||
private final QSHost.Callback mQSHostCallback = this::setTiles;
|
||||
|
||||
@@ -70,7 +72,6 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
|
||||
}
|
||||
}
|
||||
};
|
||||
private String mCachedSpecs = "";
|
||||
|
||||
protected QSPanelControllerBase(T view, QSTileHost host,
|
||||
QSCustomizerController qsCustomizerController,
|
||||
@@ -92,6 +93,7 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
|
||||
if (regularTileLayout instanceof PagedTileLayout) {
|
||||
mQsTileRevealController = mQsTileRevealControllerFactory.create(
|
||||
(PagedTileLayout) regularTileLayout);
|
||||
mQsTileRevealController.setExpansion(mRevealExpansion);
|
||||
}
|
||||
|
||||
mView.addOnConfigurationChangedListener(mOnConfigurationChangedListener);
|
||||
@@ -246,9 +248,12 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
|
||||
}
|
||||
}
|
||||
|
||||
/** */
|
||||
public QSTileRevealController getQsTileRevealController() {
|
||||
return mQsTileRevealController;
|
||||
/** Set the expansion on the associated {@link QSTileRevealController}. */
|
||||
public void setRevealExpansion(float expansion) {
|
||||
mRevealExpansion = expansion;
|
||||
if (mQsTileRevealController != null) {
|
||||
mQsTileRevealController.setExpansion(expansion);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -19,9 +19,12 @@ package com.android.systemui.qs;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||
import static org.mockito.ArgumentMatchers.anyFloat;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.doAnswer;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.reset;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@@ -112,8 +115,40 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
|
||||
mUiEventLogger, mDumpManager);
|
||||
|
||||
mController.init();
|
||||
reset(mQSTileRevealController);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetRevealExpansion_preAttach() {
|
||||
mController.onViewDetached();
|
||||
|
||||
QSPanelControllerBase<QSPanel> controller = new TestableQSPanelControllerBase(mQSPanel,
|
||||
mQSTileHost, mQSCustomizerController, mQSTileRevealControllerFactory,
|
||||
mMetricsLogger, mUiEventLogger, mDumpManager);
|
||||
|
||||
// Nothing happens until attached
|
||||
controller.setRevealExpansion(0);
|
||||
verify(mQSTileRevealController, never()).setExpansion(anyFloat());
|
||||
controller.setRevealExpansion(0.5f);
|
||||
verify(mQSTileRevealController, never()).setExpansion(anyFloat());
|
||||
controller.setRevealExpansion(1);
|
||||
verify(mQSTileRevealController, never()).setExpansion(anyFloat());
|
||||
|
||||
controller.init();
|
||||
verify(mQSTileRevealController).setExpansion(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetRevealExpansion_postAttach() {
|
||||
mController.setRevealExpansion(0);
|
||||
verify(mQSTileRevealController).setExpansion(0);
|
||||
mController.setRevealExpansion(0.5f);
|
||||
verify(mQSTileRevealController).setExpansion(0.5f);
|
||||
mController.setRevealExpansion(1);
|
||||
verify(mQSTileRevealController).setExpansion(1);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testSetExpanded_Metrics() {
|
||||
mController.setExpanded(true);
|
||||
|
||||
Reference in New Issue
Block a user