From ee6f1132f3381f45b0278fc471c288193eb75ae2 Mon Sep 17 00:00:00 2001 From: yinxu Date: Tue, 23 Mar 2021 17:54:05 -0700 Subject: [PATCH] Make sure the correct QS tiles are used for Provider Model Bug: 182430245 Test: Manual tests Change-Id: Ida366ef42ed81aebfa998dc03ca09b44e82695d2 --- packages/SystemUI/res/values/config.xml | 4 +-- .../com/android/systemui/qs/QSTileHost.java | 29 +++++++++------- .../qs/customize/TileQueryHelper.java | 33 ++++--------------- 3 files changed, 26 insertions(+), 40 deletions(-) diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index af6df32a02b04..8a527fa6d54e2 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -99,7 +99,7 @@ - wifi,bt,dnd,flashlight,rotation,battery,cell,airplane,cast,screenrecord + internet,wifi,bt,dnd,flashlight,rotation,battery,cell,airplane,cast,screenrecord @@ -107,7 +107,7 @@ - wifi,cell,battery,dnd,flashlight,rotation,bt,airplane,location,hotspot,inversion,saver,dark,work,cast,night,screenrecord,reverse,reduce_brightness,cameratoggle,mictoggle,controls,alarm,wallet + internet,wifi,cell,battery,dnd,flashlight,rotation,bt,airplane,location,hotspot,inversion,saver,dark,work,cast,night,screenrecord,reverse,reduce_brightness,cameratoggle,mictoggle,controls,alarm,wallet diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java b/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java index 3e3451e64b491..0a9c12fa4a13a 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java @@ -474,22 +474,21 @@ public class QSTileHost implements QSHost, Tunable, PluginListener, D if (tiles.contains("internet") || tiles.contains("wifi") || tiles.contains("cell")) { if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) { if (!tiles.contains("internet")) { - tiles.add("internet"); - } - if (tiles.contains("wifi")) { + if (tiles.contains("wifi")) { + // Replace the WiFi with Internet, and remove the Cell + tiles.set(tiles.indexOf("wifi"), "internet"); + tiles.remove("cell"); + } else if (tiles.contains("cell")) { + // Replace the Cell with Internet + tiles.set(tiles.indexOf("cell"), "internet"); + } + } else { tiles.remove("wifi"); - } - 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.set(tiles.indexOf("internet"), "wifi"); tiles.add("cell"); } } @@ -513,6 +512,14 @@ public class QSTileHost implements QSHost, Tunable, PluginListener, D && GarbageMonitor.ADD_MEMORY_TILE_TO_DEFAULT_ON_DEBUGGABLE_BUILDS) { tiles.add(GarbageMonitor.MemoryTile.TILE_SPEC); } + // TODO(b/174753536): Change the config file directly. + // Filter out unused tiles from the default QS config. + if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) { + tiles.remove("cell"); + tiles.remove("wifi"); + } else { + tiles.remove("internet"); + } return tiles; } diff --git a/packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java b/packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java index 32b41ec0ab66f..d72f8e9ca1c08 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java +++ b/packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java @@ -115,34 +115,13 @@ public class TileQueryHelper { final ArrayList 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"); - } - } + if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) { + possibleTiles.remove("cell"); + possibleTiles.remove("wifi"); + } else { + possibleTiles.remove("internet"); } + 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`.