From 7e1dc0ce419daa7b2d1d38d5402828d0af04e7e6 Mon Sep 17 00:00:00 2001 From: EddyVerbruggen Date: Sun, 2 Jun 2019 20:58:50 +0200 Subject: [PATCH] Read and Write Permission Error in Android 8 #53 --- src/calendar.android.ts | 24 ++++++++++++++---------- src/package.json | 2 +- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/calendar.android.ts b/src/calendar.android.ts index 7fd167f..75209ee 100755 --- a/src/calendar.android.ts +++ b/src/calendar.android.ts @@ -77,6 +77,10 @@ Calendar._hasWritePermission = function () { return Calendar._hasPermission([android.Manifest.permission.WRITE_CALENDAR]); }; +Calendar._hasReadWritePermission = function () { + return Calendar._hasPermission([android.Manifest.permission.READ_CALENDAR, android.Manifest.permission.WRITE_CALENDAR]); +}; + Calendar._requestPermission = function (permissions, onPermissionGranted, reject) { Calendar._onPermissionGranted = onPermissionGranted; Calendar._reject = reject; @@ -95,6 +99,10 @@ Calendar._requestWritePermission = function (onPermissionGranted, reject) { Calendar._requestPermission([android.Manifest.permission.WRITE_CALENDAR], onPermissionGranted, reject); }; +Calendar._requestReadWritePermission = function (onPermissionGranted, reject) { + Calendar._requestPermission([android.Manifest.permission.READ_CALENDAR, android.Manifest.permission.WRITE_CALENDAR], onPermissionGranted, reject); +}; + Calendar.hasPermission = function (arg) { return new Promise((resolve, reject) => { try { @@ -372,10 +380,8 @@ Calendar.deleteEvents = function (arg) { resolve(deletedEventIds); }; - // note that read or write doesn't really matter as it resolves to one permission currently - // and if that changes write will probably suffice for reading as well - if (!Calendar._hasWritePermission()) { - Calendar._requestWritePermission(onPermissionGranted, reject); + if (!Calendar._hasReadWritePermission()) { + Calendar._requestReadWritePermission(onPermissionGranted, reject); return; } @@ -498,10 +504,8 @@ Calendar.createEvent = function (arg) { resolve(createdEventID); }; - // note that read or write doesn't really matter as it resolves to one permission currently - // and if that changes write will probably suffice for reading as well - if (!Calendar._hasWritePermission()) { - Calendar._requestWritePermission(onPermissionGranted, reject); + if (!Calendar._hasReadWritePermission()) { + Calendar._requestReadWritePermission(onPermissionGranted, reject); return; } @@ -544,8 +548,8 @@ Calendar.deleteCalendar = function (arg) { resolve(deletedCalId); }; - if (!Calendar._hasWritePermission()) { - Calendar._requestWritePermission(onPermissionGranted, reject); + if (!Calendar._hasReadWritePermission()) { + Calendar._requestReadWritePermission(onPermissionGranted, reject); return; } diff --git a/src/package.json b/src/package.json index 94c2902..295fb94 100644 --- a/src/package.json +++ b/src/package.json @@ -1,6 +1,6 @@ { "name": "nativescript-calendar", - "version": "2.0.1", + "version": "2.0.2", "description": "Interact with the native calendar. Add, Update, Read, you name it.", "main": "calendar", "typings": "calendar.d.ts",