summaryrefslogtreecommitdiffstats
path: root/src/android
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2015-12-02 23:33:06 +0100
committerLiang Qi <liang.qi@theqtcompany.com>2015-12-02 23:33:06 +0100
commit72f5867f144cec8fc7848cbcc772683fe845652d (patch)
tree7513af27b59332bf111f406d304977adc8c8612e /src/android
parent13777097118c496391d4b9656b95097ac25e4a40 (diff)
parentbf0af8b5a24de7e595929a64948a3548936aaaee (diff)
Merge remote-tracking branch 'origin/5.6' into dev
Conflicts: src/corelib/kernel/qcoreapplication.cpp src/corelib/kernel/qeventdispatcher_blackberry.cpp src/network/bearer/qnetworkconfiguration.cpp src/plugins/bearer/blackberry/qbbengine.cpp src/plugins/platforms/android/androidjnimain.cpp src/plugins/platforms/android/qandroidplatformtheme.cpp src/plugins/platforms/qnx/qqnxbpseventfilter.cpp src/plugins/platforms/qnx/qqnxfiledialoghelper_bb10.cpp src/plugins/platforms/qnx/qqnxinputcontext_imf.cpp src/plugins/platforms/qnx/qqnxintegration.cpp src/plugins/platforms/qnx/qqnxnavigatorbps.cpp src/plugins/platforms/qnx/qqnxvirtualkeyboardbps.cpp src/plugins/platforms/qnx/qqnxwindow.cpp src/widgets/kernel/qwidgetwindow.cpp src/widgets/styles/qwindowsvistastyle.cpp src/widgets/styles/qwindowsxpstyle.cpp src/widgets/widgets/qtoolbararealayout.cpp tests/auto/corelib/global/qflags/qflags.pro tests/auto/corelib/itemmodels/qitemmodel/modelstotest.cpp tests/auto/corelib/tools/qversionnumber/qversionnumber.pro tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp Change-Id: I37be88c6c185bb85404823353e027a0a6acdbce4
Diffstat (limited to 'src/android')
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/QtNative.java26
1 files changed, 26 insertions, 0 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 1b7ec8abbb..602b25eb45 100644
--- a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java
+++ b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java
@@ -41,6 +41,7 @@ import java.util.concurrent.Semaphore;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
@@ -53,6 +54,7 @@ import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
+import java.lang.reflect.Method;
import java.security.KeyStore;
import java.security.cert.X509Certificate;
import java.util.Iterator;
@@ -81,6 +83,7 @@ public class QtNative
private static int m_oldx, m_oldy;
private static final int m_moveThreshold = 0;
private static ClipboardManager m_clipboardManager = null;
+ private static Method m_checkSelfPermissionMethod = null;
private static ClassLoader m_classLoader = null;
public static ClassLoader classLoader()
@@ -393,6 +396,29 @@ public class QtNative
}
}
+ public static int checkSelfPermission(final String permission)
+ {
+ int perm = PackageManager.PERMISSION_DENIED;
+ synchronized (m_mainActivityMutex) {
+ if (m_activity == null)
+ return perm;
+ 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);
+ } else {
+ final PackageManager pm = m_activity.getPackageManager();
+ perm = pm.checkPermission(permission, m_activity.getPackageName());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ return perm;
+ }
+
private static void updateSelection(final int selStart,
final int selEnd,
final int candidatesStart,