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

Commit b1099261 authored by yinxu's avatar yinxu
Browse files

Fix the QS Tile issue

Bug: 182430245
Test: Manual tests
Change-Id: I4188007aeed70a5a2d4ba6ac1fdc79203cf955e3
parent c1eee285
Loading
Loading
Loading
Loading
+28 −22
Original line number Diff line number Diff line
@@ -445,11 +445,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D
        final ArrayList<String> tiles = new ArrayList<String>();
        boolean addedDefault = false;
        Set<String> addedSpecs = new ArraySet<>();
        // TODO(b/174753536): Move it into the config file.
        if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) {
            tiles.add("internet");
            addedSpecs.add("internet");
        }
        for (String tile : tileList.split(",")) {
            tile = tile.trim();
            if (tile.isEmpty()) continue;
@@ -457,17 +452,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D
                if (!addedDefault) {
                    List<String> defaultSpecs = getDefaultSpecs(context);
                    for (String spec : defaultSpecs) {
                        // TODO(b/174753536): Move it into the config file.
                        if (FeatureFlagUtils.isEnabled(
                                context, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) {
                            if (spec.equals("wifi") || spec.equals("cell")) {
                                continue;
                            }
                        } else {
                            if (spec.equals("internet")) {
                                continue;
                            }
                        }
                        if (!addedSpecs.contains(spec)) {
                            tiles.add(spec);
                            addedSpecs.add(spec);
@@ -476,15 +460,37 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D
                    addedDefault = true;
                }
            } else {
                if (!addedSpecs.contains(tile)) {
                    tiles.add(tile);
                    addedSpecs.add(tile);
                }
            }
        }
        // TODO(b/174753536): Move it into the config file.
        // Only do the below hacking when at least one of the below tiles exist
        //   --InternetTile
        //   --WiFiTile
        //   --CellularTIle
        if (tiles.contains("internet") || tiles.contains("wifi") || tiles.contains("cell")) {
            if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) {
                    if (tile.equals("wifi") || tile.equals("cell")) {
                        continue;
                if (!tiles.contains("internet")) {
                    tiles.add("internet");
                }
                if (tiles.contains("wifi")) {
                    tiles.remove("wifi");
                }
                if (!addedSpecs.contains(tile)) {
                    tiles.add(tile);
                    addedSpecs.add(tile);
                if (tiles.contains("cell")) {
                    tiles.remove("cell");
                }
            } else {
                if (tiles.contains("internet")) {
                    tiles.remove("internet");
                }
                if (!tiles.contains("wifi")) {
                    tiles.add("wifi");
                }
                if (!tiles.contains("cell")) {
                    tiles.add("cell");
                }
            }
        }
+26 −12
Original line number Diff line number Diff line
@@ -115,25 +115,39 @@ public class TileQueryHelper {

        final ArrayList<QSTile> tilesToAdd = new ArrayList<>();
        // TODO(b/174753536): Move it into the config file.
        // Only do the below hacking when at least one of the below tiles exist
        //   --InternetTile
        //   --WiFiTile
        //   --CellularTIle
        if (possibleTiles.contains("internet") || possibleTiles.contains("wifi")
                || possibleTiles.contains("cell")) {
            if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) {
                if (!possibleTiles.contains("internet")) {
                    possibleTiles.add("internet");
                }
                if (possibleTiles.contains("wifi")) {
                    possibleTiles.remove("wifi");
                }
                if (possibleTiles.contains("cell")) {
                    possibleTiles.remove("cell");
                }
            } else {
                if (possibleTiles.contains("internet")) {
                    possibleTiles.remove("internet");
                }
                if (!possibleTiles.contains("wifi")) {
                    possibleTiles.add("wifi");
                }
                if (!possibleTiles.contains("cell")) {
                    possibleTiles.add("cell");
                }
            }
        }
        for (String spec : possibleTiles) {
            // Only add current and stock tiles that can be created from QSFactoryImpl.
            // Do not include CustomTile. Those will be created by `addPackageTiles`.
            if (spec.startsWith(CustomTile.PREFIX)) continue;
            // TODO(b/174753536): Move it into the config file.
            if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) {
                if (spec.equals("wifi") || spec.equals("cell")) {
                    continue;
                }
            } else {
                if (spec.equals("internet")) {
                    continue;
                }
            }
            final QSTile tile = host.createTile(spec);
            if (tile == null) {
                continue;