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 | 48 |
1 files changed, 32 insertions, 16 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 5792b5b2f5..b077014b81 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java @@ -103,6 +103,7 @@ public class QtNative private static int m_displayMetricsScreenHeightPixels = 0; private static int m_displayMetricsDesktopWidthPixels = 0; private static int m_displayMetricsDesktopHeightPixels = 0; + private static float m_displayMetricsRefreshRate = 60; private static double m_displayMetricsXDpi = .0; private static double m_displayMetricsYDpi = .0; private static double m_displayMetricsScaledDensity = 1.0; @@ -614,7 +615,7 @@ public class QtNative m_displayMetricsYDpi, m_displayMetricsScaledDensity, m_displayMetricsDensity, - true); + m_displayMetricsRefreshRate); } }); m_qtThread.post(new Runnable() { @@ -637,7 +638,7 @@ public class QtNative double YDpi, double scaledDensity, double density, - boolean forceUpdate) + float refreshRate) { /* Fix buggy dpi report */ if (XDpi < android.util.DisplayMetrics.DENSITY_LOW) @@ -647,15 +648,9 @@ public class QtNative synchronized (m_mainActivityMutex) { if (m_started) { - setDisplayMetrics(screenWidthPixels, - screenHeightPixels, - desktopWidthPixels, - desktopHeightPixels, - XDpi, - YDpi, - scaledDensity, - density, - forceUpdate); + setDisplayMetrics(screenWidthPixels, screenHeightPixels, desktopWidthPixels, + desktopHeightPixels, XDpi, YDpi, scaledDensity, density, + refreshRate); } else { m_displayMetricsScreenWidthPixels = screenWidthPixels; m_displayMetricsScreenHeightPixels = screenHeightPixels; @@ -665,6 +660,7 @@ public class QtNative m_displayMetricsYDpi = YDpi; m_displayMetricsScaledDensity = scaledDensity; m_displayMetricsDensity = density; + m_displayMetricsRefreshRate = refreshRate; } } } @@ -712,9 +708,11 @@ public class QtNative } return 1; } - if (action == MotionEvent.ACTION_DOWN || action == MotionEvent.ACTION_POINTER_DOWN && index == event.getActionIndex()) { + if (action == MotionEvent.ACTION_DOWN + || action == MotionEvent.ACTION_POINTER_DOWN && index == event.getActionIndex()) { return 0; - } else if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_POINTER_UP && index == event.getActionIndex()) { + } else if (action == MotionEvent.ACTION_UP + || action == MotionEvent.ACTION_POINTER_UP && index == event.getActionIndex()) { return 3; } return 2; @@ -766,6 +764,10 @@ public class QtNative touchEnd(id, 2); break; + case MotionEvent.ACTION_CANCEL: + touchCancel(id); + break; + default: touchEnd(id, 1); } @@ -954,13 +956,13 @@ public class QtNative }); } - private static void notifyObjectHide(final int viewId) + private static void notifyObjectHide(final int viewId, final int parentId) { runAction(new Runnable() { @Override public void run() { if (m_activityDelegate != null) { - m_activityDelegate.notifyObjectHide(viewId); + m_activityDelegate.notifyObjectHide(viewId, parentId); } } }); @@ -978,6 +980,18 @@ public class QtNative }); } + private static void notifyValueChanged(final int viewId, final String value) + { + runAction(new Runnable() { + @Override + public void run() { + if (m_activityDelegate != null) { + m_activityDelegate.notifyValueChanged(viewId, value); + } + } + }); + } + public static void notifyQtAndroidPluginRunning(final boolean running) { m_activityDelegate.notifyQtAndroidPluginRunning(running); @@ -1344,8 +1358,9 @@ public class QtNative double YDpi, double scaledDensity, double density, - boolean forceUpdate); + float refreshRate); public static native void handleOrientationChanged(int newRotation, int nativeOrientation); + public static native void handleRefreshRateChanged(float refreshRate); // screen methods // pointer methods @@ -1356,6 +1371,7 @@ public class QtNative public static native void touchBegin(int winId); public static native void touchAdd(int winId, int pointerId, int action, boolean primary, int x, int y, float major, float minor, float rotation, float pressure); public static native void touchEnd(int winId, int action); + public static native void touchCancel(int winId); public static native void longPress(int winId, int x, int y); // pointer methods |