You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by fi...@apache.org on 2012/01/06 01:48:52 UTC

git commit: #124: Adding Battery events to the PlayBook.

Updated Branches:
  refs/heads/master a96e4d9ef -> 5b78343ab


#124: Adding Battery events to the PlayBook.


Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/commit/5b78343a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/tree/5b78343a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/diff/5b78343a

Branch: refs/heads/master
Commit: 5b78343abdec031b88b156e1bad5a4a7cc790bc0
Parents: a96e4d9
Author: Fil Maj <fi...@nitobi.com>
Authored: Thu Jan 5 16:44:32 2012 -0800
Committer: Fil Maj <fi...@nitobi.com>
Committed: Thu Jan 5 16:44:32 2012 -0800

----------------------------------------------------------------------
 .../ext/src/com/phonegap/battery/Battery.java      |    1 +
 javascript/battery.js                              |  138 ------------
 javascript/blackberry/battery.js                   |  135 ++++++++++++
 javascript/playbook/battery.js                     |  165 +++++++++++++++
 javascript/playbook/playBookPluginManager.js       |   20 +-
 javascript/webWorksPluginManager.js                |    4 +-
 6 files changed, 313 insertions(+), 150 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/blob/5b78343a/framework/ext/src/com/phonegap/battery/Battery.java
----------------------------------------------------------------------
diff --git a/framework/ext/src/com/phonegap/battery/Battery.java b/framework/ext/src/com/phonegap/battery/Battery.java
index f930ccf..cb01de2 100644
--- a/framework/ext/src/com/phonegap/battery/Battery.java
+++ b/framework/ext/src/com/phonegap/battery/Battery.java
@@ -197,3 +197,4 @@ public class Battery extends Plugin {
     }
 
 }
+

http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/blob/5b78343a/javascript/battery.js
----------------------------------------------------------------------
diff --git a/javascript/battery.js b/javascript/battery.js
deleted file mode 100644
index 4cb32ea..0000000
--- a/javascript/battery.js
+++ /dev/null
@@ -1,138 +0,0 @@
-
-/*
- * PhoneGap is available under *either* the terms of the modified BSD license *or* the
- * MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
- *
- * Copyright (c) 2005-2010, Nitobi Software Inc.
- * Copyright (c) 2010-2011, IBM Corporation
- */
-
-/**
- * navigator.battery
- */
-(function() {
-    /**
-     * Check to see that navigator.battery has not been initialized.
-     */
-    if (typeof navigator.battery !== "undefined") {
-        return;
-    }
-
-    /**
-     * This class contains information about the current battery status.
-     * @constructor
-     */
-    var Battery = function() {
-        this._level = null;
-        this._isPlugged = null;
-        this._batteryListener = [];
-        this._lowListener = [];
-        this._criticalListener = [];
-    };
-
-    /**
-     * Registers as an event producer for battery events.
-     *
-     * @param {Object} eventType
-     * @param {Object} handler
-     * @param {Object} add
-     */
-    Battery.prototype.eventHandler = function(eventType, handler, add) {
-        var me = navigator.battery;
-        if (add) {
-            // If there are no current registered event listeners start the
-            // battery listener on native side.
-            if (me._batteryListener.length === 0 && me._lowListener.length === 0
-                    && me._criticalListener.length === 0) {
-                PhoneGap.exec(me._status, me._error, "Battery", "start", []);
-            }
-
-            // Register the event listener in the proper array
-            if (eventType === "batterystatus") {
-                var pos = me._batteryListener.indexOf(handler);
-                if (pos === -1) {
-                    me._batteryListener.push(handler);
-                }
-            } else if (eventType === "batterylow") {
-                var pos = me._lowListener.indexOf(handler);
-                if (pos === -1) {
-                    me._lowListener.push(handler);
-                }
-            } else if (eventType === "batterycritical") {
-                var pos = me._criticalListener.indexOf(handler);
-                if (pos === -1) {
-                    me._criticalListener.push(handler);
-                }
-            }
-        } else {
-            // Remove the event listener from the proper array
-            if (eventType === "batterystatus") {
-                var pos = me._batteryListener.indexOf(handler);
-                if (pos > -1) {
-                    me._batteryListener.splice(pos, 1);
-                }
-            } else if (eventType === "batterylow") {
-                var pos = me._lowListener.indexOf(handler);
-                if (pos > -1) {
-                    me._lowListener.splice(pos, 1);
-                }
-            } else if (eventType === "batterycritical") {
-                var pos = me._criticalListener.indexOf(handler);
-                if (pos > -1) {
-                    me._criticalListener.splice(pos, 1);
-                }
-            }
-
-            // If there are no more registered event listeners stop the battery
-            // listener on native side.
-            if (me._batteryListener.length === 0 && me._lowListener.length === 0
-                    && me._criticalListener.length === 0) {
-                PhoneGap.exec(null, null, "Battery", "stop", []);
-            }
-        }
-    };
-
-    /**
-     * Callback for battery status
-     *
-     * @param {Object} info         keys: level, isPlugged
-     */
-    Battery.prototype._status = function(info) {
-        if (info) {
-            var me = this;
-            if (me._level != info.level || me._isPlugged != info.isPlugged) {
-                // Fire batterystatus event
-                PhoneGap.fireWindowEvent("batterystatus", info);
-
-                // Fire low battery event
-                if (info.level == 20 || info.level == 5) {
-                    if (info.level == 20) {
-                        PhoneGap.fireWindowEvent("batterylow", info);
-                    }
-                    else {
-                        PhoneGap.fireWindowEvent("batterycritical", info);
-                    }
-                }
-            }
-            me._level = info.level;
-            me._isPlugged = info.isPlugged;
-        }
-    };
-
-    /**
-     * Error callback for battery start
-     */
-    Battery.prototype._error = function(e) {
-        console.log("Error initializing Battery: " + e);
-    };
-
-    PhoneGap.addConstructor(function() {
-        if (typeof navigator.battery === "undefined") {
-            navigator.battery = new Battery();
-            PhoneGap.addWindowEventHandler("batterystatus", navigator.battery.eventHandler);
-            PhoneGap.addWindowEventHandler("batterylow", navigator.battery.eventHandler);
-            PhoneGap.addWindowEventHandler("batterycritical", navigator.battery.eventHandler);
-        }
-    });
-
-}());

