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

Commit e020020f authored by Svetoslav Ganov's avatar Svetoslav Ganov Committed by Android Git Automerger
Browse files

am 5e900e3a: Merge "Adding a scaling threshold in ScreenMagnifier" into jb-mr1-dev

* commit '5e900e3a':
  Adding a scaling threshold in ScreenMagnifier
parents cdb22217 5e900e3a
Loading
Loading
Loading
Loading
+19 −12
Original line number Diff line number Diff line
@@ -353,11 +353,13 @@ public final class ScreenMagnifier implements EventStreamTransformation {
        private static final float MIN_SCALE = 1.3f;
        private static final float MAX_SCALE = 5.0f;

        private static final float SCALING_THRESHOLD = 0.3f;

        private final ScaleGestureDetector mScaleGestureDetector;
        private final GestureDetector mGestureDetector;

        private float mScaleFocusX = -1;
        private float mScaleFocusY = -1;
        private float mInitialScaleFactor = -1;
        private boolean mScaling;

        public MagnifiedContentInteractonStateHandler(Context context) {
            mScaleGestureDetector = new ScaleGestureDetector(context, this);
@@ -405,21 +407,26 @@ public final class ScreenMagnifier implements EventStreamTransformation {

        @Override
        public boolean onScale(ScaleGestureDetector detector) {
            if (mCurrentState != STATE_MAGNIFIED_INTERACTION) {
            if (!mScaling) {
                if (mInitialScaleFactor < 0) {
                    mInitialScaleFactor = detector.getScaleFactor();
                } else {
                    final float deltaScale = detector.getScaleFactor() - mInitialScaleFactor;
                    if (Math.abs(deltaScale) > SCALING_THRESHOLD) {
                        mScaling = true;
                        return true;
                    }
                }
                return false;
            }
            final float newScale = mMagnificationController.getScale()
                    * detector.getScaleFactor();
            final float normalizedNewScale = Math.min(Math.max(newScale, MIN_SCALE), MAX_SCALE);
            if (DEBUG_SCALING) {
                Slog.i(LOG_TAG, "normalizedNewScale: " + normalizedNewScale);
            }
            if (mScaleFocusX < 0 && mScaleFocusY < 0) {
                mScaleFocusX = detector.getFocusX();
                mScaleFocusY = detector.getFocusY();
            }
            mMagnificationController.setScale(normalizedNewScale, mScaleFocusX,
                    mScaleFocusY, false);
            mMagnificationController.setScale(normalizedNewScale, detector.getFocusX(),
                    detector.getFocusY(), false);
            return true;
        }

@@ -434,8 +441,8 @@ public final class ScreenMagnifier implements EventStreamTransformation {
        }

        private void clear() {
            mScaleFocusX = -1;
            mScaleFocusY = -1;
            mInitialScaleFactor = -1;
            mScaling = false;
        }
    }