michael@0: /* michael@0: * michael@0: * Licensed to the Apache Software Foundation (ASF) under one michael@0: * or more contributor license agreements. See the NOTICE file michael@0: * distributed with this work for additional information michael@0: * regarding copyright ownership. The ASF licenses this file michael@0: * to you under the Apache License, Version 2.0 (the michael@0: * "License"); you may not use this file except in compliance michael@0: * with the License. You may obtain a copy of the License at michael@0: * michael@0: * http://www.apache.org/licenses/LICENSE-2.0 michael@0: * michael@0: * Unless required by applicable law or agreed to in writing, michael@0: * software distributed under the License is distributed on an michael@0: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY michael@0: * KIND, either express or implied. See the License for the michael@0: * specific language governing permissions and limitations michael@0: * under the License. michael@0: * michael@0: */ michael@0: //example UA String for Firefox OS michael@0: //Mozilla/5.0 (Mobile; rv:26.0) Gecko/26.0 Firefox/26.0 michael@0: var firefoxos = require('cordova/platform'); michael@0: var cordova = require('cordova'); michael@0: michael@0: //UA parsing not recommended but currently this is the only way to get the Firefox OS version michael@0: //https://developer.mozilla.org/en-US/docs/Gecko_user_agent_string_reference michael@0: michael@0: //Should be replaced when better conversion to Firefox OS Version is available michael@0: function convertVersionNumber(ver) { michael@0: var hashVersion = { michael@0: '18.0': '1.0.1', michael@0: '18.1': '1.1', michael@0: '26.0': '1.2', michael@0: '28.0': '1.3', michael@0: '30.0': '1.4', michael@0: '32.0': '2.0' michael@0: }; michael@0: var rver = ver; michael@0: var sStr = ver.substring(0, 4); michael@0: if (hashVersion[sStr]) { michael@0: rver = hashVersion[sStr]; michael@0: } michael@0: return (rver); michael@0: michael@0: } michael@0: function getVersion() { michael@0: if (navigator.userAgent.match(/(mobile|tablet)/i)) { michael@0: var ffVersionArray = (navigator.userAgent.match(/Firefox\/([\d]+\.[\w]?\.?[\w]+)/)); michael@0: if (ffVersionArray.length === 2) { michael@0: return (convertVersionNumber(ffVersionArray[1])); michael@0: } michael@0: } michael@0: return (null); michael@0: } michael@0: michael@0: function getModel() { michael@0: var uaArray = navigator.userAgent.split(/\s*[;)(]\s*/); michael@0: if (navigator.userAgent.match(/(mobile|tablet)/i)) { michael@0: if (uaArray.length === 5) { michael@0: return (uaArray[2]); michael@0: } michael@0: } michael@0: return (null); michael@0: } michael@0: module.exports = { michael@0: getDeviceInfo: function (success, error) { michael@0: setTimeout(function () { michael@0: success({ michael@0: platform: 'firefoxos', michael@0: model: getModel(), michael@0: version: getVersion(), michael@0: uuid: null michael@0: }); michael@0: }, 0); michael@0: } michael@0: }; michael@0: michael@0: require("cordova/exec/proxy").add("Device", module.exports);