http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/blob/5b78343a/javascript/blackberry/battery.js
----------------------------------------------------------------------
diff --git a/javascript/blackberry/battery.js b/javascript/blackberry/battery.js
new file mode 100644
index 0000000..551c073
--- /dev/null
+++ b/javascript/blackberry/battery.js
@@ -0,0 +1,135 @@
+/*
+ * PhoneGap is available under *either* the terms of the modified BSD license *or* the
+ * MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
+ *
+ * Copyright (c) 2005-2010, Nitobi Software Inc.
+ * Copyright (c) 2010-2011, IBM Corporation
+ */
+
+/**
+ * navigator.battery
+ */
+(function() {
+  /**
+   * Check to see that navigator.battery has not been initialized.
+   */
+  if (typeof navigator.battery !== "undefined") {
+    return;
+  }
+
+  /**
+   * This class contains information about the current battery status.
+   * @constructor
+   */
+  var Battery = function() {
+    this._level = null;
+    this._isPlugged = null;
+    this._batteryListener = [];
+    this._lowListener = [];
+    this._criticalListener = [];
+  };
+
+  /**
+   * Registers as an event producer for battery events.
+   *
+   * @param {Object} eventType
+   * @param {Object} handler
+   * @param {Object} add
+   */
+  Battery.prototype.eventHandler = function(eventType, handler, add) {
+    var me = navigator.battery;
+    if (add) {
+      // If there are no current registered event listeners start the
+      // battery listener on native side.
+      if (me._batteryListener.length === 0 && me._lowListener.length === 0 && me._criticalListener.length === 0) {
+        PhoneGap.exec(me._status, me._error, "Battery", "start", []);
+      }
+
+      // Register the event listener in the proper array
+      if (eventType === "batterystatus") {
+        var pos = me._batteryListener.indexOf(handler);
+        if (pos === -1) {
+          me._batteryListener.push(handler);
+        }
+      } else if (eventType === "batterylow") {
+        var pos = me._lowListener.indexOf(handler);
+        if (pos === -1) {
+          me._lowListener.push(handler);
+        }
+      } else if (eventType === "batterycritical") {
+        var pos = me._criticalListener.indexOf(handler);
+        if (pos === -1) {
+          me._criticalListener.push(handler);
+        }
+      }
+    } else {
+      // Remove the event listener from the proper array
+      if (eventType === "batterystatus") {
+        var pos = me._batteryListener.indexOf(handler);
+        if (pos > -1) {
+          me._batteryListener.splice(pos, 1);
+        }
+      } else if (eventType === "batterylow") {
+        var pos = me._lowListener.indexOf(handler);
+        if (pos > -1) {
+          me._lowListener.splice(pos, 1);
+        }
+      } else if (eventType === "batterycritical") {
+        var pos = me._criticalListener.indexOf(handler);
+        if (pos > -1) {
+          me._criticalListener.splice(pos, 1);
+        }
+      }
+
+      // If there are no more registered event listeners stop the battery
+      // listener on native side.
+      if (me._batteryListener.length === 0 && me._lowListener.length === 0 && me._criticalListener.length === 0) {
+        PhoneGap.exec(null, null, "Battery", "stop", []);
+      }
+    }
+  };
+
+  /**
+   * Callback for battery status
+   *
+   * @param {Object} info         keys: level, isPlugged
+   */
+  Battery.prototype._status = function(info) {
+    if (info) {
+      var me = this;
+      if (me._level != info.level || me._isPlugged != info.isPlugged) {
+        // Fire batterystatus event
+        PhoneGap.fireWindowEvent("batterystatus", info);
+
+        // Fire low battery event
+        if (info.level == 20 || info.level == 5) {
+          if (info.level == 20) {
+            PhoneGap.fireWindowEvent("batterylow", info);
+          } else {
+            PhoneGap.fireWindowEvent("batterycritical", info);
+          }
+        }
+      }
+      me._level = info.level;
+      me._isPlugged = info.isPlugged;
+    }
+  };
+
+  /**
+   * Error callback for battery start
+   */
+  Battery.prototype._error = function(e) {
+    console.log("Error initializing Battery: " + e);
+  };
+
+  PhoneGap.addConstructor(function() {
+    if (typeof navigator.battery === "undefined") {
+      navigator.battery = new Battery();
+      PhoneGap.addWindowEventHandler("batterystatus", navigator.battery.eventHandler);
+      PhoneGap.addWindowEventHandler("batterylow", navigator.battery.eventHandler);
+      PhoneGap.addWindowEventHandler("batterycritical", navigator.battery.eventHandler);
+    }
+  });
+
+}());
+

