summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Kris Chen <chenkris@google.com> 2022-01-24 22:37:44 +0800
committer KRIS CHEN <chenkris@google.com> 2022-01-25 02:16:35 +0000
commita9e20f2f23f136ce4041c58b09f2b339620e95f0 (patch)
tree7b5cc906c5d685217919aa09ea0a8586a7c9115c
parent99f9addc90ac669a363f2f10462d264287c25caa (diff)
DO NOT MERGE Transform UDFPS touch coordinates to portrait mode
Bug: 215810673 Test: manual on device Change-Id: Ia88a3e2e3fcba4f503cb4f8b746653eae9ad9d25
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java29
1 files changed, 27 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java
index 3e9d6b0fa362..250c16c81eac 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java
@@ -480,8 +480,33 @@ public class UdfpsController implements DozeReceiver {
final long sinceLastLog = mSystemClock.elapsedRealtime() - mTouchLogTime;
if (!isIlluminationRequested && !mGoodCaptureReceived &&
!exceedsVelocityThreshold) {
- onFingerDown((int) event.getRawX(), (int) event.getRawY(), minor,
- major);
+ final int rawX = (int) event.getRawX();
+ final int rawY = (int) event.getRawY();
+ // Default coordinates assume portrait mode.
+ int x = rawX;
+ int y = rawY;
+
+ // Gets the size based on the current rotation of the display.
+ Point p = new Point();
+ mContext.getDisplay().getRealSize(p);
+
+ // Transform x, y to portrait mode if the device is in landscape mode.
+ switch (mContext.getDisplay().getRotation()) {
+ case Surface.ROTATION_90:
+ x = p.y - rawY;
+ y = rawX;
+ break;
+
+ case Surface.ROTATION_270:
+ x = rawY;
+ y = p.x - rawX;
+ break;
+
+ default:
+ // Do nothing to stay in portrait mode.
+ }
+
+ onFingerDown(x, y, minor, major);
Log.v(TAG, "onTouch | finger down: " + touchInfo);
mTouchLogTime = mSystemClock.elapsedRealtime();
mPowerManager.userActivity(mSystemClock.uptimeMillis(),