diff --git a/src/app/AndroidManifest.xml b/src/app/AndroidManifest.xml
--- a/src/app/AndroidManifest.xml
+++ b/src/app/AndroidManifest.xml
@@ -79,10 +79,9 @@
-
+
-
diff --git a/src/app/applicationcontroller.cpp b/src/app/applicationcontroller.cpp
--- a/src/app/applicationcontroller.cpp
+++ b/src/app/applicationcontroller.cpp
@@ -53,6 +53,9 @@
using namespace KItinerary;
#ifdef Q_OS_ANDROID
+
+#define PERMISSION_CALENDAR QStringLiteral("android.permission.READ_CALENDAR")
+
static void importReservation(JNIEnv *env, jobject that, jstring data)
{
Q_UNUSED(that);
@@ -452,9 +455,18 @@
void ApplicationController::checkCalendar()
{
#ifdef Q_OS_ANDROID
- const auto activity = QtAndroid::androidActivity();
- if (activity.isValid()) {
- activity.callMethod("checkCalendar");
+
+ if (QtAndroid::checkPermission(PERMISSION_CALENDAR) == QtAndroid::PermissionResult::Granted) {
+ const auto activity = QtAndroid::androidActivity();
+ if (activity.isValid()) {
+ activity.callMethod("checkCalendar");
+ }
+ } else {
+ QtAndroid::requestPermissions({PERMISSION_CALENDAR}, [this] (const QtAndroid::PermissionResultMap &result){
+ if (result[PERMISSION_CALENDAR] == QtAndroid::PermissionResult::Granted) {
+ checkCalendar();
+ }
+ });
}
#endif
}