From e671b6ea83c6b52badf0b7db93df81d9aacd05e7 Mon Sep 17 00:00:00 2001 From: Daniel Dent Date: Fri, 8 Mar 2019 23:45:56 -0800 Subject: [PATCH 1/2] Allow seperate requests for Camera & Photos perms --- src/camera.android.ts | 12 ++++++++++++ src/camera.ios.ts | 4 ++-- src/index.d.ts | 2 ++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/camera.android.ts b/src/camera.android.ts index 2a252a1..1a3d4f5 100644 --- a/src/camera.android.ts +++ b/src/camera.android.ts @@ -174,6 +174,18 @@ export let requestPermissions = function () { ]); }; +export let requestPhotosPermissions = function () { + return permissions.requestPermissions([ + (android).Manifest.permission.WRITE_EXTERNAL_STORAGE, + ]); +}; + +export let requestCameraPermissions = function () { + return permissions.requestPermissions([ + (android).Manifest.permission.CAMERA + ]); +}; + let createDateTimeStamp = function () { let result = ""; let date = new Date(); diff --git a/src/camera.ios.ts b/src/camera.ios.ts index 925d15b..c5edecf 100644 --- a/src/camera.ios.ts +++ b/src/camera.ios.ts @@ -200,7 +200,7 @@ export let requestPermissions = function () { }); }; -let requestPhotosPermissions = function () { +export let requestPhotosPermissions = function () { return new Promise(function (resolve, reject) { let authStatus = PHPhotoLibrary.authorizationStatus(); switch (authStatus) { @@ -236,7 +236,7 @@ let requestPhotosPermissions = function () { }); }; -let requestCameraPermissions = function () { +export let requestCameraPermissions = function () { return new Promise(function (resolve, reject) { let cameraStatus = AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo); switch (cameraStatus) { diff --git a/src/index.d.ts b/src/index.d.ts index c2abcf4..f1397c5 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -10,6 +10,8 @@ export function takePicture(options?: CameraOptions): Promise; +export function requestCameraPermissions(): Promise; +export function requestPhotosPermissions(): Promise; /** * Is the camera available to use From 73c9fd4903833267243de2b0a697bef2f5e10215 Mon Sep 17 00:00:00 2001 From: Daniel Dent Date: Sat, 16 Mar 2019 19:44:47 -0700 Subject: [PATCH 2/2] Document split permission request functions The requestPermissions function remains available for requesting camera and saved photos access with a single function call, while requestCameraPermissions and requestPhotosPermissions have been added to allow each permission to be requested on its own. --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 928b32c..ec15f53 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,9 @@ npm install nativescript-camera --save | Method | Description | | --- | --- | | takePicture(options?: CameraOptions) | Take a photo using the camera with an optional parameter for setting different camera options. | -| requestPermissions() | Check required permissions for using device camera. Returns a Promise. | +| requestPermissions() | Request permission from the user for access to their saved photos as well as access to their camera. Returns a Promise. | +| requestCameraPermissions() | Request permission from the user for access to their camera. Returns a Promise. | +| requestPhotosPermissions() | Request permission from the user for access to their saved photos. Returns a Promise. | | isAvailable() | Is the device camera available to use. | ### CameraOptions