Clean up AccessibilityManagerCompat after minSdk 14 bump.

- Collapse classes where possible
- Deprecate methods that are now available to be used directly from the
  framework.

Test: ./gradlew assemble
Change-Id: I7b08c0cb850b868d306eede462b1525807e9c227
diff --git a/api/current.txt b/api/current.txt
index 920f110..d658d4f 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -8405,17 +8405,17 @@
   }
 
   public final class AccessibilityManagerCompat {
-    method public static boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager, android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener);
+    method public static deprecated boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager, android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener);
     method public static boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager, android.support.v4.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener);
-    method public static java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getEnabledAccessibilityServiceList(android.view.accessibility.AccessibilityManager, int);
-    method public static java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getInstalledAccessibilityServiceList(android.view.accessibility.AccessibilityManager);
-    method public static boolean isTouchExplorationEnabled(android.view.accessibility.AccessibilityManager);
-    method public static boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager, android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener);
+    method public static deprecated java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getEnabledAccessibilityServiceList(android.view.accessibility.AccessibilityManager, int);
+    method public static deprecated java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getInstalledAccessibilityServiceList(android.view.accessibility.AccessibilityManager);
+    method public static deprecated boolean isTouchExplorationEnabled(android.view.accessibility.AccessibilityManager);
+    method public static deprecated boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager, android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener);
     method public static boolean removeTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager, android.support.v4.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener);
   }
 
