Restore compatibility with Cordova Android 4.0+

Fixes #17 and #13.  The WebView object is now accessed via a `getView()` method call on `CordovaWebView` objects.
This commit is contained in:
Aaron Yong
2015-06-25 15:29:49 -06:00
parent b35a21f724
commit 37a7d11251
3 changed files with 22 additions and 5 deletions

View File

@@ -38,7 +38,12 @@ public class DonutMobileAccessibilityHelper extends
@Override
public void initialize(MobileAccessibility mobileAccessibility) {
mMobileAccessibility = mobileAccessibility;
mWebView = (WebView) mobileAccessibility.webView;
try {
mWebView = (WebView) mobileAccessibility.webView;
} catch (ClassCastException ce) { // cordova-android 4.0+
mWebView = (WebView) mobileAccessibility.webView.getView();
}
mAccessibilityManager = (AccessibilityManager) mMobileAccessibility.cordova.getActivity().getSystemService(Context.ACCESSIBILITY_SERVICE);
}

View File

@@ -34,8 +34,14 @@ public class JellyBeanMobileAccessibilityHelper extends
@Override
public void initialize(MobileAccessibility mobileAccessibility) {
WebView view;
super.initialize(mobileAccessibility);
mParent = ((WebView) mobileAccessibility.webView).getParentForAccessibility();
try {
view = (WebView) mobileAccessibility.webView;
} catch (ClassCastException ce) { // cordova android 4.0+
view = (WebView) mobileAccessibility.webView.getView();
}
mParent = view.getParentForAccessibility();
}
@Override

View File

@@ -133,9 +133,15 @@ public class MobileAccessibility extends CordovaPlugin {
stop();
cordova.getActivity().runOnUiThread(new Runnable() {
public void run() {
((WebView) webView).reload();
}
});
WebView view;
try {
view = (WebView) webView;
} catch(ClassCastException ce) { // cordova-android 4.0+
view = (WebView) webView.getView();
}
view.reload();
}
});
}
}