diff options
| author | Svetoslav Ganov <svetoslavganov@google.com> | 2011-05-23 13:37:44 -0700 |
|---|---|---|
| committer | Svetoslav Ganov <svetoslavganov@google.com> | 2011-05-31 12:04:18 -0700 |
| commit | cc4053e031371456fe54d51bbad1db721db4ae38 (patch) | |
| tree | 9f5954a422efc283efac0762906e822dbf89377e /core/java/android/view/accessibility | |
| parent | da188fbe4b4d7b91e1440afe5a1279d0fd7a91eb (diff) | |
| download | frameworks_base-cc4053e031371456fe54d51bbad1db721db4ae38.zip frameworks_base-cc4053e031371456fe54d51bbad1db721db4ae38.tar.gz frameworks_base-cc4053e031371456fe54d51bbad1db721db4ae38.tar.bz2 | |
Accessibility serviceconfiguration via meta-data
Note: This is a part of two CL change and contains the
system changes without updates to the settings.
1. Added a mechanism for configuring an accessibility service via
XML file specified in a meta-data tag (similar to IMEs).
2. Added property for specifying a settings activity for an
accessibility service.
3. Refactored the APIs in AccessibilityManager to return
lists of AccessiblityServiceInfo instead ServiceInfo
since the former describes an AccessibilityService in
particular (similar to IMEs).
Change-Id: Ie8781bb7e0cdb329e583b6702a612a507367ad7b
Diffstat (limited to 'core/java/android/view/accessibility')
3 files changed, 69 insertions, 20 deletions
diff --git a/core/java/android/view/accessibility/AccessibilityEvent.java b/core/java/android/view/accessibility/AccessibilityEvent.java index 5e18f55..7b80797 100644 --- a/core/java/android/view/accessibility/AccessibilityEvent.java +++ b/core/java/android/view/accessibility/AccessibilityEvent.java @@ -516,9 +516,9 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par @Override public String toString() { StringBuilder builder = new StringBuilder(); - builder.append("; EventType: " + mEventType); - builder.append("; EventTime: " + mEventTime); - builder.append("; PackageName: " + mPackageName); + builder.append("; EventType: ").append(eventTypeToString(mEventType)); + builder.append("; EventTime: ").append(mEventTime); + builder.append("; PackageName: ").append(mPackageName); builder.append(" \n{\n"); builder.append(super.toString()); builder.append("\n"); @@ -535,6 +535,42 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par } /** + * Returns the string representation of an event type. For example, + * {@link #TYPE_VIEW_CLICKED} is represented by the string TYPE_VIEW_CLICKED. + * + * @param feedbackType The event type + * @return The string representation. + */ + public static String eventTypeToString(int feedbackType) { + switch (feedbackType) { + case TYPE_VIEW_CLICKED: + return "TYPE_VIEW_CLICKED"; + case TYPE_VIEW_LONG_CLICKED: + return "TYPE_VIEW_LONG_CLICKED"; + case TYPE_VIEW_SELECTED: + return "TYPE_VIEW_SELECTED"; + case TYPE_VIEW_FOCUSED: + return "TYPE_VIEW_FOCUSED"; + case TYPE_VIEW_TEXT_CHANGED: + return "TYPE_VIEW_TEXT_CHANGED"; + case TYPE_WINDOW_STATE_CHANGED: + return "TYPE_WINDOW_STATE_CHANGED"; + case TYPE_VIEW_HOVER_ENTER: + return "TYPE_VIEW_HOVER_ENTER"; + case TYPE_VIEW_HOVER_EXIT: + return "TYPE_VIEW_HOVER_EXIT"; + case TYPE_NOTIFICATION_STATE_CHANGED: + return "TYPE_NOTIFICATION_STATE_CHANGED"; + case TYPE_TOUCH_EXPLORATION_GESTURE_START: + return "TYPE_TOUCH_EXPLORATION_GESTURE_START"; + case TYPE_TOUCH_EXPLORATION_GESTURE_END: + return "TYPE_TOUCH_EXPLORATION_GESTURE_END"; + default: + return null; + } + } + + /** * @see Parcelable.Creator */ public static final Parcelable.Creator<AccessibilityEvent> CREATOR = diff --git a/core/java/android/view/accessibility/AccessibilityManager.java b/core/java/android/view/accessibility/AccessibilityManager.java index dd77193..88f8878 100644 --- a/core/java/android/view/accessibility/AccessibilityManager.java +++ b/core/java/android/view/accessibility/AccessibilityManager.java @@ -16,7 +16,6 @@ package android.view.accessibility; -import android.accessibilityservice.AccessibilityService; import android.accessibilityservice.AccessibilityServiceInfo; import android.content.Context; import android.content.pm.ServiceInfo; @@ -30,6 +29,7 @@ import android.os.ServiceManager; import android.os.SystemClock; import android.util.Log; +import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -201,11 +201,30 @@ public final class AccessibilityManager { * Returns the {@link ServiceInfo}s of the installed accessibility services. * * @return An unmodifiable list with {@link ServiceInfo}s. + * + * @deprecated Use {@link #getInstalledAccessibilityServiceList()} */ + @Deprecated public List<ServiceInfo> getAccessibilityServiceList() { - List<ServiceInfo> services = null; + List<AccessibilityServiceInfo> infos = getInstalledAccessibilityServiceList(); + List<ServiceInfo> services = new ArrayList<ServiceInfo>(); + final int infoCount = infos.size(); + for (int i = 0; i < infoCount; i++) { + AccessibilityServiceInfo info = infos.get(i); + services.add(info.getResolveInfo().serviceInfo); + } + return Collections.unmodifiableList(services); + } + + /** + * Returns the {@link AccessibilityServiceInfo}s of the installed accessibility services. + * + * @return An unmodifiable list with {@link AccessibilityServiceInfo}s. + */ + public List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList() { + List<AccessibilityServiceInfo> services = null; try { - services = mService.getAccessibilityServiceList(); + services = mService.getInstalledAccessibilityServiceList(); if (DEBUG) { Log.i(LOG_TAG, "Installed AccessibilityServices " + services); } @@ -216,20 +235,14 @@ public final class AccessibilityManager { } /** - * Returns the {@link ServiceInfo}s of the enabled accessibility services + * Returns the {@link AccessibilityServiceInfo}s of the enabled accessibility services * for a given feedback type. * - * @param feedbackType The type of feedback. - * @return An unmodifiable list with {@link ServiceInfo}s. - * - * @see AccessibilityServiceInfo#FEEDBACK_AUDIBLE - * @see AccessibilityServiceInfo#FEEDBACK_HAPTIC - * @see AccessibilityServiceInfo#FEEDBACK_SPOKEN - * @see AccessibilityServiceInfo#FEEDBACK_VISUAL - * @see AccessibilityServiceInfo#FEEDBACK_GENERIC + * @param feedbackType The feedback type (can be bitwise or of multiple types). + * @return An unmodifiable list with {@link AccessibilityServiceInfo}s. */ - public List<ServiceInfo> getEnabledAccessibilityServiceList(int feedbackType) { - List<ServiceInfo> services = null; + public List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(int feedbackType) { + List<AccessibilityServiceInfo> services = null; try { services = mService.getEnabledAccessibilityServiceList(feedbackType); if (DEBUG) { diff --git a/core/java/android/view/accessibility/IAccessibilityManager.aidl b/core/java/android/view/accessibility/IAccessibilityManager.aidl index aaaae32..6b2aae2 100644 --- a/core/java/android/view/accessibility/IAccessibilityManager.aidl +++ b/core/java/android/view/accessibility/IAccessibilityManager.aidl @@ -17,9 +17,9 @@ package android.view.accessibility; +import android.accessibilityservice.AccessibilityServiceInfo; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.IAccessibilityManagerClient; -import android.content.pm.ServiceInfo; /** * Interface implemented by the AccessibilityManagerService called by @@ -33,9 +33,9 @@ interface IAccessibilityManager { boolean sendAccessibilityEvent(in AccessibilityEvent uiEvent); - List<ServiceInfo> getAccessibilityServiceList(); + List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(); - List<ServiceInfo> getEnabledAccessibilityServiceList(int feedbackType); + List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(int feedbackType); void interrupt(); } |
