diff options
author | Yoann Lopes <yoann.lopes@digia.com> | 2013-08-27 17:49:40 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-08-28 17:00:15 +0200 |
commit | e94c22165559b7d81ee255d328d39b5252d16132 (patch) | |
tree | b327a1bebf92a98c3516d802b44277c08280516b /src/android | |
parent | fd871694e74debc1bde5a7a19c6a5b94f3069bb2 (diff) |
Android: added ApplicationState capability.
The application state is tied to the QtActivity lifecycle.
Mapping of states between Android and Qt is as follows:
onResume --> ApplicationActive
onPause --> ApplicationInactive
onStop --> ApplicationSuspended
Change-Id: Iefef08d6c7a7fde28fba1f4886882458cda6a0c0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Diffstat (limited to 'src/android')
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java | 17 | ||||
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/QtNative.java | 3 |
2 files changed, 20 insertions, 0 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 8d67db7f40..8dc804cce4 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java @@ -160,6 +160,12 @@ public class QtActivityDelegate private final int ImhEmailCharactersOnly = 0x200000; private final int ImhUrlCharactersOnly = 0x400000; + // application state + private final int ApplicationSuspended = 0x0; + private final int ApplicationHidden = 0x1; + private final int ApplicationInactive = 0x2; + private final int ApplicationActive = 0x4; + public void resetSoftwareKeyboard() { if (m_imm == null) @@ -621,6 +627,11 @@ public class QtActivityDelegate m_surface.applicationStarted(true); } + public void onPause() + { + QtNative.updateApplicationState(ApplicationInactive); + } + public void onResume() { // fire all lostActions @@ -631,12 +642,18 @@ public class QtActivityDelegate m_activity.runOnUiThread(itr.next()); if (m_started) { + QtNative.updateApplicationState(ApplicationActive); QtNative.clearLostActions(); QtNative.updateWindow(); } } } + public void onStop() + { + QtNative.updateApplicationState(ApplicationSuspended); + } + public Object onRetainNonConfigurationInstance() { try { diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java index 122fc55aad..51f00a73c6 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java @@ -582,6 +582,9 @@ public class QtNative public static native void updateWindow(); // window methods + // application methods + public static native void updateApplicationState(int state); + // menu methods public static native boolean onPrepareOptionsMenu(Menu menu); public static native boolean onOptionsItemSelected(int itemId, boolean checked); |