Merge "A11y changes for API council" into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
060f0f0341
@@ -357,12 +357,12 @@ package android {
|
||||
field public static final int calendarTextColor = 16843931; // 0x101049b
|
||||
field public static final int calendarViewShown = 16843596; // 0x101034c
|
||||
field public static final int calendarViewStyle = 16843613; // 0x101035d
|
||||
field public static final int canCaptureFingerprintGestures = 16844111; // 0x101054f
|
||||
field public static final int canControlMagnification = 16844039; // 0x1010507
|
||||
field public static final int canPerformGestures = 16844045; // 0x101050d
|
||||
field public static final int canRecord = 16844060; // 0x101051c
|
||||
field public static final deprecated int canRequestEnhancedWebAccessibility = 16843736; // 0x10103d8
|
||||
field public static final int canRequestFilterKeyEvents = 16843737; // 0x10103d9
|
||||
field public static final int canRequestFingerprintGestures = 16844111; // 0x101054f
|
||||
field public static final int canRequestTouchExplorationMode = 16843735; // 0x10103d7
|
||||
field public static final int canRetrieveWindowContent = 16843653; // 0x1010385
|
||||
field public static final int candidatesTextStyleSpans = 16843312; // 0x1010230
|
||||
@@ -2832,11 +2832,11 @@ package android.accessibilityservice {
|
||||
method public java.lang.String loadDescription(android.content.pm.PackageManager);
|
||||
method public java.lang.String loadSummary(android.content.pm.PackageManager);
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
field public static final int CAPABILITY_CAN_CAPTURE_FINGERPRINT_GESTURES = 64; // 0x40
|
||||
field public static final int CAPABILITY_CAN_CONTROL_MAGNIFICATION = 16; // 0x10
|
||||
field public static final int CAPABILITY_CAN_PERFORM_GESTURES = 32; // 0x20
|
||||
field public static final deprecated int CAPABILITY_CAN_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 4; // 0x4
|
||||
field public static final int CAPABILITY_CAN_REQUEST_FILTER_KEY_EVENTS = 8; // 0x8
|
||||
field public static final int CAPABILITY_CAN_REQUEST_FINGERPRINT_GESTURES = 64; // 0x40
|
||||
field public static final int CAPABILITY_CAN_REQUEST_TOUCH_EXPLORATION = 2; // 0x2
|
||||
field public static final int CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT = 1; // 0x1
|
||||
field public static final android.os.Parcelable.Creator<android.accessibilityservice.AccessibilityServiceInfo> CREATOR;
|
||||
@@ -2848,13 +2848,13 @@ package android.accessibilityservice {
|
||||
field public static final int FEEDBACK_HAPTIC = 2; // 0x2
|
||||
field public static final int FEEDBACK_SPOKEN = 1; // 0x1
|
||||
field public static final int FEEDBACK_VISUAL = 8; // 0x8
|
||||
field public static final int FLAG_CAPTURE_FINGERPRINT_GESTURES = 512; // 0x200
|
||||
field public static final int FLAG_ENABLE_ACCESSIBILITY_VOLUME = 128; // 0x80
|
||||
field public static final int FLAG_INCLUDE_NOT_IMPORTANT_VIEWS = 2; // 0x2
|
||||
field public static final int FLAG_REPORT_VIEW_IDS = 16; // 0x10
|
||||
field public static final int FLAG_REQUEST_ACCESSIBILITY_BUTTON = 256; // 0x100
|
||||
field public static final deprecated int FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 8; // 0x8
|
||||
field public static final int FLAG_REQUEST_FILTER_KEY_EVENTS = 32; // 0x20
|
||||
field public static final int FLAG_REQUEST_FINGERPRINT_GESTURES = 512; // 0x200
|
||||
field public static final int FLAG_REQUEST_TOUCH_EXPLORATION_MODE = 4; // 0x4
|
||||
field public static final int FLAG_RETRIEVE_INTERACTIVE_WINDOWS = 64; // 0x40
|
||||
field public int eventTypes;
|
||||
@@ -2876,7 +2876,6 @@ package android.accessibilityservice {
|
||||
|
||||
public static abstract class FingerprintGestureController.FingerprintGestureCallback {
|
||||
ctor public FingerprintGestureController.FingerprintGestureCallback();
|
||||
method public deprecated void onGesture(int);
|
||||
method public void onGestureDetected(int);
|
||||
method public void onGestureDetectionAvailabilityChanged(boolean);
|
||||
}
|
||||
@@ -2896,14 +2895,12 @@ package android.accessibilityservice {
|
||||
|
||||
public static class GestureDescription.StrokeDescription {
|
||||
ctor public GestureDescription.StrokeDescription(android.graphics.Path, long, long);
|
||||
ctor public GestureDescription.StrokeDescription(android.graphics.Path, long, long, int, boolean);
|
||||
method public int getContinuedStrokeId();
|
||||
ctor public GestureDescription.StrokeDescription(android.graphics.Path, long, long, boolean);
|
||||
method public android.accessibilityservice.GestureDescription.StrokeDescription continueStroke(android.graphics.Path, long, long, boolean);
|
||||
method public long getDuration();
|
||||
method public int getId();
|
||||
method public android.graphics.Path getPath();
|
||||
method public long getStartTime();
|
||||
method public boolean isContinued();
|
||||
field public static final int INVALID_STROKE_ID = -1; // 0xffffffff
|
||||
method public boolean willContinue();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -47229,8 +47226,8 @@ package android.view.accessibility {
|
||||
field public static final java.lang.String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN = "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_HTML_ELEMENT_STRING = "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT = "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_MOVE_WINDOW_X = "android.view.accessibility.action.ARGUMENT_MOVE_WINDOW_X";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_MOVE_WINDOW_Y = "android.view.accessibility.action.ARGUMENT_MOVE_WINDOW_Y";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_MOVE_WINDOW_X = "ACTION_ARGUMENT_MOVE_WINDOW_X";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_MOVE_WINDOW_Y = "ACTION_ARGUMENT_MOVE_WINDOW_Y";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_PROGRESS_VALUE = "android.view.accessibility.action.ARGUMENT_PROGRESS_VALUE";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_ROW_INT = "android.view.accessibility.action.ARGUMENT_ROW_INT";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_SELECTION_END_INT = "ACTION_ARGUMENT_SELECTION_END_INT";
|
||||
@@ -47412,10 +47409,10 @@ package android.view.accessibility {
|
||||
method public android.view.accessibility.AccessibilityNodeInfo getRoot();
|
||||
method public java.lang.CharSequence getTitle();
|
||||
method public int getType();
|
||||
method public boolean inPictureInPicture();
|
||||
method public boolean isAccessibilityFocused();
|
||||
method public boolean isActive();
|
||||
method public boolean isFocused();
|
||||
method public boolean isInPictureInPictureMode();
|
||||
method public static android.view.accessibility.AccessibilityWindowInfo obtain();
|
||||
method public static android.view.accessibility.AccessibilityWindowInfo obtain(android.view.accessibility.AccessibilityWindowInfo);
|
||||
method public void recycle();
|
||||
|
||||
@@ -452,6 +452,14 @@ package android.view {
|
||||
|
||||
}
|
||||
|
||||
package android.view.accessibility {
|
||||
|
||||
public final class AccessibilityWindowInfo implements android.os.Parcelable {
|
||||
method public boolean inPictureInPicture();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
package android.webkit {
|
||||
|
||||
public class WebViewClient {
|
||||
|
||||
@@ -477,12 +477,12 @@ package android {
|
||||
field public static final int calendarTextColor = 16843931; // 0x101049b
|
||||
field public static final int calendarViewShown = 16843596; // 0x101034c
|
||||
field public static final int calendarViewStyle = 16843613; // 0x101035d
|
||||
field public static final int canCaptureFingerprintGestures = 16844111; // 0x101054f
|
||||
field public static final int canControlMagnification = 16844039; // 0x1010507
|
||||
field public static final int canPerformGestures = 16844045; // 0x101050d
|
||||
field public static final int canRecord = 16844060; // 0x101051c
|
||||
field public static final deprecated int canRequestEnhancedWebAccessibility = 16843736; // 0x10103d8
|
||||
field public static final int canRequestFilterKeyEvents = 16843737; // 0x10103d9
|
||||
field public static final int canRequestFingerprintGestures = 16844111; // 0x101054f
|
||||
field public static final int canRequestTouchExplorationMode = 16843735; // 0x10103d7
|
||||
field public static final int canRetrieveWindowContent = 16843653; // 0x1010385
|
||||
field public static final int candidatesTextStyleSpans = 16843312; // 0x1010230
|
||||
@@ -2961,11 +2961,11 @@ package android.accessibilityservice {
|
||||
method public java.lang.String loadDescription(android.content.pm.PackageManager);
|
||||
method public java.lang.String loadSummary(android.content.pm.PackageManager);
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
field public static final int CAPABILITY_CAN_CAPTURE_FINGERPRINT_GESTURES = 64; // 0x40
|
||||
field public static final int CAPABILITY_CAN_CONTROL_MAGNIFICATION = 16; // 0x10
|
||||
field public static final int CAPABILITY_CAN_PERFORM_GESTURES = 32; // 0x20
|
||||
field public static final deprecated int CAPABILITY_CAN_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 4; // 0x4
|
||||
field public static final int CAPABILITY_CAN_REQUEST_FILTER_KEY_EVENTS = 8; // 0x8
|
||||
field public static final int CAPABILITY_CAN_REQUEST_FINGERPRINT_GESTURES = 64; // 0x40
|
||||
field public static final int CAPABILITY_CAN_REQUEST_TOUCH_EXPLORATION = 2; // 0x2
|
||||
field public static final int CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT = 1; // 0x1
|
||||
field public static final android.os.Parcelable.Creator<android.accessibilityservice.AccessibilityServiceInfo> CREATOR;
|
||||
@@ -2977,13 +2977,13 @@ package android.accessibilityservice {
|
||||
field public static final int FEEDBACK_HAPTIC = 2; // 0x2
|
||||
field public static final int FEEDBACK_SPOKEN = 1; // 0x1
|
||||
field public static final int FEEDBACK_VISUAL = 8; // 0x8
|
||||
field public static final int FLAG_CAPTURE_FINGERPRINT_GESTURES = 512; // 0x200
|
||||
field public static final int FLAG_ENABLE_ACCESSIBILITY_VOLUME = 128; // 0x80
|
||||
field public static final int FLAG_INCLUDE_NOT_IMPORTANT_VIEWS = 2; // 0x2
|
||||
field public static final int FLAG_REPORT_VIEW_IDS = 16; // 0x10
|
||||
field public static final int FLAG_REQUEST_ACCESSIBILITY_BUTTON = 256; // 0x100
|
||||
field public static final deprecated int FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 8; // 0x8
|
||||
field public static final int FLAG_REQUEST_FILTER_KEY_EVENTS = 32; // 0x20
|
||||
field public static final int FLAG_REQUEST_FINGERPRINT_GESTURES = 512; // 0x200
|
||||
field public static final int FLAG_REQUEST_TOUCH_EXPLORATION_MODE = 4; // 0x4
|
||||
field public static final int FLAG_RETRIEVE_INTERACTIVE_WINDOWS = 64; // 0x40
|
||||
field public int eventTypes;
|
||||
@@ -3005,7 +3005,6 @@ package android.accessibilityservice {
|
||||
|
||||
public static abstract class FingerprintGestureController.FingerprintGestureCallback {
|
||||
ctor public FingerprintGestureController.FingerprintGestureCallback();
|
||||
method public deprecated void onGesture(int);
|
||||
method public void onGestureDetected(int);
|
||||
method public void onGestureDetectionAvailabilityChanged(boolean);
|
||||
}
|
||||
@@ -3025,14 +3024,12 @@ package android.accessibilityservice {
|
||||
|
||||
public static class GestureDescription.StrokeDescription {
|
||||
ctor public GestureDescription.StrokeDescription(android.graphics.Path, long, long);
|
||||
ctor public GestureDescription.StrokeDescription(android.graphics.Path, long, long, int, boolean);
|
||||
method public int getContinuedStrokeId();
|
||||
ctor public GestureDescription.StrokeDescription(android.graphics.Path, long, long, boolean);
|
||||
method public android.accessibilityservice.GestureDescription.StrokeDescription continueStroke(android.graphics.Path, long, long, boolean);
|
||||
method public long getDuration();
|
||||
method public int getId();
|
||||
method public android.graphics.Path getPath();
|
||||
method public long getStartTime();
|
||||
method public boolean isContinued();
|
||||
field public static final int INVALID_STROKE_ID = -1; // 0xffffffff
|
||||
method public boolean willContinue();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -50825,8 +50822,8 @@ package android.view.accessibility {
|
||||
field public static final java.lang.String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN = "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_HTML_ELEMENT_STRING = "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT = "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_MOVE_WINDOW_X = "android.view.accessibility.action.ARGUMENT_MOVE_WINDOW_X";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_MOVE_WINDOW_Y = "android.view.accessibility.action.ARGUMENT_MOVE_WINDOW_Y";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_MOVE_WINDOW_X = "ACTION_ARGUMENT_MOVE_WINDOW_X";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_MOVE_WINDOW_Y = "ACTION_ARGUMENT_MOVE_WINDOW_Y";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_PROGRESS_VALUE = "android.view.accessibility.action.ARGUMENT_PROGRESS_VALUE";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_ROW_INT = "android.view.accessibility.action.ARGUMENT_ROW_INT";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_SELECTION_END_INT = "ACTION_ARGUMENT_SELECTION_END_INT";
|
||||
@@ -51008,10 +51005,10 @@ package android.view.accessibility {
|
||||
method public android.view.accessibility.AccessibilityNodeInfo getRoot();
|
||||
method public java.lang.CharSequence getTitle();
|
||||
method public int getType();
|
||||
method public boolean inPictureInPicture();
|
||||
method public boolean isAccessibilityFocused();
|
||||
method public boolean isActive();
|
||||
method public boolean isFocused();
|
||||
method public boolean isInPictureInPictureMode();
|
||||
method public static android.view.accessibility.AccessibilityWindowInfo obtain();
|
||||
method public static android.view.accessibility.AccessibilityWindowInfo obtain(android.view.accessibility.AccessibilityWindowInfo);
|
||||
method public void recycle();
|
||||
|
||||
@@ -446,6 +446,14 @@ package android.view {
|
||||
|
||||
}
|
||||
|
||||
package android.view.accessibility {
|
||||
|
||||
public final class AccessibilityWindowInfo implements android.os.Parcelable {
|
||||
method public boolean inPictureInPicture();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
package android.webkit {
|
||||
|
||||
public class WebViewClient {
|
||||
|
||||
@@ -357,12 +357,12 @@ package android {
|
||||
field public static final int calendarTextColor = 16843931; // 0x101049b
|
||||
field public static final int calendarViewShown = 16843596; // 0x101034c
|
||||
field public static final int calendarViewStyle = 16843613; // 0x101035d
|
||||
field public static final int canCaptureFingerprintGestures = 16844111; // 0x101054f
|
||||
field public static final int canControlMagnification = 16844039; // 0x1010507
|
||||
field public static final int canPerformGestures = 16844045; // 0x101050d
|
||||
field public static final int canRecord = 16844060; // 0x101051c
|
||||
field public static final deprecated int canRequestEnhancedWebAccessibility = 16843736; // 0x10103d8
|
||||
field public static final int canRequestFilterKeyEvents = 16843737; // 0x10103d9
|
||||
field public static final int canRequestFingerprintGestures = 16844111; // 0x101054f
|
||||
field public static final int canRequestTouchExplorationMode = 16843735; // 0x10103d7
|
||||
field public static final int canRetrieveWindowContent = 16843653; // 0x1010385
|
||||
field public static final int candidatesTextStyleSpans = 16843312; // 0x1010230
|
||||
@@ -2832,11 +2832,11 @@ package android.accessibilityservice {
|
||||
method public java.lang.String loadDescription(android.content.pm.PackageManager);
|
||||
method public java.lang.String loadSummary(android.content.pm.PackageManager);
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
field public static final int CAPABILITY_CAN_CAPTURE_FINGERPRINT_GESTURES = 64; // 0x40
|
||||
field public static final int CAPABILITY_CAN_CONTROL_MAGNIFICATION = 16; // 0x10
|
||||
field public static final int CAPABILITY_CAN_PERFORM_GESTURES = 32; // 0x20
|
||||
field public static final deprecated int CAPABILITY_CAN_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 4; // 0x4
|
||||
field public static final int CAPABILITY_CAN_REQUEST_FILTER_KEY_EVENTS = 8; // 0x8
|
||||
field public static final int CAPABILITY_CAN_REQUEST_FINGERPRINT_GESTURES = 64; // 0x40
|
||||
field public static final int CAPABILITY_CAN_REQUEST_TOUCH_EXPLORATION = 2; // 0x2
|
||||
field public static final int CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT = 1; // 0x1
|
||||
field public static final android.os.Parcelable.Creator<android.accessibilityservice.AccessibilityServiceInfo> CREATOR;
|
||||
@@ -2848,13 +2848,13 @@ package android.accessibilityservice {
|
||||
field public static final int FEEDBACK_HAPTIC = 2; // 0x2
|
||||
field public static final int FEEDBACK_SPOKEN = 1; // 0x1
|
||||
field public static final int FEEDBACK_VISUAL = 8; // 0x8
|
||||
field public static final int FLAG_CAPTURE_FINGERPRINT_GESTURES = 512; // 0x200
|
||||
field public static final int FLAG_ENABLE_ACCESSIBILITY_VOLUME = 128; // 0x80
|
||||
field public static final int FLAG_INCLUDE_NOT_IMPORTANT_VIEWS = 2; // 0x2
|
||||
field public static final int FLAG_REPORT_VIEW_IDS = 16; // 0x10
|
||||
field public static final int FLAG_REQUEST_ACCESSIBILITY_BUTTON = 256; // 0x100
|
||||
field public static final deprecated int FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 8; // 0x8
|
||||
field public static final int FLAG_REQUEST_FILTER_KEY_EVENTS = 32; // 0x20
|
||||
field public static final int FLAG_REQUEST_FINGERPRINT_GESTURES = 512; // 0x200
|
||||
field public static final int FLAG_REQUEST_TOUCH_EXPLORATION_MODE = 4; // 0x4
|
||||
field public static final int FLAG_RETRIEVE_INTERACTIVE_WINDOWS = 64; // 0x40
|
||||
field public int eventTypes;
|
||||
@@ -2876,7 +2876,6 @@ package android.accessibilityservice {
|
||||
|
||||
public static abstract class FingerprintGestureController.FingerprintGestureCallback {
|
||||
ctor public FingerprintGestureController.FingerprintGestureCallback();
|
||||
method public deprecated void onGesture(int);
|
||||
method public void onGestureDetected(int);
|
||||
method public void onGestureDetectionAvailabilityChanged(boolean);
|
||||
}
|
||||
@@ -2896,14 +2895,12 @@ package android.accessibilityservice {
|
||||
|
||||
public static class GestureDescription.StrokeDescription {
|
||||
ctor public GestureDescription.StrokeDescription(android.graphics.Path, long, long);
|
||||
ctor public GestureDescription.StrokeDescription(android.graphics.Path, long, long, int, boolean);
|
||||
method public int getContinuedStrokeId();
|
||||
ctor public GestureDescription.StrokeDescription(android.graphics.Path, long, long, boolean);
|
||||
method public android.accessibilityservice.GestureDescription.StrokeDescription continueStroke(android.graphics.Path, long, long, boolean);
|
||||
method public long getDuration();
|
||||
method public int getId();
|
||||
method public android.graphics.Path getPath();
|
||||
method public long getStartTime();
|
||||
method public boolean isContinued();
|
||||
field public static final int INVALID_STROKE_ID = -1; // 0xffffffff
|
||||
method public boolean willContinue();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -47607,8 +47604,8 @@ package android.view.accessibility {
|
||||
field public static final java.lang.String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN = "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_HTML_ELEMENT_STRING = "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT = "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_MOVE_WINDOW_X = "android.view.accessibility.action.ARGUMENT_MOVE_WINDOW_X";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_MOVE_WINDOW_Y = "android.view.accessibility.action.ARGUMENT_MOVE_WINDOW_Y";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_MOVE_WINDOW_X = "ACTION_ARGUMENT_MOVE_WINDOW_X";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_MOVE_WINDOW_Y = "ACTION_ARGUMENT_MOVE_WINDOW_Y";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_PROGRESS_VALUE = "android.view.accessibility.action.ARGUMENT_PROGRESS_VALUE";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_ROW_INT = "android.view.accessibility.action.ARGUMENT_ROW_INT";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_SELECTION_END_INT = "ACTION_ARGUMENT_SELECTION_END_INT";
|
||||
@@ -47790,10 +47787,10 @@ package android.view.accessibility {
|
||||
method public android.view.accessibility.AccessibilityNodeInfo getRoot();
|
||||
method public java.lang.CharSequence getTitle();
|
||||
method public int getType();
|
||||
method public boolean inPictureInPicture();
|
||||
method public boolean isAccessibilityFocused();
|
||||
method public boolean isActive();
|
||||
method public boolean isFocused();
|
||||
method public boolean isInPictureInPictureMode();
|
||||
method public static android.view.accessibility.AccessibilityWindowInfo obtain();
|
||||
method public static android.view.accessibility.AccessibilityWindowInfo obtain(android.view.accessibility.AccessibilityWindowInfo);
|
||||
method public void recycle();
|
||||
|
||||
@@ -452,6 +452,14 @@ package android.view {
|
||||
|
||||
}
|
||||
|
||||
package android.view.accessibility {
|
||||
|
||||
public final class AccessibilityWindowInfo implements android.os.Parcelable {
|
||||
method public boolean inPictureInPicture();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
package android.webkit {
|
||||
|
||||
public class WebViewClient {
|
||||
|
||||
@@ -619,20 +619,10 @@ public abstract class AccessibilityService extends Service {
|
||||
* @return The controller for fingerprint gestures, or {@code null} if gestures are unavailable.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.USE_FINGERPRINT)
|
||||
public final @Nullable FingerprintGestureController getFingerprintGestureController() {
|
||||
if ((mFingerprintGestureController == null)
|
||||
&& getPackageManager().hasSystemFeature(FEATURE_FINGERPRINT)) {
|
||||
FingerprintManager fingerprintManager = getSystemService(FingerprintManager.class);
|
||||
if ((fingerprintManager != null) && fingerprintManager.isHardwareDetected()) {
|
||||
AccessibilityServiceInfo info = getServiceInfo();
|
||||
int fingerprintCapabilityMask =
|
||||
AccessibilityServiceInfo.CAPABILITY_CAN_CAPTURE_FINGERPRINT_GESTURES;
|
||||
if ((info.getCapabilities() & fingerprintCapabilityMask) != 0) {
|
||||
mFingerprintGestureController = new FingerprintGestureController(
|
||||
AccessibilityInteractionClient.getInstance()
|
||||
.getConnection(mConnectionId));
|
||||
}
|
||||
}
|
||||
public final @NonNull FingerprintGestureController getFingerprintGestureController() {
|
||||
if (mFingerprintGestureController == null) {
|
||||
mFingerprintGestureController = new FingerprintGestureController(
|
||||
AccessibilityInteractionClient.getInstance().getConnection(mConnectionId));
|
||||
}
|
||||
return mFingerprintGestureController;
|
||||
}
|
||||
|
||||
@@ -119,9 +119,9 @@ public class AccessibilityServiceInfo implements Parcelable {
|
||||
|
||||
/**
|
||||
* Capability: This accessibility service can capture gestures from the fingerprint sensor
|
||||
* @see android.R.styleable#AccessibilityService_canCaptureFingerprintGestures
|
||||
* @see android.R.styleable#AccessibilityService_canRequestFingerprintGestures
|
||||
*/
|
||||
public static final int CAPABILITY_CAN_CAPTURE_FINGERPRINT_GESTURES = 0x00000040;
|
||||
public static final int CAPABILITY_CAN_REQUEST_FINGERPRINT_GESTURES = 0x00000040;
|
||||
|
||||
private static SparseArray<CapabilityInfo> sAvailableCapabilityInfos;
|
||||
|
||||
@@ -301,7 +301,7 @@ public class AccessibilityServiceInfo implements Parcelable {
|
||||
* This flag requests that all fingerprint gestures be sent to the accessibility service.
|
||||
* It is handled in {@link FingerprintGestureController}
|
||||
*/
|
||||
public static final int FLAG_CAPTURE_FINGERPRINT_GESTURES = 0x00000200;
|
||||
public static final int FLAG_REQUEST_FINGERPRINT_GESTURES = 0x00000200;
|
||||
|
||||
/** {@hide} */
|
||||
public static final int FLAG_FORCE_DIRECT_BOOT_AWARE = 0x00010000;
|
||||
@@ -521,8 +521,8 @@ public class AccessibilityServiceInfo implements Parcelable {
|
||||
mCapabilities |= CAPABILITY_CAN_PERFORM_GESTURES;
|
||||
}
|
||||
if (asAttributes.getBoolean(com.android.internal.R.styleable
|
||||
.AccessibilityService_canCaptureFingerprintGestures, false)) {
|
||||
mCapabilities |= CAPABILITY_CAN_CAPTURE_FINGERPRINT_GESTURES;
|
||||
.AccessibilityService_canRequestFingerprintGestures, false)) {
|
||||
mCapabilities |= CAPABILITY_CAN_REQUEST_FINGERPRINT_GESTURES;
|
||||
}
|
||||
TypedValue peekedValue = asAttributes.peekValue(
|
||||
com.android.internal.R.styleable.AccessibilityService_description);
|
||||
@@ -971,8 +971,8 @@ public class AccessibilityServiceInfo implements Parcelable {
|
||||
return "FLAG_ENABLE_ACCESSIBILITY_VOLUME";
|
||||
case FLAG_REQUEST_ACCESSIBILITY_BUTTON:
|
||||
return "FLAG_REQUEST_ACCESSIBILITY_BUTTON";
|
||||
case FLAG_CAPTURE_FINGERPRINT_GESTURES:
|
||||
return "FLAG_CAPTURE_FINGERPRINT_GESTURES";
|
||||
case FLAG_REQUEST_FINGERPRINT_GESTURES:
|
||||
return "FLAG_REQUEST_FINGERPRINT_GESTURES";
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
@@ -1000,8 +1000,8 @@ public class AccessibilityServiceInfo implements Parcelable {
|
||||
return "CAPABILITY_CAN_CONTROL_MAGNIFICATION";
|
||||
case CAPABILITY_CAN_PERFORM_GESTURES:
|
||||
return "CAPABILITY_CAN_PERFORM_GESTURES";
|
||||
case CAPABILITY_CAN_CAPTURE_FINGERPRINT_GESTURES:
|
||||
return "CAPABILITY_CAN_CAPTURE_FINGERPRINT_GESTURES";
|
||||
case CAPABILITY_CAN_REQUEST_FINGERPRINT_GESTURES:
|
||||
return "CAPABILITY_CAN_REQUEST_FINGERPRINT_GESTURES";
|
||||
default:
|
||||
return "UNKNOWN";
|
||||
}
|
||||
@@ -1064,8 +1064,8 @@ public class AccessibilityServiceInfo implements Parcelable {
|
||||
R.string.capability_title_canPerformGestures,
|
||||
R.string.capability_desc_canPerformGestures));
|
||||
if ((context == null) || fingerprintAvailable(context)) {
|
||||
sAvailableCapabilityInfos.put(CAPABILITY_CAN_CAPTURE_FINGERPRINT_GESTURES,
|
||||
new CapabilityInfo(CAPABILITY_CAN_CAPTURE_FINGERPRINT_GESTURES,
|
||||
sAvailableCapabilityInfos.put(CAPABILITY_CAN_REQUEST_FINGERPRINT_GESTURES,
|
||||
new CapabilityInfo(CAPABILITY_CAN_REQUEST_FINGERPRINT_GESTURES,
|
||||
R.string.capability_title_canCaptureFingerprintGestures,
|
||||
R.string.capability_desc_canCaptureFingerprintGestures));
|
||||
}
|
||||
|
||||
@@ -181,11 +181,5 @@ public final class FingerprintGestureController {
|
||||
* {@link #FINGERPRINT_GESTURE_SWIPE_RIGHT}.
|
||||
*/
|
||||
public void onGestureDetected(int gesture) {}
|
||||
|
||||
/**
|
||||
* @deprecated Never called. Use onGestureDetected.
|
||||
*/
|
||||
@Deprecated
|
||||
public void onGesture(int gesture) {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,8 @@ import android.graphics.RectF;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import com.android.internal.util.Preconditions;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -130,7 +132,7 @@ public final class GestureDescription {
|
||||
touchPoints[numPointsFound].mIsStartOfPath =
|
||||
(strokeDescription.getContinuedStrokeId() < 0)
|
||||
&& (time == strokeDescription.mStartTime);
|
||||
touchPoints[numPointsFound].mIsEndOfPath = !strokeDescription.isContinued()
|
||||
touchPoints[numPointsFound].mIsEndOfPath = !strokeDescription.willContinue()
|
||||
&& (time == strokeDescription.mEndTime);
|
||||
strokeDescription.getPosForTime(time, mTempPos);
|
||||
touchPoints[numPointsFound].mX = Math.round(mTempPos[0]);
|
||||
@@ -197,7 +199,7 @@ public final class GestureDescription {
|
||||
* Immutable description of stroke that can be part of a gesture.
|
||||
*/
|
||||
public static class StrokeDescription {
|
||||
public static final int INVALID_STROKE_ID = -1;
|
||||
private static final int INVALID_STROKE_ID = -1;
|
||||
|
||||
static int sIdCounter;
|
||||
|
||||
@@ -210,7 +212,7 @@ public final class GestureDescription {
|
||||
float[] mTapLocation;
|
||||
int mId;
|
||||
boolean mContinued;
|
||||
int mContinuedStrokeId;
|
||||
int mContinuedStrokeId = INVALID_STROKE_ID;
|
||||
|
||||
/**
|
||||
* @param path The path to follow. Must have exactly one contour. The bounds of the path
|
||||
@@ -219,12 +221,12 @@ public final class GestureDescription {
|
||||
* @param startTime The time, in milliseconds, from the time the gesture starts to the
|
||||
* time the stroke should start. Must not be negative.
|
||||
* @param duration The duration, in milliseconds, the stroke takes to traverse the path.
|
||||
* Must not be negative.
|
||||
* Must be positive.
|
||||
*/
|
||||
public StrokeDescription(@NonNull Path path,
|
||||
@IntRange(from = 0) long startTime,
|
||||
@IntRange(from = 0) long duration) {
|
||||
this(path, startTime, duration, INVALID_STROKE_ID, false);
|
||||
this(path, startTime, duration, false);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -235,36 +237,23 @@ public final class GestureDescription {
|
||||
* time the stroke should start. Must not be negative.
|
||||
* @param duration The duration, in milliseconds, the stroke takes to traverse the path.
|
||||
* Must be positive.
|
||||
* @param continuedStrokeId The ID of the stroke that this stroke continues, or
|
||||
* {@link #INVALID_STROKE_ID} if it continues no stroke. The stroke it
|
||||
* continues must have its isContinued flag set to {@code true} and must be in the
|
||||
* gesture dispatched immediately before the one containing this stroke.
|
||||
* @param isContinued {@code true} if this stroke will be continued by one in the
|
||||
* @param willContinue {@code true} if this stroke will be continued by one in the
|
||||
* next gesture {@code false} otherwise. Continued strokes keep their pointers down when
|
||||
* the gesture completes.
|
||||
*/
|
||||
public StrokeDescription(@NonNull Path path,
|
||||
@IntRange(from = 0) long startTime,
|
||||
@IntRange(from = 0) long duration,
|
||||
@IntRange(from = 0) int continuedStrokeId,
|
||||
boolean isContinued) {
|
||||
mContinued = isContinued;
|
||||
mContinuedStrokeId = continuedStrokeId;
|
||||
if (duration <= 0) {
|
||||
throw new IllegalArgumentException("Duration must be positive");
|
||||
}
|
||||
if (startTime < 0) {
|
||||
throw new IllegalArgumentException("Start time must not be negative");
|
||||
}
|
||||
boolean willContinue) {
|
||||
mContinued = willContinue;
|
||||
Preconditions.checkArgument(duration > 0, "Duration must be positive");
|
||||
Preconditions.checkArgument(startTime >= 0, "Start time must not be negative");
|
||||
Preconditions.checkArgument(!path.isEmpty(), "Path is empty");
|
||||
RectF bounds = new RectF();
|
||||
path.computeBounds(bounds, false /* unused */);
|
||||
if ((bounds.bottom < 0) || (bounds.top < 0) || (bounds.right < 0)
|
||||
|| (bounds.left < 0)) {
|
||||
throw new IllegalArgumentException("Path bounds must not be negative");
|
||||
}
|
||||
if (path.isEmpty()) {
|
||||
throw new IllegalArgumentException("Path is empty");
|
||||
}
|
||||
Preconditions.checkArgument((bounds.bottom >= 0) && (bounds.top >= 0)
|
||||
&& (bounds.right >= 0) && (bounds.left >= 0),
|
||||
"Path bounds must not be negative");
|
||||
mPath = new Path(path);
|
||||
mPathMeasure = new PathMeasure(path, false);
|
||||
if (mPathMeasure.getLength() == 0) {
|
||||
@@ -321,17 +310,44 @@ public final class GestureDescription {
|
||||
* stroke in a future gesture.
|
||||
*
|
||||
* @return the ID of this stroke
|
||||
* @hide
|
||||
*/
|
||||
public int getId() {
|
||||
return mId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new stroke that will continue this one. This is only possible if this stroke
|
||||
* will continue.
|
||||
*
|
||||
* @param path The path for the stroke that continues this one. The starting point of
|
||||
* this path must match the ending point of the stroke it continues.
|
||||
* @param startTime The time, in milliseconds, from the time the gesture starts to the
|
||||
* time this stroke should start. Must not be negative. This time is from
|
||||
* the start of the new gesture, not the one being continued.
|
||||
* @param duration The duration for the new stroke. Must not be negative.
|
||||
* @param willContinue {@code true} if this stroke will be continued by one in the
|
||||
* next gesture {@code false} otherwise.
|
||||
* @return
|
||||
*/
|
||||
public StrokeDescription continueStroke(Path path, long startTime, long duration,
|
||||
boolean willContinue) {
|
||||
if (!mContinued) {
|
||||
throw new IllegalStateException(
|
||||
"Only strokes marked willContinue can be continued");
|
||||
}
|
||||
StrokeDescription strokeDescription =
|
||||
new StrokeDescription(path, startTime, duration, willContinue);
|
||||
strokeDescription.mContinuedStrokeId = mId;
|
||||
return strokeDescription;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if this stroke is marked to continue in the next gesture.
|
||||
*
|
||||
* @return {@code true} if the stroke is to be continued.
|
||||
*/
|
||||
public boolean isContinued() {
|
||||
public boolean willContinue() {
|
||||
return mContinued;
|
||||
}
|
||||
|
||||
@@ -339,6 +355,7 @@ public final class GestureDescription {
|
||||
* Get the ID of the stroke that this one will continue.
|
||||
*
|
||||
* @return The ID of the stroke that this stroke continues, or 0 if no such stroke exists.
|
||||
* @hide
|
||||
*/
|
||||
public int getContinuedStrokeId() {
|
||||
return mContinuedStrokeId;
|
||||
|
||||
@@ -487,7 +487,7 @@ public class AccessibilityNodeInfo implements Parcelable {
|
||||
* @see AccessibilityAction#ACTION_MOVE_WINDOW
|
||||
*/
|
||||
public static final String ACTION_ARGUMENT_MOVE_WINDOW_X =
|
||||
"android.view.accessibility.action.ARGUMENT_MOVE_WINDOW_X";
|
||||
"ACTION_ARGUMENT_MOVE_WINDOW_X";
|
||||
|
||||
/**
|
||||
* Argument for specifying the y coordinate to which to move a window.
|
||||
@@ -501,7 +501,7 @@ public class AccessibilityNodeInfo implements Parcelable {
|
||||
* @see AccessibilityAction#ACTION_MOVE_WINDOW
|
||||
*/
|
||||
public static final String ACTION_ARGUMENT_MOVE_WINDOW_Y =
|
||||
"android.view.accessibility.action.ARGUMENT_MOVE_WINDOW_Y";
|
||||
"ACTION_ARGUMENT_MOVE_WINDOW_Y";
|
||||
|
||||
/**
|
||||
* Argument to pass the {@link AccessibilityClickableSpan}.
|
||||
|
||||
@@ -231,8 +231,18 @@ public final class AccessibilityWindowInfo implements Parcelable {
|
||||
* Check if the window is in picture-in-picture mode.
|
||||
*
|
||||
* @return {@code true} if the window is in picture-in-picture mode, {@code false} otherwise.
|
||||
* @removed
|
||||
*/
|
||||
public boolean inPictureInPicture() {
|
||||
return isInPictureInPictureMode();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the window is in picture-in-picture mode.
|
||||
*
|
||||
* @return {@code true} if the window is in picture-in-picture mode, {@code false} otherwise.
|
||||
*/
|
||||
public boolean isInPictureInPictureMode() {
|
||||
return mInPictureInPicture;
|
||||
}
|
||||
|
||||
|
||||
@@ -3451,8 +3451,8 @@
|
||||
<flag name="flagEnableAccessibilityVolume" value="0x00000080" />
|
||||
<!-- Has flag {@link android.accessibilityservice.AccessibilityServiceInfo#FLAG_REQUEST_ACCESSIBILITY_BUTTON}. -->
|
||||
<flag name="flagRequestAccessibilityButton" value="0x00000100" />
|
||||
<!-- Has flag {@link android.accessibilityservice.AccessibilityServiceInfo#FLAG_CAPTURE_FINGERPRINT_GESTURES}. -->
|
||||
<flag name="flagCaptureFingerprintGestures" value="0x00000200" />
|
||||
<!-- Has flag {@link android.accessibilityservice.AccessibilityServiceInfo#FLAG_REQUEST_FINGERPRINT_GESTURES}. -->
|
||||
<flag name="flagRequestFingerprintGestures" value="0x00000200" />
|
||||
</attr>
|
||||
<!-- Component name of an activity that allows the user to modify
|
||||
the settings for this service. This setting cannot be changed at runtime. -->
|
||||
@@ -3492,10 +3492,10 @@
|
||||
the fingerprint sensor.
|
||||
<p>
|
||||
Required to allow setting the {@link android.accessibilityservice
|
||||
#AccessibilityServiceInfo#FLAG_CAN_CAPTURE_FINGERPRINT_GESTURES} flag.
|
||||
#AccessibilityServiceInfo#FLAG_REQUEST_FINGERPRINT_GESTURES} flag to have any effect.
|
||||
</p>
|
||||
-->
|
||||
<attr name="canCaptureFingerprintGestures" format="boolean" />
|
||||
<attr name="canRequestFingerprintGestures" format="boolean" />
|
||||
<!-- Short description of the accessibility service purpose or behavior.-->
|
||||
<attr name="description" />
|
||||
<!-- Brief summary of the accessibility service purpose or behavior. -->
|
||||
|
||||
@@ -2792,7 +2792,7 @@
|
||||
<public name="colorMode" />
|
||||
<public name="isolatedSplits" />
|
||||
<public name="targetSandboxVersion" />
|
||||
<public name="canCaptureFingerprintGestures" />
|
||||
<public name="canRequestFingerprintGestures" />
|
||||
<public name="alphabeticModifiers" />
|
||||
<public name="numericModifiers" />
|
||||
<public name="fontProviderAuthority" />
|
||||
|
||||
@@ -2808,7 +2808,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
|
||||
mRetrieveInteractiveWindows = (info.flags
|
||||
& AccessibilityServiceInfo.FLAG_RETRIEVE_INTERACTIVE_WINDOWS) != 0;
|
||||
mCaptureFingerprintGestures = (info.flags
|
||||
& AccessibilityServiceInfo.FLAG_CAPTURE_FINGERPRINT_GESTURES) != 0;
|
||||
& AccessibilityServiceInfo.FLAG_REQUEST_FINGERPRINT_GESTURES) != 0;
|
||||
mRequestAccessibilityButton = (info.flags
|
||||
& AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0;
|
||||
}
|
||||
@@ -4721,7 +4721,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
|
||||
|
||||
public boolean canCaptureFingerprintGestures(Service service) {
|
||||
return (service.mAccessibilityServiceInfo.getCapabilities()
|
||||
& AccessibilityServiceInfo.CAPABILITY_CAN_CAPTURE_FINGERPRINT_GESTURES) != 0;
|
||||
& AccessibilityServiceInfo.CAPABILITY_CAN_REQUEST_FINGERPRINT_GESTURES) != 0;
|
||||
}
|
||||
|
||||
private int resolveProfileParentLocked(int userId) {
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
package com.android.server.accessibility;
|
||||
|
||||
import static junit.framework.TestCase.assertEquals;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.reset;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@@ -131,7 +131,8 @@ public class FingerprintGestureControllerTest {
|
||||
mFingerprintGestureController.registerFingerprintGestureCallback(
|
||||
mMockFingerprintGestureCallback, null);
|
||||
mFingerprintGestureController.onGesture(FINGERPRINT_GESTURE_SWIPE_DOWN);
|
||||
verify(mMockFingerprintGestureCallback, times(1)).onGestureDetected(FINGERPRINT_GESTURE_SWIPE_DOWN);
|
||||
verify(mMockFingerprintGestureCallback, times(1))
|
||||
.onGestureDetected(FINGERPRINT_GESTURE_SWIPE_DOWN);
|
||||
|
||||
reset(mMockFingerprintGestureCallback);
|
||||
mFingerprintGestureController.unregisterFingerprintGestureCallback(
|
||||
@@ -150,9 +151,11 @@ public class FingerprintGestureControllerTest {
|
||||
mFingerprintGestureController.registerFingerprintGestureCallback(
|
||||
mMockFingerprintGestureCallback, messageCapturingHandler);
|
||||
mFingerprintGestureController.onGesture(FINGERPRINT_GESTURE_SWIPE_DOWN);
|
||||
verify(mMockFingerprintGestureCallback, times(0)).onGestureDetected(FINGERPRINT_GESTURE_SWIPE_DOWN);
|
||||
verify(mMockFingerprintGestureCallback, times(0))
|
||||
.onGestureDetected(FINGERPRINT_GESTURE_SWIPE_DOWN);
|
||||
messageCapturingHandler.sendLastMessage();
|
||||
verify(mMockFingerprintGestureCallback, times(1)).onGestureDetected(FINGERPRINT_GESTURE_SWIPE_DOWN);
|
||||
verify(mMockFingerprintGestureCallback, times(1))
|
||||
.onGestureDetected(FINGERPRINT_GESTURE_SWIPE_DOWN);
|
||||
|
||||
reset(mMockFingerprintGestureCallback);
|
||||
mFingerprintGestureController.unregisterFingerprintGestureCallback(
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
package com.android.server.accessibility;
|
||||
|
||||
import static android.accessibilityservice.GestureDescription.StrokeDescription.INVALID_STROKE_ID;
|
||||
import static org.hamcrest.CoreMatchers.allOf;
|
||||
import static org.hamcrest.CoreMatchers.everyItem;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
@@ -246,7 +245,7 @@ public class GestureDescriptionTest {
|
||||
swipePath.moveTo(10, 20);
|
||||
swipePath.lineTo(30, 40);
|
||||
StrokeDescription stroke1 =
|
||||
new StrokeDescription(swipePath, 0, 100, 0, true);
|
||||
new StrokeDescription(swipePath, 0, 100, true);
|
||||
GestureDescription gesture = new GestureDescription.Builder().addStroke(stroke1).build();
|
||||
List<GestureStep> steps = MotionEventGenerator
|
||||
.getGestureStepsFromGestureDescription(gesture, 10);
|
||||
@@ -260,9 +259,8 @@ public class GestureDescriptionTest {
|
||||
swipePath.moveTo(10, 20);
|
||||
swipePath.lineTo(30, 40);
|
||||
StrokeDescription stroke1 =
|
||||
new StrokeDescription(swipePath, 0, 100, INVALID_STROKE_ID, true);
|
||||
StrokeDescription stroke2 =
|
||||
new StrokeDescription(swipePath, 0, 100, stroke1.getId(), false);
|
||||
new StrokeDescription(swipePath, 0, 100, true);
|
||||
StrokeDescription stroke2 = stroke1.continueStroke(swipePath, 0, 100, false);
|
||||
GestureDescription gesture = new GestureDescription.Builder().addStroke(stroke2).build();
|
||||
List<GestureStep> steps = MotionEventGenerator
|
||||
.getGestureStepsFromGestureDescription(gesture, 10);
|
||||
|
||||
Reference in New Issue
Block a user