Touchgui/plugins/org.apache.cordova.device/www/device.js

Thu, 04 Jun 2015 14:50:33 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 04 Jun 2015 14:50:33 +0200
changeset 0
e8ccd40d0ef6
permissions
-rw-r--r--

Genesis of lecture sources for Droidcon Berlin 2015 in Postbahnhof.

michael@0 1 /*
michael@0 2 *
michael@0 3 * Licensed to the Apache Software Foundation (ASF) under one
michael@0 4 * or more contributor license agreements. See the NOTICE file
michael@0 5 * distributed with this work for additional information
michael@0 6 * regarding copyright ownership. The ASF licenses this file
michael@0 7 * to you under the Apache License, Version 2.0 (the
michael@0 8 * "License"); you may not use this file except in compliance
michael@0 9 * with the License. You may obtain a copy of the License at
michael@0 10 *
michael@0 11 * http://www.apache.org/licenses/LICENSE-2.0
michael@0 12 *
michael@0 13 * Unless required by applicable law or agreed to in writing,
michael@0 14 * software distributed under the License is distributed on an
michael@0 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
michael@0 16 * KIND, either express or implied. See the License for the
michael@0 17 * specific language governing permissions and limitations
michael@0 18 * under the License.
michael@0 19 *
michael@0 20 */
michael@0 21
michael@0 22 var argscheck = require('cordova/argscheck'),
michael@0 23 channel = require('cordova/channel'),
michael@0 24 utils = require('cordova/utils'),
michael@0 25 exec = require('cordova/exec'),
michael@0 26 cordova = require('cordova');
michael@0 27
michael@0 28 channel.createSticky('onCordovaInfoReady');
michael@0 29 // Tell cordova channel to wait on the CordovaInfoReady event
michael@0 30 channel.waitForInitialization('onCordovaInfoReady');
michael@0 31
michael@0 32 /**
michael@0 33 * This represents the mobile device, and provides properties for inspecting the model, version, UUID of the
michael@0 34 * phone, etc.
michael@0 35 * @constructor
michael@0 36 */
michael@0 37 function Device() {
michael@0 38 this.available = false;
michael@0 39 this.platform = null;
michael@0 40 this.version = null;
michael@0 41 this.uuid = null;
michael@0 42 this.cordova = null;
michael@0 43 this.model = null;
michael@0 44
michael@0 45 var me = this;
michael@0 46
michael@0 47 channel.onCordovaReady.subscribe(function() {
michael@0 48 me.getInfo(function(info) {
michael@0 49 //ignoring info.cordova returning from native, we should use value from cordova.version defined in cordova.js
michael@0 50 //TODO: CB-5105 native implementations should not return info.cordova
michael@0 51 var buildLabel = cordova.version;
michael@0 52 me.available = true;
michael@0 53 me.platform = info.platform;
michael@0 54 me.version = info.version;
michael@0 55 me.uuid = info.uuid;
michael@0 56 me.cordova = buildLabel;
michael@0 57 me.model = info.model;
michael@0 58 channel.onCordovaInfoReady.fire();
michael@0 59 },function(e) {
michael@0 60 me.available = false;
michael@0 61 utils.alert("[ERROR] Error initializing Cordova: " + e);
michael@0 62 });
michael@0 63 });
michael@0 64 }
michael@0 65
michael@0 66 /**
michael@0 67 * Get device info
michael@0 68 *
michael@0 69 * @param {Function} successCallback The function to call when the heading data is available
michael@0 70 * @param {Function} errorCallback The function to call when there is an error getting the heading data. (OPTIONAL)
michael@0 71 */
michael@0 72 Device.prototype.getInfo = function(successCallback, errorCallback) {
michael@0 73 argscheck.checkArgs('fF', 'Device.getInfo', arguments);
michael@0 74 exec(successCallback, errorCallback, "Device", "getDeviceInfo", []);
michael@0 75 };
michael@0 76
michael@0 77 module.exports = new Device();

mercurial