diff options
| author | Matt Casey <mrcasey@google.com> | 2021-06-22 12:44:33 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-06-22 12:44:33 +0000 |
| commit | 184c61395ec061c7a73017daae73458daa774c30 (patch) | |
| tree | c0dd0f25e6acbfb1afe8fb51da3663a18aa54fe2 /core/java | |
| parent | 4db95cceb9e429be3ac01986b3c2c2a27eb9c0e1 (diff) | |
| parent | 03e826d6b12b4f888bc5d5aac6745c60544db598 (diff) | |
Merge "Fix mPositionInWindow to not use global coords" into sc-dev
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/view/ScrollCaptureTarget.java | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/core/java/android/view/ScrollCaptureTarget.java b/core/java/android/view/ScrollCaptureTarget.java index 44017ed0d831..a8bb037af5f9 100644 --- a/core/java/android/view/ScrollCaptureTarget.java +++ b/core/java/android/view/ScrollCaptureTarget.java @@ -21,13 +21,10 @@ import static java.util.Objects.requireNonNull; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.UiThread; -import android.graphics.Matrix; import android.graphics.Point; import android.graphics.Rect; import android.os.CancellationSignal; -import com.android.internal.util.FastMath; - import java.io.PrintWriter; import java.util.function.Consumer; @@ -43,8 +40,7 @@ public final class ScrollCaptureTarget { private final int mHint; private Rect mScrollBounds; - private final float[] mTmpFloatArr = new float[2]; - private final Matrix mMatrixViewLocalToWindow = new Matrix(); + private final int[] mTmpIntArr = new int[2]; public ScrollCaptureTarget(@NonNull View scrollTarget, @NonNull Rect localVisibleRect, @NonNull Point positionInWindow, @NonNull ScrollCaptureCallback callback) { @@ -117,28 +113,15 @@ public final class ScrollCaptureTarget { } } - private static void zero(float[] pointArray) { - pointArray[0] = 0; - pointArray[1] = 0; - } - - private static void roundIntoPoint(Point pointObj, float[] pointArray) { - pointObj.x = FastMath.round(pointArray[0]); - pointObj.y = FastMath.round(pointArray[1]); - } - /** - * Refresh the local visible bounds and it's offset within the window, based on the current + * Refresh the local visible bounds and its offset within the window, based on the current * state of the {@code containing view}. */ @UiThread public void updatePositionInWindow() { - mMatrixViewLocalToWindow.reset(); - mContainingView.transformMatrixToGlobal(mMatrixViewLocalToWindow); - - zero(mTmpFloatArr); - mMatrixViewLocalToWindow.mapPoints(mTmpFloatArr); - roundIntoPoint(mPositionInWindow, mTmpFloatArr); + mContainingView.getLocationInWindow(mTmpIntArr); + mPositionInWindow.x = mTmpIntArr[0]; + mPositionInWindow.y = mTmpIntArr[1]; } public String toString() { |
