Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a9e20f2f authored by Kris Chen's avatar Kris Chen Committed by KRIS CHEN
Browse files

DO NOT MERGE Transform UDFPS touch coordinates to portrait mode

Bug: 215810673
Test: manual on device
Change-Id: Ia88a3e2e3fcba4f503cb4f8b746653eae9ad9d25
parent 99f9addc
Loading
Loading
Loading
Loading
+27 −2
Original line number Diff line number Diff line
@@ -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(),