diff options
Diffstat (limited to 'src/android/jar/src/org/qtproject/qt5/android/QtNative.java')
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/QtNative.java | 33 |
1 files changed, 29 insertions, 4 deletions
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 dbd356f7a5..e7de00687c 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java @@ -97,6 +97,7 @@ public class QtNative public static final String QtTAG = "Qt JAVA"; // string used for Log.x private static ArrayList<Runnable> m_lostActions = new ArrayList<Runnable>(); // a list containing all actions which could not be performed (e.g. the main activity is destroyed, etc.) private static boolean m_started = false; + private static boolean m_isKeyboardHiding = false; private static int m_displayMetricsScreenWidthPixels = 0; private static int m_displayMetricsScreenHeightPixels = 0; private static int m_displayMetricsDesktopWidthPixels = 0; @@ -611,7 +612,8 @@ public class QtNative m_displayMetricsXDpi, m_displayMetricsYDpi, m_displayMetricsScaledDensity, - m_displayMetricsDensity); + m_displayMetricsDensity, + true); } }); m_qtThread.post(new Runnable() { @@ -633,7 +635,8 @@ public class QtNative double XDpi, double YDpi, double scaledDensity, - double density) + double density, + boolean forceUpdate) { /* Fix buggy dpi report */ if (XDpi < android.util.DisplayMetrics.DENSITY_LOW) @@ -650,7 +653,8 @@ public class QtNative XDpi, YDpi, scaledDensity, - density); + density, + forceUpdate); } else { m_displayMetricsScreenWidthPixels = screenWidthPixels; m_displayMetricsScreenHeightPixels = screenHeightPixels; @@ -922,6 +926,7 @@ public class QtNative private static void hideSoftwareKeyboard() { + m_isKeyboardHiding = true; runAction(new Runnable() { @Override public void run() { @@ -944,6 +949,13 @@ public class QtNative }); } + public static boolean isSoftwareKeyboardVisible() + { + if (m_activityDelegate == null) + return false; + return m_activityDelegate.isKeyboardVisible() && !m_isKeyboardHiding; + } + private static void notifyAccessibilityLocationChange() { runAction(new Runnable() { @@ -980,6 +992,11 @@ public class QtNative }); } + public static void notifyQtAndroidPluginRunning(final boolean running) + { + m_activityDelegate.notifyQtAndroidPluginRunning(running); + } + private static void registerClipboardManager() { if (m_service == null || m_activity != null) { // Avoid freezing if only service @@ -1011,6 +1028,7 @@ public class QtNative { if (Build.VERSION.SDK_INT >= 28 && m_clipboardManager != null) m_clipboardManager.clearPrimaryClip(); + m_usePrimaryClip = false; } private static void setClipboardText(String text) { @@ -1308,6 +1326,12 @@ public class QtNative }); } + public static void keyboardVisibilityUpdated(boolean visibility) + { + m_isKeyboardHiding = false; + keyboardVisibilityChanged(visibility); + } + private static String[] listAssetContent(android.content.res.AssetManager asset, String path) { String [] list; ArrayList<String> res = new ArrayList<String>(); @@ -1339,7 +1363,8 @@ public class QtNative double XDpi, double YDpi, double scaledDensity, - double density); + double density, + boolean forceUpdate); public static native void handleOrientationChanged(int newRotation, int nativeOrientation); // screen methods |