From 37a7d1125125fce3ab5d960ea759268bf1c7d27b Mon Sep 17 00:00:00 2001 From: Aaron Yong Date: Thu, 25 Jun 2015 15:29:49 -0600 Subject: [PATCH] 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. --- .../DonutMobileAccessibilityHelper.java | 7 ++++++- .../JellyBeanMobileAccessibilityHelper.java | 8 +++++++- .../mobileaccessibility/MobileAccessibility.java | 12 +++++++++--- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/android/com/phonegap/plugin/mobileaccessibility/DonutMobileAccessibilityHelper.java b/src/android/com/phonegap/plugin/mobileaccessibility/DonutMobileAccessibilityHelper.java index 6381989..d2edd31 100644 --- a/src/android/com/phonegap/plugin/mobileaccessibility/DonutMobileAccessibilityHelper.java +++ b/src/android/com/phonegap/plugin/mobileaccessibility/DonutMobileAccessibilityHelper.java @@ -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); } diff --git a/src/android/com/phonegap/plugin/mobileaccessibility/JellyBeanMobileAccessibilityHelper.java b/src/android/com/phonegap/plugin/mobileaccessibility/JellyBeanMobileAccessibilityHelper.java index afcbee4..41424ed 100644 --- a/src/android/com/phonegap/plugin/mobileaccessibility/JellyBeanMobileAccessibilityHelper.java +++ b/src/android/com/phonegap/plugin/mobileaccessibility/JellyBeanMobileAccessibilityHelper.java @@ -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 diff --git a/src/android/com/phonegap/plugin/mobileaccessibility/MobileAccessibility.java b/src/android/com/phonegap/plugin/mobileaccessibility/MobileAccessibility.java index d732517..97de0fd 100644 --- a/src/android/com/phonegap/plugin/mobileaccessibility/MobileAccessibility.java +++ b/src/android/com/phonegap/plugin/mobileaccessibility/MobileAccessibility.java @@ -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(); + } + }); } }