Merge "Further AccessibilityDelegateCompat cleanup after minSdk 14 bump."
diff --git a/compat/ics/android/support/v4/view/AccessibilityDelegateCompatIcs.java b/compat/ics/android/support/v4/view/AccessibilityDelegateCompatIcs.java
deleted file mode 100644
index 910d3ec..0000000
--- a/compat/ics/android/support/v4/view/AccessibilityDelegateCompatIcs.java
+++ /dev/null
@@ -1,84 +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;
-
-import android.support.annotation.RequiresApi;
-import android.view.View;
-import android.view.View.AccessibilityDelegate;
-import android.view.ViewGroup;
-import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityNodeInfo;
-
-/**
- * ICS specific AccessibilityDelegate API implementation.
- */
-
-@RequiresApi(14)
-class AccessibilityDelegateCompatIcs {
-
-    interface AccessibilityDelegateBridge {
-        boolean dispatchPopulateAccessibilityEvent(View host, AccessibilityEvent event);
-        void onInitializeAccessibilityEvent(View host, AccessibilityEvent event);
-        void onInitializeAccessibilityNodeInfo(View host, Object info);
-        void onPopulateAccessibilityEvent(View host, AccessibilityEvent event);
-        boolean onRequestSendAccessibilityEvent(ViewGroup host, View child,
-            AccessibilityEvent event);
-        void sendAccessibilityEvent(View host, int eventType);
-        void sendAccessibilityEventUnchecked(View host, AccessibilityEvent event);
-    }
-
-    public static AccessibilityDelegate newAccessibilityDelegateBridge(
-            final AccessibilityDelegateBridge bridge) {
-        return new AccessibilityDelegate() {
-            @Override
-            public boolean dispatchPopulateAccessibilityEvent(View host, AccessibilityEvent event) {
-                return bridge.dispatchPopulateAccessibilityEvent(host, event);
-            }
-
-            @Override
-            public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
-                bridge.onInitializeAccessibilityEvent(host, event);
-            }
-
-            @Override
-            public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
-                bridge.onInitializeAccessibilityNodeInfo(host, info);
-            }
-
-            @Override
-            public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event) {
-                bridge.onPopulateAccessibilityEvent(host, event);
-            }
-
-            @Override
-            public boolean onRequestSendAccessibilityEvent(ViewGroup host, View child,
-                    AccessibilityEvent event) {
-                return bridge.onRequestSendAccessibilityEvent(host, child, event);
-            }
-
-            @Override
-            public void sendAccessibilityEvent(View host, int eventType) {
-                bridge.sendAccessibilityEvent(host, eventType);
-            }
-
-            @Override
-            public void sendAccessibilityEventUnchecked(View host, AccessibilityEvent event) {
-                bridge.sendAccessibilityEventUnchecked(host, event);
-            }
-        };
-    }
-}
diff --git a/compat/java/android/support/v4/view/AccessibilityDelegateCompat.java b/compat/java/android/support/v4/view/AccessibilityDelegateCompat.java
index 2a42357..efedf0e 100644
--- a/compat/java/android/support/v4/view/AccessibilityDelegateCompat.java
+++ b/compat/java/android/support/v4/view/AccessibilityDelegateCompat.java
@@ -26,6 +26,7 @@
 import android.view.ViewGroup;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityNodeInfo;
