From b734808a507076358850e0fa24aff06b0316438f Mon Sep 17 00:00:00 2001 From: surdu Date: Tue, 14 Nov 2017 16:21:36 +0200 Subject: [PATCH 1/2] requestPermissions now returns Promise --- src/camera.android.ts | 16 +++++---------- src/camera.ios.ts | 47 ++++++++++++++++++++++++++++++------------- src/package.json | 3 +++ 3 files changed, 41 insertions(+), 25 deletions(-) diff --git a/src/camera.android.ts b/src/camera.android.ts index a237bcc..64507a8 100644 --- a/src/camera.android.ts +++ b/src/camera.android.ts @@ -5,6 +5,7 @@ import * as imageSourceModule from "tns-core-modules/image-source/image-source"; import * as imageAssetModule from "tns-core-modules/image-asset/image-asset"; import * as trace from "tns-core-modules/trace/trace"; import * as platform from "tns-core-modules/platform/platform"; +import * as permissions from "nativescript-permissions"; let REQUEST_IMAGE_CAPTURE = 3453; let REQUEST_REQUIRED_PERMISSIONS = 1234; @@ -155,17 +156,10 @@ export let isAvailable = function () { }; export let requestPermissions = function () { - if ((android.support.v4.content.ContextCompat).checkSelfPermission(applicationModule.android.currentContext, - (android).Manifest.permission.WRITE_EXTERNAL_STORAGE) !== android.content.pm.PackageManager.PERMISSION_GRANTED || - (android.support.v4.content.ContextCompat).checkSelfPermission(applicationModule.android.currentContext, - (android).Manifest.permission.CAMERA) !== android.content.pm.PackageManager.PERMISSION_GRANTED) { - - (android.support.v4.app.ActivityCompat).requestPermissions(applicationModule.android.currentContext, [ - (android).Manifest.permission.CAMERA, - (android).Manifest.permission.WRITE_EXTERNAL_STORAGE - ], - REQUEST_REQUIRED_PERMISSIONS); - } + return permissions.requestPermissions([ + (android).Manifest.permission.WRITE_EXTERNAL_STORAGE, + (android).Manifest.permission.CAMERA + ]); }; let createDateTimeStamp = function () { diff --git a/src/camera.ios.ts b/src/camera.ios.ts index 9f0f2d9..7b7e86a 100644 --- a/src/camera.ios.ts +++ b/src/camera.ios.ts @@ -189,19 +189,38 @@ export let isAvailable = function () { }; export let requestPermissions = function () { - let authStatus = PHPhotoLibrary.authorizationStatus(); - if (authStatus === PHAuthorizationStatus.NotDetermined) { - PHPhotoLibrary.requestAuthorization((auth) => { - if (auth === PHAuthorizationStatus.Authorized) { - if (trace.isEnabled()) { - trace.write("Application can access photo library assets.", trace.categories.Debug); - } - return; - } - }); - } else if (authStatus !== PHAuthorizationStatus.Authorized) { - if (trace.isEnabled()) { - trace.write("Application can not access photo library assets.", trace.categories.Debug); + return new Promise(function(resolve, reject) { + let authStatus = PHPhotoLibrary.authorizationStatus(); + switch (authStatus) { + case PHAuthorizationStatus.NotDetermined: { + PHPhotoLibrary.requestAuthorization((auth) => { + if (auth === PHAuthorizationStatus.Authorized) { + if (trace.isEnabled()) { + trace.write("Application can access photo library assets.", trace.categories.Debug); + } + resolve(); + } + else { + reject(); + } + }); + break; } - } + case PHAuthorizationStatus.Authorized: { + if (trace.isEnabled()) { + trace.write("Application can access photo library assets.", trace.categories.Debug); + } + resolve(); + break; + } + case PHAuthorizationStatus.Restricted: + case PHAuthorizationStatus.Denied: { + if (trace.isEnabled()) { + trace.write("Application can not access photo library assets.", trace.categories.Debug); + } + reject(); + break; + } + } + }); }; diff --git a/src/package.json b/src/package.json index 5c4172f..a1be666 100644 --- a/src/package.json +++ b/src/package.json @@ -36,6 +36,9 @@ "images" ], "author": "NativeScript team", + "dependencies": { + "nativescript-permissions": "^1.2.3" + }, "devDependencies": { "tns-core-modules": "^3.0.0", "tns-platform-declarations": "^3.0.0", From de6ab3ed7532c5b34ade2d496c5a07bbd49e49d9 Mon Sep 17 00:00:00 2001 From: surdu Date: Tue, 14 Nov 2017 16:29:17 +0200 Subject: [PATCH 2/2] COnverted tabs to spaces --- src/camera.android.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/camera.android.ts b/src/camera.android.ts index 64507a8..343450b 100644 --- a/src/camera.android.ts +++ b/src/camera.android.ts @@ -156,10 +156,10 @@ export let isAvailable = function () { }; export let requestPermissions = function () { - return permissions.requestPermissions([ - (android).Manifest.permission.WRITE_EXTERNAL_STORAGE, - (android).Manifest.permission.CAMERA - ]); + return permissions.requestPermissions([ + (android).Manifest.permission.WRITE_EXTERNAL_STORAGE, + (android).Manifest.permission.CAMERA + ]); }; let createDateTimeStamp = function () {