am 7b5dd873: Fix 5466793: Fix memory leak in system process when face lock is enabled.

* commit '7b5dd87351ac476dd872c51f9b819d2a3e572382':
  Fix 5466793: Fix memory leak in system process when face lock is enabled.
This commit is contained in:
Jim Miller
2011-10-17 11:32:08 -07:00
committed by Android Git Automerger
2 changed files with 17 additions and 0 deletions

View File

@@ -23,4 +23,5 @@ interface IFaceLockInterface {
void startUi(IBinder containingWindowToken, int x, int y, int width, int height); void startUi(IBinder containingWindowToken, int x, int y, int width, int height);
void stopUi(); void stopUi();
void registerCallback(IFaceLockCallback cb); void registerCallback(IFaceLockCallback cb);
void unregisterCallback(IFaceLockCallback cb);
} }

View File

@@ -782,6 +782,15 @@ public class LockPatternKeyguardView extends KeyguardViewBase implements Handler
mUnlockScreen = null; mUnlockScreen = null;
} }
mUpdateMonitor.removeCallback(this); mUpdateMonitor.removeCallback(this);
if (mFaceLockService != null) {
try {
mFaceLockService.unregisterCallback(mFaceLockCallback);
} catch (RemoteException e) {
// Not much we can do
}
stopFaceLock();
mFaceLockService = null;
}
} }
private boolean isSecure() { private boolean isSecure() {
@@ -1206,6 +1215,13 @@ public class LockPatternKeyguardView extends KeyguardViewBase implements Handler
if (mBoundToFaceLockService) { if (mBoundToFaceLockService) {
if (DEBUG) Log.d(TAG, "before unbind from FaceLock service"); if (DEBUG) Log.d(TAG, "before unbind from FaceLock service");
if (mFaceLockService != null) {
try {
mFaceLockService.unregisterCallback(mFaceLockCallback);
} catch (RemoteException e) {
// Not much we can do
}
}
mContext.unbindService(mFaceLockConnection); mContext.unbindService(mFaceLockConnection);
if (DEBUG) Log.d(TAG, "after unbind from FaceLock service"); if (DEBUG) Log.d(TAG, "after unbind from FaceLock service");
mBoundToFaceLockService = false; mBoundToFaceLockService = false;