Changed how Face Unlock coordinates are specified

Was using View.getLeft() and View.getTop() to specify the upper-left
corner of the Face Unlock area.  That gives coordinates relative the
view, which was fine for the phones.  For the tablet it needs
coordinates relative to the window (which still works for the phones).

Also fixed a 'bug' where h and w were swapped.  However, it wasn't
causing a problem because it was swapped in two places.

Change-Id: I86c1f68439f1dcef826cfe6b8fb56c9a4a6b8dc3
This commit is contained in:
Brian Colonna
2011-12-12 18:02:23 -05:00
parent 2ff8cc2438
commit a44f2a59a2

View File

@@ -1306,8 +1306,11 @@ public class LockPatternKeyguardView extends KeyguardViewBase implements Handler
}
if (mFaceLockAreaView != null) {
int[] faceLockPosition;
faceLockPosition = new int[2];
mFaceLockAreaView.getLocationInWindow(faceLockPosition);
startFaceLock(mFaceLockAreaView.getWindowToken(),
mFaceLockAreaView.getLeft(), mFaceLockAreaView.getTop(),
faceLockPosition[0], faceLockPosition[1],
mFaceLockAreaView.getWidth(), mFaceLockAreaView.getHeight());
}
}
@@ -1325,14 +1328,14 @@ public class LockPatternKeyguardView extends KeyguardViewBase implements Handler
};
// Tells the FaceLock service to start displaying its UI and perform recognition
public void startFaceLock(IBinder windowToken, int x, int y, int h, int w)
public void startFaceLock(IBinder windowToken, int x, int y, int w, int h)
{
if (usingFaceLock()) {
synchronized (mFaceLockServiceRunningLock) {
if (!mFaceLockServiceRunning) {
if (DEBUG) Log.d(TAG, "Starting FaceLock");
try {
mFaceLockService.startUi(windowToken, x, y, h, w);
mFaceLockService.startUi(windowToken, x, y, w, h);
} catch (RemoteException e) {
Log.e(TAG, "Caught exception starting FaceLock: " + e.toString());
return;