diff options
Diffstat (limited to 'src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java')
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java index 952bf04971..6b8577116e 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java @@ -63,6 +63,9 @@ import android.util.Base64; import android.util.DisplayMetrics; import android.util.Log; import android.util.TypedValue; +import android.view.animation.AccelerateInterpolator; +import android.view.animation.AlphaAnimation; +import android.view.animation.Animation; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.KeyCharacterMap; @@ -918,6 +921,7 @@ public class QtActivityDelegate public void onTerminate() { QtNative.terminateQt(); + QtNative.m_qtThread.exit(); } public void onCreate(Bundle savedInstanceState) @@ -1002,10 +1006,36 @@ public class QtActivityDelegate public void hideSplashScreen() { + hideSplashScreen(0); + } + + public void hideSplashScreen(final int duration) + { if (m_splashScreen == null) return; - m_layout.removeView(m_splashScreen); - m_splashScreen = null; + + if (duration <= 0) { + m_layout.removeView(m_splashScreen); + m_splashScreen = null; + return; + } + + final Animation fadeOut = new AlphaAnimation(1, 0); + fadeOut.setInterpolator(new AccelerateInterpolator()); + fadeOut.setDuration(duration); + + fadeOut.setAnimationListener(new Animation.AnimationListener() { + @Override + public void onAnimationEnd(Animation animation) { hideSplashScreen(0); } + + @Override + public void onAnimationRepeat(Animation animation) {} + + @Override + public void onAnimationStart(Animation animation) {} + }); + + m_splashScreen.startAnimation(fadeOut); } @@ -1047,7 +1077,8 @@ public class QtActivityDelegate QtNative.setActivity(null, null); if (m_debuggerProcess != null) m_debuggerProcess.destroy(); - System.exit(0);// FIXME remove it or find a better way + QtNative.m_qtThread.exit(); + System.exit(0); } } |