summaryrefslogtreecommitdiffstats
path: root/src/android/jar/src/org/qtproject/qt5/android/QtNative.java
diff options
context:
space:
mode:
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.java33
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