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

Commit 856c3595 authored by Anton Potapov's avatar Anton Potapov Committed by Android (Google) Code Review
Browse files

Merge "Fix qs rows count on foldables" into tm-qpr-dev

parents 504bed43 01a7e864
Loading
Loading
Loading
Loading
+13 −7
Original line number Diff line number Diff line
@@ -364,13 +364,18 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
    private void distributeTiles() {
        emptyAndInflateOrRemovePages();

        final int tileCount = mPages.get(0).maxTiles();
        if (DEBUG) Log.d(TAG, "Distributing tiles");
        final int tilesPerPageCount = mPages.get(0).maxTiles();
        int index = 0;
        final int NT = mTiles.size();
        for (int i = 0; i < NT; i++) {
        final int totalTilesCount = mTiles.size();
        if (DEBUG) {
            Log.d(TAG, "Distributing tiles: "
                    + "[tilesPerPageCount=" + tilesPerPageCount + "]"
                    + "[totalTilesCount=" + totalTilesCount + "]"
            );
        }
        for (int i = 0; i < totalTilesCount; i++) {
            TileRecord tile = mTiles.get(i);
            if (mPages.get(index).mRecords.size() == tileCount) index++;
            if (mPages.get(index).mRecords.size() == tilesPerPageCount) index++;
            if (DEBUG) {
                Log.d(TAG, "Adding " + tile.tile.getClass().getSimpleName() + " to "
                        + index);
@@ -738,6 +743,7 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {

    public interface PageListener {
        int INVALID_PAGE = -1;

        void onPageChanged(boolean isFirst, int pageNumber);
    }
}
+0 −1
Original line number Diff line number Diff line
@@ -123,7 +123,6 @@ public class TileLayout extends ViewGroup implements QSTileLayout {
    public boolean updateResources() {
        final Resources res = mContext.getResources();
        mResourceColumns = Math.max(1, res.getInteger(R.integer.quick_settings_num_columns));
        updateColumns();
        mMaxCellHeight = mContext.getResources().getDimensionPixelSize(mCellHeightResId);
        mCellMarginHorizontal = res.getDimensionPixelSize(R.dimen.qs_tile_margin_horizontal);
        mSidePadding = useSidePadding() ? mCellMarginHorizontal / 2 : 0;
+27 −2
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;

import android.content.Context;
import android.content.res.Resources;
import android.test.suitebuilder.annotation.SmallTest;
import android.view.accessibility.AccessibilityNodeInfo;

@@ -42,16 +44,22 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Mockito;

@SmallTest
@RunWith(AndroidJUnit4.class)
public class TileLayoutTest extends SysuiTestCase {
    private TileLayout mTileLayout;
    private Resources mResources;
    private int mLayoutSizeForOneTile;
    private TileLayout mTileLayout; // under test

    @Before
    public void setUp() throws Exception {
        mTileLayout = new TileLayout(mContext);
        Context context = Mockito.spy(mContext);
        mResources = Mockito.spy(context.getResources());
        Mockito.when(mContext.getResources()).thenReturn(mResources);

        mTileLayout = new TileLayout(context);
        // Layout needs to leave space for the tile margins. Three times the margin size is
        // sufficient for any number of columns.
        mLayoutSizeForOneTile =
@@ -203,4 +211,21 @@ public class TileLayoutTest extends SysuiTestCase {
        verify(tileRecord1.tileView).setPosition(0);
        verify(tileRecord2.tileView).setPosition(1);
    }

    @Test
    public void resourcesChanged_updateResources_returnsTrue() {
        Mockito.when(mResources.getInteger(R.integer.quick_settings_num_columns)).thenReturn(1);
        mTileLayout.updateResources(); // setup with 1
        Mockito.when(mResources.getInteger(R.integer.quick_settings_num_columns)).thenReturn(2);

        assertEquals(true, mTileLayout.updateResources());
    }

    @Test
    public void resourcesSame_updateResources_returnsFalse() {
        Mockito.when(mResources.getInteger(R.integer.quick_settings_num_columns)).thenReturn(1);
        mTileLayout.updateResources(); // setup with 1

        assertEquals(false, mTileLayout.updateResources());
    }
}