Source code
package android.support.v4.view.accessibility;
import android.os.Build.VERSION;
import android.os.Bundle;
import java.util.ArrayList;
import java.util.List;
public class AccessibilityNodeProviderCompat {
private static final AccessibilityNodeProviderImpl IMPL;
private final Object mProvider;
interface AccessibilityNodeProviderImpl {
Object newAccessibilityNodeProviderBridge(AccessibilityNodeProviderCompat accessibilityNodeProviderCompat);
}
static class AccessibilityNodeProviderStubImpl implements AccessibilityNodeProviderImpl {
AccessibilityNodeProviderStubImpl() {
}
public Object newAccessibilityNodeProviderBridge(AccessibilityNodeProviderCompat compat) {
return null;
}
}
static class AccessibilityNodeProviderJellyBeanImpl extends AccessibilityNodeProviderStubImpl {
AccessibilityNodeProviderJellyBeanImpl() {
}
public Object newAccessibilityNodeProviderBridge(final AccessibilityNodeProviderCompat compat) {
return AccessibilityNodeProviderCompatJellyBean.newAccessibilityNodeProviderBridge(new AccessibilityNodeInfoBridge() {
public boolean performAction(int virtualViewId, int action, Bundle arguments) {
return compat.performAction(virtualViewId, action, arguments);
}
public List<Object> findAccessibilityNodeInfosByText(String text, int virtualViewId) {
List<AccessibilityNodeInfoCompat> compatInfos = compat.findAccessibilityNodeInfosByText(text, virtualViewId);
List<Object> infos = new ArrayList();
int infoCount = compatInfos.size();
for (int i = 0; i < infoCount; i++) {
infos.add(((AccessibilityNodeInfoCompat) compatInfos.get(i)).getInfo());
}
return infos;
}
public Object createAccessibilityNodeInfo(int virtualViewId) {
AccessibilityNodeInfoCompat compatInfo = compat.createAccessibilityNodeInfo(virtualViewId);
if (compatInfo == null) {
return null;
}
return compatInfo.getInfo();
}
});
}
}
static class AccessibilityNodeProviderKitKatImpl extends AccessibilityNodeProviderStubImpl {
AccessibilityNodeProviderKitKatImpl() {
}
public Object newAccessibilityNodeProviderBridge(final AccessibilityNodeProviderCompat compat) {
return AccessibilityNodeProviderCompatKitKat.newAccessibilityNodeProviderBridge(new AccessibilityNodeInfoBridge() {
public boolean performAction(int virtualViewId, int action, Bundle arguments) {
return compat.performAction(virtualViewId, action, arguments);
}
public List<Object> findAccessibilityNodeInfosByText(String text, int virtualViewId) {
List<AccessibilityNodeInfoCompat> compatInfos = compat.findAccessibilityNodeInfosByText(text, virtualViewId);
List<Object> infos = new ArrayList();
int infoCount = compatInfos.size();
for (int i = 0; i < infoCount; i++) {
infos.add(((AccessibilityNodeInfoCompat) compatInfos.get(i)).getInfo());
}
return infos;
}
public Object createAccessibilityNodeInfo(int virtualViewId) {
AccessibilityNodeInfoCompat compatInfo = compat.createAccessibilityNodeInfo(virtualViewId);
if (compatInfo == null) {
return null;
}
return compatInfo.getInfo();
}
public Object findFocus(int focus) {
AccessibilityNodeInfoCompat compatInfo = compat.findFocus(focus);
if (compatInfo == null) {
return null;
}
return compatInfo.getInfo();
}
});
}
}
static {
if (VERSION.SDK_INT >= 19) {
IMPL = new AccessibilityNodeProviderKitKatImpl();
} else if (VERSION.SDK_INT >= 16) {
IMPL = new AccessibilityNodeProviderJellyBeanImpl();
} else {
IMPL = new AccessibilityNodeProviderStubImpl();
}
}
public AccessibilityNodeProviderCompat() {
this.mProvider = IMPL.newAccessibilityNodeProviderBridge(this);
}
public AccessibilityNodeProviderCompat(Object provider) {
this.mProvider = provider;
}
public Object getProvider() {
return this.mProvider;
}
public AccessibilityNodeInfoCompat createAccessibilityNodeInfo(int virtualViewId) {
return null;
}
public boolean performAction(int virtualViewId, int action, Bundle arguments) {
return false;
}
public List<AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByText(String text, int virtualViewId) {
return null;
}
public AccessibilityNodeInfoCompat findFocus(int focus) {
return null;
}
}