am c632313e: am 2094a702: Merge "Unregister the existing callback when MediaProjection stops" into mnc-dev

* commit 'c632313e7294d191fb616bf53b1b9d99ef1ed24a':
  Unregister the existing callback when MediaProjection stops
This commit is contained in:
Jae Seo
2015-08-05 00:21:53 +00:00
committed by Android Git Automerger

View File

@@ -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;
}
}