diff options
Diffstat (limited to 'packages')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java | 9 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java | 27 |
2 files changed, 9 insertions, 27 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java index 9c1ae95..1b17899 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java @@ -513,11 +513,6 @@ public class PhoneStatusBarPolicy implements Callback { final int userId = UserHandle.myUserId(); long token = Binder.clearCallingIdentity(); try { - if (!QSUtils.isQSTileEnabledForUser( - mContext, QSConstants.DYNAMIC_TILE_SU, userId)) { - return; - } - final UserHandle user = new UserHandle(userId); final int icon = QSUtils.getDynamicQSTileResIconId(mContext, userId, QSConstants.DYNAMIC_TILE_SU); @@ -608,9 +603,7 @@ public class PhoneStatusBarPolicy implements Callback { private boolean isSuEnabledForUser(int userId) { final boolean hasSuAccess = mSuController.hasActiveSessions(); - final boolean isEnabledForUser = QSUtils.isQSTileEnabledForUser(mContext, - QSConstants.DYNAMIC_TILE_SU, userId); - return (userId == UserHandle.USER_OWNER) && isEnabledForUser && hasSuAccess; + return (userId == UserHandle.USER_OWNER) && hasSuAccess; } private void processQSChangedLocked() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java index be6f143..c77e7e4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java @@ -289,7 +289,6 @@ public class QSTileHost implements QSTile.Host, Tunable { } if (DEBUG) Log.d(TAG, "Recreating tiles"); final List<String> tileSpecs = loadTileSpecs(newValue); - removeUnusedDynamicTiles(tileSpecs); if (tileSpecs.equals(mTileSpecs)) return; for (Map.Entry<String, QSTile<?>> tile : mTiles.entrySet()) { if (!tileSpecs.contains(tile.getKey())) { @@ -304,7 +303,12 @@ public class QSTileHost implements QSTile.Host, Tunable { } else { if (DEBUG) Log.d(TAG, "Creating tile: " + tileSpec); try { - newTiles.put(tileSpec, createTile(tileSpec)); + if (mCustomTileData.get(tileSpec) != null) { + newTiles.put(tileSpec, new CustomQSTile(this, + mCustomTileData.get(tileSpec).sbc)); + } else { + newTiles.put(tileSpec, createTile(tileSpec)); + } } catch (Throwable t) { Log.w(TAG, "Error creating tile for spec: " + tileSpec, t); } @@ -319,23 +323,6 @@ public class QSTileHost implements QSTile.Host, Tunable { } } - private void removeUnusedDynamicTiles(List<String> tileSpecs) { - List<CustomTileData.Entry> tilesToRemove = new ArrayList<>(); - for (CustomTileData.Entry entry : mCustomTileData.getEntries().values()) { - if (entry.sbc.getPackage().equals(mContext.getPackageName()) - || entry.sbc.getUid() == Process.SYSTEM_UID) { - if (!tileSpecs.contains(entry.sbc.getTag())) { - tilesToRemove.add(entry); - } - } - } - - for (CustomTileData.Entry entry : tilesToRemove) { - mCustomTileData.remove(entry.key); - removeCustomTile(entry.sbc); - } - } - @Override public void goToSettingsPage() { if (mCallback != null) { @@ -461,6 +448,7 @@ public class QSTileHost implements QSTile.Host, Tunable { void addCustomTile(StatusBarPanelCustomTile sbc) { synchronized (mTiles) { mCustomTileData.add(new CustomTileData.Entry(sbc)); + mTileSpecs.add(sbc.getKey()); mTiles.put(sbc.getKey(), new CustomQSTile(this, sbc)); if (mCallback != null) { mCallback.onTilesChanged(); @@ -471,6 +459,7 @@ public class QSTileHost implements QSTile.Host, Tunable { void removeCustomTileSysUi(String key) { synchronized (mTiles) { if (mTiles.containsKey(key)) { + mTileSpecs.remove(key); mTiles.remove(key); mCustomTileData.remove(key); if (mCallback != null) { |