Merge "Fix 5433466 - FU out of position during orientation change" into ics-mr0

This commit is contained in:
Brian Colonna
2011-10-18 15:46:54 -07:00
committed by Android (Google) Code Review
5 changed files with 29 additions and 16 deletions

View File

@@ -206,7 +206,7 @@
<!-- Area to overlay FaceLock --> <!-- Area to overlay FaceLock -->
<TextView android:id="@+id/faceLockAreaView" <TextView android:id="@+id/faceLockAreaView"
android:visibility="gone" android:visibility="invisible"
android:layout_row="0" android:layout_row="0"
android:layout_column="2" android:layout_column="2"
android:layout_rowSpan="8" android:layout_rowSpan="8"

View File

@@ -195,7 +195,7 @@
<!-- Area to overlay FaceLock --> <!-- Area to overlay FaceLock -->
<TextView android:id="@+id/faceLockAreaView" <TextView android:id="@+id/faceLockAreaView"
android:visibility="gone" android:visibility="invisible"
android:layout_row="3" android:layout_row="3"
android:layout_column="0" android:layout_column="0"
android:layout_rowSpan="2" android:layout_rowSpan="2"

View File

@@ -162,7 +162,7 @@
<!-- Area to overlay FaceLock --> <!-- Area to overlay FaceLock -->
<TextView android:id="@+id/faceLockAreaView" <TextView android:id="@+id/faceLockAreaView"
android:visibility="gone" android:visibility="invisible"
android:layout_row="0" android:layout_row="0"
android:layout_column="1" android:layout_column="1"
android:layout_rowSpan="7" android:layout_rowSpan="7"

View File

@@ -174,7 +174,7 @@
<!-- Area to overlay FaceLock --> <!-- Area to overlay FaceLock -->
<TextView android:id="@+id/faceLockAreaView" <TextView android:id="@+id/faceLockAreaView"
android:visibility="gone" android:visibility="invisible"
android:layout_row="4" android:layout_row="4"
android:layout_column="0" android:layout_column="0"
android:layout_rowSpan="1" android:layout_rowSpan="1"

View File

@@ -1140,14 +1140,25 @@ public class LockPatternKeyguardView extends KeyguardViewBase implements Handler
// Everything below pertains to FaceLock - might want to separate this out // 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 // Take care of FaceLock area when layout is created
// 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
private void initializeFaceLockAreaView(View view) { private void initializeFaceLockAreaView(View view) {
mFaceLockAreaView = view.findViewById(R.id.faceLockAreaView); if (mLockPatternUtils.usingBiometricWeak() &&
if (mFaceLockAreaView == null) { mLockPatternUtils.isBiometricWeakInstalled()) {
if (DEBUG) Log.d(TAG, "Layout does not have faceLockAreaView"); 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; break;
case MSG_HIDE_FACELOCK_AREA_VIEW: case MSG_HIDE_FACELOCK_AREA_VIEW:
if (mFaceLockAreaView != null) { if (mFaceLockAreaView != null) {
mFaceLockAreaView.setVisibility(View.GONE); mFaceLockAreaView.setVisibility(View.INVISIBLE);
} }
break; break;
default: default:
@@ -1200,7 +1211,8 @@ public class LockPatternKeyguardView extends KeyguardViewBase implements Handler
mHandler.sendEmptyMessageDelayed(MSG_HIDE_FACELOCK_AREA_VIEW, timeoutMillis); 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() { public void bindToFaceLock() {
if (mLockPatternUtils.usingBiometricWeak() && if (mLockPatternUtils.usingBiometricWeak() &&
mLockPatternUtils.isBiometricWeakInstalled()) { mLockPatternUtils.isBiometricWeakInstalled()) {
@@ -1236,9 +1248,10 @@ public class LockPatternKeyguardView extends KeyguardViewBase implements Handler
if (DEBUG) Log.d(TAG, "after unbind from FaceLock service"); if (DEBUG) Log.d(TAG, "after unbind from FaceLock service");
mBoundToFaceLockService = false; mBoundToFaceLockService = false;
} else { } else {
// This could probably happen after the session when someone activates FaceLock // This is usually not an error when this happens. Sometimes we will tell it to
// because it wasn't active when the phone was turned on // unbind multiple times because it's called from both onWindowFocusChanged and
Log.w(TAG, "Attempt to unbind from FaceLock when not bound"); // onDetachedFromWindow.
if (DEBUG) Log.d(TAG, "Attempt to unbind from FaceLock when not bound");
} }
} }
} }