diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/external/TileLifecycleManager.java | 6 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/external/TileServiceManager.java | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/external/TileLifecycleManager.java b/packages/SystemUI/src/com/android/systemui/qs/external/TileLifecycleManager.java index 28da69c34e28..17ce0cb80eef 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/external/TileLifecycleManager.java +++ b/packages/SystemUI/src/com/android/systemui/qs/external/TileLifecycleManager.java @@ -129,6 +129,12 @@ public class TileLifecycleManager extends BroadcastReceiver implements } public void setBindService(boolean bind) { + if (mBound && mUnbindImmediate) { + // If we are already bound and expecting to unbind, this means we should stay bound + // because something else wants to hold the connection open. + mUnbindImmediate = false; + return; + } mBound = bind; if (bind) { if (mBindTryCount == MAX_BIND_RETRIES) { diff --git a/packages/SystemUI/src/com/android/systemui/qs/external/TileServiceManager.java b/packages/SystemUI/src/com/android/systemui/qs/external/TileServiceManager.java index 8493cc671d3a..91a0eb095ff9 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/external/TileServiceManager.java +++ b/packages/SystemUI/src/com/android/systemui/qs/external/TileServiceManager.java @@ -95,6 +95,7 @@ public class TileServiceManager { if (!TileLifecycleManager.isTileAdded(context, component)) { TileLifecycleManager.setTileAdded(context, component, true); mStateManager.onTileAdded(); + mStateManager.flushMessagesAndUnbind(); } } |