var promises = require("promises"); var timer = require("timer/timer"); var types = require("location/location-types"); var locationManagerModule = require("location/location-manager"); var merger = require("utils/module-merge"); merger.merge(types, exports); merger.merge(locationManagerModule, exports); exports.getLocation = function (options) { var d = promises.defer(); var timerId; var locationManager = new locationManagerModule.LocationManager(); if (options && (0 === options.timeout)) { var location = locationManager.lastKnownLocation; if (location) { if (options && ("number" === typeof options.maximumAge)) { if (location.timestamp.valueOf() + options.maximumAge > new Date().valueOf()) { d.resolve(location); } else { d.reject(new Error("timeout is 0 and last known location is older than maximumAge")); } } else { d.resolve(location); } } else { d.reject(new Error("timeout is 0 and no known location found")); }
var enums = require("ui/enums"); var appModule = require("application"); var locationModule = require("location"); var common = require("location/location-common"); var merger = require("utils/module-merge"); merger.merge(common, exports); var LocationManager = (function () { function LocationManager() { this.desiredAccuracy = enums.Accuracy.any; this.updateDistance = 0; var alm = appModule.android.context.getSystemService(android.content.Context.LOCATION_SERVICE); this.androidLocationManager = new AndroidLocationManager(alm); this.androidLocationManager.minimumUpdateTime = 200; } Object.defineProperty(LocationManager.prototype, "android", { get: function () { return this.androidLocationManager; }, enumerable: true, configurable: true }); Object.defineProperty(LocationManager.prototype, "ios", { get: function () { return undefined; }, enumerable: true, configurable: true }); Object.defineProperty(LocationManager.prototype, "locationListener", { get: function () { if (!this._locationListener) {