summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java9
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java27
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) {