-  public static abstract interface AccessibilityManagerCompat.AccessibilityStateChangeListener {
-    method public abstract void onAccessibilityStateChanged(boolean);
+  public static abstract deprecated interface AccessibilityManagerCompat.AccessibilityStateChangeListener {
+    method public abstract deprecated void onAccessibilityStateChanged(boolean);
   }
 
   public static abstract deprecated class AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat implements android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener {
diff --git a/compat/ics/android/support/v4/view/accessibility/AccessibilityManagerCompatIcs.java b/compat/ics/android/support/v4/view/accessibility/AccessibilityManagerCompatIcs.java
deleted file mode 100644
index 62cabea..0000000
--- a/compat/ics/android/support/v4/view/accessibility/AccessibilityManagerCompatIcs.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * 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.accessibilityservice.AccessibilityServiceInfo;
-import android.support.annotation.RequiresApi;
-import android.view.accessibility.AccessibilityManager;
-import android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener;
-
-import java.util.List;
-
-/**
- * ICS specific AccessibilityManager API implementation.
- */
-
-@RequiresApi(14)
-class AccessibilityManagerCompatIcs {
-
-    public static class AccessibilityStateChangeListenerWrapper
-            implements AccessibilityStateChangeListener {
-        Object mListener;
-        AccessibilityStateChangeListenerBridge mListenerBridge;
-
-        public AccessibilityStateChangeListenerWrapper(Object listener,
-                AccessibilityStateChangeListenerBridge listenerBridge) {
-            mListener = listener;
-            mListenerBridge = listenerBridge;
-        }
-
-        @Override
-        public int hashCode() {
-            return mListener == null ? 0 : mListener.hashCode();
-        }
-
-        @Override
-        public boolean equals(Object o) {
-            if (this == o) {
-                return true;
-            }
-            if (o == null || getClass() != o.getClass()) {
-                return false;
-            }
-            AccessibilityStateChangeListenerWrapper other =
-                    (AccessibilityStateChangeListenerWrapper) o;
-            return mListener == null ? other.mListener == null : mListener.equals(other.mListener);
-        }
-
-        @Override
-        public void onAccessibilityStateChanged(boolean enabled) {
-            mListenerBridge.onAccessibilityStateChanged(enabled);
-        }
-    }
-
-    interface AccessibilityStateChangeListenerBridge {
-        void onAccessibilityStateChanged(boolean enabled);
-    }
-
-    public static boolean addAccessibilityStateChangeListener(AccessibilityManager manager,
-            AccessibilityStateChangeListenerWrapper listener) {
-        return manager.addAccessibilityStateChangeListener(listener);
-    }
-
-    public static boolean removeAccessibilityStateChangeListener(AccessibilityManager manager,
-            AccessibilityStateChangeListenerWrapper listener) {
-        return manager.removeAccessibilityStateChangeListener(listener);
-    }
-
-    public static List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(
-            AccessibilityManager manager,int feedbackTypeFlags) {
-        return manager.getEnabledAccessibilityServiceList(feedbackTypeFlags);
-    }
-
-    public static List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(
-            AccessibilityManager manager) {
-        return manager.getInstalledAccessibilityServiceList();
-    }
-
-    public static boolean isTouchExplorationEnabled(AccessibilityManager manager) {
-        return manager.isTouchExplorationEnabled();
-    }
-}
diff --git a/compat/java/android/support/v4/view/accessibility/AccessibilityManagerCompat.java b/compat/java/android/support/v4/view/accessibility/AccessibilityManagerCompat.java
index b7581cf..112d809 100644
--- a/compat/java/android/support/v4/view/accessibility/AccessibilityManagerCompat.java
+++ b/compat/java/android/support/v4/view/accessibility/AccessibilityManagerCompat.java
@@ -18,185 +18,16 @@
 
 import android.accessibilityservice.AccessibilityServiceInfo;
 import android.os.Build;
+import android.support.annotation.NonNull;
 import android.support.annotation.RequiresApi;
-import android.support.v4.view.accessibility.AccessibilityManagerCompatIcs.AccessibilityStateChangeListenerBridge;
-import android.support.v4.view.accessibility.AccessibilityManagerCompatIcs.AccessibilityStateChangeListenerWrapper;
-import android.support.v4.view.accessibility.AccessibilityManagerCompatKitKat.TouchExplorationStateChangeListenerBridge;
-import android.support.v4.view.accessibility.AccessibilityManagerCompatKitKat.TouchExplorationStateChangeListenerWrapper;
 import android.view.accessibility.AccessibilityManager;
 
-import java.util.Collections;
 import java.util.List;
 
 /**
- * Helper for accessing features in {@link AccessibilityManager}
- * introduced after API level 4 in a backwards compatible fashion.
+ * Helper for accessing features in {@link AccessibilityManager} in a backwards compatible fashion.
  */
 public final class AccessibilityManagerCompat {
-
-    interface AccessibilityManagerVersionImpl {
-        AccessibilityStateChangeListenerWrapper newAccessibilityStateChangeListener(
-                AccessibilityStateChangeListener listener);
-        boolean addAccessibilityStateChangeListener(AccessibilityManager manager,
-                AccessibilityStateChangeListener listener);
-        boolean removeAccessibilityStateChangeListener(AccessibilityManager manager,
-                AccessibilityStateChangeListener listener);
-        List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(
-                AccessibilityManager manager,int feedbackTypeFlags);
-        List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(
-                AccessibilityManager manager);
-        boolean isTouchExplorationEnabled(AccessibilityManager manager);
-        TouchExplorationStateChangeListenerWrapper newTouchExplorationStateChangeListener(
-                TouchExplorationStateChangeListener listener);
-        boolean addTouchExplorationStateChangeListener(AccessibilityManager manager,
-                TouchExplorationStateChangeListener listener);
-        boolean removeTouchExplorationStateChangeListener(AccessibilityManager manager,
-                TouchExplorationStateChangeListener listener);
-    }
-
-    static class AccessibilityManagerStubImpl implements AccessibilityManagerVersionImpl {
-        @Override
-        public AccessibilityStateChangeListenerWrapper newAccessibilityStateChangeListener(
-                AccessibilityStateChangeListener listener) {
-            return null;
-        }
-
-        @Override
-        public boolean addAccessibilityStateChangeListener(AccessibilityManager manager,
-                AccessibilityStateChangeListener listener) {
-            return false;
-        }
-
-        @Override
-        public boolean removeAccessibilityStateChangeListener(AccessibilityManager manager,
-                AccessibilityStateChangeListener listener) {
-            return false;
-        }
-
-        @Override
-        public List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(
-                AccessibilityManager manager, int feedbackTypeFlags) {
-            return Collections.emptyList();
-        }
-
-        @Override
-        public List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(
-                AccessibilityManager manager) {
-            return Collections.emptyList();
-        }
-
-        @Override
-        public boolean isTouchExplorationEnabled(AccessibilityManager manager) {
-            return false;
-        }
-
-        @Override
-        public TouchExplorationStateChangeListenerWrapper newTouchExplorationStateChangeListener(
-                TouchExplorationStateChangeListener listener) {
-            return null;
-        }
-
-        @Override
-        public boolean addTouchExplorationStateChangeListener(AccessibilityManager manager,
-                TouchExplorationStateChangeListener listener) {
-            return false;
-        }
-
-        @Override
-        public boolean removeTouchExplorationStateChangeListener(AccessibilityManager manager,
-                TouchExplorationStateChangeListener listener) {
-            return false;
-        }
-    }
-
-    @RequiresApi(14)
-    static class AccessibilityManagerIcsImpl extends AccessibilityManagerStubImpl {
-        @Override
-        public AccessibilityStateChangeListenerWrapper newAccessibilityStateChangeListener(
-                final AccessibilityStateChangeListener listener) {
-            return new AccessibilityStateChangeListenerWrapper(listener,
-                    new AccessibilityStateChangeListenerBridge() {
-                        @Override
-                        public void onAccessibilityStateChanged(boolean enabled) {
-                            listener.onAccessibilityStateChanged(enabled);
-                        }
-                    });
-        }
-
-        @Override
-        public boolean addAccessibilityStateChangeListener(AccessibilityManager manager,
-                AccessibilityStateChangeListener listener) {
-            return AccessibilityManagerCompatIcs.addAccessibilityStateChangeListener(manager,
-                    newAccessibilityStateChangeListener(listener));
-        }
-
-        @Override
-        public boolean removeAccessibilityStateChangeListener(AccessibilityManager manager,
-                AccessibilityStateChangeListener listener) {
-            return AccessibilityManagerCompatIcs.removeAccessibilityStateChangeListener(manager,
-                    newAccessibilityStateChangeListener(listener));
-        }
-
-        @Override
-        public List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(
-                AccessibilityManager manager, int feedbackTypeFlags) {
-            return AccessibilityManagerCompatIcs.getEnabledAccessibilityServiceList(manager,
-                    feedbackTypeFlags);
-        }
-
-        @Override
-        public List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(
-                AccessibilityManager manager) {
-            return AccessibilityManagerCompatIcs.getInstalledAccessibilityServiceList(manager);
-        }
-
-        @Override
-        public boolean isTouchExplorationEnabled(AccessibilityManager manager) {
-            return AccessibilityManagerCompatIcs.isTouchExplorationEnabled(manager);
-        }
-    }
-
-    @RequiresApi(19)
-    static class AccessibilityManagerKitKatImpl extends AccessibilityManagerIcsImpl {
-        @Override
-        public TouchExplorationStateChangeListenerWrapper newTouchExplorationStateChangeListener(
-                final TouchExplorationStateChangeListener listener) {
-            return new TouchExplorationStateChangeListenerWrapper(listener,
-                    new TouchExplorationStateChangeListenerBridge() {
-                        @Override
-                        public void onTouchExplorationStateChanged(boolean enabled) {
-                            listener.onTouchExplorationStateChanged(enabled);
-                        }
-                    });
-        }
-
-        @Override
-        public boolean addTouchExplorationStateChangeListener(AccessibilityManager manager,
-                TouchExplorationStateChangeListener listener) {
-            return AccessibilityManagerCompatKitKat.addTouchExplorationStateChangeListener(
-                    manager, newTouchExplorationStateChangeListener(listener));
-        }
-
-        @Override
-        public boolean removeTouchExplorationStateChangeListener(AccessibilityManager manager,
-                TouchExplorationStateChangeListener listener) {
-            return AccessibilityManagerCompatKitKat.removeTouchExplorationStateChangeListener(
-                    manager, newTouchExplorationStateChangeListener(listener));
-        }
-    }
-
-    static {
-        if (Build.VERSION.SDK_INT >= 19) { // KitKat
-            IMPL = new AccessibilityManagerKitKatImpl();
-        } else if (Build.VERSION.SDK_INT >= 14) { // ICS
-            IMPL = new AccessibilityManagerIcsImpl();
-        } else {
-            IMPL = new AccessibilityManagerStubImpl();
-        }
-    }
-
-    private static final AccessibilityManagerVersionImpl IMPL;
-
     /**
      * Registers an {@link AccessibilityManager.AccessibilityStateChangeListener} for changes in
      * the global accessibility state of the system.
@@ -204,10 +35,18 @@
      * @param manager The accessibility manager.
      * @param listener The listener.
      * @return True if successfully registered.
+     *
+     * @deprecated Use {@link AccessibilityManager#addAccessibilityStateChangeListener(
+     *             AccessibilityManager.AccessibilityStateChangeListener)} directly.
      */
+    @Deprecated
     public static boolean addAccessibilityStateChangeListener(AccessibilityManager manager,
             AccessibilityStateChangeListener listener) {
-        return IMPL.addAccessibilityStateChangeListener(manager, listener);
+        if (listener == null) {
+            return false;
+        }
+        return manager.addAccessibilityStateChangeListener(
+                new AccessibilityStateChangeListenerWrapper(listener));
     }
 
     /**
@@ -216,10 +55,51 @@
      * @param manager The accessibility manager.
      * @param listener The listener.
      * @return True if successfully unregistered.
+     *
+     * @deprecated Use {@link AccessibilityManager#removeAccessibilityStateChangeListener(
+     *             AccessibilityManager.AccessibilityStateChangeListener)} directly.
      */
+    @Deprecated
     public static boolean removeAccessibilityStateChangeListener(AccessibilityManager manager,
             AccessibilityStateChangeListener listener) {
-        return IMPL.removeAccessibilityStateChangeListener(manager, listener);
+        if (listener == null) {
+            return false;
+        }
+        return manager.removeAccessibilityStateChangeListener(
+                new AccessibilityStateChangeListenerWrapper(listener));
+    }
+
+    private static class AccessibilityStateChangeListenerWrapper
+            implements AccessibilityManager.AccessibilityStateChangeListener {
+        AccessibilityStateChangeListener mListener;
+
+        AccessibilityStateChangeListenerWrapper(
+                @NonNull AccessibilityStateChangeListener listener) {
+            mListener = listener;
+        }
+
+        @Override
+        public int hashCode() {
+            return mListener.hashCode();
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (this == o) {
+                return true;
+            }
+            if (o == null || getClass() != o.getClass()) {
+                return false;
+            }
+            AccessibilityStateChangeListenerWrapper other =
+                    (AccessibilityStateChangeListenerWrapper) o;
+            return mListener.equals(other.mListener);
+        }
+
+        @Override
+        public void onAccessibilityStateChanged(boolean enabled) {
+            mListener.onAccessibilityStateChanged(enabled);
+        }
     }
 
     /**
@@ -227,10 +107,13 @@
      *
      * @param manager The accessibility manager.
      * @return An unmodifiable list with {@link AccessibilityServiceInfo}s.
+     *
+     * @deprecated Use {@link AccessibilityManager#getInstalledAccessibilityServiceList()} directly.
      */
+    @Deprecated
     public static List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(
             AccessibilityManager manager) {
-        return IMPL.getInstalledAccessibilityServiceList(manager);
+        return manager.getInstalledAccessibilityServiceList();
     }
 
     /**
@@ -246,10 +129,14 @@
      * @see AccessibilityServiceInfo#FEEDBACK_HAPTIC
      * @see AccessibilityServiceInfo#FEEDBACK_SPOKEN
      * @see AccessibilityServiceInfo#FEEDBACK_VISUAL
+     *
+     * @deprecated Use {@link AccessibilityManager#getEnabledAccessibilityServiceList(int)}
+     * directly.
      */
+    @Deprecated
     public static List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(
             AccessibilityManager manager, int feedbackTypeFlags) {
-        return IMPL.getEnabledAccessibilityServiceList(manager, feedbackTypeFlags);
+        return manager.getEnabledAccessibilityServiceList(feedbackTypeFlags);
     }
 
     /**
@@ -257,9 +144,12 @@
      *
      * @param manager The accessibility manager.
      * @return True if touch exploration is enabled, false otherwise.
+     *
+     * @deprecated Use {@link AccessibilityManager#isTouchExplorationEnabled()} directly.
      */
+    @Deprecated
     public static boolean isTouchExplorationEnabled(AccessibilityManager manager) {
-        return IMPL.isTouchExplorationEnabled(manager);
+        return manager.isTouchExplorationEnabled();
     }
 
     /**
@@ -271,7 +161,15 @@
      */
     public static boolean addTouchExplorationStateChangeListener(AccessibilityManager manager,
             TouchExplorationStateChangeListener listener) {
-        return IMPL.addTouchExplorationStateChangeListener(manager, listener);
+        if (Build.VERSION.SDK_INT >= 19) {
+            if (listener == null) {
+                return false;
+            }
+            return manager.addTouchExplorationStateChangeListener(
+                    new TouchExplorationStateChangeListenerWrapper(listener));
+        } else {
+            return false;
+        }
     }
 
     /**
@@ -282,12 +180,56 @@
      */
     public static boolean removeTouchExplorationStateChangeListener(AccessibilityManager manager,
             TouchExplorationStateChangeListener listener) {
-        return IMPL.removeTouchExplorationStateChangeListener(manager, listener);
+        if (Build.VERSION.SDK_INT >= 19) {
+            if (listener == null) {
+                return false;
+            }
+            return manager.removeTouchExplorationStateChangeListener(
+                    new TouchExplorationStateChangeListenerWrapper(listener));
+        } else {
+            return false;
+        }
+    }
+
+    @RequiresApi(19)
+    private static class TouchExplorationStateChangeListenerWrapper
+            implements AccessibilityManager.TouchExplorationStateChangeListener {
+        final TouchExplorationStateChangeListener mListener;
+
+        TouchExplorationStateChangeListenerWrapper(
+                @NonNull TouchExplorationStateChangeListener listener) {
+            mListener = listener;
+        }
+
+        @Override
+        public int hashCode() {
+            return mListener.hashCode();
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (this == o) {
+                return true;
+            }
+            if (o == null || getClass() != o.getClass()) {
+                return false;
+            }
+            TouchExplorationStateChangeListenerWrapper other =
+                    (TouchExplorationStateChangeListenerWrapper) o;
+            return mListener.equals(other.mListener);
+        }
+
+        @Override
+        public void onTouchExplorationStateChanged(boolean enabled) {
+            mListener.onTouchExplorationStateChanged(enabled);
+        }
     }
 
     /**
      * Listener for the accessibility state.
-     * @deprecated Use {@link AccessibilityStateChangeListener} instead.
+     *
+     * @deprecated Use {@link AccessibilityManager.AccessibilityStateChangeListener} directly
+     * instead of this listener.
      */
     @Deprecated
     public static abstract class AccessibilityStateChangeListenerCompat
@@ -296,13 +238,20 @@
 
     /**
      * Listener for the accessibility state.
+     *
+     * @deprecated Use {@link AccessibilityManager.AccessibilityStateChangeListener} directly
+     * instead of this listener.
      */
+    @Deprecated
     public interface AccessibilityStateChangeListener {
         /**
          * Called back on change in the accessibility state.
          *
          * @param enabled Whether accessibility is enabled.
+         *
+         * @deprecated Use {@link AccessibilityManager.AccessibilityStateChangeListener} directly.
          */
+        @Deprecated
         void onAccessibilityStateChanged(boolean enabled);
     }
 
diff --git a/compat/kitkat/android/support/v4/view/accessibility/AccessibilityManagerCompatKitKat.java b/compat/kitkat/android/support/v4/view/accessibility/AccessibilityManagerCompatKitKat.java
deleted file mode 100644
index b8d742c..0000000
--- a/compat/kitkat/android/support/v4/view/accessibility/AccessibilityManagerCompatKitKat.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2016 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.support.annotation.RequiresApi;
-import android.view.accessibility.AccessibilityManager;
-import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener;
-
-/**
- * KitKat-specific AccessibilityManager API implementation.
- */
-
-@RequiresApi(19)
-class AccessibilityManagerCompatKitKat {
-
-    public static class TouchExplorationStateChangeListenerWrapper
-            implements TouchExplorationStateChangeListener {
-        final Object mListener;
-        final TouchExplorationStateChangeListenerBridge mListenerBridge;
-
-        public TouchExplorationStateChangeListenerWrapper(Object listener,
-                TouchExplorationStateChangeListenerBridge listenerBridge) {
-            mListener = listener;
-            mListenerBridge = listenerBridge;
-        }
-
-        @Override
-        public int hashCode() {
-            return mListener == null ? 0 : mListener.hashCode();
-        }
-
-        @Override
-        public boolean equals(Object o) {
-            if (this == o) {
-                return true;
-            }
-            if (o == null || getClass() != o.getClass()) {
-                return false;
-            }
-            TouchExplorationStateChangeListenerWrapper other =
-                    (TouchExplorationStateChangeListenerWrapper) o;
-            return mListener == null ? other.mListener == null : mListener.equals(other.mListener);
-        }
-
-        @Override
-        public void onTouchExplorationStateChanged(boolean enabled) {
-            mListenerBridge.onTouchExplorationStateChanged(enabled);
-        }
-    }
-
-    interface TouchExplorationStateChangeListenerBridge {
-        void onTouchExplorationStateChanged(boolean enabled);
-    }
-
-    public static Object newTouchExplorationStateChangeListener(
-            final TouchExplorationStateChangeListenerBridge bridge) {
-        return new TouchExplorationStateChangeListener() {
-            @Override
-            public void onTouchExplorationStateChanged(boolean enabled) {
-                bridge.onTouchExplorationStateChanged(enabled);
-            }
-        };
-    }
-
-    public static boolean addTouchExplorationStateChangeListener(AccessibilityManager manager,
-            Object listener) {
-        return manager.addTouchExplorationStateChangeListener(
-                (TouchExplorationStateChangeListener) listener);
-    }
-
-    public static boolean removeTouchExplorationStateChangeListener(AccessibilityManager manager,
-            Object listener) {
-        return manager.removeTouchExplorationStateChangeListener(
-                (TouchExplorationStateChangeListener) listener);
-    }
-}