Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9196f072 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix NPE when QSPanel not yet attached,"

parents 0acea76d f8b3ddfe
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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) {
+9 −4
Original line number Diff line number Diff line
@@ -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
+35 −0
Original line number Diff line number Diff line
@@ -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);