CB-12044 Fix splashscreen image path for ms-appx on Windows Updated cordova-js to latest
Project: http://git-wip-us.apache.org/repos/asf/cordova-windows/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-windows/commit/c9a9f967 Tree: http://git-wip-us.apache.org/repos/asf/cordova-windows/tree/c9a9f967 Diff: http://git-wip-us.apache.org/repos/asf/cordova-windows/diff/c9a9f967 Branch: refs/heads/4.4.x Commit: c9a9f96728606cd1c25e722fa87abc8636b4da0f Parents: fb894de Author: daserge <v-ses...@microsoft.com> Authored: Thu Oct 20 18:55:45 2016 +0300 Committer: daserge <v-ses...@microsoft.com> Committed: Thu Oct 20 20:54:57 2016 +0300 ---------------------------------------------------------------------- cordova-js-src/splashscreen.js | 9 +++-- template/www/cordova.js | 69 ++++++++++++++++++++++++++----------- 2 files changed, 54 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/c9a9f967/cordova-js-src/splashscreen.js ---------------------------------------------------------------------- diff --git a/cordova-js-src/splashscreen.js b/cordova-js-src/splashscreen.js index 0d1be69..838b2c3 100644 --- a/cordova-js-src/splashscreen.js +++ b/cordova-js-src/splashscreen.js @@ -1,4 +1,4 @@ -/* +/* * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -24,8 +24,11 @@ var isWp81 = navigator.appVersion.indexOf("Windows Phone 8.1") !== -1; var isWp10 = navigator.appVersion.indexOf("Windows Phone 10") !== -1; var isWin10UWP = navigator.appVersion.indexOf('MSAppHost/3.0') !== -1; var isHosted = window.location.protocol.indexOf('http') === 0; -var splashImageSrc = ((isHosted || isWin10UWP) ? 'ms-appx-web' : 'ms-appx') + ':///images/' - + (isPhone ? 'splashscreenphone.png' : 'splashscreen.png'); +var isMsAppxWeb = window.location.protocol.indexOf('ms-appx-web') === 0; + +var schema = (isHosted || isWin10UWP && isMsAppxWeb) ? 'ms-appx-web' : 'ms-appx'; +var fileName = isPhone ? 'splashscreenphone.png' : 'splashscreen.png'; +var splashImageSrc = schema + ':///images/' + fileName; var splashElement = null, extendedSplashImage = null, extendedSplashProgress = null; http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/c9a9f967/template/www/cordova.js ---------------------------------------------------------------------- diff --git a/template/www/cordova.js b/template/www/cordova.js index 75392f2..5af4cdc 100644 --- a/template/www/cordova.js +++ b/template/www/cordova.js @@ -1,5 +1,5 @@ // Platform: windows -// 640f151f0badfbf7d3ede6b7a2befb7a96054dd7 +// 53ea1913735222d326e65326e03391405df3cd4e /* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file @@ -697,8 +697,13 @@ var Channel = function(type, sticky) { } }; -function forceFunction(f) { - if (typeof f != 'function') throw "Function required as first argument!"; +function checkSubscriptionArgument(argument) { + if (typeof argument !== "function" && typeof argument.handleEvent !== "function") { + throw new Error( + "Must provide a function or an EventListener object " + + "implementing the handleEvent interface." + ); + } } /** @@ -708,28 +713,39 @@ function forceFunction(f) { * and a guid that can be used to stop subscribing to the channel. * Returns the guid. */ -Channel.prototype.subscribe = function(f, c) { - // need a function to call - forceFunction(f); +Channel.prototype.subscribe = function(eventListenerOrFunction, eventListener) { + checkSubscriptionArgument(eventListenerOrFunction); + var handleEvent, guid; + + if (eventListenerOrFunction && typeof eventListenerOrFunction === "object") { + // Received an EventListener object implementing the handleEvent interface + handleEvent = eventListenerOrFunction.handleEvent; + eventListener = eventListenerOrFunction; + } else { + // Received a function to handle event + handleEvent = eventListenerOrFunction; + } + if (this.state == 2) { - f.apply(c || this, this.fireArgs); + handleEvent.apply(eventListener || this, this.fireArgs); return; } - var func = f, - guid = f.observer_guid; - if (typeof c == "object") { func = utils.close(c, f); } + guid = eventListenerOrFunction.observer_guid; + if (typeof eventListener === "object") { + handleEvent = utils.close(eventListener, handleEvent); + } if (!guid) { - // first time any channel has seen this subscriber + // First time any channel has seen this subscriber guid = '' + nextGuid++; } - func.observer_guid = guid; - f.observer_guid = guid; + handleEvent.observer_guid = guid; + eventListenerOrFunction.observer_guid = guid; // Don't add the same handler more than once. if (!this.handlers[guid]) { - this.handlers[guid] = func; + this.handlers[guid] = handleEvent; this.numHandlers++; if (this.numHandlers == 1) { this.onHasSubscribersChange && this.onHasSubscribersChange(); @@ -740,12 +756,20 @@ Channel.prototype.subscribe = function(f, c) { /** * Unsubscribes the function with the given guid from the channel. */ -Channel.prototype.unsubscribe = function(f) { - // need a function to unsubscribe - forceFunction(f); +Channel.prototype.unsubscribe = function(eventListenerOrFunction) { + checkSubscriptionArgument(eventListenerOrFunction); + var handleEvent, guid, handler; - var guid = f.observer_guid, - handler = this.handlers[guid]; + if (eventListenerOrFunction && typeof eventListenerOrFunction === "object") { + // Received an EventListener object implementing the handleEvent interface + handleEvent = eventListenerOrFunction.handleEvent; + } else { + // Received a function to handle event + handleEvent = eventListenerOrFunction; + } + + guid = handleEvent.observer_guid; + handler = this.handlers[guid]; if (handler) { delete this.handlers[guid]; this.numHandlers--; @@ -1809,8 +1833,11 @@ var isWp81 = navigator.appVersion.indexOf("Windows Phone 8.1") !== -1; var isWp10 = navigator.appVersion.indexOf("Windows Phone 10") !== -1; var isWin10UWP = navigator.appVersion.indexOf('MSAppHost/3.0') !== -1; var isHosted = window.location.protocol.indexOf('http') === 0; -var splashImageSrc = ((isHosted || isWin10UWP) ? 'ms-appx-web' : 'ms-appx') + ':///images/' - + (isPhone ? 'splashscreenphone.png' : 'splashscreen.png'); +var isMsAppxWeb = window.location.protocol.indexOf('ms-appx-web') === 0; + +var schema = (isHosted || isWin10UWP && isMsAppxWeb) ? 'ms-appx-web' : 'ms-appx'; +var fileName = isPhone ? 'splashscreenphone.png' : 'splashscreen.png'; +var splashImageSrc = schema + ':///images/' + fileName; var splashElement = null, extendedSplashImage = null, extendedSplashProgress = null; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cordova.apache.org For additional commands, e-mail: commits-h...@cordova.apache.org