+import android.view.accessibility.AccessibilityNodeProvider;
 
 /**
  * Helper for accessing {@link AccessibilityDelegate} introduced after
@@ -45,20 +46,10 @@
  */
 public class AccessibilityDelegateCompat {
 
-    interface AccessibilityDelegateImpl {
-        AccessibilityDelegate newAccessibilityDelegateBridge(AccessibilityDelegateCompat listener);
-        AccessibilityNodeProviderCompat getAccessibilityNodeProvider(AccessibilityDelegate delegate,
-                View host);
-        boolean performAccessibilityAction(AccessibilityDelegate delegate, View host, int action,
-                Bundle args);
-    }
-
-    static class AccessibilityDelegateBaseImpl implements AccessibilityDelegateImpl {
-        @Override
+    static class AccessibilityDelegateBaseImpl {
         public AccessibilityDelegate newAccessibilityDelegateBridge(
                 final AccessibilityDelegateCompat compat) {
-            return AccessibilityDelegateCompatIcs.newAccessibilityDelegateBridge(
-                    new AccessibilityDelegateCompatIcs.AccessibilityDelegateBridge() {
+            return new AccessibilityDelegate() {
                 @Override
                 public boolean dispatchPopulateAccessibilityEvent(View host,
                         AccessibilityEvent event) {
@@ -71,7 +62,8 @@
                 }
 
                 @Override
-                public void onInitializeAccessibilityNodeInfo(View host, Object info) {
+                public void onInitializeAccessibilityNodeInfo(
+                        View host, AccessibilityNodeInfo info) {
                     compat.onInitializeAccessibilityNodeInfo(host,
                             new AccessibilityNodeInfoCompat(info));
                 }
@@ -96,17 +88,15 @@
                 public void sendAccessibilityEventUnchecked(View host, AccessibilityEvent event) {
                     compat.sendAccessibilityEventUnchecked(host, event);
                 }
-            });
+            };
         }
 
-        @Override
         public AccessibilityNodeProviderCompat getAccessibilityNodeProvider(
                 AccessibilityDelegate delegate, View host) {
             // Do nothing. Added in API 16.
             return null;
         }
 
-        @Override
         public boolean performAccessibilityAction(AccessibilityDelegate delegate, View host,
                 int action, Bundle args) {
             // Do nothing. Added in API 16.
@@ -119,9 +109,7 @@
         @Override
         public AccessibilityDelegate newAccessibilityDelegateBridge(
                 final AccessibilityDelegateCompat compat) {
-            return AccessibilityDelegateCompatJellyBean.newAccessibilityDelegateBridge(
-                    new AccessibilityDelegateCompatJellyBean
-                            .AccessibilityDelegateBridgeJellyBean() {
+            return new AccessibilityDelegate()  {
                 @Override
                 public boolean dispatchPopulateAccessibilityEvent(View host,
                         AccessibilityEvent event) {
@@ -134,7 +122,8 @@
                 }
 
                 @Override
-                public void onInitializeAccessibilityNodeInfo(View host, Object info) {
+                public void onInitializeAccessibilityNodeInfo(
+                        View host, AccessibilityNodeInfo info) {
                     compat.onInitializeAccessibilityNodeInfo(host,
                             new AccessibilityNodeInfoCompat(info));
                 }
@@ -161,24 +150,24 @@
                 }
 
                 @Override
-                public Object getAccessibilityNodeProvider(View host) {
+                public AccessibilityNodeProvider getAccessibilityNodeProvider(View host) {
                     AccessibilityNodeProviderCompat provider =
                         compat.getAccessibilityNodeProvider(host);
-                    return (provider != null) ? provider.getProvider() : null;
+                    return (provider != null)
+                            ? (AccessibilityNodeProvider) provider.getProvider() : null;
                 }
 
                 @Override
                 public boolean performAccessibilityAction(View host, int action, Bundle args) {
                     return compat.performAccessibilityAction(host, action, args);
                 }
-            });
+            };
         }
 
         @Override
         public AccessibilityNodeProviderCompat getAccessibilityNodeProvider(
                 AccessibilityDelegate delegate, View host) {
-            Object provider = AccessibilityDelegateCompatJellyBean.getAccessibilityNodeProvider(
-                    delegate, host);
+            Object provider = delegate.getAccessibilityNodeProvider(host);
             if (provider != null) {
                 return new AccessibilityNodeProviderCompat(provider);
             }
@@ -188,12 +177,11 @@
         @Override
         public boolean performAccessibilityAction(AccessibilityDelegate delegate, View host,
                 int action, Bundle args) {
-            return AccessibilityDelegateCompatJellyBean.performAccessibilityAction(delegate,
-                    host, action, args);
+            return delegate.performAccessibilityAction(host, action, args);
         }
     }
 
-    private static final AccessibilityDelegateImpl IMPL;
+    private static final AccessibilityDelegateBaseImpl IMPL;
     private static final AccessibilityDelegate DEFAULT_DELEGATE;
 
     static {
diff --git a/compat/jellybean/android/support/v4/view/AccessibilityDelegateCompatJellyBean.java b/compat/jellybean/android/support/v4/view/AccessibilityDelegateCompatJellyBean.java
deleted file mode 100644
index e26d0b3..0000000
--- a/compat/jellybean/android/support/v4/view/AccessibilityDelegateCompatJellyBean.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2012 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;
-
-import android.os.Bundle;
-import android.support.annotation.RequiresApi;
-import android.view.View;
-import android.view.View.AccessibilityDelegate;
-import android.view.ViewGroup;
-import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityNodeInfo;
-import android.view.accessibility.AccessibilityNodeProvider;
-
-/**
- * JellyBean specific AccessibilityDelegate API implementation.
- */
-
-@RequiresApi(16)
-class AccessibilityDelegateCompatJellyBean {
-
-    interface AccessibilityDelegateBridgeJellyBean {
-        boolean dispatchPopulateAccessibilityEvent(View host, AccessibilityEvent event);
-        void onInitializeAccessibilityEvent(View host, AccessibilityEvent event);
-        void onInitializeAccessibilityNodeInfo(View host, Object info);
-        void onPopulateAccessibilityEvent(View host, AccessibilityEvent event);
-        boolean onRequestSendAccessibilityEvent(ViewGroup host, View child,
-                AccessibilityEvent event);
-        void sendAccessibilityEvent(View host, int eventType);
-        void sendAccessibilityEventUnchecked(View host, AccessibilityEvent event);
-        Object getAccessibilityNodeProvider(View host);
-        boolean performAccessibilityAction(View host, int action, Bundle args);
-    }
-
-    public static AccessibilityDelegate newAccessibilityDelegateBridge(
-            final AccessibilityDelegateBridgeJellyBean bridge) {
-        return new AccessibilityDelegate() {
-
-            @Override
-            public boolean dispatchPopulateAccessibilityEvent(View host, AccessibilityEvent event) {
-                return bridge.dispatchPopulateAccessibilityEvent(host, event);
-            }
-
-            @Override
-            public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
-                bridge.onInitializeAccessibilityEvent(host, event);
-            }
-
-            @Override
-            public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
-                bridge.onInitializeAccessibilityNodeInfo(host, info);
-            }
-
-            @Override
-            public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event) {
-                bridge.onPopulateAccessibilityEvent(host, event);
-            }
-
-            @Override
-            public boolean onRequestSendAccessibilityEvent(ViewGroup host, View child,
-                    AccessibilityEvent event) {
-                return bridge.onRequestSendAccessibilityEvent(host, child, event);
-            }
-
-            @Override
-            public void sendAccessibilityEvent(View host, int eventType) {
-                bridge.sendAccessibilityEvent(host, eventType);
-            }
-
-            @Override
-            public void sendAccessibilityEventUnchecked(View host, AccessibilityEvent event) {
-                bridge.sendAccessibilityEventUnchecked(host, event);
-            }
-
-            @Override
-            public AccessibilityNodeProvider getAccessibilityNodeProvider(View host) {
-                return (AccessibilityNodeProvider) bridge.getAccessibilityNodeProvider(host);
-            }
-
-            @Override
-            public boolean performAccessibilityAction(View host, int action, Bundle args) {
-                return bridge.performAccessibilityAction(host, action, args);
-            }
-        };
-    }
-
-    public static Object getAccessibilityNodeProvider(AccessibilityDelegate delegate,
-            View host) {
-        return delegate.getAccessibilityNodeProvider(host);
-    }
-
-    public static boolean performAccessibilityAction(AccessibilityDelegate delegate, View host,
-            int action, Bundle args) {
-        return delegate.performAccessibilityAction(host, action, args);
-    }
-}