summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/AutoAddTracker.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSHost.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoTileManager.java6
5 files changed, 17 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/AutoAddTracker.java b/packages/SystemUI/src/com/android/systemui/qs/AutoAddTracker.java
index 2a2bc0923e1b..dfd3f735dfaa 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/AutoAddTracker.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/AutoAddTracker.java
@@ -72,6 +72,12 @@ public class AutoAddTracker {
}
}
+ public void setTileRemoved(String tile) {
+ if (mAutoAdded.remove(tile)) {
+ saveTiles();
+ }
+ }
+
public void destroy() {
mContext.getContentResolver().unregisterContentObserver(mObserver);
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSHost.java b/packages/SystemUI/src/com/android/systemui/qs/QSHost.java
index 84524a62adfa..84fa7004f363 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSHost.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSHost.java
@@ -32,6 +32,7 @@ public interface QSHost {
void removeCallback(Callback callback);
TileServices getTileServices();
void removeTile(String tileSpec);
+ void unmarkTileAsAutoAdded(String tileSpec);
int indexOf(String tileSpec);
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java b/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java
index bb69b7a17660..86e69e34fb9e 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java
@@ -231,6 +231,11 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory> {
changeTileSpecs(tileSpecs-> tileSpecs.remove(spec));
}
+ @Override
+ public void unmarkTileAsAutoAdded(String spec) {
+ mAutoTiles.unmarkTileAsAutoAdded(spec);
+ }
+
public void addTile(String spec) {
changeTileSpecs(tileSpecs-> tileSpecs.add(spec));
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java
index 5bab3e8f39a4..3109deaf7239 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java
@@ -78,6 +78,7 @@ public class WorkModeTile extends QSTileImpl<BooleanState> implements
@Override
public void onManagedProfileRemoved() {
mHost.removeTile(getTileSpec());
+ mHost.unmarkTileAsAutoAdded(getTileSpec());
}
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoTileManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoTileManager.java
index 446a1d4c3c7b..ab58660f6ed6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoTileManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoTileManager.java
@@ -96,6 +96,10 @@ public class AutoTileManager {
Dependency.get(ColorDisplayController.class).setListener(null);
}
+ public void unmarkTileAsAutoAdded(String tabSpec) {
+ mAutoTracker.setTileRemoved(tabSpec);
+ }
+
private final ManagedProfileController.Callback mProfileCallback =
new ManagedProfileController.Callback() {
@Override
@@ -104,8 +108,6 @@ public class AutoTileManager {
if (Dependency.get(ManagedProfileController.class).hasActiveProfile()) {
mHost.addTile(WORK);
mAutoTracker.setTileAdded(WORK);
- mHandler.post(() -> Dependency.get(ManagedProfileController.class)
- .removeCallback(mProfileCallback));
}
}