diff options
| author | Jae Seo <jaeseo@google.com> | 2015-08-05 00:14:13 +0000 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2015-08-05 00:14:13 +0000 |
| commit | c632313e7294d191fb616bf53b1b9d99ef1ed24a (patch) | |
| tree | 02d725186cf67c547f6c0f669ae1dcbb6b51b6c1 | |
| parent | 64e26348bcb0f6282b71ff3577521d131f765a56 (diff) | |
| parent | 2094a702b33f0bc4e1c22b85a8a6e8bc8988a079 (diff) | |
| download | frameworks_base-c632313e7294d191fb616bf53b1b9d99ef1ed24a.zip frameworks_base-c632313e7294d191fb616bf53b1b9d99ef1ed24a.tar.gz frameworks_base-c632313e7294d191fb616bf53b1b9d99ef1ed24a.tar.bz2 | |
am 2094a702: Merge "Unregister the existing callback when MediaProjection stops" into mnc-dev
* commit '2094a702b33f0bc4e1c22b85a8a6e8bc8988a079':
Unregister the existing callback when MediaProjection stops
| -rw-r--r-- | services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java b/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java index a029b0e..3ea4f2c 100644 --- a/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java +++ b/services/core/java/com/android/server/media/projection/MediaProjectionManagerService.java @@ -127,9 +127,7 @@ public final class MediaProjectionManagerService extends SystemService IBinder.DeathRecipient deathRecipient = new IBinder.DeathRecipient() { @Override public void binderDied() { - synchronized (mLock) { - removeCallback(callback); - } + removeCallback(callback); } }; synchronized (mLock) { @@ -344,6 +342,7 @@ public final class MediaProjectionManagerService extends SystemService public final String packageName; public final UserHandle userHandle; + private IMediaProjectionCallback mCallback; private IBinder mToken; private IBinder.DeathRecipient mDeathEater; private int mType; @@ -406,7 +405,8 @@ public final class MediaProjectionManagerService extends SystemService throw new IllegalStateException( "Cannot start already started MediaProjection"); } - registerCallback(callback); + mCallback = callback; + registerCallback(mCallback); try { mToken = callback.asBinder(); mDeathEater = new IBinder.DeathRecipient() { @@ -435,8 +435,11 @@ public final class MediaProjectionManagerService extends SystemService + "pid=" + Binder.getCallingPid() + ")"); return; } - mToken.unlinkToDeath(mDeathEater, 0); stopProjectionLocked(this); + mToken.unlinkToDeath(mDeathEater, 0); + mToken = null; + unregisterCallback(mCallback); + mCallback = null; } } |
