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

Commit fb5f1432 authored by Fabian Kozynski's avatar Fabian Kozynski
Browse files

Auto added tiles should add at the end

Custom tiles that were added to QSTileHost were always added at the
beginning. Add a parameter so they can either be added at the beginning
(from StatusBar) or at the end (from AutoTileManager).

Test: manual
Test: atest AutoTileManagerTest QSTileHostTest
Fixes: 157497851
Change-Id: Ifb24d6dcca164d30f5888581654fe3e9c7489d4e
parent 22e135e1
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -355,10 +355,23 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D
    }

    public void addTile(ComponentName tile) {
        addTile(tile, /* end */ false);
    }

    /**
     * Adds a custom tile to the set of current tiles.
     * @param tile the component name of the {@link android.service.quicksettings.TileService}
     * @param end if true, the tile will be added at the end. If false, at the beginning.
     */
    public void addTile(ComponentName tile, boolean end) {
        String spec = CustomTile.toSpec(tile);
        if (!mTileSpecs.contains(spec)) {
            List<String> newSpecs = new ArrayList<>(mTileSpecs);
            if (end) {
                newSpecs.add(spec);
            } else {
                newSpecs.add(0, spec);
            }
            changeTiles(mTileSpecs, newSpecs);
        }
    }
+1 −1
Original line number Diff line number Diff line
@@ -274,7 +274,7 @@ public class AutoTileManager {
            }
            if (value != 0) {
                if (mSpec.startsWith(CustomTile.PREFIX)) {
                    mHost.addTile(CustomTile.getComponentFromSpec(mSpec));
                    mHost.addTile(CustomTile.getComponentFromSpec(mSpec), /* end */ true);
                } else {
                    mHost.addTile(mSpec);
                }
+31 −1
Original line number Diff line number Diff line
@@ -219,12 +219,42 @@ public class QSTileHostTest extends SysuiTestCase {
    public void testNoRepeatedSpecs_customTile() {
        mQSTileHost.onTuningChanged(QSTileHost.TILES_SETTING, CUSTOM_TILE_SPEC);

        mQSTileHost.addTile(CUSTOM_TILE);
        mQSTileHost.addTile(CUSTOM_TILE, /* end */ false);

        assertEquals(1, mQSTileHost.mTileSpecs.size());
        assertEquals(CUSTOM_TILE_SPEC, mQSTileHost.mTileSpecs.get(0));
    }

    @Test
    public void testAddedAtBeginningOnDefault_customTile() {
        mQSTileHost.onTuningChanged(QSTileHost.TILES_SETTING, "spec1"); // seed

        mQSTileHost.addTile(CUSTOM_TILE);

        assertEquals(2, mQSTileHost.mTileSpecs.size());
        assertEquals(CUSTOM_TILE_SPEC, mQSTileHost.mTileSpecs.get(0));
    }

    @Test
    public void testAddedAtBeginning_customTile() {
        mQSTileHost.onTuningChanged(QSTileHost.TILES_SETTING, "spec1"); // seed

        mQSTileHost.addTile(CUSTOM_TILE, /* end */ false);

        assertEquals(2, mQSTileHost.mTileSpecs.size());
        assertEquals(CUSTOM_TILE_SPEC, mQSTileHost.mTileSpecs.get(0));
    }

    @Test
    public void testAddedAtEnd_customTile() {
        mQSTileHost.onTuningChanged(QSTileHost.TILES_SETTING, "spec1"); // seed

        mQSTileHost.addTile(CUSTOM_TILE, /* end */ true);

        assertEquals(2, mQSTileHost.mTileSpecs.size());
        assertEquals(CUSTOM_TILE_SPEC, mQSTileHost.mTileSpecs.get(1));
    }

    @Test
    public void testLoadTileSpec_repeated() {
        List<String> specs = QSTileHost.loadTileSpecs(mContext, "spec1,spec1,spec2");
+3 −2
Original line number Diff line number Diff line
@@ -172,11 +172,12 @@ public class AutoTileManagerTest extends SysuiTestCase {
    }

    @Test
    public void testSettingTileAddedComponent_onChanged() {
    public void testSettingTileAddedComponentAtEnd_onChanged() {
        changeValue(TEST_SETTING_COMPONENT, 1);
        waitForIdleSync();
        verify(mAutoAddTracker).setTileAdded(TEST_CUSTOM_SPEC);
        verify(mQsTileHost).addTile(ComponentName.unflattenFromString(TEST_COMPONENT));
        verify(mQsTileHost).addTile(ComponentName.unflattenFromString(TEST_COMPONENT)
            , /* end */ true);
    }

    @Test