Compare commits

..

7 Commits
4.1.x ... 4.0.2

Author SHA1 Message Date
Steve Gill
7045e6c260 CB-12519 Updated version and RELEASENOTES.md for release 4.0.2 2017-03-02 16:47:18 -08:00
daserge
3409a86c0b CB-12353 Corrected merges usage in plugin.xml 2017-03-02 16:47:18 -08:00
Nikita Matrosov
2e1a6d5d22 CB-12369: Add plugin typings from DefinitelyTyped
This closes #123
2017-03-02 16:47:18 -08:00
Alexander Sorokin
5172dbbf23 CB-12363 Added build badges for iOS 9.3 and 10.0 2017-03-02 16:47:18 -08:00
Alexander Sorokin
4ba6c91959 CB-12230 Removed Windows 8.1 build badges 2017-03-02 16:47:18 -08:00
Shazron Abdullah
361b8f15c9 CB-12224 Incremented plugin version. 2017-03-02 16:47:18 -08:00
Shazron Abdullah
5aebc9c085 CB-12236 - Fixed RELEASENOTES for cordova-plugin-splashscreen 2016-12-12 11:23:28 -08:00
10 changed files with 34 additions and 244 deletions

View File

@@ -1,28 +0,0 @@
# appveyor file
# http://www.appveyor.com/docs/appveyor-yml
max_jobs: 1
shallow_clone: true
init:
- git config --global core.autocrlf true
image:
- Visual Studio 2017
environment:
nodejs_version: "4"
matrix:
- PLATFORM: windows-10-store
JUST_BUILD: --justBuild
install:
- npm cache clean -f
- node --version
- npm install -g cordova-paramedic@https://github.com/apache/cordova-paramedic.git
- npm install -g cordova
build: off
test_script:
- cordova-paramedic --config pr\%PLATFORM% --plugin . %JUST_BUILD%

View File

@@ -1,94 +1,9 @@
language: objective-c
osx_image: xcode7
sudo: false
addons:
jwt:
secure: UmbBQ73ydIzhTCfaTb/g0beTwnOHjYxlILmQYK2Tl9Gna/KbpawiVmbloX1eZakevkeYgzQmAHEF0LyDINy5AUk97azYeP0Sz/IOjIDfXAdc6U6sZb7BScneBMt6ET/hCprG4f3mbmleQ+gx+dmNWez6rlb3Xu+XWfJuwDfAWm0=
node_js:
- "4.2"
env:
global:
- SAUCE_USERNAME=snay
- TRAVIS_NODE_VERSION="4.2"
matrix:
include:
- env: PLATFORM=browser-chrome
os: linux
language: node_js
node_js: '4.2'
- env: PLATFORM=browser-firefox
os: linux
language: node_js
node_js: '4.2'
- env: PLATFORM=browser-safari
os: linux
language: node_js
node_js: '4.2'
- env: PLATFORM=browser-edge
os: linux
language: node_js
node_js: '4.2'
- env: TEST_DIR=.
language: objective-c
osx_image: xcode7
- env: TEST_DIR=./tests/ios
language: objective-c
osx_image: xcode7
- env: PLATFORM=ios-9.3
os: osx
osx_image: xcode7.3
language: node_js
node_js: '4.2'
- env: PLATFORM=ios-10.0
os: osx
osx_image: xcode7.3
language: node_js
node_js: '4.2'
- env: PLATFORM=android-4.4
os: linux
language: android
jdk: oraclejdk8
android:
components:
- tools
- extra-android-m2repository
- env: PLATFORM=android-5.1
os: linux
language: android
jdk: oraclejdk8
android:
components:
- tools
- extra-android-m2repository
- env: PLATFORM=android-6.0
os: linux
language: android
jdk: oraclejdk8
android:
components:
- tools
- extra-android-m2repository
- env: PLATFORM=android-7.0
os: linux
language: android
jdk: oraclejdk8
android:
components:
- tools
- extra-android-m2repository
before_install:
- rm -rf ~/.nvm && git clone https://github.com/creationix/nvm.git ~/.nvm && (cd ~/.nvm
&& git checkout `git describe --abbrev=0 --tags`) && source ~/.nvm/nvm.sh && nvm
install $TRAVIS_NODE_VERSION
- node --version
- if [[ "$PLATFORM" =~ android ]]; then gradle --version; fi
- if [[ "$PLATFORM" =~ ios ]]; then npm install -g ios-deploy; fi
- if [[ "$PLATFORM" =~ android ]]; then echo y | android update sdk -u --filter android-22,android-23,android-24,android-25,android-26;
fi
- git clone https://github.com/apache/cordova-paramedic /tmp/paramedic && pushd /tmp/paramedic
&& npm install && popd
- npm install -g cordova
install:
- npm install
script:
- if [[ "$TEST_DIR" != "" ]];
then cd $TEST_DIR && npm install && (npm test || npm test);
else node /tmp/paramedic/main.js --config pr/$PLATFORM --plugin $(pwd) --shouldUseSauce
--buildName travis-plugin-splashscreen-$TRAVIS_JOB_NUMBER;
fi
- TEST_DIR=.
- TEST_DIR=./tests/ios
script: cd $TEST_DIR && npm install && (npm test || npm test)

