diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/external/TileLifecycleManager.java | 13 |
1 files changed, 10 insertions, 3 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 5a26a4abd395..590321889c36 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/external/TileLifecycleManager.java +++ b/packages/SystemUI/src/com/android/systemui/qs/external/TileLifecycleManager.java @@ -148,13 +148,20 @@ public class TileLifecycleManager extends BroadcastReceiver implements if (DEBUG) Log.d(TAG, "onServiceConnected " + name); // Got a connection, set the binding count to 0. mBindTryCount = 0; - mWrapper = new QSTileServiceWrapper(Stub.asInterface(service)); + final QSTileServiceWrapper wrapper = new QSTileServiceWrapper(Stub.asInterface(service)); try { service.linkToDeath(this, 0); } catch (RemoteException e) { } - setQSService(mService); - setQSTile(mTile); + if (!wrapper.setQSService(mService)) { + handleDeath(); + return; + } + if (!wrapper.setQSTile(mTile)) { + handleDeath(); + return; + } + mWrapper = wrapper; handlePendingMessages(); } |