commit | e7ca091d6ede0e763a390d35a85d6a9e5da6ea2a | [log] [tgz] |
---|---|---|
author | TreeHugger Robot <treehugger-gerrit@google.com> | Wed Sep 15 00:43:43 2021 +0000 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Wed Sep 15 00:43:43 2021 +0000 |
tree | a82c0d76a342a34af27d2ce0a2c580d31eabd21b | |
parent | 48d91ce7ace6883ed3aee0dd5da053af4e8b843e [diff] | |
parent | 5fffa1df0ae842caf2b13911aae6044fb37e712e [diff] |
Merge "Rebind TISBinder if service killed during connection" into sc-v2-dev am: 25a1e0b913 am: 5fffa1df0a Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15828615 Change-Id: Ia30a61ba68621f2532ed395498205aab783703d6
diff --git a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java index 1f4be5b..d24d752 100644 --- a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java
@@ -124,6 +124,15 @@ private final ServiceConnection mTisBinderConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName componentName, IBinder iBinder) { + if (!(iBinder instanceof TISBinder)) { + // Seems like there can be a race condition when user unlocks, which kills the TIS + // process and re-starts it. I guess in the meantime service can be connected to + // a killed TIS? Either way, unbind and try to re-connect in that case. + unbindService(mTisBinderConnection); + mHandler.postDelayed(mConnectionRunnable, BACKOFF_MILLIS); + return; + } + mTaskbarManager = ((TISBinder) iBinder).getTaskbarManager(); mTaskbarManager.setLauncher(BaseQuickstepLauncher.this);