Compare commits

...

8 Commits

Author SHA1 Message Date
Carlos Santana
e877722bac CB-10820 Updated version and RELEASENOTES.md for release 3.2.1 2016-03-09 22:14:25 -05:00
Dan Polivy
617ad81090 CB-10692 Don't fade when plugin is forced to close
The fading logic exposed a race condition in an edge case when the
plugin was repeatedly reinitialized, e.g. when the WebView tries to load
a new URL. To address this, we add a flag to removeSplashScreen() that
allows the fade logic to be bypassed in certain circumstances --
specifically, when hiding the splashscreen due to onPause or onDestroy
events. By hiding it immediately in this scenario, we can avoid any race
conditions due to the fade delay.

github: close #86
2016-03-09 23:13:19 +03:00
Sarangan Rajamanickam
03ea0a4e80 CB-10764: Remove emoji in cordova-plugin-splashscreen
Removing warning emoji
2016-03-02 17:36:23 -08:00
daserge
850159490c CB-10650 Non-index content.src causes Splashscreen to be not displayed on browser 2016-02-19 16:10:17 +03:00
daserge
5ea854d8c3 CB-10636 Add JSHint for plugins
Fixed autotests
2016-02-19 12:18:29 +03:00
Edna Morales
e401a4de0f CB-10606 fix deprecation warning for interfaceOrientation
This closes #82
2016-02-15 19:34:38 -05:00
t1st3
2e1ec32916 chore: edit package.json license to match SPDX id
See [NPM package.json spec for licenses](https://docs.npmjs.com/files/package.json#license) and [SPDX license IDs](https://spdx.org/licenses/)

X-ref: https://github.com/apache/cordova-plugin-device/pull/48

This closes #79
2016-02-10 13:21:19 +10:00
Vladimir Kotikov
4bc552848f CB-10557 Incremented plugin version. 2016-02-09 13:13:37 +03:00
14 changed files with 69 additions and 26 deletions

16
.jshintrc Normal file
View File

@@ -0,0 +1,16 @@
{
"browser": true
, "devel": true
, "bitwise": true
, "undef": true
, "trailing": true
, "quotmark": false
, "indent": 4
, "unused": "vars"
, "latedef": "nofunc"
, "globals": {
"module": false,
"exports": false,
"require": false
}
}

4
.travis.yml Normal file
View File

@@ -0,0 +1,4 @@
language: node_js
sudo: false
node_js:
- "4.2"

View File

@@ -17,11 +17,13 @@
# under the License.
-->
[![Build Status](https://travis-ci.org/apache/cordova-plugin-splashscreen.svg?branch=master)](https://travis-ci.org/apache/cordova-plugin-splashscreen)
# cordova-plugin-splashscreen
This plugin displays and hides a splash screen during application launch.
:warning: Report issues on the [Apache Cordova issue tracker](https://issues.apache.org/jira/issues/?jql=project%20%3D%20CB%20AND%20status%20in%20%28Open%2C%20%22In%20Progress%22%2C%20Reopened%29%20AND%20resolution%20%3D%20Unresolved%20AND%20component%20%3D%20%22Plugin%20Splashscreen%22%20ORDER%20BY%20priority%20DESC%2C%20summary%20ASC%2C%20updatedDate%20DESC)
Report issues with this plugin on the [Apache Cordova issue tracker][Apache Cordova issue tracker].
## Installation
@@ -82,7 +84,7 @@ The plugin reloads splash drawable whenever orientation changes, so you can spec
You can use the following preferences in your `config.xml`:
<platform name="browser">
<preference name="SplashScreen" value="images/browser/splashscreen.jpg" /> <!-- defaults to "img/logo.png" -->
<preference name="SplashScreen" value="/images/browser/splashscreen.jpg" /> <!-- defaults to "/img/logo.png" -->
<preference name="SplashScreenDelay" value="3000" /> <!-- defaults to "3000" -->
<preference name="SplashScreenBackgroundColor" value="green" /> <!-- defaults to "#464646" -->
<preference name="ShowSplashScreen" value="false" /> <!-- defaults to "true" -->
@@ -90,6 +92,7 @@ You can use the following preferences in your `config.xml`:
<preference name="SplashScreenHeight" value="300" /> <!-- defaults to "200" -->
</platform>
__Note__: `SplashScreen` value should be absolute in order to work in a sub-page.
### Android and iOS Quirks
@@ -167,3 +170,5 @@ event. See [Icons and Splash Screens](http://cordova.apache.org/docs/en/edge/con
for more information on doing this configuration. For this reason, it is
unlikely you need to call `navigator.splashscreen.show()` to make the splash
screen visible for app startup.
[Apache Cordova issue tracker]: https://issues.apache.org/jira/issues/?jql=project%20%3D%20CB%20AND%20status%20in%20%28Open%2C%20%22In%20Progress%22%2C%20Reopened%29%20AND%20resolution%20%3D%20Unresolved%20AND%20component%20%3D%20%22Plugin%20Splashscreen%22%20ORDER%20BY%20priority%20DESC%2C%20summary%20ASC%2C%20updatedDate%20DESC

View File

@@ -20,6 +20,13 @@
-->
# Release Notes
### 3.2.1 (Mar 09, 2016)
* CB-10764: Remove emoji in cordova-plugin-splashscreen
* CB-10650 Non-index content.src causes Splashscreen to be not displayed on ** Browser **
* CB-10636 Add JSHint for plugins
* CB-10606 fix deprecation warning for interfaceOrientation on ** iOS **
* chore: edit package.json license to match SPDX id
### 3.2.0 (Feb 09, 2016)
* [CB-10422](https://issues.apache.org/jira/browse/CB-10422) Splashscreen displays black screen with no image on Android
* [CB-10412](https://issues.apache.org/jira/browse/CB-10412) AutoHideSplashScreen "false" isn't taken in account on iOS

View File

@@ -1,6 +1,6 @@
{
"name": "cordova-plugin-splashscreen",
"version": "3.2.0",
"version": "3.2.1",
"description": "Cordova Splashscreen Plugin",
"cordova": {
"id": "cordova-plugin-splashscreen",
@@ -34,6 +34,10 @@
"cordova-windows",
"cordova-tizen"
],
"scripts": {
"test": "npm run jshint",
"jshint": "node node_modules/jshint/bin/jshint www && node node_modules/jshint/bin/jshint src && node node_modules/jshint/bin/jshint tests"
},
"engines": [
{
"name": "cordova-android",
@@ -41,5 +45,8 @@
}
],
"author": "Apache Software Foundation",
"license": "Apache 2.0"
"license": "Apache-2.0",
"devDependencies": {
"jshint": "^2.6.0"
}
}

View File

@@ -20,7 +20,7 @@
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
id="cordova-plugin-splashscreen"
version="3.2.0">
version="3.2.1">
<name>Splashscreen</name>
<description>Cordova Splashscreen Plugin</description>
<license>Apache 2.0</license>

View File

@@ -134,7 +134,7 @@ public class SplashScreen extends CordovaPlugin {
return;
}
// hide the splash screen to avoid leaking a window
this.removeSplashScreen();
this.removeSplashScreen(true);
}
@Override
@@ -143,7 +143,7 @@ public class SplashScreen extends CordovaPlugin {
return;
}
// hide the splash screen to avoid leaking a window
this.removeSplashScreen();
this.removeSplashScreen(true);
// If we set this to true onDestroy, we lose track when we go from page to page!
//firstShow = true;
}
@@ -177,7 +177,7 @@ public class SplashScreen extends CordovaPlugin {
}
if ("splashscreen".equals(id)) {
if ("hide".equals(data.toString())) {
this.removeSplashScreen();
this.removeSplashScreen(false);
} else {
this.showSplashScreen(false);
}
@@ -206,12 +206,13 @@ public class SplashScreen extends CordovaPlugin {
}
}
private void removeSplashScreen() {
private void removeSplashScreen(final boolean forceHideImmediately) {
cordova.getActivity().runOnUiThread(new Runnable() {
public void run() {
if (splashDialog != null && splashDialog.isShowing()) {
final int fadeSplashScreenDuration = getFadeDuration();
if (fadeSplashScreenDuration > 0) {
// CB-10692 If the plugin is being paused/destroyed, skip the fading and hide it immediately
if (fadeSplashScreenDuration > 0 && forceHideImmediately == false) {
AlphaAnimation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setInterpolator(new DecelerateInterpolator());
fadeOut.setDuration(fadeSplashScreenDuration);
@@ -319,7 +320,7 @@ public class SplashScreen extends CordovaPlugin {
handler.postDelayed(new Runnable() {
public void run() {
if (lastHideAfterDelay) {
removeSplashScreen();
removeSplashScreen(false);
}
}
}, effectiveSplashDuration);

View File

@@ -14,6 +14,8 @@
* limitations under the License.
*/
/* global PluginResult */
module.exports = {
show: function (success, fail, args, env) {
var result = new PluginResult(args, env);

View File

@@ -18,17 +18,18 @@
* under the License.
*
*/
// Default parameter values including image size can be changed in `config.xml`
var splashImageWidth = 170;
var splashImageHeight = 200;
var position = { x: 0, y: 0, width: splashImageWidth, height: splashImageHeight };
var splash = null; //
var localSplash; // the image to display
var localSplashImage;
var bgColor = "#464646";
var imageSrc = 'img/logo.png';
var imageSrc = '/img/logo.png';
var splashScreenDelay = 3000; // in milliseconds
var showSplashScreen = true; // show splashcreen by default
var cordova = require('cordova');
var configHelper = cordova.require('cordova/confighelper');
function updateImageLocation() {
@@ -103,7 +104,6 @@ function readPreferencesFromCfg(cfg) {
} catch(e) {
var msg = '[Browser][SplashScreen] Error occured on loading preferences from config.xml: ' + JSON.stringify(e);
console.error(msg);
error(msg);
}
}

View File

@@ -327,7 +327,7 @@
CGRect imgBounds = (img) ? CGRectMake(0, 0, img.size.width, img.size.height) : CGRectZero;
CGSize screenSize = [self.viewController.view convertRect:[UIScreen mainScreen].bounds fromView:nil].size;
UIInterfaceOrientation orientation = self.viewController.interfaceOrientation;
UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
CGAffineTransform imgTransform = CGAffineTransformIdentity;
/* If and only if an iPhone application is landscape-only as per

View File

@@ -21,7 +21,7 @@
( function() {
win = null;
var win = null;
module.exports = {
show: function() {

View File

@@ -20,7 +20,7 @@
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
id="cordova-plugin-splashscreen-tests"
version="3.2.0">
version="3.2.1">
<name>Cordova Splashscreen Plugin Tests</name>
<license>Apache 2.0</license>

View File

@@ -19,18 +19,20 @@
*
*/
exports.defineAutoTest = function () {
/* jshint jasmine: true */
exports.defineAutoTests = function () {
describe('Splashscreen (cordova)', function () {
it("splashscreen.spec.1 should exist", function () {
expect(navigator.splashscreen).toBeDefined();
});
it("splashscreen.spec.2 exec method should exist", function () {
it("splashscreen.spec.2 show method should exist", function () {
expect(navigator.splashscreen.show).toBeDefined();
expect(typeof navigator.splashscreen.show).toBe('function');
});
it("splashscreen.spec.3 exec method should exist", function () {
it("splashscreen.spec.3 hide method should exist", function () {
expect(navigator.splashscreen.hide).toBeDefined();
expect(typeof navigator.splashscreen.hide).toBe('function');
});

View File

@@ -20,17 +20,16 @@
*/
/*jslint sloppy:true */
/*global Windows:true, require, module, window, document, WinJS */
/*global WinJS */
var cordova = require('cordova'),
channel = require('cordova/channel');
var cordova = require('cordova');
var isPhone = (cordova.platformId == "windows") && WinJS.Utilities.isPhone;
var isHosted = window.location.protocol.indexOf('http') === 0;
var localSplash = null;
var localSplash = null, localSplashImage = null;
var bgColor = "#464646"; // default backgrond color; TDOO - read it from .appxmanifest
var splashImageSrc = (isHosted ? "ms-appx-web" : "ms-appx") + ":///images/"
+ (isPhone ? "splashscreenphone.png" : "splashscreen.png");
var splashImageSrc = (isHosted ? "ms-appx-web" : "ms-appx") + ":///images/" +
(isPhone ? "splashscreenphone.png" : "splashscreen.png");
var SplashScreen = {
setBGColor: function (cssBGColor) {