summaryrefslogtreecommitdiff
path: root/core/java/android/view/ScrollCaptureTarget.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/view/ScrollCaptureTarget.java')
-rw-r--r--core/java/android/view/ScrollCaptureTarget.java50
1 files changed, 40 insertions, 10 deletions
diff --git a/core/java/android/view/ScrollCaptureTarget.java b/core/java/android/view/ScrollCaptureTarget.java
index f3fcabb26b31..4fd48892da70 100644
--- a/core/java/android/view/ScrollCaptureTarget.java
+++ b/core/java/android/view/ScrollCaptureTarget.java
@@ -22,14 +22,16 @@ 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;
+
/**
* A target collects the set of contextual information for a ScrollCaptureHandler discovered during
* a {@link View#dispatchScrollCaptureSearch scroll capture search}.
- *
- * @hide
*/
public final class ScrollCaptureTarget {
private final View mContainingView;
@@ -41,7 +43,6 @@ public final class ScrollCaptureTarget {
private final float[] mTmpFloatArr = new float[2];
private final Matrix mMatrixViewLocalToWindow = new Matrix();
- private final Rect mTmpRect = new Rect();
public ScrollCaptureTarget(@NonNull View scrollTarget, @NonNull Rect localVisibleRect,
@NonNull Point positionInWindow, @NonNull ScrollCaptureCallback callback) {
@@ -52,7 +53,10 @@ public final class ScrollCaptureTarget {
mPositionInWindow = positionInWindow;
}
- /** @return the hint that the {@code containing view} had during the scroll capture search */
+ /**
+ * @return the hint that the {@code containing view} had during the scroll capture search
+ * @see View#getScrollCaptureHint()
+ */
@View.ScrollCaptureHint
public int getHint() {
return mHint;
@@ -71,8 +75,7 @@ public final class ScrollCaptureTarget {
}
/**
- * Returns the un-clipped, visible bounds of the containing view during the scroll capture
- * search. This is used to determine on-screen area to assist in selecting the primary target.
+ * Returns the visible bounds of the containing view.
*
* @return the visible bounds of the {@code containing view} in view-local coordinates
*/
@@ -81,13 +84,17 @@ public final class ScrollCaptureTarget {
return mLocalVisibleRect;
}
- /** @return the position of the {@code containing view} within the window */
+ /** @return the position of the visible bounds of the containing view within the window */
@NonNull
public Point getPositionInWindow() {
return mPositionInWindow;
}
- /** @return the {@code scroll bounds} for this {@link ScrollCaptureCallback callback} */
+ /**
+ * @return the {@code scroll bounds} for this {@link ScrollCaptureCallback callback}
+ *
+ * @see ScrollCaptureCallback#onScrollCaptureSearch(CancellationSignal, Consumer)
+ */
@Nullable
public Rect getScrollBounds() {
return mScrollBounds;
@@ -119,8 +126,8 @@ public final class ScrollCaptureTarget {
}
/**
- * Refresh the value of {@link #mLocalVisibleRect} and {@link #mPositionInWindow} based on the
- * current state of the {@code containing view}.
+ * Refresh the local visible bounds and it's offset within the window, based on the current
+ * state of the {@code containing view}.
*/
@UiThread
public void updatePositionInWindow() {
@@ -132,4 +139,27 @@ public final class ScrollCaptureTarget {
roundIntoPoint(mPositionInWindow, mTmpFloatArr);
}
+ public String toString() {
+ return "ScrollCaptureTarget{" + "view=" + mContainingView
+ + ", callback=" + mCallback
+ + ", scrollBounds=" + mScrollBounds
+ + ", localVisibleRect=" + mLocalVisibleRect
+ + ", positionInWindow=" + mPositionInWindow
+ + "}";
+ }
+
+ void dump(@NonNull PrintWriter writer) {
+ View view = getContainingView();
+ writer.println("view: " + view);
+ writer.println("hint: " + mHint);
+ writer.println("callback: " + mCallback);
+ writer.println("scrollBounds: "
+ + (mScrollBounds == null ? "null" : mScrollBounds.toShortString()));
+ Point inWindow = getPositionInWindow();
+ writer.println("positionInWindow: "
+ + ((inWindow == null) ? "null" : "[" + inWindow.x + "," + inWindow.y + "]"));
+ Rect localVisible = getLocalVisibleRect();
+ writer.println("localVisibleRect: "
+ + (localVisible == null ? "null" : localVisible.toShortString()));
+ }
}