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 | 42 |
1 files changed, 35 insertions, 7 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 04b8e6a06f..af4f20679c 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java @@ -455,20 +455,25 @@ public class QtNative } } - public static int checkSelfPermission(final String permission) + public static Context getContext() { + if (m_activity != null) + return m_activity; + return m_service; + } + + public static int checkSelfPermission(String permission) { int perm = PackageManager.PERMISSION_DENIED; synchronized (m_mainActivityMutex) { - if (m_activity == null) - return perm; + Context context = getContext(); try { if (Build.VERSION.SDK_INT >= 23) { if (m_checkSelfPermissionMethod == null) m_checkSelfPermissionMethod = Context.class.getMethod("checkSelfPermission", String.class); - perm = (Integer)m_checkSelfPermissionMethod.invoke(m_activity, permission); + perm = (Integer)m_checkSelfPermissionMethod.invoke(context, permission); } else { - final PackageManager pm = m_activity.getPackageManager(); - perm = pm.checkPermission(permission, m_activity.getPackageName()); + final PackageManager pm = context.getPackageManager(); + perm = pm.checkPermission(permission, context.getApplicationContext().getPackageName()); } } catch (Exception e) { e.printStackTrace(); @@ -492,6 +497,20 @@ public class QtNative }); } + private static void updateHandles(final int mode, + final int x1, + final int y1, + final int x2, + final int y2) + { + runAction(new Runnable() { + @Override + public void run() { + m_activityDelegate.updateHandles(mode, x1, y1, x2, y2); + } + }); + } + private static void showSoftwareKeyboard(final int x, final int y, final int width, @@ -569,7 +588,7 @@ public class QtNative m_clipboardManager.setText(text); } - private static boolean hasClipboardText() + public static boolean hasClipboardText() { if (m_clipboardManager != null) return m_clipboardManager.hasText(); @@ -777,6 +796,13 @@ public class QtNative public static native void keyboardGeometryChanged(int x, int y, int width, int height); // keyboard methods + // handle methods + public static final int IdCursorHandle = 1; + public static final int IdLeftHandle = 2; + public static final int IdRightHandle = 3; + public static native void handleLocationChanged(int id, int x, int y); + // handle methods + // dispatch events methods public static native boolean dispatchGenericMotionEvent(MotionEvent ev); public static native boolean dispatchKeyEvent(KeyEvent event); @@ -810,6 +836,8 @@ public class QtNative public static native void runPendingCppRunnables(); + public static native void sendRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults); + private static native void setNativeActivity(Activity activity); private static native void setNativeService(Service service); } |