/** * @private */Ext.define('Ext.device.compass.Cordova', { alternateClassName: 'Ext.device.compass.PhoneGap', extend: 'Ext.device.compass.Abstract', activeWatchID: null, getHeadingAvailable: function(config) { var callback = function(result) { if (result.hasOwnProperty("code")) { config.callback.call(config.scope || this, false); } else { config.callback.call(config.scope || this, true); } }; this.getCurrentHeading({ success: callback, failure: callback }); }, getCurrentHeading: function(config) { config = this.callParent(arguments); navigator.compass.getCurrentHeading(config.success, config.failure); return config; }, watchHeading: function(config) { config = this.callParent(arguments); if (this.activeWatchID) { this.clearWatch(); } this.activeWatchID = navigator.compass.watchHeading(config.callback, config.failure, config); return config; }, clearWatch: function() { if (this.activeWatchID) { navigator.compass.clearWatch(this.activeWatchID); this.activeWatchID = null; } }});