View File

@@ -21,9 +21,9 @@ description: Control the splash screen for your app.
# under the License.
-->
|AppVeyor|Travis CI|
|:-:|:-:|
|[![Build status](https://ci.appveyor.com/api/projects/status/github/apache/cordova-plugin-splashscreen?branch=master)](https://ci.appveyor.com/project/ApacheSoftwareFoundation/cordova-plugin-splashscreen)|[![Build Status](https://travis-ci.org/apache/cordova-plugin-splashscreen.svg?branch=master)](https://travis-ci.org/apache/cordova-plugin-splashscreen)|
|Android 4.4|Android 5.1|iOS 9.3|iOS 10.0|Windows 10 Store|Travis CI|
|:-:|:-:|:-:|:-:|:-:|:-:|
|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=android-4.4,PLUGIN=cordova-plugin-splashscreen)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=android-4.4,PLUGIN=cordova-plugin-splashscreen/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=android-5.1,PLUGIN=cordova-plugin-splashscreen)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=android-5.1,PLUGIN=cordova-plugin-splashscreen/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=ios-9.3,PLUGIN=cordova-plugin-splashscreen)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=ios-9.3,PLUGIN=cordova-plugin-splashscreen/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=ios-10.0,PLUGIN=cordova-plugin-splashscreen)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=ios-10.0,PLUGIN=cordova-plugin-splashscreen/)|[![Build Status](http://cordova-ci.cloudapp.net:8080/buildStatus/icon?job=cordova-periodic-build/PLATFORM=windows-10-store,PLUGIN=cordova-plugin-splashscreen)](http://cordova-ci.cloudapp.net:8080/job/cordova-periodic-build/PLATFORM=windows-10-store,PLUGIN=cordova-plugin-splashscreen/)|[![Build Status](https://travis-ci.org/apache/cordova-plugin-splashscreen.svg?branch=master)](https://travis-ci.org/apache/cordova-plugin-splashscreen)|
# cordova-plugin-splashscreen
@@ -81,11 +81,10 @@ If you choose to use legacy launch images, you will use the following syntax in
Technically the filename for the `src` attribute can be anything you want; the filenames are used because they match what will be used when your project is compiled. The width and height attributes determine which launch images are displayed on which devices as follows:
| width | height | device (orientation) |
|:-----------:|:------------:|:--------------------------------:|
| width | height | device (orientation) |
|:-----------:|:------------:|:-------------------------:|
| 320 | 480 | All non-retina iPhones and iPods |
| 640 | 960 | iPhone 4/4s (portrait) |
| 640 | 1136 | iPhone 5/5s/SE (portrait) |
| 640 | 960 | iPhone 4/4s/5/5s (portrait) |
| 750 | 1334 | iPhone 6/6s/7 (portrait) |
| 1242 | 2208 | iPhone 6+/6s+/7+ (portrait) |
| 2208 | 1242 | iPhone 6+/6s+/7+ (landscape) |
@@ -436,7 +435,6 @@ In your `config.xml`, you can add the following preferences:
```xml
<preference name="SplashMaintainAspectRatio" value="true|false" />
<preference name="SplashShowOnlyFirstTime" value="true|false" />
<preference name="SplashScreenSpinnerColor" value="white" />
```
"SplashMaintainAspectRatio" preference is optional. If set to true, splash screen drawable is not stretched to fit screen, but instead simply "covers" the screen, like CSS "background-size:cover". This is very useful when splash screen images cannot be distorted in any way, for example when they contain scenery or text. This setting works best with images that have large margins (safe areas) that can be safely cropped on screens with different aspect ratios.
@@ -445,8 +443,6 @@ The plugin reloads splash drawable whenever orientation changes, so you can spec
"SplashShowOnlyFirstTime" preference is also optional and defaults to `true`. When set to `true` splash screen will only appear on application launch. However, if you plan to use `navigator.app.exitApp()` to close application and force splash screen appear on next launch, you should set this property to `false` (this also applies to closing the App with Back button).
"SplashScreenSpinnerColor" preference is also optional and is ignored when not set. Setting it to a valid color name or HEX color code will change the color of the spinner on Android 5.0+ devices.
### Browser Quirks
You can use the following preferences in your `config.xml`:
@@ -454,7 +450,6 @@ You can use the following preferences in your `config.xml`:
```xml
<platform name="browser">
<preference name="SplashScreen" value="/images/browser/splashscreen.jpg" /> <!-- defaults to "/img/logo.png" -->
<preference name="AutoHideSplashScreen" value="true" /> <!-- defaults to "true" -->
<preference name="SplashScreenDelay" value="3000" /> <!-- defaults to "3000" -->
<preference name="SplashScreenBackgroundColor" value="green" /> <!-- defaults to "#464646" -->
<preference name="ShowSplashScreen" value="false" /> <!-- defaults to "true" -->

View File

@@ -20,21 +20,6 @@
-->
# Release Notes
### 4.1.0 (Nov 06, 2017)
* [CB-13473](https://issues.apache.org/jira/browse/CB-13473) (CI) Removed **Browser** builds from AppVeyor
* [CB-12011](https://issues.apache.org/jira/browse/CB-12011) (android) added the possibility to change the spinner color on **Android 5.0**+ apps
* [CB-13028](https://issues.apache.org/jira/browse/CB-13028) (CI) **Browser** builds on Travis and AppVeyor
* [CB-13094](https://issues.apache.org/jira/browse/CB-13094) (android) Don't show splash when activity being finished
* [CB-11487](https://issues.apache.org/jira/browse/CB-11487) (browser) Documented `AutoHideSplashScreen` for **Browser**
* [CB-11488](https://issues.apache.org/jira/browse/CB-11488) (browser) The `hide()` call became non re-entrant after the addition of fade out. This fixes the issue.
* [CB-11487](https://issues.apache.org/jira/browse/CB-11487) (browser) The standard `AutoHideSplashScreen` `config.xml` property is now supported by the **Browser** platform.
* [CB-11486](https://issues.apache.org/jira/browse/CB-11486) (browser) `splashScreenDelay` now feed through `parseInt` to ensure it is an integer by the time it's value is passed in to `setTimeout()` in `hide()`.
* [CB-12847](https://issues.apache.org/jira/browse/CB-12847) added `bugs` entry to `package.json`.
### 4.0.3 (Apr 27, 2017)
* [CB-12622](https://issues.apache.org/jira/browse/CB-12622) Added **Android 6.0** build badge to `README`
* [CB-12685](https://issues.apache.org/jira/browse/CB-12685) added `package.json` to tests folder
### 4.0.2 (Feb 28, 2017)
* [CB-12353](https://issues.apache.org/jira/browse/CB-12353) Corrected merges usage in `plugin.xml`
* [CB-12369](https://issues.apache.org/jira/browse/CB-12369) Add plugin typings from `DefinitelyTyped`

View File

@@ -1,6 +1,6 @@
{
"name": "cordova-plugin-splashscreen",
"version": "4.1.0",
"version": "4.0.2",
"description": "Cordova Splashscreen Plugin",
"types": "./types/index.d.ts",
"cordova": {
@@ -21,9 +21,6 @@
"type": "git",
"url": "https://github.com/apache/cordova-plugin-splashscreen"
},
"bugs": {
"url": "https://issues.apache.org/jira/browse/CB"
},
"keywords": [
"cordova",
"splashscreen",

View File

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

View File

@@ -24,7 +24,6 @@ import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.res.Configuration;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Handler;
@@ -78,18 +77,6 @@ public class SplashScreen extends CordovaPlugin {
}
}
private int getSplashId() {
int drawableId = 0;
String splashResource = preferences.getString("SplashScreen", "screen");
if (splashResource != null) {
drawableId = cordova.getActivity().getResources().getIdentifier(splashResource, "drawable", cordova.getActivity().getClass().getPackage().getName());
if (drawableId == 0) {
drawableId = cordova.getActivity().getResources().getIdentifier(splashResource, "drawable", cordova.getActivity().getPackageName());
}
}
return drawableId;
}
@Override
protected void pluginInitialize() {
if (HAS_BUILT_IN_SPLASH_SCREEN) {
@@ -103,7 +90,17 @@ public class SplashScreen extends CordovaPlugin {
getView().setVisibility(View.INVISIBLE);
}
});
int drawableId = getSplashId();
int drawableId = preferences.getInteger("SplashDrawableId", 0);
if (drawableId == 0) {
String splashResource = preferences.getString("SplashScreen", "screen");
if (splashResource != null) {
drawableId = cordova.getActivity().getResources().getIdentifier(splashResource, "drawable", cordova.getActivity().getClass().getPackage().getName());
if (drawableId == 0) {
drawableId = cordova.getActivity().getResources().getIdentifier(splashResource, "drawable", cordova.getActivity().getPackageName());
}
preferences.set("SplashDrawableId", drawableId);
}
}
// Save initial orientation.
orientation = cordova.getActivity().getResources().getConfiguration().orientation;
@@ -208,7 +205,7 @@ public class SplashScreen extends CordovaPlugin {
// Splash drawable may change with orientation, so reload it.
if (splashImageView != null) {
int drawableId = getSplashId();
int drawableId = preferences.getInteger("SplashDrawableId", 0);
if (drawableId != 0) {
splashImageView.setImageDrawable(cordova.getActivity().getResources().getDrawable(drawableId));
}
@@ -266,17 +263,13 @@ public class SplashScreen extends CordovaPlugin {
@SuppressWarnings("deprecation")
private void showSplashScreen(final boolean hideAfterDelay) {
final int splashscreenTime = preferences.getInteger("SplashScreenDelay", DEFAULT_SPLASHSCREEN_DURATION);
final int drawableId = getSplashId();
final int drawableId = preferences.getInteger("SplashDrawableId", 0);
final int fadeSplashScreenDuration = getFadeDuration();
final int effectiveSplashDuration = Math.max(0, splashscreenTime - fadeSplashScreenDuration);
lastHideAfterDelay = hideAfterDelay;
// Prevent to show the splash dialog if the activity is in the process of finishing
if (cordova.getActivity().isFinishing()) {
return;
}
// If the splash dialog is showing don't try to show it again
if (splashDialog != null && splashDialog.isShowing()) {
return;
@@ -368,27 +361,6 @@ public class SplashScreen extends CordovaPlugin {
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
progressBar.setLayoutParams(layoutParams);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
String colorName = preferences.getString("SplashScreenSpinnerColor", null);
if(colorName != null){
int[][] states = new int[][] {
new int[] { android.R.attr.state_enabled}, // enabled
new int[] {-android.R.attr.state_enabled}, // disabled
new int[] {-android.R.attr.state_checked}, // unchecked
new int[] { android.R.attr.state_pressed} // pressed
};
int progressBarColor = Color.parseColor(colorName);
int[] colors = new int[] {
progressBarColor,
progressBarColor,
progressBarColor,
progressBarColor
};
ColorStateList colorStateList = new ColorStateList(states, colors);
progressBar.setIndeterminateTintList(colorStateList);
}
}
centeredLayout.addView(progressBar);
spinnerDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

View File

@@ -31,7 +31,6 @@ var splashScreenDelay = 3000; // in milliseconds
var showSplashScreen = true; // show splashcreen by default
var cordova = require('cordova');
var configHelper = cordova.require('cordova/confighelper');
var autoHideSplashScreen = true;
function updateImageLocation() {
position.width = Math.min(splashImageWidth, window.innerWidth);
@@ -67,7 +66,6 @@ var SplashScreen = {
localSplash = document.createElement("div");
localSplash.style.backgroundColor = bgColor;
localSplash.style.position = "absolute";
localSplash.style["z-index"] = "99999";
localSplashImage = document.createElement("img");
localSplashImage.src = imageSrc;
@@ -77,34 +75,13 @@ var SplashScreen = {
localSplash.appendChild(localSplashImage);
document.body.appendChild(localSplash);
// deviceready fires earlier than the plugin init on cold-start
if (SplashScreen.shouldHideImmediately) {
SplashScreen.shouldHideImmediately = false;
window.setTimeout(function () {
SplashScreen.hide();
}, 1000);
}
}
},
hide: function () {
if(localSplash) {
var innerLocalSplash = localSplash;
localSplash = null;
window.removeEventListener("resize", onResize, false);
innerLocalSplash.style.opacity = '0';
innerLocalSplash.style["-webkit-transition"] = "opacity 1s ease-in-out";
innerLocalSplash.style["-moz-transition"] = "opacity 1s ease-in-out";
innerLocalSplash.style["-ms-transition"] = "opacity 1s ease-in-out";
innerLocalSplash.style["-o-transition"] = "opacity 1s ease-in-out";
window.setTimeout(function () {
document.body.removeChild(innerLocalSplash);
innerLocalSplash = null;
}, 1000);
} else {
SplashScreen.shouldHideImmediately = true;
document.body.removeChild(localSplash);
localSplash = null;
}
}
};
@@ -120,16 +97,12 @@ function readPreferencesFromCfg(cfg) {
}
splashScreenDelay = cfg.getPreferenceValue('SplashScreenDelay') || splashScreenDelay;
splashScreenDelay = parseInt(splashScreenDelay, 10);
imageSrc = cfg.getPreferenceValue('SplashScreen') || imageSrc;
bgColor = cfg.getPreferenceValue('SplashScreenBackgroundColor') || bgColor;
splashImageWidth = cfg.getPreferenceValue('SplashScreenWidth') || splashImageWidth;
splashImageHeight = cfg.getPreferenceValue('SplashScreenHeight') || splashImageHeight;
autoHideSplashScreen = cfg.getPreferenceValue('AutoHideSplashScreen') || autoHideSplashScreen;
autoHideSplashScreen = (autoHideSplashScreen === true || autoHideSplashScreen.toLowerCase() === 'true');
} catch(e) {
var msg = '[Browser][SplashScreen] Error occurred on loading preferences from config.xml: ' + JSON.stringify(e);
var msg = '[Browser][SplashScreen] Error occured on loading preferences from config.xml: ' + JSON.stringify(e);
console.error(msg);
}
}
@@ -148,17 +121,12 @@ function showAndHide() {
}
/**
* Tries to read config.xml and override default properties and then shows and hides splashscreen if it is enabled.
* Tries to read config.xml and override default properties and then shows and hides splashcreen if it is enabled.
*/
(function initAndShow() {
configHelper.readConfig(function(config) {
readPreferencesFromCfg(config);
if (autoHideSplashScreen) {
showAndHide();
} else {
SplashScreen.show();
}
showAndHide();
}, function(err) {
console.error(err);
});

View File

@@ -1,14 +0,0 @@
{
"name": "cordova-plugin-splashscreen-tests",
"version": "4.0.3-dev",
"description": "",
"cordova": {
"id": "cordova-plugin-splashscreen-tests",
"platforms": []
},
"keywords": [
"ecosystem:cordova"
],
"author": "",
"license": "Apache 2.0"
}

View File

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