AccessibilityEvent.java revision 75986cf9bc57ef11ad70f36fb77fbbf5d63af6ec
175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov/* 275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Copyright (C) 2009 The Android Open Source Project 375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Licensed under the Apache License, Version 2.0 (the "License"); 575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * you may not use this file except in compliance with the License. 675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * You may obtain a copy of the License at 775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * http://www.apache.org/licenses/LICENSE-2.0 975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 1075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Unless required by applicable law or agreed to in writing, software 1175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * distributed under the License is distributed on an "AS IS" BASIS, 1275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * See the License for the specific language governing permissions and 1475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * limitations under the License. 1575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 1675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 1775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganovpackage android.view.accessibility; 1875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 1975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganovimport android.os.Parcel; 2075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganovimport android.os.Parcelable; 2175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganovimport android.text.TextUtils; 2275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 2375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganovimport java.util.ArrayList; 2475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganovimport java.util.List; 2575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 2675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov/** 2775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * This class represents accessibility events that are sent by the system when 2875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * something notable happens in the user interface. For example, when a 2975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link android.widget.Button} is clicked, a {@link android.view.View} is focused, etc. 3075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <p> 3175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * This class represents various semantically different accessibility event 3275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * types. Each event type has associated a set of related properties. In other 3375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * words, each event type is characterized via a subset of the properties exposed 3475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * by this class. For each event type there is a corresponding constant defined 3575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * in this class. Since some event types are semantically close there are mask 3675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * constants that group them together. Follows a specification of the event 3775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * types and their associated properties: 3875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <p> 3975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <b>VIEW TYPES</b> <br> 4075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <p> 4175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <b>View clicked</b> - represents the event of clicking on a {@link android.view.View} 4275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * like {@link android.widget.Button}, {@link android.widget.CompoundButton}, etc. <br> 4375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Type:{@link #TYPE_VIEW_CLICKED} <br> 4475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Properties: 4575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getClassName()}, 4675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getPackageName()}, 4775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getEventTime()}, 4875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getText()}, 4975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #isChecked()}, 5075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #isEnabled()}, 5175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #isPassword()}, 5275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getItemCount()}, 5375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getCurrentItemIndex()} 5475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <p> 5575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <b>View long clicked</b> - represents the event of long clicking on a {@link android.view.View} 5675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * like {@link android.widget.Button}, {@link android.widget.CompoundButton}, etc. <br> 5775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Type:{@link #TYPE_VIEW_LONG_CLICKED} <br> 5875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Properties: 5975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getClassName()}, 6075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getPackageName()}, 6175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getEventTime()}, 6275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getText()}, 6375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #isChecked()}, 6475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #isEnabled()}, 6575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #isPassword()}, 6675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getItemCount()}, 6775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getCurrentItemIndex()} 6875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <p> 6975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <b>View selected</b> - represents the event of selecting an item usually in 7075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * the context of an {@link android.widget.AdapterView}. <br> 7175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Type: {@link #TYPE_VIEW_SELECTED} <br> 7275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Properties: 7375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getClassName()}, 7475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getPackageName()}, 7575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getEventTime()}, 7675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getText()}, 7775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #isChecked()}, 7875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #isEnabled()}, 7975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #isPassword()}, 8075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getItemCount()}, 8175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getCurrentItemIndex()} 8275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <p> 8375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <b>View focused</b> - represents the event of focusing a 8475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link android.view.View}. <br> 8575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Type: {@link #TYPE_VIEW_FOCUSED} <br> 8675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Properties: 8775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getClassName()}, 8875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getPackageName()}, 8975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getEventTime()}, 9075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getText()}, 9175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #isChecked()}, 9275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #isEnabled()}, 9375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #isPassword()}, 9475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getItemCount()}, 9575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getCurrentItemIndex()} 9675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <p> 9775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <b>View text changed</b> - represents the event of changing the text of an 9875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link android.widget.EditText}. <br> 9975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Type: {@link #TYPE_VIEW_TEXT_CHANGED} <br> 10075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Properties: 10175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getClassName()}, 10275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getPackageName()}, 10375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getEventTime()}, 10475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getText()}, 10575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #isChecked()}, 10675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #isEnabled()}, 10775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #isPassword()}, 10875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getItemCount()}, 10975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getCurrentItemIndex()}, 11075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getFromIndex()}, 11175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getAddedCount()}, 11275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getRemovedCount()}, 11375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getBeforeText()} 11475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <p> 11575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <b>TRANSITION TYPES</b> <br> 11675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <p> 11775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <b>Window state changed</b> - represents the event of opening/closing a 11875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link android.widget.PopupWindow}, {@link android.view.Menu}, 11975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link android.app.Dialog}, etc. <br> 12075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Type: {@link #TYPE_WINDOW_STATE_CHANGED} <br> 12175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Properties: 12275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getClassName()}, 12375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getPackageName()}, 12475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getEventTime()}, 12575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getText()} 12675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <p> 12775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <b>NOTIFICATION TYPES</b> <br> 12875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <p> 12975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <b>Notification state changed</b> - represents the event showing/hiding 13075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link android.app.Notification}. 13175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Type: {@link #TYPE_NOTIFICATION_STATE_CHANGED} <br> 13275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Properties: 13375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getClassName()}, 13475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getPackageName()}, 13575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getEventTime()}, 13675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getText()} 13775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link #getParcelableData()} 13875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <p> 13975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <b>Security note</b> 14075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <p> 14175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Since an event contains the text of its source privacy can be compromised by leaking of 14275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * sensitive information such as passwords. To address this issue any event fired in response 14375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * to manipulation of a PASSWORD field does NOT CONTAIN the text of the password. 14475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 14575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @see android.view.accessibility.AccessibilityManager 14675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @see android.accessibilityservice.AccessibilityService 14775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 14875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganovpublic final class AccessibilityEvent implements Parcelable { 14975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 15075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 15175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Invalid selection/focus position. 15275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 15375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @see #getCurrentItemIndex() 15475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 15575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public static final int INVALID_POSITION = -1; 15675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 15775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 15875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Maximum length of the text fields. 15975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 16075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @see #getBeforeText() 16175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @see #getText() 16275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 16375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public static final int MAX_TEXT_LENGTH = 500; 16475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 16575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 16675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Represents the event of clicking on a {@link android.view.View} like 16775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link android.widget.Button}, {@link android.widget.CompoundButton}, etc. 16875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 16975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public static final int TYPE_VIEW_CLICKED = 0x00000001; 17075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 17175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 17275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Represents the event of long clicking on a {@link android.view.View} like 17375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link android.widget.Button}, {@link android.widget.CompoundButton}, etc. 17475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 17575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public static final int TYPE_VIEW_LONG_CLICKED = 0x00000002; 17675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 17775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 17875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Represents the event of selecting an item usually in the context of an 17975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link android.widget.AdapterView}. 18075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 18175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public static final int TYPE_VIEW_SELECTED = 0x00000004; 18275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 18375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 18475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Represents the event of focusing a {@link android.view.View}. 18575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 18675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public static final int TYPE_VIEW_FOCUSED = 0x00000008; 18775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 18875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 18975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Represents the event of changing the text of an {@link android.widget.EditText}. 19075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 19175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public static final int TYPE_VIEW_TEXT_CHANGED = 0x00000010; 19275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 19375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 19475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Represents the event of opening/closing a {@link android.widget.PopupWindow}, 19575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * {@link android.view.Menu}, {@link android.app.Dialog}, etc. 19675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 19775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public static final int TYPE_WINDOW_STATE_CHANGED = 0x00000020; 19875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 19975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 20075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Represents the event showing/hiding a {@link android.app.Notification}. 20175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 20275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public static final int TYPE_NOTIFICATION_STATE_CHANGED = 0x00000040; 20375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 20475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 20575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Mask for {@link AccessibilityEvent} all types. 20675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 20775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @see #TYPE_VIEW_CLICKED 20875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @see #TYPE_VIEW_LONG_CLICKED 20975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @see #TYPE_VIEW_SELECTED 21075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @see #TYPE_VIEW_FOCUSED 21175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @see #TYPE_VIEW_TEXT_CHANGED 21275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @see #TYPE_WINDOW_STATE_CHANGED 21375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @see #TYPE_NOTIFICATION_STATE_CHANGED 21475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 21575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public static final int TYPES_ALL_MASK = 0xFFFFFFFF; 21675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 21775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private static final int MAX_POOL_SIZE = 2; 21875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private static final Object mPoolLock = new Object(); 21975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private static AccessibilityEvent sPool; 22075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private static int sPoolSize; 22175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 22275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private static final int CHECKED = 0x00000001; 22375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private static final int ENABLED = 0x00000002; 22475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private static final int PASSWORD = 0x00000004; 22575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private static final int FULL_SCREEN = 0x00000080; 22675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 22775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private AccessibilityEvent mNext; 22875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 22975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private int mEventType; 23075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private int mBooleanProperties; 23175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private int mCurrentItemIndex; 23275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private int mItemCount; 23375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private int mFromIndex; 23475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private int mAddedCount; 23575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private int mRemovedCount; 23675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 23775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private long mEventTime; 23875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 23975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private CharSequence mClassName; 24075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private CharSequence mPackageName; 24175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private CharSequence mContentDescription; 24275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private CharSequence mBeforeText; 24375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 24475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private Parcelable mParcelableData; 24575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 24675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private final List<CharSequence> mText = new ArrayList<CharSequence>(); 24775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 24875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private boolean mIsInPool; 24975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 25075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /* 25175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Hide constructor from clients. 25275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 25375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private AccessibilityEvent() { 25475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mCurrentItemIndex = INVALID_POSITION; 25575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 25675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 25775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 25875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Gets if the source is checked. 25975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 26075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return True if the view is checked, false otherwise. 26175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 26275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public boolean isChecked() { 26375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return getBooleanProperty(CHECKED); 26475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 26575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 26675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 26775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets if the source is checked. 26875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 26975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param isChecked True if the view is checked, false otherwise. 27075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 27175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void setChecked(boolean isChecked) { 27275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov setBooleanProperty(CHECKED, isChecked); 27375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 27475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 27575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 27675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Gets if the source is enabled. 27775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 27875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return True if the view is enabled, false otherwise. 27975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 28075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public boolean isEnabled() { 28175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return getBooleanProperty(ENABLED); 28275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 28375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 28475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 28575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets if the source is enabled. 28675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 28775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param isEnabled True if the view is enabled, false otherwise. 28875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 28975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void setEnabled(boolean isEnabled) { 29075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov setBooleanProperty(ENABLED, isEnabled); 29175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 29275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 29375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 29475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Gets if the source is a password field. 29575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 29675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return True if the view is a password field, false otherwise. 29775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 29875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public boolean isPassword() { 29975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return getBooleanProperty(PASSWORD); 30075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 30175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 30275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 30375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets if the source is a password field. 30475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 30575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param isPassword True if the view is a password field, false otherwise. 30675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 30775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void setPassword(boolean isPassword) { 30875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov setBooleanProperty(PASSWORD, isPassword); 30975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 31075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 31175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 31275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets if the source is taking the entire screen. 31375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 31475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param isFullScreen True if the source is full screen, false otherwise. 31575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 31675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void setFullScreen(boolean isFullScreen) { 31775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov setBooleanProperty(FULL_SCREEN, isFullScreen); 31875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 31975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 32075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 32175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Gets if the source is taking the entire screen. 32275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 32375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return True if the source is full screen, false otherwise. 32475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 32575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public boolean isFullScreen() { 32675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return getBooleanProperty(FULL_SCREEN); 32775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 32875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 32975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 33075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Gets the event type. 33175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 33275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return The event type. 33375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 33475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public int getEventType() { 33575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return mEventType; 33675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 33775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 33875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 33975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets the event type. 34075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 34175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param eventType The event type. 34275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 34375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void setEventType(int eventType) { 34475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mEventType = eventType; 34575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 34675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 34775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 34875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Gets the number of items that can be visited. 34975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 35075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return The number of items. 35175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 35275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public int getItemCount() { 35375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return mItemCount; 35475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 35575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 35675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 35775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets the number of items that can be visited. 35875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 35975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param itemCount The number of items. 36075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 36175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void setItemCount(int itemCount) { 36275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mItemCount = itemCount; 36375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 36475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 36575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 36675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Gets the index of the source in the list of items the can be visited. 36775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 36875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return The current item index. 36975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 37075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public int getCurrentItemIndex() { 37175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return mCurrentItemIndex; 37275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 37375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 37475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 37575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets the index of the source in the list of items that can be visited. 37675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 37775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param currentItemIndex The current item index. 37875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 37975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void setCurrentItemIndex(int currentItemIndex) { 38075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mCurrentItemIndex = currentItemIndex; 38175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 38275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 38375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 38475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Gets the index of the first character of the changed sequence. 38575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 38675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return The index of the first character. 38775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 38875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public int getFromIndex() { 38975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return mFromIndex; 39075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 39175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 39275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 39375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets the index of the first character of the changed sequence. 39475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 39575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param fromIndex The index of the first character. 39675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 39775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void setFromIndex(int fromIndex) { 39875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mFromIndex = fromIndex; 39975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 40075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 40175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 40275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Gets the number of added characters. 40375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 40475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return The number of added characters. 40575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 40675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public int getAddedCount() { 40775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return mAddedCount; 40875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 40975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 41075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 41175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets the number of added characters. 41275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 41375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param addedCount The number of added characters. 41475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 41575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void setAddedCount(int addedCount) { 41675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mAddedCount = addedCount; 41775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 41875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 41975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 42075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Gets the number of removed characters. 42175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 42275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return The number of removed characters. 42375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 42475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public int getRemovedCount() { 42575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return mRemovedCount; 42675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 42775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 42875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 42975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets the number of removed characters. 43075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 43175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param removedCount The number of removed characters. 43275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 43375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void setRemovedCount(int removedCount) { 43475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mRemovedCount = removedCount; 43575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 43675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 43775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 43875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Gets the time in which this event was sent. 43975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 44075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return The event time. 44175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 44275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public long getEventTime() { 44375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return mEventTime; 44475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 44575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 44675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 44775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets the time in which this event was sent. 44875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 44975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param eventTime The event time. 45075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 45175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void setEventTime(long eventTime) { 45275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mEventTime = eventTime; 45375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 45475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 45575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 45675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Gets the class name of the source. 45775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 45875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return The class name. 45975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 46075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public CharSequence getClassName() { 46175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return mClassName; 46275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 46375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 46475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 46575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets the class name of the source. 46675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 46775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param className The lass name. 46875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 46975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void setClassName(CharSequence className) { 47075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mClassName = className; 47175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 47275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 47375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 47475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Gets the package name of the source. 47575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 47675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return The package name. 47775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 47875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public CharSequence getPackageName() { 47975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return mPackageName; 48075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 48175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 48275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 48375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets the package name of the source. 48475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 48575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param packageName The package name. 48675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 48775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void setPackageName(CharSequence packageName) { 48875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mPackageName = packageName; 48975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 49075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 49175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 49275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Gets the text of the event. The index in the list represents the priority 49375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * of the text. Specifically, the lower the index the higher the priority. 49475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 49575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return The text. 49675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 49775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public List<CharSequence> getText() { 49875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return mText; 49975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 50075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 50175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 50275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets the text before a change. 50375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 50475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return The text before the change. 50575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 50675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public CharSequence getBeforeText() { 50775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return mBeforeText; 50875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 50975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 51075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 51175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets the text before a change. 51275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 51375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param beforeText The text before the change. 51475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 51575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void setBeforeText(CharSequence beforeText) { 51675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mBeforeText = beforeText; 51775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 51875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 51975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 52075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Gets the description of the source. 52175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 52275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return The description. 52375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 52475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public CharSequence getContentDescription() { 52575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return mContentDescription; 52675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 52775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 52875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 52975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets the description of the source. 53075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 53175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param contentDescription The description. 53275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 53375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void setContentDescription(CharSequence contentDescription) { 53475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mContentDescription = contentDescription; 53575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 53675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 53775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 53875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Gets the {@link Parcelable} data. 53975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 54075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return The parcelable data. 54175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 54275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public Parcelable getParcelableData() { 54375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return mParcelableData; 54475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 54575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 54675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 54775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets the {@link Parcelable} data of the event. 54875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 54975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param parcelableData The parcelable data. 55075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 55175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void setParcelableData(Parcelable parcelableData) { 55275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mParcelableData = parcelableData; 55375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 55475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 55575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 55675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Returns a cached instance if such is available or a new one is 55775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * instantiated with type property set. 55875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 55975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param eventType The event type. 56075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return An instance. 56175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 56275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public static AccessibilityEvent obtain(int eventType) { 56375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov AccessibilityEvent event = AccessibilityEvent.obtain(); 56475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov event.setEventType(eventType); 56575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return event; 56675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 56775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 56875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 56975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Returns a cached instance if such is available or a new one is 57075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * instantiated. 57175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 57275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return An instance. 57375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 57475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public static AccessibilityEvent obtain() { 57575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov synchronized (mPoolLock) { 57675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov if (sPool != null) { 57775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov AccessibilityEvent event = sPool; 57875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov sPool = sPool.mNext; 57975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov sPoolSize--; 58075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov event.mNext = null; 58175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov event.mIsInPool = false; 58275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return event; 58375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 58475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return new AccessibilityEvent(); 58575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 58675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 58775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 58875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 58975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Return an instance back to be reused. 59075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <p> 59175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * <b>Note: You must not touch the object after calling this function.</b> 59275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 59375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void recycle() { 59475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov if (mIsInPool) { 59575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return; 59675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 59775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 59875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov clear(); 59975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov synchronized (mPoolLock) { 60075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov if (sPoolSize <= MAX_POOL_SIZE) { 60175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mNext = sPool; 60275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov sPool = this; 60375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mIsInPool = true; 60475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov sPoolSize++; 60575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 60675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 60775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 60875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 60975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 61075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Clears the state of this instance. 61175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 61275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private void clear() { 61375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mEventType = 0; 61475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mBooleanProperties = 0; 61575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mCurrentItemIndex = INVALID_POSITION; 61675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mItemCount = 0; 61775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mFromIndex = 0; 61875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mAddedCount = 0; 61975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mRemovedCount = 0; 62075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mEventTime = 0; 62175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mClassName = null; 62275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mPackageName = null; 62375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mContentDescription = null; 62475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mBeforeText = null; 62575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mText.clear(); 62675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 62775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 62875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 62975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Gets the value of a boolean property. 63075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 63175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param property The property. 63275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @return The value. 63375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 63475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private boolean getBooleanProperty(int property) { 63575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return (mBooleanProperties & property) == property; 63675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 63775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 63875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 63975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Sets a boolean property. 64075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 64175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param property The property. 64275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param value The value. 64375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 64475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private void setBooleanProperty(int property, boolean value) { 64575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov if (value) { 64675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mBooleanProperties |= property; 64775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } else { 64875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mBooleanProperties &= ~property; 64975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 65075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 65175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 65275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 65375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Creates a new instance from a {@link Parcel}. 65475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 65575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @param parcel A parcel containing the state of a {@link AccessibilityEvent}. 65675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 65775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void initFromParcel(Parcel parcel) { 65875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mEventType = parcel.readInt(); 65975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mBooleanProperties = parcel.readInt(); 66075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mCurrentItemIndex = parcel.readInt(); 66175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mItemCount = parcel.readInt(); 66275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mFromIndex = parcel.readInt(); 66375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mAddedCount = parcel.readInt(); 66475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mRemovedCount = parcel.readInt(); 66575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mEventTime = parcel.readLong(); 66675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mClassName = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(parcel); 66775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mPackageName = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(parcel); 66875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mContentDescription = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(parcel); 66975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mBeforeText = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(parcel); 67075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov mParcelableData = parcel.readParcelable(null); 67175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov parcel.readList(mText, null); 67275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 67375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 67475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void writeToParcel(Parcel parcel, int flags) { 67575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov parcel.writeInt(mEventType); 67675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov parcel.writeInt(mBooleanProperties); 67775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov parcel.writeInt(mCurrentItemIndex); 67875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov parcel.writeInt(mItemCount); 67975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov parcel.writeInt(mFromIndex); 68075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov parcel.writeInt(mAddedCount); 68175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov parcel.writeInt(mRemovedCount); 68275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov parcel.writeLong(mEventTime); 68375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov TextUtils.writeToParcel(mClassName, parcel, 0); 68475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov TextUtils.writeToParcel(mPackageName, parcel, 0); 68575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov TextUtils.writeToParcel(mContentDescription, parcel, 0); 68675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov TextUtils.writeToParcel(mBeforeText, parcel, 0); 68775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov parcel.writeParcelable(mParcelableData, flags); 68875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov parcel.writeList(mText); 68975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 69075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 69175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public int describeContents() { 69275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return 0; 69375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 69475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 69575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov @Override 69675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public String toString() { 69775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov StringBuilder builder = new StringBuilder(); 69875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append(super.toString()); 69975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append("; EventType: " + mEventType); 70075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append("; EventTime: " + mEventTime); 70175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append("; ClassName: " + mClassName); 70275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append("; PackageName: " + mPackageName); 70375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append("; Text: " + mText); 70475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append("; ContentDescription: " + mContentDescription); 70575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append("; ItemCount: " + mItemCount); 70675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append("; CurrentItemIndex: " + mCurrentItemIndex); 70775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append("; IsEnabled: " + isEnabled()); 70875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append("; IsPassword: " + isPassword()); 70975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append("; IsChecked: " + isChecked()); 71075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append("; IsFullScreen: " + isFullScreen()); 71175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append("; BeforeText: " + mBeforeText); 71275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append("; FromIndex: " + mFromIndex); 71375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append("; AddedCount: " + mAddedCount); 71475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append("; RemovedCount: " + mRemovedCount); 71575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov builder.append("; ParcelableData: " + mParcelableData); 71675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return builder.toString(); 71775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 71875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 71975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 72075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * @see Parcelable.Creator 72175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 72275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public static final Parcelable.Creator<AccessibilityEvent> CREATOR = 72375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov new Parcelable.Creator<AccessibilityEvent>() { 72475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public AccessibilityEvent createFromParcel(Parcel parcel) { 72575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov AccessibilityEvent event = AccessibilityEvent.obtain(); 72675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov event.initFromParcel(parcel); 72775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return event; 72875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 72975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 73075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public AccessibilityEvent[] newArray(int size) { 73175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov return new AccessibilityEvent[size]; 73275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 73375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov }; 73475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov} 735