am f610bd78: Fix race conditions for camera prewarm service
* commit 'f610bd78b2cf574faa197ed9f21128ac7795a407':
Fix race conditions for camera prewarm service
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
index f1b8873..accfa5b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
@@ -113,12 +113,10 @@
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
mPrewarmMessenger = new Messenger(service);
- mPrewarmBound = true;
}
@Override
public void onServiceDisconnected(ComponentName name) {
- mPrewarmBound = false;
mPrewarmMessenger = null;
}
};
@@ -384,8 +382,10 @@
serviceIntent.setClassName(targetInfo.packageName, clazz);
serviceIntent.setAction(CameraPrewarmService.ACTION_PREWARM);
try {
- getContext().bindServiceAsUser(serviceIntent, mPrewarmConnection,
- Context.BIND_AUTO_CREATE, new UserHandle(UserHandle.USER_CURRENT));
+ if (getContext().bindServiceAsUser(serviceIntent, mPrewarmConnection,
+ Context.BIND_AUTO_CREATE, new UserHandle(UserHandle.USER_CURRENT))) {
+ mPrewarmBound = true;
+ }
} catch (SecurityException e) {
Log.w(TAG, "Unable to bind to prewarm service package=" + targetInfo.packageName
+ " class=" + clazz, e);
@@ -396,7 +396,7 @@
public void unbindCameraPrewarmService(boolean launched) {
if (mPrewarmBound) {
- if (launched) {
+ if (mPrewarmMessenger != null && launched) {
try {
mPrewarmMessenger.send(Message.obtain(null /* handler */,
CameraPrewarmService.MSG_CAMERA_FIRED));