CB-12626: Updated Android plugin This closes #125
Prefer a slightly slower, but bulletproof, way to check for the splashscreen instead of relying on the Cordova preferences. This fixes the splash screen on several phones. Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen/commit/50a55883 Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen/tree/50a55883 Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen/diff/50a55883 Branch: refs/heads/master Commit: 50a55883d3edc7d4c9b4c521c11ed2c108315b28 Parents: 833dc7f Author: Andrea Lazzarotto <[email protected]> Authored: Sat Apr 1 15:22:23 2017 +0200 Committer: Joe Bowser <[email protected]> Committed: Thu Oct 5 14:05:50 2017 -0700 ---------------------------------------------------------------------- src/android/SplashScreen.java | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen/blob/50a55883/src/android/SplashScreen.java ---------------------------------------------------------------------- diff --git a/src/android/SplashScreen.java b/src/android/SplashScreen.java index 6f19525..c2424f6 100644 --- a/src/android/SplashScreen.java +++ b/src/android/SplashScreen.java @@ -77,6 +77,18 @@ 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) { @@ -90,17 +102,7 @@ public class SplashScreen extends CordovaPlugin { getView().setVisibility(View.INVISIBLE); } }); - 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); - } - } + int drawableId = getSplashId(); // Save initial orientation. orientation = cordova.getActivity().getResources().getConfiguration().orientation; @@ -205,7 +207,7 @@ public class SplashScreen extends CordovaPlugin { // Splash drawable may change with orientation, so reload it. if (splashImageView != null) { - int drawableId = preferences.getInteger("SplashDrawableId", 0); + int drawableId = getSplashId(); if (drawableId != 0) { splashImageView.setImageDrawable(cordova.getActivity().getResources().getDrawable(drawableId)); } @@ -263,7 +265,7 @@ 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 = preferences.getInteger("SplashDrawableId", 0); + final int drawableId = getSplashId(); final int fadeSplashScreenDuration = getFadeDuration(); final int effectiveSplashDuration = Math.max(0, splashscreenTime - fadeSplashScreenDuration); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
