summaryrefslogtreecommitdiff
path: root/www/js
diff options
context:
space:
mode:
authorPliable Pixels <pliablepixels@gmail.com>2016-09-08 16:52:32 -0400
committerPliable Pixels <pliablepixels@gmail.com>2016-09-08 16:52:32 -0400
commit8545d9ea546b9459245e3aaa83b12bc09e30b408 (patch)
tree2ddc48b0cfb64748bac5e199e77750b02a76ca65 /www/js
parentd093aa7ff439c56a309e1778ecb66b7b13480c73 (diff)
#322 - go through run time permission flow for Android
Former-commit-id: 029648949ceacb1ef96b073b9d1c5d5857fb0bc5
Diffstat (limited to 'www/js')
-rw-r--r--www/js/EventModalCtrl.js37
-rw-r--r--www/js/MonitorModalCtrl.js36
2 files changed, 68 insertions, 5 deletions
diff --git a/www/js/EventModalCtrl.js b/www/js/EventModalCtrl.js
index 247b486c..8a2c3c4c 100644
--- a/www/js/EventModalCtrl.js
+++ b/www/js/EventModalCtrl.js
@@ -406,7 +406,40 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
// Saves a snapshot of the monitor image to phone storage
//-----------------------------------------------------------------------
- $scope.saveEventImageToPhone = function (onlyAlarms) {
+
+ $scope.saveEventImageToPhoneWithPerms = function (onlyAlarms)
+ {
+
+ if ($rootScope.platformOS != 'android')
+ {
+ processSaveEventImageToPhone(onlyAlarms);
+ }
+
+ // if we are on android do the 6.x+ hasPermissions flow
+ NVRDataModel.debug("EventModalCtrl: Permission checking for write");
+ var permissions = cordova.plugins.permissions;
+ permissions.hasPermission(permissions.WRITE_EXTERNAL_STORAGE, checkPermissionCallback, null);
+
+ function checkPermissionCallback(status) {
+ if (!status.hasPermission)
+ {
+ SaveError("No permission to write to external storage");
+ }
+ permissions.requestPermission(permissions.WRITE_EXTERNAL_STORAGE, succ,err);
+ }
+
+ function succ(s)
+ {
+ processSaveEventImageToPhone(onlyAlarms);
+ }
+ function err(e)
+ {
+ SaveError ("Error in requestPermission");
+ }
+ };
+
+
+ function processSaveEventImageToPhone (onlyAlarms) {
if ($scope.loginData.useNphZmsForEvents) {
NVRDataModel.log("Use ZMS stream to save to phone");
@@ -418,7 +451,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
}
- };
+ }
function saveEventImageToPhoneZms(onlyAlarms) {
// The strategy here is to build the array now so we can grab frames
diff --git a/www/js/MonitorModalCtrl.js b/www/js/MonitorModalCtrl.js
index e7e22e86..84553d6e 100644
--- a/www/js/MonitorModalCtrl.js
+++ b/www/js/MonitorModalCtrl.js
@@ -648,7 +648,7 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
noBackdrop: true,
duration: 2000
});
- NVRDataModel.log("Error saving image: " + e.message);
+ NVRDataModel.log("Error saving image: " + e);
//console.log("***ERROR");
}
@@ -761,7 +761,37 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
// Saves a snapshot of the monitor image to phone storage
//-----------------------------------------------------------------------
- $scope.saveImageToPhone = function (mid) {
+ $scope.saveImageToPhoneWithPerms = function (mid)
+ {
+ if ($rootScope.platformOS != 'android')
+ {
+ saveImageToPhone(mid);
+ }
+
+
+ NVRDataModel.debug("ModalCtrl: Permission checking for write");
+ var permissions = cordova.plugins.permissions;
+ permissions.hasPermission(permissions.WRITE_EXTERNAL_STORAGE, checkPermissionCallback, null);
+
+ function checkPermissionCallback(status) {
+ if (!status.hasPermission)
+ {
+ SaveError("No permission to write to external storage");
+ }
+ permissions.requestPermission(permissions.WRITE_EXTERNAL_STORAGE, succ,err);
+ }
+
+ function succ(s)
+ {
+ saveImageToPhone(mid);
+ }
+ function err(e)
+ {
+ SaveError ("Error in requestPermission");
+ }
+ };
+
+ function saveImageToPhone(mid) {
$ionicLoading.show({
template: $translate.instant('kSavingSnapshot') + '...',
noBackdrop: true,
@@ -820,7 +850,7 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
SaveError(e.message);
}
- };
+ }