Added sanity check before calling Vehicle api 15/31315/1 accepted/tizen/ivi/20141204.025516 submit/tizen_ivi/20141203.212631 submit/tizen_ivi/20141203.214901
authorJimmy Huang <jimmy.huang@intel.com>
Wed, 3 Dec 2014 21:14:37 +0000 (13:14 -0800)
committerJimmy Huang <jimmy.huang@intel.com>
Wed, 3 Dec 2014 21:16:32 +0000 (13:16 -0800)
Added a sanity check to make sure that in case the vehicle api
is not available, that it doesn't break any other Modello apps
when calling the Vehicle api

Change-Id: Ib967c27d784069f309b5e2370dcdd252e3a22c2e
Signed-off-by: Jimmy Huang <jimmy.huang@intel.com>
js/services/carIndicator.js
packaging/modello-common.changes

index d563b6a..99d33a6 100644 (file)
@@ -478,25 +478,28 @@ CarIndicator.prototype.addListener = function(aCallbackObject) {
 
                                        if (mapping.callBackPropertyName.toLowerCase() === prop.toLowerCase() && !mapping.subscribeCount) {
                                                mapping.subscribeCount = typeof (mapping.subscribeCount) === "undefined" ? 0 : mapping.subscribeCount++;
-
-                                               if (typeof (navigator.vehicle[interfaceName]) !== "undefined") {
-                                                       if (!(interfaceName.toString().trim().toLowerCase() === "nightmode" && id === this._listenerIDs[0])) {
-                                                               if (navigator.vehicle[interfaceName]){
-                                                                       var setUpData = navigator.vehicle[interfaceName].get(zone);
-                                                                       if (setUpData !== undefined)
-                                                                               self.onDataUpdate(setUpData, self, id);
+                                               if (typeof (navigator.vehicle) !== 'undefined') {
+                                                       if (typeof (navigator.vehicle[interfaceName]) !== "undefined") {
+                                                               if (!(interfaceName.toString().trim().toLowerCase() === "nightmode" && id === this._listenerIDs[0])) {
+                                                                       if (navigator.vehicle[interfaceName]){
+                                                                               var setUpData = navigator.vehicle[interfaceName].get(zone);
+                                                                               if (setUpData !== undefined)
+                                                                                       self.onDataUpdate(setUpData, self, id);
+                                                                       }
                                                                }
-                                                       }
-                                                       if (typeof (navigator.vehicle[interfaceName].subscribe) !== "undefined")
-                                                       {
-                                                               console.log("Modello: Subscribing to AMB signal - " + interfaceName);
-                                                               navigator.vehicle[interfaceName].subscribe(subscribeCallback, zone);
+                                                               if (typeof (navigator.vehicle[interfaceName].subscribe) !== "undefined")
+                                                               {
+                                                                       console.log("Modello: Subscribing to AMB signal - " + interfaceName);
+                                                                       navigator.vehicle[interfaceName].subscribe(subscribeCallback, zone);
+                                                               }
+                                                       } else {
+                                                               if (typeof (navigator.vehicle[interfaceName]) === "undefined")
+                                                                       console.warn(interfaceName + " is not available to subscribe to");
+                                                               else
+                                                                       console.warn("Tizen API is not available, cannot subscribe to signal", signal);
                                                        }
                                                } else {
-                                                       if (typeof (navigator.vehicle[interfaceName]) === "undefined")
-                                                               console.warn(interfaceName + " is not available to subscribe to");
-                                                       else
-                                                               console.warn("Tizen API is not available, cannot subscribe to signal", signal);
+                                                       console.warn("Vehicle API is not available.");
                                                }
                                        }
                                }
@@ -606,8 +609,12 @@ CarIndicator.prototype.removeListener = function(aId) {
                                        var mapping = this._mappingTable[signal];
 
                                        if (mapping.subscribeCount === 0) { // Last signal, unscubscribe
-                                               navigator.vehicle.unsubscribe(signal);
-                                               mapping.subscribeCount = undefined;
+                                               if (typeof (navigator.vehicle) !== 'undefined') {
+                                                       navigator.vehicle.unsubscribe(signal);
+                                                       mapping.subscribeCount = undefined;
+                                               } else {
+                                                       console.warn("Vehicle API is not available.");
+                                               }
                                        } else if (typeof (mapping.subscribeCount) !== 'undefined') {
                                                mapping.subscribeCount--;
                                        }
@@ -699,9 +706,13 @@ CarIndicator.prototype.setStatus = function(indicator, newValue, callback, zone)
                propertyValue[mappingProperty] = newValue;
                propertyValue.zone = propertyZone;
 
-               navigator.vehicle.set(objectName, propertyValue, function(msg) {
-                       console.error("Set error: " + msg);
-               });
+               if (typeof (navigator.vehicle) !== 'undefined') {
+                       navigator.vehicle.set(objectName, propertyValue, function(msg) {
+                               console.error("Set error: " + msg);
+                       });
+               } else {
+                       console.warn("Vehicle API is not available.");
+               }
        }
        if (!!callback) {
                callback();
index 742622e..48e9441 100644 (file)
@@ -1,3 +1,6 @@
+* Wed Dec 03 2014 Jimmy Huang <jimmy.huang@intel.com> accepted/tizen/ivi/20141202.054026-1-ge06950b
+- Added sanity check before calling Vehicle api
+
 * Mon Dec 01 2014 Brian Jones <brian.j.jones@intel.com> accepted/tizen/ivi/20141124.011535-1-gcbe85dc
 - Changed to use the navigator.vehicle namespace - TC-2055