aboutsummaryrefslogtreecommitdiffstats
path: root/src/android/support/v4/view/accessibility/AccessibilityRecordCompat.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/support/v4/view/accessibility/AccessibilityRecordCompat.java')
-rw-r--r--src/android/support/v4/view/accessibility/AccessibilityRecordCompat.java1083
1 files changed, 1083 insertions, 0 deletions
diff --git a/src/android/support/v4/view/accessibility/AccessibilityRecordCompat.java b/src/android/support/v4/view/accessibility/AccessibilityRecordCompat.java
new file mode 100644
index 0000000..ce73b6c
--- /dev/null
+++ b/src/android/support/v4/view/accessibility/AccessibilityRecordCompat.java
@@ -0,0 +1,1083 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.support.v4.view.accessibility;
+
+import android.os.Build;
+import android.os.Parcelable;
+import android.view.View;
+import android.view.accessibility.AccessibilityEvent;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Helper for accessing {@link android.view.accessibility.AccessibilityRecord}
+ * introduced after API level 4 in a backwards compatible fashion.
+ */
+public class AccessibilityRecordCompat {
+
+ static interface AccessibilityRecordImpl {
+ public Object obtain();
+ public Object obtain(Object record);
+ public void setSource(Object record, View source);
+ public void setSource(Object record, View root, int virtualDescendantId);
+ public AccessibilityNodeInfoCompat getSource(Object record);
+ public int getWindowId(Object record);
+ public boolean isChecked(Object record);
+ public void setChecked(Object record, boolean isChecked);
+ public boolean isEnabled(Object record);
+ public void setEnabled(Object record, boolean isEnabled);
+ public boolean isPassword(Object record);
+ public void setPassword(Object record, boolean isPassword);
+ public boolean isFullScreen(Object record);
+ public void setFullScreen(Object record, boolean isFullScreen);
+ public boolean isScrollable(Object record);
+ public void setScrollable(Object record, boolean scrollable);
+ public int getItemCount(Object record);
+ public void setItemCount(Object record, int itemCount);
+ public int getCurrentItemIndex(Object record);
+ public void setCurrentItemIndex(Object record, int currentItemIndex);
+ public int getFromIndex(Object record);
+ public void setFromIndex(Object record, int fromIndex);
+ public int getToIndex(Object record);
+ public void setToIndex(Object record, int toIndex);
+ public int getScrollX(Object record);
+ public void setScrollX(Object record, int scrollX);
+ public int getScrollY(Object record);
+ public void setScrollY(Object record, int scrollY);
+ public int getMaxScrollX(Object record);
+ public void setMaxScrollX(Object record, int maxScrollX);
+ public int getMaxScrollY(Object record);
+ public void setMaxScrollY(Object record, int maxScrollY);
+ public int getAddedCount(Object record);
+ public void setAddedCount(Object record, int addedCount);
+ public int getRemovedCount(Object record);
+ public void setRemovedCount(Object record, int removedCount);
+ public CharSequence getClassName(Object record);
+ public void setClassName(Object record, CharSequence className);
+ public List<CharSequence> getText(Object record);
+ public CharSequence getBeforeText(Object record);
+ public void setBeforeText(Object record, CharSequence beforeText);
+ public CharSequence getContentDescription(Object record);
+ public void setContentDescription(Object record, CharSequence contentDescription);
+ public Parcelable getParcelableData(Object record);
+ public void setParcelableData(Object record, Parcelable parcelableData);
+ public void recycle(Object record);
+ }
+
+ static class AccessibilityRecordStubImpl implements AccessibilityRecordImpl {
+ @Override
+ public Object obtain() {
+ return null;
+ }
+
+ @Override
+ public Object obtain(Object record) {
+ return null;
+ }
+
+ @Override
+ public int getAddedCount(Object record) {
+ return 0;
+ }
+
+ @Override
+ public CharSequence getBeforeText(Object record) {
+ return null;
+ }
+
+ @Override
+ public CharSequence getClassName(Object record) {
+ return null;
+ }
+
+ @Override
+ public CharSequence getContentDescription(Object record) {
+ return null;
+ }
+
+ @Override
+ public int getCurrentItemIndex(Object record) {
+ return 0;
+ }
+
+ @Override
+ public int getFromIndex(Object record) {
+ return 0;
+ }
+
+ @Override
+ public int getItemCount(Object record) {
+ return 0;
+ }
+
+ @Override
+ public int getMaxScrollX(Object record) {
+ return 0;
+ }
+
+ @Override
+ public int getMaxScrollY(Object record) {
+ return 0;
+ }
+
+ @Override
+ public Parcelable getParcelableData(Object record) {
+ return null;
+ }
+
+ @Override
+ public int getRemovedCount(Object record) {
+ return 0;
+ }
+
+ @Override
+ public int getScrollX(Object record) {
+ return 0;
+ }
+
+ @Override
+ public int getScrollY(Object record) {
+ return 0;
+ }
+
+ @Override
+ public AccessibilityNodeInfoCompat getSource(Object record) {
+ return null;
+ }
+
+ @Override
+ public List<CharSequence> getText(Object record) {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public int getToIndex(Object record) {
+ return 0;
+ }
+
+ @Override
+ public int getWindowId(Object record) {
+ return 0;
+ }
+
+ @Override
+ public boolean isChecked(Object record) {
+ return false;
+ }
+
+ @Override
+ public boolean isEnabled(Object record) {
+ return false;
+ }
+
+ @Override
+ public boolean isFullScreen(Object record) {
+ return false;
+ }
+
+ @Override
+ public boolean isPassword(Object record) {
+ return false;
+ }
+
+ @Override
+ public boolean isScrollable(Object record) {
+ return false;
+ }
+
+ @Override
+ public void recycle(Object record) {
+ return;
+ }
+
+ @Override
+ public void setAddedCount(Object record, int addedCount) {
+ return;
+ }
+
+ @Override
+ public void setBeforeText(Object record, CharSequence beforeText) {
+ return;
+ }
+
+ @Override
+ public void setChecked(Object record, boolean isChecked) {
+ return;
+ }
+
+ @Override
+ public void setClassName(Object record, CharSequence className) {
+ return;
+ }
+
+ @Override
+ public void setContentDescription(Object record, CharSequence contentDescription) {
+ return;
+ }
+
+ @Override
+ public void setCurrentItemIndex(Object record, int currentItemIndex) {
+ return;
+ }
+
+ @Override
+ public void setEnabled(Object record, boolean isEnabled) {
+ return;
+ }
+
+ @Override
+ public void setFromIndex(Object record, int fromIndex) {
+ return;
+ }
+
+ @Override
+ public void setFullScreen(Object record, boolean isFullScreen) {
+ return;
+ }
+
+ @Override
+ public void setItemCount(Object record, int itemCount) {
+ return;
+ }
+
+ @Override
+ public void setMaxScrollX(Object record, int maxScrollX) {
+ return;
+ }
+
+ @Override
+ public void setMaxScrollY(Object record, int maxScrollY) {
+ return;
+ }
+
+ @Override
+ public void setParcelableData(Object record, Parcelable parcelableData) {
+ return;
+ }
+
+ @Override
+ public void setPassword(Object record, boolean isPassword) {
+ return;
+ }
+
+ @Override
+ public void setRemovedCount(Object record, int removedCount) {
+ return;
+ }
+
+ @Override
+ public void setScrollX(Object record, int scrollX) {
+ return;
+ }
+
+ @Override
+ public void setScrollY(Object record, int scrollY) {
+ return;
+ }
+
+ @Override
+ public void setScrollable(Object record, boolean scrollable) {
+ return;
+ }
+
+ @Override
+ public void setSource(Object record, View source) {
+ return;
+ }
+
+ @Override
+ public void setSource(Object record, View root, int virtualDescendantId) {
+ return;
+ }
+
+ @Override
+ public void setToIndex(Object record, int toIndex) {
+ return;
+ }
+ }
+
+ static class AccessibilityRecordIcsImpl extends AccessibilityRecordStubImpl {
+ @Override
+ public Object obtain() {
+ return AccessibilityRecordCompatIcs.obtain();
+ }
+
+ @Override
+ public Object obtain(Object record) {
+ return AccessibilityRecordCompatIcs.obtain(record);
+ }
+
+ @Override
+ public int getAddedCount(Object record) {
+ return AccessibilityRecordCompatIcs.getAddedCount(record);
+ }
+
+ @Override
+ public CharSequence getBeforeText(Object record) {
+ return AccessibilityRecordCompatIcs.getBeforeText(record);
+ }
+
+ @Override
+ public CharSequence getClassName(Object record) {
+ return AccessibilityRecordCompatIcs.getClassName(record);
+ }
+
+ @Override
+ public CharSequence getContentDescription(Object record) {
+ return AccessibilityRecordCompatIcs.getContentDescription(record);
+ }
+
+ @Override
+ public int getCurrentItemIndex(Object record) {
+ return AccessibilityRecordCompatIcs.getCurrentItemIndex(record);
+ }
+
+ @Override
+ public int getFromIndex(Object record) {
+ return AccessibilityRecordCompatIcs.getFromIndex(record);
+ }
+
+ @Override
+ public int getItemCount(Object record) {
+ return AccessibilityRecordCompatIcs.getItemCount(record);
+ }
+
+ @Override
+ public Parcelable getParcelableData(Object record) {
+ return AccessibilityRecordCompatIcs.getParcelableData(record);
+ }
+
+ @Override
+ public int getRemovedCount(Object record) {
+ return AccessibilityRecordCompatIcs.getRemovedCount(record);
+ }
+
+ @Override
+ public int getScrollX(Object record) {
+ return AccessibilityRecordCompatIcs.getScrollX(record);
+ }
+
+ @Override
+ public int getScrollY(Object record) {
+ return AccessibilityRecordCompatIcs.getScrollY(record);
+ }
+
+ @Override
+ public AccessibilityNodeInfoCompat getSource(Object record) {
+ return AccessibilityNodeInfoCompat.wrapNonNullInstance(
+ AccessibilityRecordCompatIcs.getSource(record));
+ }
+
+ @Override
+ public List<CharSequence> getText(Object record) {
+ return AccessibilityRecordCompatIcs.getText(record);
+ }
+
+ @Override
+ public int getToIndex(Object record) {
+ return AccessibilityRecordCompatIcs.getToIndex(record);
+ }
+
+ @Override
+ public int getWindowId(Object record) {
+ return AccessibilityRecordCompatIcs.getWindowId(record);
+ }
+
+ @Override
+ public boolean isChecked(Object record) {
+ return AccessibilityRecordCompatIcs.isChecked(record);
+ }
+
+ @Override
+ public boolean isEnabled(Object record) {
+ return AccessibilityRecordCompatIcs.isEnabled(record);
+ }
+
+ @Override
+ public boolean isFullScreen(Object record) {
+ return AccessibilityRecordCompatIcs.isFullScreen(record);
+ }
+
+ @Override
+ public boolean isPassword(Object record) {
+ return AccessibilityRecordCompatIcs.isPassword(record);
+ }
+
+ @Override
+ public boolean isScrollable(Object record) {
+ return AccessibilityRecordCompatIcs.isScrollable(record);
+ }
+
+ @Override
+ public void recycle(Object record) {
+ AccessibilityRecordCompatIcs.recycle(record);
+ }
+
+ @Override
+ public void setAddedCount(Object record, int addedCount) {
+ AccessibilityRecordCompatIcs.setAddedCount(record, addedCount);
+ }
+
+ @Override
+ public void setBeforeText(Object record, CharSequence beforeText) {
+ AccessibilityRecordCompatIcs.setBeforeText(record, beforeText);
+ }
+
+ @Override
+ public void setChecked(Object record, boolean isChecked) {
+ AccessibilityRecordCompatIcs.setChecked(record, isChecked);
+ }
+
+ @Override
+ public void setClassName(Object record, CharSequence className) {
+ AccessibilityRecordCompatIcs.setClassName(record, className);
+ }
+
+ @Override
+ public void setContentDescription(Object record, CharSequence contentDescription) {
+ AccessibilityRecordCompatIcs.setContentDescription(record, contentDescription);
+ }
+
+ @Override
+ public void setCurrentItemIndex(Object record, int currentItemIndex) {
+ AccessibilityRecordCompatIcs.setCurrentItemIndex(record, currentItemIndex);
+ }
+
+ @Override
+ public void setEnabled(Object record, boolean isEnabled) {
+ AccessibilityRecordCompatIcs.setEnabled(record, isEnabled);
+ }
+
+ @Override
+ public void setFromIndex(Object record, int fromIndex) {
+ AccessibilityRecordCompatIcs.setFromIndex(record, fromIndex);
+ }
+
+ @Override
+ public void setFullScreen(Object record, boolean isFullScreen) {
+ AccessibilityRecordCompatIcs.setFullScreen(record, isFullScreen);
+ }
+
+ @Override
+ public void setItemCount(Object record, int itemCount) {
+ AccessibilityRecordCompatIcs.setItemCount(record, itemCount);
+ }
+
+ @Override
+ public void setParcelableData(Object record, Parcelable parcelableData) {
+ AccessibilityRecordCompatIcs.setParcelableData(record, parcelableData);
+ }
+
+ @Override
+ public void setPassword(Object record, boolean isPassword) {
+ AccessibilityRecordCompatIcs.setPassword(record, isPassword);
+ }
+
+ @Override
+ public void setRemovedCount(Object record, int removedCount) {
+ AccessibilityRecordCompatIcs.setRemovedCount(record, removedCount);
+ }
+
+ @Override
+ public void setScrollX(Object record, int scrollX) {
+ AccessibilityRecordCompatIcs.setScrollX(record, scrollX);
+ }
+
+ @Override
+ public void setScrollY(Object record, int scrollY) {
+ AccessibilityRecordCompatIcs.setScrollY(record, scrollY);
+ }
+
+ @Override
+ public void setScrollable(Object record, boolean scrollable) {
+ AccessibilityRecordCompatIcs.setScrollable(record, scrollable);
+ }
+
+ @Override
+ public void setSource(Object record, View source) {
+ AccessibilityRecordCompatIcs.setSource(record, source);
+ }
+
+ @Override
+ public void setToIndex(Object record, int toIndex) {
+ AccessibilityRecordCompatIcs.setToIndex(record, toIndex);
+ }
+ }
+
+ static class AccessibilityRecordIcsMr1Impl extends AccessibilityRecordIcsImpl {
+ @Override
+ public int getMaxScrollX(Object record) {
+ return AccessibilityRecordCompatIcsMr1.getMaxScrollX(record);
+ }
+
+ @Override
+ public int getMaxScrollY(Object record) {
+ return AccessibilityRecordCompatIcsMr1.getMaxScrollY(record);
+ }
+
+ @Override
+ public void setMaxScrollX(Object record, int maxScrollX) {
+ AccessibilityRecordCompatIcsMr1.setMaxScrollX(record, maxScrollX);
+ }
+
+ @Override
+ public void setMaxScrollY(Object record, int maxScrollY) {
+ AccessibilityRecordCompatIcsMr1.setMaxScrollY(record, maxScrollY);
+ }
+ }
+
+ static {
+ if (Build.VERSION.SDK_INT >= 15) { // ICS MR1
+ IMPL = new AccessibilityRecordIcsMr1Impl();
+ } else if (Build.VERSION.SDK_INT >= 14) { // ICS
+ IMPL = new AccessibilityRecordIcsImpl();
+ } else {
+ IMPL = new AccessibilityRecordStubImpl();
+ }
+ }
+
+ private static final AccessibilityRecordImpl IMPL;
+
+ private final Object mRecord;
+
+ /**
+ * @deprecated This is not type safe. If you want to modify an
+ * {@link AccessibilityEvent}'s properties defined in
+ * {@link android.view.accessibility.AccessibilityRecord} use
+ * {@link AccessibilityEventCompat#asRecord(AccessibilityEvent)}. This method will be removed
+ * in a subsequent release of the support library.
+ */
+ @Deprecated
+ public AccessibilityRecordCompat(Object record) {
+ mRecord = record;
+ }
+
+ /**
+ * @return The wrapped implementation.
+ *
+ * @deprecated This method will be removed in a subsequent release of
+ * the support library.
+ */
+ @Deprecated
+ public Object getImpl() {
+ return mRecord;
+ }
+
+ /**
+ * Returns a cached instance if such is available or a new one is
+ * instantiated. The instance is initialized with data from the
+ * given record.
+ *
+ * @return An instance.
+ */
+ public static AccessibilityRecordCompat obtain(AccessibilityRecordCompat record) {
+ return new AccessibilityRecordCompat(IMPL.obtain(record.mRecord));
+ }
+
+ /**
+ * Returns a cached instance if such is available or a new one is
+ * instantiated.
+ *
+ * @return An instance.
+ */
+ public static AccessibilityRecordCompat obtain() {
+ return new AccessibilityRecordCompat(IMPL.obtain());
+ }
+
+ /**
+ * Sets the event source.
+ *
+ * @param source The source.
+ *
+ * @throws IllegalStateException If called from an AccessibilityService.
+ */
+ public void setSource(View source) {
+ IMPL.setSource(mRecord, source);
+ }
+
+ /**
+ * Sets the source to be a virtual descendant of the given <code>root</code>.
+ * If <code>virtualDescendantId</code> equals to {@link View#NO_ID} the root
+ * is set as the source.
+ * <p>
+ * A virtual descendant is an imaginary View that is reported as a part of the view
+ * hierarchy for accessibility purposes. This enables custom views that draw complex
+ * content to report them selves as a tree of virtual views, thus conveying their
+ * logical structure.
+ * </p>
+ *
+ * @param root The root of the virtual subtree.
+ * @param virtualDescendantId The id of the virtual descendant.
+ */
+ public void setSource(View root, int virtualDescendantId) {
+ IMPL.setSource(mRecord, root, virtualDescendantId);
+ }
+
+ /**
+ * Gets the {@link android.view.accessibility.AccessibilityNodeInfo} of
+ * the event source.
+ * <p>
+ * <strong>Note:</strong> It is a client responsibility to recycle the
+ * received info by calling
+ * {@link android.view.accessibility.AccessibilityNodeInfo#recycle()
+ * AccessibilityNodeInfo#recycle()} to avoid creating of multiple instances.
+ *</p>
+ *
+ * @return The info of the source.
+ */
+ public AccessibilityNodeInfoCompat getSource() {
+ return IMPL.getSource(mRecord);
+ }
+
+ /**
+ * Gets the id of the window from which the event comes from.
+ *
+ * @return The window id.
+ */
+ public int getWindowId() {
+ return IMPL.getWindowId(mRecord);
+ }
+
+ /**
+ * Gets if the source is checked.
+ *
+ * @return True if the view is checked, false otherwise.
+ */
+ public boolean isChecked() {
+ return IMPL.isChecked(mRecord);
+ }
+
+ /**
+ * Sets if the source is checked.
+ *
+ * @param isChecked True if the view is checked, false otherwise.
+ *
+ * @throws IllegalStateException If called from an AccessibilityService.
+ */
+ public void setChecked(boolean isChecked) {
+ IMPL.setChecked(mRecord, isChecked);
+ }
+
+ /**
+ * Gets if the source is enabled.
+ *
+ * @return True if the view is enabled, false otherwise.
+ */
+ public boolean isEnabled() {
+ return IMPL.isEnabled(mRecord);
+ }
+
+ /**
+ * Sets if the source is enabled.
+ *
+ * @param isEnabled True if the view is enabled, false otherwise.
+ *
+ * @throws IllegalStateException If called from an AccessibilityService.
+ */
+ public void setEnabled(boolean isEnabled) {
+ IMPL.setEnabled(mRecord, isEnabled);
+ }
+
+ /**
+ * Gets if the source is a password field.
+ *
+ * @return True if the view is a password field, false otherwise.
+ */
+ public boolean isPassword() {
+ return IMPL.isPassword(mRecord);
+ }
+
+ /**
+ * Sets if the source is a password field.
+ *
+ * @param isPassword True if the view is a password field, false otherwise.
+ *
+ * @throws IllegalStateException If called from an AccessibilityService.
+ */
+ public void setPassword(boolean isPassword) {
+ IMPL.setPassword(mRecord, isPassword);
+ }
+
+ /**
+ * Gets if the source is taking the entire screen.
+ *
+ * @return True if the source is full screen, false otherwise.
+ */
+ public boolean isFullScreen() {
+ return IMPL.isFullScreen(mRecord);
+ }
+
+ /**
+ * Sets if the source is taking the entire screen.
+ *
+ * @param isFullScreen True if the source is full screen, false otherwise.
+ *
+ * @throws IllegalStateException If called from an AccessibilityService.
+ */
+ public void setFullScreen(boolean isFullScreen) {
+ IMPL.setFullScreen(mRecord, isFullScreen);
+ }
+
+ /**
+ * Gets if the source is scrollable.
+ *
+ * @return True if the source is scrollable, false otherwise.
+ */
+ public boolean isScrollable() {
+ return IMPL.isScrollable(mRecord);
+ }
+
+ /**
+ * Sets if the source is scrollable.
+ *
+ * @param scrollable True if the source is scrollable, false otherwise.
+ *
+ * @throws IllegalStateException If called from an AccessibilityService.
+ */
+ public void setScrollable(boolean scrollable) {
+ IMPL.setScrollable(mRecord, scrollable);
+ }
+
+ /**
+ * Gets the number of items that can be visited.
+ *
+ * @return The number of items.
+ */
+ public int getItemCount() {
+ return IMPL.getItemCount(mRecord);
+ }
+
+ /**
+ * Sets the number of items that can be visited.
+ *
+ * @param itemCount The number of items.
+ *
+ * @throws IllegalStateException If called from an AccessibilityService.
+ */
+ public void setItemCount(int itemCount) {
+ IMPL.setItemCount(mRecord, itemCount);
+ }
+
+ /**
+ * Gets the index of the source in the list of items the can be visited.
+ *
+ * @return The current item index.
+ */
+ public int getCurrentItemIndex() {
+ return IMPL.getCurrentItemIndex(mRecord);
+ }
+
+ /**
+ * Sets the index of the source in the list of items that can be visited.
+ *
+ * @param currentItemIndex The current item index.
+ *
+ * @throws IllegalStateException If called from an AccessibilityService.
+ */
+ public void setCurrentItemIndex(int currentItemIndex) {
+ IMPL.setCurrentItemIndex(mRecord, currentItemIndex);
+ }
+
+ /**
+ * Gets the index of the first character of the changed sequence,
+ * or the beginning of a text selection or the index of the first
+ * visible item when scrolling.
+ *
+ * @return The index of the first character or selection
+ * start or the first visible item.
+ */
+ public int getFromIndex() {
+ return IMPL.getFromIndex(mRecord);
+ }
+
+ /**
+ * Sets the index of the first character of the changed sequence
+ * or the beginning of a text selection or the index of the first
+ * visible item when scrolling.
+ *
+ * @param fromIndex The index of the first character or selection
+ * start or the first visible item.
+ *
+ * @throws IllegalStateException If called from an AccessibilityService.
+ */
+ public void setFromIndex(int fromIndex) {
+ IMPL.setFromIndex(mRecord, fromIndex);
+ }
+
+ /**
+ * Gets the index of text selection end or the index of the last
+ * visible item when scrolling.
+ *
+ * @return The index of selection end or last item index.
+ */
+ public int getToIndex() {
+ return IMPL.getToIndex(mRecord);
+ }
+
+ /**
+ * Sets the index of text selection end or the index of the last
+ * visible item when scrolling.
+ *
+ * @param toIndex The index of selection end or last item index.
+ */
+ public void setToIndex(int toIndex) {
+ IMPL.setToIndex(mRecord, toIndex);
+ }
+
+ /**
+ * Gets the scroll offset of the source left edge in pixels.
+ *
+ * @return The scroll.
+ */
+ public int getScrollX() {
+ return IMPL.getScrollX(mRecord);
+ }
+
+ /**
+ * Sets the scroll offset of the source left edge in pixels.
+ *
+ * @param scrollX The scroll.
+ */
+ public void setScrollX(int scrollX) {
+ IMPL.setScrollX(mRecord, scrollX);
+ }
+
+ /**
+ * Gets the scroll offset of the source top edge in pixels.
+ *
+ * @return The scroll.
+ */
+ public int getScrollY() {
+ return IMPL.getScrollY(mRecord);
+ }
+
+ /**
+ * Sets the scroll offset of the source top edge in pixels.
+ *
+ * @param scrollY The scroll.
+ */
+ public void setScrollY(int scrollY) {
+ IMPL.setScrollY(mRecord, scrollY);
+ }
+
+ /**
+ * Gets the max scroll offset of the source left edge in pixels.
+ *
+ * @return The max scroll.
+ */
+ public int getMaxScrollX() {
+ return IMPL.getMaxScrollX(mRecord);
+ }
+ /**
+ * Sets the max scroll offset of the source left edge in pixels.
+ *
+ * @param maxScrollX The max scroll.
+ */
+ public void setMaxScrollX(int maxScrollX) {
+ IMPL.setMaxScrollX(mRecord, maxScrollX);
+ }
+
+ /**
+ * Gets the max scroll offset of the source top edge in pixels.
+ *
+ * @return The max scroll.
+ */
+ public int getMaxScrollY() {
+ return IMPL.getMaxScrollY(mRecord);
+ }
+
+ /**
+ * Sets the max scroll offset of the source top edge in pixels.
+ *
+ * @param maxScrollY The max scroll.
+ */
+ public void setMaxScrollY(int maxScrollY) {
+ IMPL.setMaxScrollY(mRecord, maxScrollY);
+ }
+
+ /**
+ * Gets the number of added characters.
+ *
+ * @return The number of added characters.
+ */
+ public int getAddedCount() {
+ return IMPL.getAddedCount(mRecord);
+ }
+
+ /**
+ * Sets the number of added characters.
+ *
+ * @param addedCount The number of added characters.
+ *
+ * @throws IllegalStateException If called from an AccessibilityService.
+ */
+ public void setAddedCount(int addedCount) {
+ IMPL.setAddedCount(mRecord, addedCount);
+ }
+
+ /**
+ * Gets the number of removed characters.
+ *
+ * @return The number of removed characters.
+ */
+ public int getRemovedCount() {
+ return IMPL.getRemovedCount(mRecord);
+ }
+
+ /**
+ * Sets the number of removed characters.
+ *
+ * @param removedCount The number of removed characters.
+ *
+ * @throws IllegalStateException If called from an AccessibilityService.
+ */
+ public void setRemovedCount(int removedCount) {
+ IMPL.setRemovedCount(mRecord, removedCount);
+ }
+
+ /**
+ * Gets the class name of the source.
+ *
+ * @return The class name.
+ */
+ public CharSequence getClassName() {
+ return IMPL.getClassName(mRecord);
+ }
+
+ /**
+ * Sets the class name of the source.
+ *
+ * @param className The lass name.
+ *
+ * @throws IllegalStateException If called from an AccessibilityService.
+ */
+ public void setClassName(CharSequence className) {
+ IMPL.setClassName(mRecord, className);
+ }
+
+ /**
+ * Gets the text of the event. The index in the list represents the priority
+ * of the text. Specifically, the lower the index the higher the priority.
+ *
+ * @return The text.
+ */
+ public List<CharSequence> getText() {
+ return IMPL.getText(mRecord);
+ }
+
+ /**
+ * Sets the text before a change.
+ *
+ * @return The text before the change.
+ */
+ public CharSequence getBeforeText() {
+ return IMPL.getBeforeText(mRecord);
+ }
+
+ /**
+ * Sets the text before a change.
+ *
+ * @param beforeText The text before the change.
+ *
+ * @throws IllegalStateException If called from an AccessibilityService.
+ */
+ public void setBeforeText(CharSequence beforeText) {
+ IMPL.setBeforeText(mRecord, beforeText);
+ }
+
+ /**
+ * Gets the description of the source.
+ *
+ * @return The description.
+ */
+ public CharSequence getContentDescription() {
+ return IMPL.getContentDescription(mRecord);
+ }
+
+ /**
+ * Sets the description of the source.
+ *
+ * @param contentDescription The description.
+ *
+ * @throws IllegalStateException If called from an AccessibilityService.
+ */
+ public void setContentDescription(CharSequence contentDescription) {
+ IMPL.setContentDescription(mRecord, contentDescription);
+ }
+
+ /**
+ * Gets the {@link Parcelable} data.
+ *
+ * @return The parcelable data.
+ */
+ public Parcelable getParcelableData() {
+ return IMPL.getParcelableData(mRecord);
+ }
+
+ /**
+ * Sets the {@link Parcelable} data of the event.
+ *
+ * @param parcelableData The parcelable data.
+ *
+ * @throws IllegalStateException If called from an AccessibilityService.
+ */
+ public void setParcelableData(Parcelable parcelableData) {
+ IMPL.setParcelableData(mRecord, parcelableData);
+ }
+
+ /**
+ * Return an instance back to be reused.
+ * <p>
+ * <strong>Note:</strong> You must not touch the object after calling this
+ * function.
+ * </p>
+ *
+ * @throws IllegalStateException If the record is already recycled.
+ */
+ public void recycle() {
+ IMPL.recycle(mRecord);
+ }
+
+ @Override
+ public int hashCode() {
+ return (mRecord == null) ? 0 : mRecord.hashCode();
+ }
+
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ AccessibilityRecordCompat other = (AccessibilityRecordCompat) obj;
+ if (mRecord == null) {
+ if (other.mRecord != null) {
+ return false;
+ }
+ } else if (!mRecord.equals(other.mRecord)) {
+ return false;
+ }
+ return true;
+ }
+}