- Watch Accelerometer
- Get Location
- Call 411
- Beep
- Vibrate
-
-
-
\ No newline at end of file
diff --git a/assets/phonegap.js b/assets/phonegap.js
deleted file mode 100644
index 6680fb84..00000000
--- a/assets/phonegap.js
+++ /dev/null
@@ -1,630 +0,0 @@
-
- /**
- * This class contains acceleration information
- * @constructor
- * @param {Number} x The force applied by the device in the x-axis.
- * @param {Number} y The force applied by the device in the y-axis.
- * @param {Number} z The force applied by the device in the z-axis.
- */
- function Acceleration(x, y, z) {
- /**
- * The force applied by the device in the x-axis.
- */
- this.x = x;
- /**
- * The force applied by the device in the y-axis.
- */
- this.y = y;
- /**
- * The force applied by the device in the z-axis.
- */
- this.z = z;
- /**
- * The time that the acceleration was obtained.
- */
- this.timestamp = new Date().getTime();
- }
-
- /**
- * This class specifies the options for requesting acceleration data.
- * @constructor
- */
- function AccelerationOptions() {
- /**
- * The timeout after which if acceleration data cannot be obtained the errorCallback
- * is called.
- */
- this.timeout = 10000;
- }
-
-
- /**
- * This class provides access to device accelerometer data.
- * @constructor
- */
- function Accelerometer() {
- /**
- * The last known acceleration.
- */
- this.lastAcceleration = null;
- }
-
- /**
- * Asynchronously aquires the current acceleration.
- * @param {Function} successCallback The function to call when the acceleration
- * data is available
- * @param {Function} errorCallback The function to call when there is an error
- * getting the acceleration data.
- * @param {AccelerationOptions} options The options for getting the accelerometer data
- * such as timeout.
- */
- Accelerometer.prototype.getCurrentAcceleration = function(successCallback, errorCallback, options) {
- // If the acceleration is available then call success
- // If the acceleration is not available then call error
-
- // Created for iPhone, Iphone passes back _accel obj litteral
- if (typeof successCallback == "function") {
- var accel = new Acceleration(_accel.x,_accel.y,_accel.z);
- Accelerometer.lastAcceleration = accel;
- successCallback(accel);
- }
- }
-
- /**
- * Asynchronously aquires the acceleration repeatedly at a given interval.
- * @param {Function} successCallback The function to call each time the acceleration
- * data is available
- * @param {Function} errorCallback The function to call when there is an error
- * getting the acceleration data.
- * @param {AccelerationOptions} options The options for getting the accelerometer data
- * such as timeout.
- */
-
- Accelerometer.prototype.watchAcceleration = function(successCallback, errorCallback, options) {
- navigator.accelerometer.getCurrentAcceleration(successCallback, errorCallback, options);
- // TODO: add the interval id to a list so we can clear all watches
- var frequency = (options != undefined)? options.frequency : 10000;
- return setInterval(function() {
- navigator.accelerometer.getCurrentAcceleration(successCallback, errorCallback, options);
- }, frequency);
- }
-
- /**
- * Clears the specified accelerometer watch.
- * @param {String} watchId The ID of the watch returned from #watchAcceleration.
- */
- Accelerometer.prototype.clearWatch = function(watchId) {
- clearInterval(watchId);
- }
-
- if (typeof navigator.accelerometer == "undefined") navigator.accelerometer = new Accelerometer();
-
-
-
- /**
- * This class provides access to the device media, interfaces to both sound and video
- * @constructor
- */
- function Media(src) {
- this.src = src;
- }
-
- Media.prototype.play = function() {
- }
-
- Media.prototype.pause = function() {
- }
-
- Media.prototype.stop = function() {
- }
-
-
- /**
- * This class contains information about any Media errors.
- * @constructor
- */
- function MediaError() {
- this.code = null,
- this.message = "";
- }
-
- MediaError.MEDIA_ERR_ABORTED = 1;
- MediaError.MEDIA_ERR_NETWORK = 2;
- MediaError.MEDIA_ERR_DECODE = 3;
- MediaError.MEDIA_ERR_NONE_SUPPORTED = 4;
-
-
- //if (typeof navigator.audio == "undefined") navigator.audio = new Media(src);
-
-
- /**
- * This class provides access to the device camera.
- * @constructor
- */
- function Camera() {
-
- }
-
- /**
- *
- * @param {Function} successCallback
- * @param {Function} errorCallback
- * @param {Object} options
- */
- Camera.prototype.getPicture = function(successCallback, errorCallback, options) {
-
- }
-
- if (typeof navigator.camera == "undefined") navigator.camera = new Camera();
-
-
- /**
- * This class provides access to the device contacts.
- * @constructor
- */
- function Contact() {
- this.name = "";
- this.phone = "";
- this.address = "";
- }
-
- /**
- *
- * @param {Object} successCallback
- * @param {Object} errorCallback
- * @param {Object} options
- */
- Contact.prototype.get = function(successCallback, errorCallback, options) {
-
- }
-
-
- function ContactManager() {
- // Dummy object to hold array of contacts
- this.contacts = [];
- this.timestap = new Date().getTime();
- }
-
- ContactManager.prototype.get = function(successCallback, errorCallback, options) {
- // Interface
- }
-
- if (typeof navigator.ContactManager == "undefined") navigator.ContactManager = new ContactManager();
-
-
- /**
- * This class provides generic read and write access to the mobile device file system.
- */
- function File() {
- /**
- * The data of a file.
- */
- this.data = "";
- /**
- * The name of the file.
- */
- this.name = "";
- }
-
- /**
- * Reads a file from the mobile device. This function is asyncronous.
- * @param {String} fileName The name (including the path) to the file on the mobile device.
- * The file name will likely be device dependant.
- * @param {Function} successCallback The function to call when the file is successfully read.
- * @param {Function} errorCallback The function to call when there is an error reading the file from the device.
- */
- File.prototype.read = function(fileName, successCallback, errorCallback) {
-
- }
-
- /**
- * Writes a file to the mobile device.
- * @param {File} file The file to write to the device.
- */
- File.prototype.write = function(file) {
-
- }
-
- if (typeof navigator.file == "undefined") navigator.file = new File();
-
-
- /**
- * This class provides access to device GPS data.
- * @constructor
- */
- function Geolocation() {
- /**
- * The last known GPS position.
- */
- this.lastPosition = null;
- }
-
- /**
- * Asynchronously aquires the current position.
- * @param {Function} successCallback The function to call when the position
- * data is available
- * @param {Function} errorCallback The function to call when there is an error
- * getting the position data.
- * @param {PositionOptions} options The options for getting the position data
- * such as timeout.
- */
- Geolocation.prototype.getCurrentPosition = function(successCallback, errorCallback, options) {
- // If the position is available then call success
- // If the position is not available then call error
- }
-
- /**
- * Asynchronously aquires the position repeatedly at a given interval.
- * @param {Function} successCallback The function to call each time the position
- * data is available
- * @param {Function} errorCallback The function to call when there is an error
- * getting the position data.
- * @param {PositionOptions} options The options for getting the position data
- * such as timeout and the frequency of the watch.
- */
- Geolocation.prototype.watchPosition = function(successCallback, errorCallback, options) {
- // Invoke the appropriate callback with a new Position object every time the implementation
- // determines that the position of the hosting device has changed.
-
- this.getCurrentPosition(successCallback, errorCallback, options);
- var frequency = (options != undefined)? options.frequency : 10000;
-
- var that = this;
- return setInterval(function() {
- that.getCurrentPosition(successCallback, errorCallback, options);
- //navigator.geolocation.getCurrentPosition(successCallback, errorCallback, options);
- }, frequency);
- }
-
-
- /**
- * Clears the specified position watch.
- * @param {String} watchId The ID of the watch returned from #watchPosition.
- */
- Geolocation.prototype.clearWatch = function(watchId) {
- clearInterval(watchId);
- }
-
- if (typeof navigator.geolocation == "undefined") navigator.geolocation = new Geolocation();
-
-
- /**
- * This class provides access to native mapping applications on the device.
- */
- function Map() {
-
- }
-
- /**
- * Shows a native map on the device with pins at the given positions.
- * @param {Array} positions
- */
- Map.prototype.show = function(positions) {
-
- }
-
- if (typeof navigator.map == "undefined") navigator.map = new Map();
-
-
- /**
- * This class provides access to notifications on the device.
- */
- function Notification() {
-
- }
-
- /**
- * Causes the device to blink a status LED.
- * @param {Integer} count The number of blinks.
- * @param {String} colour The colour of the light.
- */
- Notification.prototype.blink = function(count, colour) {
-
- }
-
- /**
- * Causes the device to vibrate.
- * @param {Integer} mills The number of milliseconds to vibrate for.
- */
- Notification.prototype.vibrate = function(mills) {
-
- }
-
- /**
- * Causes the device to beep.
- * @param {Integer} count The number of beeps.
- * @param {Integer} volume The volume of the beep.
- */
- Notification.prototype.beep = function(count, volume) {
-
- }
-
- // TODO: of course on Blackberry and Android there notifications in the UI as well
-
- if (typeof navigator.notification == "undefined") navigator.notification = new Notification();
-
-
- /**
- * This class provides access to the device orientation.
- * @constructor
- */
- function Orientation() {
- /**
- * The last known orientation.
- */
- this.lastOrientation = null;
- }
-
- /**
- * Asynchronously aquires the current orientation.
- * @param {Function} successCallback The function to call when the orientation
- * is known.
- * @param {Function} errorCallback The function to call when there is an error
- * getting the orientation.
- */
- Orientation.prototype.getCurrentOrientation = function(successCallback, errorCallback) {
- // If the position is available then call success
- // If the position is not available then call error
- }
-
- /**
- * Asynchronously aquires the orientation repeatedly at a given interval.
- * @param {Function} successCallback The function to call each time the orientation
- * data is available.
- * @param {Function} errorCallback The function to call when there is an error
- * getting the orientation data.
- */
- Orientation.prototype.watchOrientation = function(successCallback, errorCallback) {
- // Invoke the appropriate callback with a new Position object every time the implementation
- // determines that the position of the hosting device has changed.
- this.getCurrentPosition(successCallback, errorCallback);
- return setInterval(function() {
- navigator.orientation.getCurrentOrientation(successCallback, errorCallback);
- }, 10000);
- }
-
- /**
- * Clears the specified orientation watch.
- * @param {String} watchId The ID of the watch returned from #watchOrientation.
- */
- Orientation.prototype.clearWatch = function(watchId) {
- clearInterval(watchId);
- }
-
- if (typeof navigator.orientation == "undefined") navigator.orientation = new Orientation();
-
-
- /**
- * This class contains position information.
- * @param {Object} lat
- * @param {Object} lng
- * @param {Object} acc
- * @param {Object} alt
- * @param {Object} altacc
- * @param {Object} head
- * @param {Object} vel
- * @constructor
- */
- function Position(lat, lng, acc, alt, altacc, head, vel) {
- /**
- * The latitude of the position.
- */
- this.latitude = lat;
- /**
- * The longitude of the position,
- */
- this.longitude = lng;
- /**
- * The accuracy of the position.
- */
- this.accuracy = acc;
- /**
- * The altitude of the position.
- */
- this.altitude = alt;
- /**
- * The altitude accuracy of the position.
- */
- this.altitudeAccuracy = altacc;
- /**
- * The direction the device is moving at the position.
- */
- this.heading = head;
- /**
- * The velocity with which the device is moving at the position.
- */
- this.velocity = vel;
- /**
- * The time that the position was obtained.
- */
- this.timestamp = new Date().getTime();
- }
-
- /**
- * This class specifies the options for requesting position data.
- * @constructor
- */
- function PositionOptions() {
- /**
- * Specifies the desired position accuracy.
- */
- this.enableHighAccuracy = true;
- /**
- * The timeout after which if position data cannot be obtained the errorCallback
- * is called.
- */
- this.timeout = 10000;
- }
-
- /**
- * This class contains information about any GSP errors.
- * @constructor
- */
- function PositionError() {
- this.code = null;
- this.message = "";
- }
-
- PositionError.UNKNOWN_ERROR = 0;
- PositionError.PERMISSION_DENIED = 1;
- PositionError.POSITION_UNAVAILABLE = 2;
- PositionError.TIMEOUT = 3;
-
-
-
- /**
- * This class provides access to the device SMS functionality.
- * @constructor
- */
- function Sms() {
-
- }
-
- /**
- * Sends an SMS message.
- * @param {Integer} number The phone number to send the message to.
- * @param {String} message The contents of the SMS message to send.
- * @param {Function} successCallback The function to call when the SMS message is sent.
- * @param {Function} errorCallback The function to call when there is an error sending the SMS message.
- * @param {PositionOptions} options The options for accessing the GPS location such as timeout and accuracy.
- */
- Sms.prototype.send = function(number, message, successCallback, errorCallback, options) {
-
- }
-
- if (typeof navigator.sms == "undefined") navigator.sms = new Sms();
-
-
- /**
- * This class provides access to the telephony features of the device.
- * @constructor
- */
- function Telephony() {
-
- }
-
- /**
- * Calls the specifed number.
- * @param {Integer} number The number to be called.
- */
- Telephony.prototype.call = function(number) {
-
- }
-
- if (typeof navigator.telephony == "undefined") navigator.telephony = new Telephony();
-
-
- // Android specific overrides here
-
-Notification.prototype.vibrate = function(mills)
-{
- Device.vibrate(mills);
-}
-
-/*
- * On the Android, we don't beep, we notify you with your
- * notification! We shouldn't keep hammering on this, and should
- * review what we want beep to do.
- */
-
-Notification.prototype.beep = function(count, volume)
-{
- Device.beep(count);
-}
-
-/*
- * Since we can't guarantee that we will have the most recent, we just try our best!
- *
- * Also, the API doesn't specify which version is the best version of the API
- */
-
-Geolocation.prototype.getCurrentPosition = function(successCallback, errorCallback, options)
-{
- Geolocation.global_success = successCallback;
- Geolocation.fail = errorCallback;
- Geo.getCurrentLocation();
-}
-
-// Run the global callback
-Geolocation.gotCurrentPosition = function(lat, lng)
-{
- if (lat == "undefined" || lng == "undefined")
- {
- this.fail();
- }
- else
- {
- p = {};
- p.latitude = lat;
- p.longitude = lng;
- this.global_success(p);
- }
-}
-
-
-/*
- * This turns on the GeoLocator class, which has two listeners.
- * The listeners have their own timeouts, and run independently of this process
- * In this case, we return the key to the watch hash
- */
-
-Geolocation.prototype.watchPosition = function(successCallback, errorCallback, options)
-{
- var frequency = (options != undefined)? options.frequency : 10000;
-
- if (!this.listeners)
- {
- this.listeners = []
- }
-
- var key = this.listeners.push( {"success" : successCallback, "fail" : failCallback }) - 1;
-
- // TO-DO: Get the names of the method and pass them as strings to the Java.
- return Geolocation.start(frequency, key);
-}
-
-/*
- * Retrieve and stop this listener from listening to the GPS
- *
- */
-Geolocation.success = function(key, lat, lng)
-{
- this.listeners[key].success(lat,lng);
-}
-
-Geolocation.prototype.fail = function(key)
-{
- this.listeners[key].fail();
-}
-
-Geolocation.prototype.clearWatch = function(watchId)
-{
- Geo.stop(watchId);
-}
-
-/* Identical to the iPhone, except we have to create this in the JS */
-
-_accel = {}
-_accel.x = 0;
-_accel.y = 0;
-_accel.z = 0;
-
-function gotAccel(x,y,z)
-{
- _accel.x = x;
- _accel.y = y;
- _accel.z = z;
-}
-
-Accelerometer.base_method = Accelerometer.prototype.watchAcceleration
-Accelerometer.prototype.watchAcceleration = function(successCallback, errorCallback, options)
-{
- Accel.start();
- Accelerometer.base_method(successCallback, errorCallback, options);
-}
-
-Accelerometer.prototype.clearWatch = function(watchId){
- clearInterval(watchId);
- Accel.stop();
-}
-