Repository: cordova-android
Updated Branches:
  refs/heads/master 3a33f4c0a -> dc0bfeb0c


CB-11828: Adding dirty userAgent checking to see if we're running Jellybean or 
not for bridge modes


Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/dc0bfeb0
Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/dc0bfeb0
Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/dc0bfeb0

Branch: refs/heads/master
Commit: dc0bfeb0cc8228f755da8c60c80241fce745b7e5
Parents: deea0f7
Author: Joe Bowser <[email protected]>
Authored: Fri Sep 9 10:01:04 2016 -0700
Committer: Joe Bowser <[email protected]>
Committed: Fri Sep 9 12:05:19 2016 -0700

----------------------------------------------------------------------
 bin/templates/project/assets/www/cordova.js | 20 +++++++++++++++-----
 cordova-js-src/exec.js                      | 14 ++++++++++++--
 2 files changed, 27 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-android/blob/dc0bfeb0/bin/templates/project/assets/www/cordova.js
----------------------------------------------------------------------
diff --git a/bin/templates/project/assets/www/cordova.js 
b/bin/templates/project/assets/www/cordova.js
index 700c667..1f06fae 100644
--- a/bin/templates/project/assets/www/cordova.js
+++ b/bin/templates/project/assets/www/cordova.js
@@ -1,5 +1,5 @@
 // Platform: android
-// d403ce434788ffe1937711d6ebcbcc837fcbcb14
+// 2fd4bcb84048415922d13d80d35b8d1668e8e150
 /*
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
@@ -901,7 +901,7 @@ var cordova = require('cordova'),
         EVAL_BRIDGE: 3
     },
     jsToNativeBridgeMode,  // Set lazily.
-    nativeToJsBridgeMode = nativeToJsModes.ONLINE_EVENT,
+    nativeToJsBridgeMode = nativeToJsModes.EVAL_BRIDGE,
     pollEnabled = false,
     bridgeSecret = -1;
 
@@ -933,7 +933,6 @@ function androidExec(success, fail, service, action, args) {
 
     var callbackId = service + cordova.callbackId++,
         argsJson = JSON.stringify(args);
-
     if (success || fail) {
         cordova.callbacks[callbackId] = {success:success, fail:fail};
     }
@@ -953,6 +952,17 @@ function androidExec(success, fail, service, action, args) 
{
 }
 
 androidExec.init = function() {
+    //CB-11828
+    //This failsafe checks the version of Android and if it's Jellybean, it 
switches it to
+    //using the Online Event bridge for communicating from Native to JS
+    //
+    //It's ugly, but it's necessary.
+    var check = 
navigator.userAgent.toLowerCase().match(/android\s[0-9].[0-9]/);
+    var version_code = check[0].match(/4.[0-3].*/);
+    if (version_code != null && nativeToJsBridgeMode == 
nativeToJsModes.EVAL_BRIDGE) {
+      nativeToJsBridgeMode = nativeToJsModes.ONLINE_EVENT;
+    }
+
     bridgeSecret = +prompt('', 'gap_init:' + nativeToJsBridgeMode);
     channel.onNativeReady.fire();
 };
@@ -2084,7 +2094,7 @@ utils.clone = function(obj) {
 
     retVal = {};
     for(i in obj){
-        if((!(i in retVal) || retVal[i] != obj[i]) && typeof obj[i] != 
'undefined') {
+        if(!(i in retVal) || retVal[i] != obj[i]) {
             retVal[i] = utils.clone(obj[i]);
         }
     }
@@ -2165,4 +2175,4 @@ window.cordova = require('cordova');
 
 require('cordova/init');
 
-})();
+})();
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/dc0bfeb0/cordova-js-src/exec.js
----------------------------------------------------------------------
diff --git a/cordova-js-src/exec.js b/cordova-js-src/exec.js
index 197fb5d..36298ce 100644
--- a/cordova-js-src/exec.js
+++ b/cordova-js-src/exec.js
@@ -55,7 +55,7 @@ var cordova = require('cordova'),
         EVAL_BRIDGE: 3
     },
     jsToNativeBridgeMode,  // Set lazily.
-    nativeToJsBridgeMode = nativeToJsModes.ONLINE_EVENT,
+    nativeToJsBridgeMode = nativeToJsModes.EVAL_BRIDGE,
     pollEnabled = false,
     bridgeSecret = -1;
 
@@ -87,7 +87,6 @@ function androidExec(success, fail, service, action, args) {
 
     var callbackId = service + cordova.callbackId++,
         argsJson = JSON.stringify(args);
-
     if (success || fail) {
         cordova.callbacks[callbackId] = {success:success, fail:fail};
     }
@@ -107,6 +106,17 @@ function androidExec(success, fail, service, action, args) 
{
 }
 
 androidExec.init = function() {
+    //CB-11828
+    //This failsafe checks the version of Android and if it's Jellybean, it 
switches it to
+    //using the Online Event bridge for communicating from Native to JS
+    //
+    //It's ugly, but it's necessary.
+    var check = 
navigator.userAgent.toLowerCase().match(/android\s[0-9].[0-9]/);
+    var version_code = check[0].match(/4.[0-3].*/);
+    if (version_code != null && nativeToJsBridgeMode == 
nativeToJsModes.EVAL_BRIDGE) {
+      nativeToJsBridgeMode = nativeToJsModes.ONLINE_EVENT;
+    }
+
     bridgeSecret = +prompt('', 'gap_init:' + nativeToJsBridgeMode);
     channel.onNativeReady.fire();
 };


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to