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]

Reply via email to