Skip to content

Loading…

Fix forwarding of Mojo events. #1

Closed
wants to merge 1 commit into from

1 participant

@booch

Fixes useless assignment to a new local variable that's never used; creates Mojo global variable if it does not exist.

Restores firing of menubutton event when WebOS app menu is opened.

@booch booch Fix creation of global Mojo object.
Restores firing of menubutton event when WebOS app menu is opened.
1fdf7f5
@booch

Fixed in 2.5.0, commit e1b14c0. Closing pull request.

@booch booch closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Feb 18, 2013
  1. @booch

    Fix creation of global Mojo object.

    booch committed
    Restores firing of menubutton event when WebOS app menu is opened.
Showing with 4 additions and 4 deletions.
  1. +2 −2 lib/cordova.webos-debug.js
  2. +2 −2 lib/cordova.webos.js
View
4 lib/cordova.webos-debug.js
@@ -34,7 +34,7 @@ try {eval("define(\"cordova/commandProxy\", function(require, exports, module) {
try {eval("define(\"cordova/common\", function(require, exports, module) {\n\nmodule.exports = {\n defaults: {\n cordova: {\n path: 'cordova',\n children: {\n exec: {\n path: 'cordova/exec'\n },\n logger: {\n path: 'cordova/plugin/logger'\n }\n }\n },\n Cordova: {\n children: {\n exec: {\n path: 'cordova/exec'\n }\n }\n },\n open : {\n path: 'cordova/plugin/InAppBrowser'\n },\n navigator: {\n children: {\n notification: {\n path: 'cordova/plugin/notification'\n },\n accelerometer: {\n path: 'cordova/plugin/accelerometer'\n },\n battery: {\n path: 'cordova/plugin/battery'\n },\n camera:{\n path: 'cordova/plugin/Camera'\n },\n compass:{\n path: 'cordova/plugin/compass'\n },\n contacts: {\n path: 'cordova/plugin/contacts'\n },\n device:{\n children:{\n capture: {\n path: 'cordova/plugin/capture'\n }\n }\n },\n geolocation: {\n path: 'cordova/plugin/geolocation'\n },\n globalization: {\n path: 'cordova/plugin/globalization'\n },\n network: {\n children: {\n connection: {\n path: 'cordova/plugin/network',\n deprecated: 'navigator.network.connection is deprecated. Use navigator.connection instead.'\n }\n }\n },\n splashscreen: {\n path: 'cordova/plugin/splashscreen'\n }\n }\n },\n Acceleration: {\n path: 'cordova/plugin/Acceleration'\n },\n Camera:{\n path: 'cordova/plugin/CameraConstants'\n },\n CameraPopoverOptions: {\n path: 'cordova/plugin/CameraPopoverOptions'\n },\n CaptureError: {\n path: 'cordova/plugin/CaptureError'\n },\n CaptureAudioOptions:{\n path: 'cordova/plugin/CaptureAudioOptions'\n },\n CaptureImageOptions: {\n path: 'cordova/plugin/CaptureImageOptions'\n },\n CaptureVideoOptions: {\n path: 'cordova/plugin/CaptureVideoOptions'\n },\n CompassHeading:{\n path: 'cordova/plugin/CompassHeading'\n },\n CompassError:{\n path: 'cordova/plugin/CompassError'\n },\n ConfigurationData: {\n path: 'cordova/plugin/ConfigurationData'\n },\n Connection: {\n path: 'cordova/plugin/Connection'\n },\n Contact: {\n path: 'cordova/plugin/Contact'\n },\n ContactAddress: {\n path: 'cordova/plugin/ContactAddress'\n },\n ContactError: {\n path: 'cordova/plugin/ContactError'\n },\n ContactField: {\n path: 'cordova/plugin/ContactField'\n },\n ContactFindOptions: {\n path: 'cordova/plugin/ContactFindOptions'\n },\n ContactName: {\n path: 'cordova/plugin/ContactName'\n },\n ContactOrganization: {\n path: 'cordova/plugin/ContactOrganization'\n },\n Coordinates: {\n path: 'cordova/plugin/Coordinates'\n },\n device: {\n path: 'cordova/plugin/device'\n },\n GlobalizationError: {\n path: 'cordova/plugin/GlobalizationError'\n },\n Media: {\n path: 'cordova/plugin/Media'\n },\n MediaError: {\n path: 'cordova/plugin/MediaError'\n },\n MediaFile: {\n path: 'cordova/plugin/MediaFile'\n },\n MediaFileData:{\n path: 'cordova/plugin/MediaFileData'\n },\n Position: {\n path: 'cordova/plugin/Position'\n },\n PositionError: {\n path: 'cordova/plugin/PositionError'\n },\n ProgressEvent: {\n path: 'cordova/plugin/ProgressEvent'\n }\n },\n clobbers: {\n navigator: {\n children: {\n connection: {\n path: 'cordova/plugin/network'\n }\n }\n }\n }\n};\n\n});\n\n//@ sourceURL=lib/common/common.js")} catch(e) {console.log("exception: in lib/common/common.js: " + e);console.log(e.stack);}
try {eval("define(\"cordova/exec\", function(require, exports, module) {\n\n/**\n * Execute a cordova command. It is up to the native side whether this action\n * is synchronous or asynchronous. The native side can return:\n * Synchronous: PluginResult object as a JSON string\n * Asynchrounous: Empty string \"\"\n * If async, the native side will cordova.callbackSuccess or cordova.callbackError,\n * depending upon the result of the action.\n *\n * @param {Function} success The success callback\n * @param {Function} fail The fail callback\n * @param {String} service The name of the service to use\n * @param {String} action Action to be run in cordova\n * @param {String[]} [args] Zero or more arguments to pass to the method\n */\n\nvar plugins = {\n \"Device\": require('cordova/plugin/webos/device'),\n \"NetworkStatus\": require('cordova/plugin/webos/network'),\n \"Compass\": require('cordova/plugin/webos/compass'),\n \"Camera\": require('cordova/plugin/webos/camera'),\n \"Accelerometer\" : require('cordova/plugin/webos/accelerometer'),\n \"Notification\" : require('cordova/plugin/webos/notification'),\n \"Geolocation\": require('cordova/plugin/webos/geolocation')\n};\n\nmodule.exports = function(success, fail, service, action, args) {\n try {\n console.error(\"exec:call plugin:\"+service+\":\"+action);\n plugins[service][action](success, fail, args);\n }\n catch(e) {\n console.error(\"missing exec: \" + service + \".\" + action);\n console.error(args);\n console.error(e);\n console.error(e.stack);\n }\n};\n\n});\n\n//@ sourceURL=lib/webos/exec.js")} catch(e) {console.log("exception: in lib/webos/exec.js: " + e);console.log(e.stack);}
try {eval("define(\"cordova/modulemapper\", function(require, exports, module) {\n\nvar builder = require('cordova/builder'),\n moduleMap = define.moduleMap,\n symbolList,\n deprecationMap;\n\nexports.reset = function() {\n symbolList = [];\n deprecationMap = {};\n};\n\nfunction addEntry(strategy, moduleName, symbolPath, opt_deprecationMessage) {\n if (!(moduleName in moduleMap)) {\n throw new Error('Module ' + moduleName + ' does not exist.');\n }\n symbolList.push(strategy, moduleName, symbolPath);\n if (opt_deprecationMessage) {\n deprecationMap[symbolPath] = opt_deprecationMessage;\n }\n}\n\n// Note: Android 2.3 does have Function.bind().\nexports.clobbers = function(moduleName, symbolPath, opt_deprecationMessage) {\n addEntry('c', moduleName, symbolPath, opt_deprecationMessage);\n};\n\nexports.merges = function(moduleName, symbolPath, opt_deprecationMessage) {\n addEntry('m', moduleName, symbolPath, opt_deprecationMessage);\n};\n\nexports.defaults = function(moduleName, symbolPath, opt_deprecationMessage) {\n addEntry('d', moduleName, symbolPath, opt_deprecationMessage);\n};\n\nfunction prepareNamespace(symbolPath, context) {\n if (!symbolPath) {\n return context;\n }\n var parts = symbolPath.split('.');\n var cur = context;\n for (var i = 0, part; part = parts[i]; ++i) {\n cur[part] = cur[part] || {};\n }\n return cur[parts[i-1]];\n}\n\nexports.mapModules = function(context) {\n var origSymbols = {};\n context.CDV_origSymbols = origSymbols;\n for (var i = 0, len = symbolList.length; i < len; i += 3) {\n var strategy = symbolList[i];\n var moduleName = symbolList[i + 1];\n var symbolPath = symbolList[i + 2];\n var lastDot = symbolPath.lastIndexOf('.');\n var namespace = symbolPath.substr(0, lastDot);\n var lastName = symbolPath.substr(lastDot + 1);\n\n var module = require(moduleName);\n var deprecationMsg = symbolPath in deprecationMap ? 'Access made to deprecated symbol: ' + symbolPath + '. ' + deprecationMsg : null;\n var parentObj = prepareNamespace(namespace, context);\n var target = parentObj[lastName];\n\n if (strategy == 'm' && target) {\n builder.recursiveMerge(target, module);\n } else if ((strategy == 'd' && !target) || (strategy != 'd')) {\n if (target) {\n origSymbols[symbolPath] = target;\n }\n builder.assignOrWrapInDeprecateGetter(parentObj, lastName, module, deprecationMsg);\n }\n }\n};\n\nexports.getOriginalSymbol = function(context, symbolPath) {\n var origSymbols = context.CDV_origSymbols;\n if (origSymbols && (symbolPath in origSymbols)) {\n return origSymbols[symbolPath];\n }\n var parts = symbolPath.split('.');\n var obj = context;\n for (var i = 0; i < parts.length; ++i) {\n obj = obj && obj[parts[i]];\n }\n return obj;\n};\n\nexports.loadMatchingModules = function(matchingRegExp) {\n for (var k in moduleMap) {\n if (matchingRegExp.exec(k)) {\n require(k);\n }\n }\n};\n\nexports.reset();\n\n\n});\n\n//@ sourceURL=lib/common/modulemapper.js")} catch(e) {console.log("exception: in lib/common/modulemapper.js: " + e);console.log(e.stack);}
-try {eval("define(\"cordova/platform\", function(require, exports, module) {\n\nvar service=require('cordova/plugin/webos/service'),\n cordova = require('cordova');\n\nmodule.exports = {\n id: \"webos\",\n initialize: function() {\n var modulemapper = require('cordova/modulemapper');\n\n modulemapper.loadMatchingModules(/cordova.*\\/symbols$/);\n modulemapper.mapModules(window);\n\n if (window.PalmSystem) {\n window.PalmSystem.stageReady();\n }\n\n var Mojo = window.Mojo || {};\n\n // wait for deviceready before listening and firing document events\n document.addEventListener(\"deviceready\", function () {\n\n // LunaSysMgr calls this when the windows is maximized or opened.\n window.Mojo.stageActivated = function() {\n console.log(\"stageActivated\");\n cordova.fireDocumentEvent(\"resume\");\n };\n // LunaSysMgr calls this when the windows is minimized or closed.\n window.Mojo.stageDeactivated = function() {\n console.log(\"stageDeactivated\");\n cordova.fireDocumentEvent(\"pause\");\n };\n // LunaSysMgr calls this when a KeepAlive app's window is hidden\n window.Mojo.hide = function() {\n console.log(\"hide\");\n };\n // LunaSysMgr calls this when a KeepAlive app's window is shown\n window.Mojo.show = function() {\n console.log(\"show\");\n };\n\n // LunaSysMgr calls this whenever an app is \"launched;\"\n window.Mojo.relaunch = function() {\n // need to return true to tell sysmgr the relaunch succeeded.\n // otherwise, it'll try to focus the app, which will focus the first\n // opened window of an app with multiple windows.\n\n var lp=JSON.parse(PalmSystem.launchParams) || {};\n\n if (lp['palm-command'] && lp['palm-command'] == 'open-app-menu') {\n console.log(\"event:ToggleAppMenu\");\n cordova.fireDocumentEvent(\"menubutton\");\n }\n\n console.log(\"relaunch\");\n return true;\n };\n\n // start to listen for network connection changes\n service.Request('palm://com.palm.connectionmanager', {\n method: 'getstatus',\n parameters: { subscribe: true },\n onSuccess: function (result) {\n console.log(\"subscribe:result:\"+JSON.stringify(result));\n\n if (!result.isInternetConnectionAvailable) {\n if (navigator.onLine) {\n console.log(\"Firing event:offline\");\n cordova.fireDocumentEvent(\"offline\");\n }\n } else {\n console.log(\"Firing event:online\");\n cordova.fireDocumentEvent(\"online\");\n }\n },\n onFailure: function(e) {\n console.error(\"subscribe:error\");\n }\n });\n\n });\n },\n merges: {\n navigator: {\n children: {\n service: {\n path: \"cordova/plugin/webos/service\"\n },\n application: {\n path: \"cordova/plugin/webos/application\"\n },\n window: {\n path: \"cordova/plugin/webos/window\"\n },\n notification: {\n path: \"cordova/plugin/webos/notification\"\n },\n orientation: {\n path: \"cordova/plugin/webos/orientation\"\n },\n keyboard: {\n path: \"cordova/plugin/webos/keyboard\"\n }\n }\n }\n }\n};\n\n});\n\n//@ sourceURL=lib/webos/platform.js")} catch(e) {console.log("exception: in lib/webos/platform.js: " + e);console.log(e.stack);}
+try {eval("define(\"cordova/platform\", function(require, exports, module) {\n\nvar service=require('cordova/plugin/webos/service'),\n cordova = require('cordova');\n\nmodule.exports = {\n id: \"webos\",\n initialize: function() {\n var modulemapper = require('cordova/modulemapper');\n\n modulemapper.loadMatchingModules(/cordova.*\\/symbols$/);\n modulemapper.mapModules(window);\n\n if (window.PalmSystem) {\n window.PalmSystem.stageReady();\n }\n\n window.Mojo = window.Mojo || {};\n\n // wait for deviceready before listening and firing document events\n document.addEventListener(\"deviceready\", function () {\n\n // LunaSysMgr calls this when the windows is maximized or opened.\n window.Mojo.stageActivated = function() {\n console.log(\"stageActivated\");\n cordova.fireDocumentEvent(\"resume\");\n };\n // LunaSysMgr calls this when the windows is minimized or closed.\n window.Mojo.stageDeactivated = function() {\n console.log(\"stageDeactivated\");\n cordova.fireDocumentEvent(\"pause\");\n };\n // LunaSysMgr calls this when a KeepAlive app's window is hidden\n window.Mojo.hide = function() {\n console.log(\"hide\");\n };\n // LunaSysMgr calls this when a KeepAlive app's window is shown\n window.Mojo.show = function() {\n console.log(\"show\");\n };\n\n // LunaSysMgr calls this whenever an app is \"launched;\"\n window.Mojo.relaunch = function() {\n // need to return true to tell sysmgr the relaunch succeeded.\n // otherwise, it'll try to focus the app, which will focus the first\n // opened window of an app with multiple windows.\n\n var lp=JSON.parse(PalmSystem.launchParams) || {};\n\n if (lp['palm-command'] && lp['palm-command'] == 'open-app-menu') {\n console.log(\"event:ToggleAppMenu\");\n cordova.fireDocumentEvent(\"menubutton\");\n }\n\n console.log(\"relaunch\");\n return true;\n };\n\n // start to listen for network connection changes\n service.Request('palm://com.palm.connectionmanager', {\n method: 'getstatus',\n parameters: { subscribe: true },\n onSuccess: function (result) {\n console.log(\"subscribe:result:\"+JSON.stringify(result));\n\n if (!result.isInternetConnectionAvailable) {\n if (navigator.onLine) {\n console.log(\"Firing event:offline\");\n cordova.fireDocumentEvent(\"offline\");\n }\n } else {\n console.log(\"Firing event:online\");\n cordova.fireDocumentEvent(\"online\");\n }\n },\n onFailure: function(e) {\n console.error(\"subscribe:error\");\n }\n });\n\n });\n },\n merges: {\n navigator: {\n children: {\n service: {\n path: \"cordova/plugin/webos/service\"\n },\n application: {\n path: \"cordova/plugin/webos/application\"\n },\n window: {\n path: \"cordova/plugin/webos/window\"\n },\n notification: {\n path: \"cordova/plugin/webos/notification\"\n },\n orientation: {\n path: \"cordova/plugin/webos/orientation\"\n },\n keyboard: {\n path: \"cordova/plugin/webos/keyboard\"\n }\n }\n }\n }\n};\n\n});\n\n//@ sourceURL=lib/webos/platform.js")} catch(e) {console.log("exception: in lib/webos/platform.js: " + e);console.log(e.stack);}
try {eval("define(\"cordova/plugin/Acceleration\", function(require, exports, module) {\n\nvar Acceleration = function(x, y, z, timestamp) {\n this.x = x;\n this.y = y;\n this.z = z;\n this.timestamp = timestamp || (new Date()).getTime();\n};\n\nmodule.exports = Acceleration;\n\n});\n\n//@ sourceURL=lib/common/plugin/Acceleration.js")} catch(e) {console.log("exception: in lib/common/plugin/Acceleration.js: " + e);console.log(e.stack);}
try {eval("define(\"cordova/plugin/Camera\", function(require, exports, module) {\n\nvar argscheck = require('cordova/argscheck'),\n exec = require('cordova/exec'),\n Camera = require('cordova/plugin/CameraConstants');\n\nvar cameraExport = {};\n\n// Tack on the Camera Constants to the base camera plugin.\nfor (var key in Camera) {\n cameraExport[key] = Camera[key];\n}\n\n/**\n * Gets a picture from source defined by \"options.sourceType\", and returns the\n * image as defined by the \"options.destinationType\" option.\n\n * The defaults are sourceType=CAMERA and destinationType=FILE_URI.\n *\n * @param {Function} successCallback\n * @param {Function} errorCallback\n * @param {Object} options\n */\ncameraExport.getPicture = function(successCallback, errorCallback, options) {\n argscheck.checkArgs('fFO', 'Camera.getPicture', arguments);\n options = options || {};\n var getValue = argscheck.getValue;\n\n var quality = getValue(options.quality, 50);\n var destinationType = getValue(options.destinationType, Camera.DestinationType.FILE_URI);\n var sourceType = getValue(options.sourceType, Camera.PictureSourceType.CAMERA);\n var targetWidth = getValue(options.targetWidth, -1);\n var targetHeight = getValue(options.targetHeight, -1);\n var encodingType = getValue(options.encodingType, Camera.EncodingType.JPEG);\n var mediaType = getValue(options.mediaType, Camera.MediaType.PICTURE);\n var allowEdit = !!options.allowEdit;\n var correctOrientation = !!options.correctOrientation;\n var saveToPhotoAlbum = !!options.saveToPhotoAlbum;\n var popoverOptions = getValue(options.popoverOptions, null);\n\n var args = [quality, destinationType, sourceType, targetWidth, targetHeight, encodingType,\n mediaType, allowEdit, correctOrientation, saveToPhotoAlbum, popoverOptions];\n\n exec(successCallback, errorCallback, \"Camera\", \"takePicture\", args);\n};\n\ncameraExport.cleanup = function(successCallback, errorCallback) {\n exec(successCallback, errorCallback, \"Camera\", \"cleanup\", []);\n};\n\nmodule.exports = cameraExport;\n\n});\n\n//@ sourceURL=lib/common/plugin/Camera.js")} catch(e) {console.log("exception: in lib/common/plugin/Camera.js: " + e);console.log(e.stack);}
try {eval("define(\"cordova/plugin/CameraConstants\", function(require, exports, module) {\n\nmodule.exports = {\n DestinationType:{\n DATA_URL: 0, // Return base64 encoded string\n FILE_URI: 1, // Return file uri (content://media/external/images/media/2 for Android)\n NATIVE_URI: 2 // Return native uri (eg. asset-library://... for iOS)\n },\n EncodingType:{\n JPEG: 0, // Return JPEG encoded image\n PNG: 1 // Return PNG encoded image\n },\n MediaType:{\n PICTURE: 0, // allow selection of still pictures only. DEFAULT. Will return format specified via DestinationType\n VIDEO: 1, // allow selection of video only, ONLY RETURNS URL\n ALLMEDIA : 2 // allow selection from all media types\n },\n PictureSourceType:{\n PHOTOLIBRARY : 0, // Choose image from picture library (same as SAVEDPHOTOALBUM for Android)\n CAMERA : 1, // Take picture from camera\n SAVEDPHOTOALBUM : 2 // Choose image from picture library (same as PHOTOLIBRARY for Android)\n },\n PopoverArrowDirection:{\n ARROW_UP : 1, // matches iOS UIPopoverArrowDirection constants to specify arrow location on popover\n ARROW_DOWN : 2,\n ARROW_LEFT : 4,\n ARROW_RIGHT : 8,\n ARROW_ANY : 15\n }\n};\n\n});\n\n//@ sourceURL=lib/common/plugin/CameraConstants.js")} catch(e) {console.log("exception: in lib/common/plugin/CameraConstants.js: " + e);console.log(e.stack);}
@@ -120,4 +120,4 @@ window.cordova = require('cordova');
try {eval("\n(function (context) {\n // Replace navigator before any modules are required(), to ensure it happens as soon as possible.\n // We replace it so that properties that can't be clobbered can instead be overridden.\n if (context.navigator) {\n var CordovaNavigator = function() {};\n CordovaNavigator.prototype = context.navigator;\n context.navigator = new CordovaNavigator();\n }\n\n var channel = require(\"cordova/channel\"),\n _self = {\n boot: function () {\n /**\n * Create all cordova objects once page has fully loaded and native side is ready.\n */\n channel.join(function() {\n var builder = require('cordova/builder'),\n base = require('cordova/common'),\n platform = require('cordova/platform');\n\n // Drop the common globals into the window object, but be nice and don't overwrite anything.\n builder.buildIntoButDoNotClobber(base.defaults, context);\n builder.buildIntoAndClobber(base.clobbers, context);\n builder.buildIntoAndMerge(base.merges, context);\n\n builder.buildIntoButDoNotClobber(platform.defaults, context);\n builder.buildIntoAndClobber(platform.clobbers, context);\n builder.buildIntoAndMerge(platform.merges, context);\n\n // Call the platform-specific initialization\n platform.initialize();\n\n // Fire event to notify that all objects are created\n channel.onCordovaReady.fire();\n\n // Fire onDeviceReady event once all constructors have run and\n // cordova info has been received from native side.\n channel.join(function() {\n require('cordova').fireDocumentEvent('deviceready');\n }, channel.deviceReadyChannelsArray);\n\n }, [ channel.onDOMContentLoaded, channel.onNativeReady ]);\n }\n };\n\n // boot up once native side is ready\n channel.onNativeReady.subscribe(_self.boot);\n\n // _nativeReady is global variable that the native side can set\n // to signify that the native code is ready. It is a global since\n // it may be called before any cordova JS is ready.\n if (window._nativeReady) {\n channel.onNativeReady.fire();\n }\n\n}(window));\n\n//@ sourceURL=lib/scripts/bootstrap.js")} catch(e) {console.log("exception: in lib/scripts/bootstrap.js: " + e);console.log(e.stack);}
try {eval("\nrequire('cordova/channel').onNativeReady.fire();\n\n//@ sourceURL=lib/scripts/bootstrap-webos.js")} catch(e) {console.log("exception: in lib/scripts/bootstrap-webos.js: " + e);console.log(e.stack);}
-})();
+})();
View
4 lib/cordova.webos.js
@@ -1106,7 +1106,7 @@ module.exports = {
window.PalmSystem.stageReady();
}
- var Mojo = window.Mojo || {};
+ window.Mojo = window.Mojo || {};
// wait for deviceready before listening and firing document events
document.addEventListener("deviceready", function () {
@@ -6483,4 +6483,4 @@ window.cordova = require('cordova');
require('cordova/channel').onNativeReady.fire();
-})();
+})();
Something went wrong with that request. Please try again.