http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/blob/5b78343a/javascript/playbook/battery.js
----------------------------------------------------------------------
diff --git a/javascript/playbook/battery.js b/javascript/playbook/battery.js
new file mode 100644
index 0000000..a52141a
--- /dev/null
+++ b/javascript/playbook/battery.js
@@ -0,0 +1,165 @@
+
+/*
+ * PhoneGap is available under *either* the terms of the modified BSD license *or* the
+ * MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
+ *
+ * Copyright (c) 2005-2010, Nitobi Software Inc.
+ * Copyright (c) 2010-2011, IBM Corporation
+ */
+
+/**
+ * navigator.battery
+ */
+(function() {
+    /**
+     * Check to see that navigator.battery has not been initialized.
+     */
+    if (typeof navigator.battery !== "undefined") {
+        return;
+    }
+    /**
+     * This class contains information about the current battery status.
+     * @constructor
+     */
+    var Battery = function() {
+        this._level = null;
+        this._isPlugged = null;
+        this._batteryListener = [];
+        this._lowListener = [];
+        this._criticalListener = [];
+        // Register one listener to each of level and state change events using WebWorks API.
+        blackberry.system.event.deviceBatteryStateChange(this._stateChange);
+        blackberry.system.event.deviceBatteryLevelChange(this._levelChange);
+    };
+
+    /**
+     * Registers as an event producer for battery events.
+     *
+     * @param {Object} eventType
+     * @param {Object} handler
+     * @param {Object} add
+     */
+    Battery.prototype.eventHandler = function(eventType, handler, add) {
+        var me = navigator.battery;
+        if (add) {
+            // Register the event listener in the proper array
+            if (eventType === "batterystatus") {
+                var pos = me._batteryListener.indexOf(handler);
+                if (pos === -1) {
+                    me._batteryListener.push(handler);
+                }
+            } else if (eventType === "batterylow") {
+                var pos = me._lowListener.indexOf(handler);
+                if (pos === -1) {
+                    me._lowListener.push(handler);
+                }
+            } else if (eventType === "batterycritical") {
+                var pos = me._criticalListener.indexOf(handler);
+                if (pos === -1) {
+                    me._criticalListener.push(handler);
+                }
+            }
+        } else {
+            // Remove the event listener from the proper array
+            if (eventType === "batterystatus") {
+                var pos = me._batteryListener.indexOf(handler);
+                if (pos > -1) {
+                    me._batteryListener.splice(pos, 1);
+                }
+            } else if (eventType === "batterylow") {
+                var pos = me._lowListener.indexOf(handler);
+                if (pos > -1) {
+                    me._lowListener.splice(pos, 1);
+                }
+            } else if (eventType === "batterycritical") {
+                var pos = me._criticalListener.indexOf(handler);
+                if (pos > -1) {
+                    me._criticalListener.splice(pos, 1);
+                }
+            }
+        }
+    };
+
+    /**
+     * Callback for battery state change using WebWorks API
+     *
+     * @param {Object} state
+     */
+    Battery.prototype._stateChange = function(state) {
+        var me = navigator.battery;
+        if (state === 2 || state === 3) { // state is either CHARGING or UNPLUGGED
+          var info = {
+            "level":me._level,
+            "isPlugged":me._isPlugged
+          };
+
+          if (state === 2 && (me._isPlugged === false || me._isPlugged === null)) {
+            me._isPlugged = info.isPlugged = true;
+            me._fire('status', info);
+          } else if (state === 3 && (me._isPlugged === true || me._isPlugged === null)) {
+            me._isPlugged = info.isPlugged = false;
+
+            me._fire('status', info);
+          }
+        }
+    };
+
+    /**
+     * Callback for battery level change using WebWorks API
+     *
+     * @param {Object} level
+     */
+    Battery.prototype._levelChange = function(level) {
+        var me = navigator.battery;
+
+        if (level != me._level) {
+          me._level = level;
+          var info = {
+            "level":me._level,
+            "isPlugged":me._isPlugged
+          };
+
+          // Fire off the basic battery status change event listeners.
+          me._fire('status', info);
+
+          // Fire low battery events if applicable
+          if (level == 20 || level == 5) {
+              if (level == 20) {
+                me._fire('low', info);
+              } else {
+                me._fire('critical', info);
+              }
+          }
+        }
+    };
+
+    /**
+     * Helper function to fire all listeners of a type.
+     *
+     * @param {Object} type
+     * @param {Object} data
+     */
+    Battery.prototype._fire = function(type, data) {
+      var targetAr = '_batteryListener';
+
+      if (type == 'critical') {
+        targetAr = '_criticalListener';
+      } else if (type == 'low') {
+        targetAr = '_lowListener';
+      }
+      for (var i = 0, l = this[targetAr].length; i < l; i++) {
+        this[targetAr][i](data);
+      }
+    };
+
+    PhoneGap.addConstructor(function() {
+
+        if (typeof navigator.battery === "undefined") {
+            navigator.battery = new Battery();
+            PhoneGap.addWindowEventHandler("batterystatus", navigator.battery.eventHandler);
+            PhoneGap.addWindowEventHandler("batterylow", navigator.battery.eventHandler);
+            PhoneGap.addWindowEventHandler("batterycritical", navigator.battery.eventHandler);
+        }
+    });
+
+}());

