Updated check for touch exploration enabled state

Bug: 5061704
Change-Id: Id2c0cce953f7bdb2b4c18b68f9e318d95eabc1b8
This commit is contained in:
Alan Viverette 2011-07-21 10:49:16 -07:00
parent 81ff3ba343
commit cc4b63ec4c
3 changed files with 5 additions and 31 deletions

View file

@ -16,7 +16,6 @@
package com.android.inputmethod.accessibility; package com.android.inputmethod.accessibility;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.inputmethodservice.InputMethodService; import android.inputmethodservice.InputMethodService;
@ -82,10 +81,8 @@ public class AccessibilityUtils {
*/ */
public boolean isTouchExplorationEnabled() { public boolean isTouchExplorationEnabled() {
return ENABLE_ACCESSIBILITY return ENABLE_ACCESSIBILITY
&& AccessibilityEventCompatUtils.supportsTouchExploration()
&& mAccessibilityManager.isEnabled() && mAccessibilityManager.isEnabled()
&& !mCompatManager.getEnabledAccessibilityServiceList( && mCompatManager.isTouchExplorationEnabled();
AccessibilityServiceInfo.FEEDBACK_SPOKEN).isEmpty();
} }
/** /**

View file

@ -16,24 +16,7 @@
package com.android.inputmethod.compat; package com.android.inputmethod.compat;
import android.view.accessibility.AccessibilityEvent;
import java.lang.reflect.Field;
public class AccessibilityEventCompatUtils { public class AccessibilityEventCompatUtils {
public static final int TYPE_VIEW_HOVER_ENTER = 0x80; public static final int TYPE_VIEW_HOVER_ENTER = 0x80;
public static final int TYPE_VIEW_HOVER_EXIT = 0x100; public static final int TYPE_VIEW_HOVER_EXIT = 0x100;
private static final Field FIELD_TYPE_VIEW_HOVER_ENTER = CompatUtils.getField(
AccessibilityEvent.class, "TYPE_VIEW_HOVER_ENTER");
private static final Field FIELD_TYPE_VIEW_HOVER_EXIT = CompatUtils.getField(
AccessibilityEvent.class, "TYPE_VIEW_HOVER_EXIT");
private static final Integer OBJ_TYPE_VIEW_HOVER_ENTER = (Integer) CompatUtils
.getFieldValue(null, null, FIELD_TYPE_VIEW_HOVER_ENTER);
private static final Integer OBJ_TYPE_VIEW_HOVER_EXIT = (Integer) CompatUtils
.getFieldValue(null, null, FIELD_TYPE_VIEW_HOVER_EXIT);
public static boolean supportsTouchExploration() {
return OBJ_TYPE_VIEW_HOVER_ENTER != null && OBJ_TYPE_VIEW_HOVER_EXIT != null;
}
} }

View file

@ -16,16 +16,13 @@
package com.android.inputmethod.compat; package com.android.inputmethod.compat;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.view.accessibility.AccessibilityManager; import android.view.accessibility.AccessibilityManager;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Collections;
import java.util.List;
public class AccessibilityManagerCompatWrapper { public class AccessibilityManagerCompatWrapper {
private static final Method METHOD_getEnabledAccessibilityServiceList = CompatUtils.getMethod( private static final Method METHOD_isTouchExplorationEnabled = CompatUtils.getMethod(
AccessibilityManager.class, "getEnabledAccessibilityServiceList", int.class); AccessibilityManager.class, "isTouchExplorationEnabled");
private final AccessibilityManager mManager; private final AccessibilityManager mManager;
@ -33,10 +30,7 @@ public class AccessibilityManagerCompatWrapper {
mManager = manager; mManager = manager;
} }
@SuppressWarnings("unchecked") public boolean isTouchExplorationEnabled() {
public List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(int feedbackType) { return (Boolean) CompatUtils.invoke(mManager, false, METHOD_isTouchExplorationEnabled);
return (List<AccessibilityServiceInfo>) CompatUtils.invoke(mManager,
Collections.<AccessibilityServiceInfo>emptyList(),
METHOD_getEnabledAccessibilityServiceList, feedbackType);
} }
} }