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

Commit 1696ace3 authored by Fabian Kozynski's avatar Fabian Kozynski
Browse files

Use proper size for indexing

We are indexing over mRecords, so use its size to determine index limit
in the layouts used in QuickQSPanel

The issue is introduced in the refactor of QS as the tiles are now set
in QSPanelControllerBase#switchTileLayout, after the switch is
completed.

Test: manual, dismiss media while in landscape
Fixes: 171628022
Change-Id: I5f0caf73f7637ea8308d8795b0a60825025d6c5b
parent 81bc9685
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -99,7 +99,7 @@ class DoubleLineTileLayout(
        }
    }

    override fun getNumVisibleTiles() = tilesToShow
    override fun getNumVisibleTiles() = Math.min(mRecords.size, tilesToShow)

    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)
+8 −1
Original line number Diff line number Diff line
@@ -480,7 +480,6 @@ public class QSPanel extends LinearLayout implements Tunable, BrightnessMirrorLi
                }
            }
            mTileLayout = newLayout;
            newLayout.setListening(mListening);
            if (needsDynamicRowsAndColumns()) {
                newLayout.setMinRows(horizontal ? 2 : 1);
                // Let's use 3 columns to match the current layout
@@ -498,6 +497,14 @@ public class QSPanel extends LinearLayout implements Tunable, BrightnessMirrorLi
        return false;
    }

    /**
     * Sets the listening state of the current layout to the state of the view. Used after
     * switching layouts.
     */
    public void reSetLayoutListening() {
        mTileLayout.setListening(mListening);
    }

    private void updateHorizontalLinearLayoutMargins() {
        if (mHorizontalLinearLayout != null && !displayMediaMarginsOnMedia()) {
            LayoutParams lp = (LayoutParams) mHorizontalLinearLayout.getLayoutParams();
+1 −0
Original line number Diff line number Diff line
@@ -214,6 +214,7 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
    boolean switchTileLayout(boolean force) {
        if (mView.switchTileLayout(force, mRecords)) {
            setTiles();
            mView.reSetLayoutListening();
            return true;
        }
        return false;
+2 −1
Original line number Diff line number Diff line
@@ -336,7 +336,7 @@ public class QuickQSPanel extends QSPanel {

        @Override
        public int getNumVisibleTiles() {
            return mColumns;
            return Math.min(mRecords.size(), mColumns);
        }

        @Override
@@ -353,6 +353,7 @@ public class QuickQSPanel extends QSPanel {
            boolean startedListening = !mListening && listening;
            super.setListening(listening);
            if (startedListening) {
                // getNumVisibleTiles() <= mRecords.size()
                for (int i = 0; i < getNumVisibleTiles(); i++) {
                    QSTile tile = mRecords.get(i).tile;
                    mUiEventLogger.logWithInstanceId(QSEvent.QQS_TILE_VISIBLE, 0,