http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/blob/5b78343a/javascript/playbook/playBookPluginManager.js
----------------------------------------------------------------------
diff --git a/javascript/playbook/playBookPluginManager.js b/javascript/playbook/playBookPluginManager.js
index 8752f2d..d3097a0 100644
--- a/javascript/playbook/playBookPluginManager.js
+++ b/javascript/playbook/playBookPluginManager.js
@@ -142,7 +142,7 @@ phonegap.PluginManager = (function (webworksPluginManager) {
                 case 'release':
                     if (audio) {
                         audioObjects[id] = undefined;
-						audio.src = undefined;
+                        audio.src = undefined;
                         //delete audio;
                     }
 
@@ -237,16 +237,16 @@ phonegap.PluginManager = (function (webworksPluginManager) {
 
         notificationAPI = {
             execute: function (webWorksResult, action, args, win, fail) {
-				if (args.length !== 3) {
-					return {"status" : 9, "message" : "Notification action - " + action + " arguments not found"};
+                if (args.length !== 3) {
+                  return {"status" : 9, "message" : "Notification action - " + action + " arguments not found"};
 
-				}
-				
-				//Unpack and map the args
+                }
+                
+                //Unpack and map the args
                 var msg = args[0],
                     title = args[1],
-					btnLabel = args[2],
-					btnLabels;
+                    btnLabel = args[2],
+                    btnLabels;
 
                 switch (action) {
                 case 'alert':
@@ -282,8 +282,8 @@ phonegap.PluginManager = (function (webworksPluginManager) {
         //We got a sync result or a not found from WW that we can pass on to get a native mixin
         //For async calls there's nothing to do
         if ((wwResult.status === PhoneGap.callbackStatus.OK || 
-		        wwResult.status === PhoneGap.callbackStatus.CLASS_NOT_FOUND_EXCEPTION) &&
-			    plugins[clazz]) {
+          wwResult.status === PhoneGap.callbackStatus.CLASS_NOT_FOUND_EXCEPTION) &&
+          plugins[clazz]) {
             return plugins[clazz].execute(wwResult.message, action, args, win, fail);
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-cordova-blackberry-webworks/blob/5b78343a/javascript/webWorksPluginManager.js
----------------------------------------------------------------------
diff --git a/javascript/webWorksPluginManager.js b/javascript/webWorksPluginManager.js
index cd41b27..8c6276f 100644
--- a/javascript/webWorksPluginManager.js
+++ b/javascript/webWorksPluginManager.js
@@ -18,8 +18,8 @@ if (!window.phonegap) { window.phonegap = {}; }
         // WebWorks platforms (phone/tablet).
         plugins = {};
 
-	phonegap.WebWorksPluginManager = function () {
-	};
+    phonegap.WebWorksPluginManager = function () {
+    };
 
     phonegap.WebWorksPluginManager.prototype.exec = function (win, fail, clazz, action, args) {
         if (plugins[clazz]) {