summaryrefslogtreecommitdiffstats
path: root/policy/src
diff options
context:
space:
mode:
authorBrian Colonna <bcolonna@google.com>2011-10-18 15:46:54 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-10-18 15:46:54 -0700
commit2720cfae624770674122640f2d4a3f55702d80ff (patch)
treec76c16d24797840c76322e1f95933cc6b3f1a29d /policy/src
parentee5aa0e867657f06b63f1582f23af1cc1799f19a (diff)
parent9d20405e5117f05dfd3049798cd36a74142a6822 (diff)
downloadframeworks_base-2720cfae624770674122640f2d4a3f55702d80ff.zip
frameworks_base-2720cfae624770674122640f2d4a3f55702d80ff.tar.gz
frameworks_base-2720cfae624770674122640f2d4a3f55702d80ff.tar.bz2
Merge "Fix 5433466 - FU out of position during orientation change" into ics-mr0
Diffstat (limited to 'policy/src')
-rw-r--r--policy/src/com/android/internal/policy/impl/LockPatternKeyguardView.java37
1 files changed, 25 insertions, 12 deletions
diff --git a/policy/src/com/android/internal/policy/impl/LockPatternKeyguardView.java b/policy/src/com/android/internal/policy/impl/LockPatternKeyguardView.java
index ac2a41e..2e63a60 100644
--- a/policy/src/com/android/internal/policy/impl/LockPatternKeyguardView.java
+++ b/policy/src/com/android/internal/policy/impl/LockPatternKeyguardView.java
@@ -1140,14 +1140,25 @@ public class LockPatternKeyguardView extends KeyguardViewBase implements Handler
// Everything below pertains to FaceLock - might want to separate this out
- // Only pattern and pin unlock screens actually have a view for the FaceLock area, so it's not
- // uncommon for it to not exist. But if it does exist, we need to make sure it's shown (hiding
- // the fallback) if FaceLock is enabled, and make sure it's hidden (showing the unlock) if
- // FaceLock is disabled
+ // Take care of FaceLock area when layout is created
private void initializeFaceLockAreaView(View view) {
- mFaceLockAreaView = view.findViewById(R.id.faceLockAreaView);
- if (mFaceLockAreaView == null) {
- if (DEBUG) Log.d(TAG, "Layout does not have faceLockAreaView");
+ if (mLockPatternUtils.usingBiometricWeak() &&
+ mLockPatternUtils.isBiometricWeakInstalled()) {
+ mFaceLockAreaView = view.findViewById(R.id.faceLockAreaView);
+ if (mFaceLockAreaView == null) {
+ Log.e(TAG, "Layout does not have faceLockAreaView and FaceLock is enabled");
+ } else {
+ if (mBoundToFaceLockService) {
+ // If we are creating a layout when we are already bound to FaceLock, then we
+ // are undergoing an orientation change. Stop FaceLock and restart it in the
+ // new location.
+ if (DEBUG) Log.d(TAG, "Restarting FL - creating view while already bound");
+ stopAndUnbindFromFaceLock();
+ activateFaceLockIfAble();
+ }
+ }
+ } else {
+ mFaceLockAreaView = null; // Set to null if not using FaceLock
}
}
@@ -1164,7 +1175,7 @@ public class LockPatternKeyguardView extends KeyguardViewBase implements Handler
break;
case MSG_HIDE_FACELOCK_AREA_VIEW:
if (mFaceLockAreaView != null) {
- mFaceLockAreaView.setVisibility(View.GONE);
+ mFaceLockAreaView.setVisibility(View.INVISIBLE);
}
break;
default:
@@ -1200,7 +1211,8 @@ public class LockPatternKeyguardView extends KeyguardViewBase implements Handler
mHandler.sendEmptyMessageDelayed(MSG_HIDE_FACELOCK_AREA_VIEW, timeoutMillis);
}
- // Binds to FaceLock service, but does not tell it to start
+ // Binds to FaceLock service. This call does not tell it to start, but it causes the service
+ // to call the onServiceConnected callback, which then starts FaceLock.
public void bindToFaceLock() {
if (mLockPatternUtils.usingBiometricWeak() &&
mLockPatternUtils.isBiometricWeakInstalled()) {
@@ -1236,9 +1248,10 @@ public class LockPatternKeyguardView extends KeyguardViewBase implements Handler
if (DEBUG) Log.d(TAG, "after unbind from FaceLock service");
mBoundToFaceLockService = false;
} else {
- // This could probably happen after the session when someone activates FaceLock
- // because it wasn't active when the phone was turned on
- Log.w(TAG, "Attempt to unbind from FaceLock when not bound");
+ // This is usually not an error when this happens. Sometimes we will tell it to
+ // unbind multiple times because it's called from both onWindowFocusChanged and
+ // onDetachedFromWindow.
+ if (DEBUG) Log.d(TAG, "Attempt to unbind from FaceLock when not bound");
}
}
}