You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by da...@apache.org on 2016/01/22 11:27:41 UTC

cordova-plugin-splashscreen git commit: CB-9094: Smarter autohide logic on Android

Repository: cordova-plugin-splashscreen
Updated Branches:
  refs/heads/master 7a12204ba -> 5b3c2c8b1


CB-9094: Smarter autohide logic on Android

When the plugin is initialized, the splash screen is shown with an
auto-hide delay. If a subsequent call to show() comes in while the
splashscreen is visible, it will still be automatically hidden, even
though the user expectation is that it wouldn't be.

This fix tracks the "hideAfterDelay" setting of the most recent call to
show() -- and when the auto hide timer goes off, if the most recent call
to show() did not set hideAfterDelay, then the splashscreen will not be
automatically hidden.

This provides a more consistent -- and expected -- behavior based on
user action.

https://issues.apache.org/jira/browse/CB-9094

Github: close #49


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/5b3c2c8b
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen/tree/5b3c2c8b
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen/diff/5b3c2c8b

Branch: refs/heads/master
Commit: 5b3c2c8b1423eb1f17adf1c89da50edfc46c2406
Parents: 7a12204
Author: Dan Polivy <da...@cellartracker.com>
Authored: Thu May 28 16:20:21 2015 -0700
Committer: daserge <v-...@microsoft.com>
Committed: Fri Jan 22 13:22:37 2016 +0300

----------------------------------------------------------------------
 src/android/SplashScreen.java | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen/blob/5b3c2c8b/src/android/SplashScreen.java
----------------------------------------------------------------------
diff --git a/src/android/SplashScreen.java b/src/android/SplashScreen.java
index 7e27d49..833ebc2 100644
--- a/src/android/SplashScreen.java
+++ b/src/android/SplashScreen.java
@@ -51,6 +51,7 @@ public class SplashScreen extends CordovaPlugin {
     private static Dialog splashDialog;
     private static ProgressDialog spinnerDialog;
     private static boolean firstShow = true;
+    private static boolean lastHideAfterDelay; // https://issues.apache.org/jira/browse/CB-9094
 
     /**
      * Displays the splash drawable.
@@ -112,7 +113,7 @@ public class SplashScreen extends CordovaPlugin {
     }
 
     private int getFadeDuration () {
-        int fadeSplashScreenDuration = preferences.getBoolean("FadeSplashScreen", true) == true ?
+        int fadeSplashScreenDuration = preferences.getBoolean("FadeSplashScreen", true) ?
             preferences.getInteger("FadeSplashScreenDuration", DEFAULT_SPLASHSCREEN_DURATION) : 0;
 
         if (fadeSplashScreenDuration < 30) {
@@ -265,6 +266,8 @@ public class SplashScreen extends CordovaPlugin {
         final int fadeSplashScreenDuration = getFadeDuration();
         final int effectiveSplashDuration = splashscreenTime - fadeSplashScreenDuration;
 
+        lastHideAfterDelay = hideAfterDelay;
+
         // If the splash dialog is showing don't try to show it again
         if (splashDialog != null && splashDialog.isShowing()) {
             return;
@@ -317,7 +320,9 @@ public class SplashScreen extends CordovaPlugin {
                     final Handler handler = new Handler();
                     handler.postDelayed(new Runnable() {
                         public void run() {
-                            removeSplashScreen();
+                            if (lastHideAfterDelay) {
+                                removeSplashScreen();
+                            }
                         }
                     }, effectiveSplashDuration);
                 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org