summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPliable Pixels <pliablepixels@gmail.com>2018-01-10 14:34:56 -0500
committerPliable Pixels <pliablepixels@gmail.com>2018-01-10 14:34:56 -0500
commit8623646c266eb9e99103c9696c09456a42ac0060 (patch)
treebd08963c93a1b9822fe3df11220a3bb116218485
parentd288da87ccc65e2ef21dd9189ac14452077cf53e (diff)
#499 iOS related changes, also handled case where push broadcast can be called before PortalLogin is done - needs to be handled _after_ auth
-rw-r--r--www/js/EventModalCtrl.js12
-rw-r--r--www/js/EventServer.js23
-rw-r--r--www/js/PortalLoginCtrl.js116
-rwxr-xr-xwww/js/app.js3
-rw-r--r--www/templates/events-modal.html1
5 files changed, 147 insertions, 8 deletions
diff --git a/www/js/EventModalCtrl.js b/www/js/EventModalCtrl.js
index 6f014de2..86f2b233 100644
--- a/www/js/EventModalCtrl.js
+++ b/www/js/EventModalCtrl.js
@@ -134,7 +134,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
{
NVRDataModel.debug("EventModalCtrl: Re-login detected, resetting everything & re-generating connkey");
- NVRDataModel.stopNetwork("Auth-Success inside EventModalCtrl");
+ // NVRDataModel.stopNetwork("Auth-Success inside EventModalCtrl");
$scope.connKey = (Math.floor((Math.random() * 999999) + 1)).toString();
//console.log ("********* OFFSET FROM AUTH SUCC");
$timeout(function()
@@ -981,7 +981,15 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
{
var cv = document.getElementById("eventchart");
- var ctx = cv.getContext("2d");
+ var ctx;
+ try {
+ ctx = cv.getContext("2d");
+ }
+ catch (e) {
+ NVRDataModel.debug ("2D Context ERROR, maybe live play");
+
+ }
+
frameoptions = {
responsive: true,
diff --git a/www/js/EventServer.js b/www/js/EventServer.js
index c09ad7ee..a63ff176 100644
--- a/www/js/EventServer.js
+++ b/www/js/EventServer.js
@@ -112,6 +112,8 @@ angular.module('zmApp.controllers')
//if (!$rootScope.apnsToken)
if (!pushInited) pushInit();
+ console.log ("WS TYPEOF="+ typeof ws);
+ // console.log ("WS="+JSON.stringify(ws));
if (typeof ws !== 'undefined')
{
NVRDataModel.debug("websocket already initialized ?!?");
@@ -583,14 +585,29 @@ angular.module('zmApp.controllers')
// set tappedMid to monitor
//*** PUSH DATA>>>>{"sound":"blop","message":"Alarms: Basement (2854) ","additionalData":{"mid":"2","coldstart":false,"collapse_key":"do_not_collapse","foreground":false}}
- if (data.additionalData.dismissed != undefined || data.additionalData.coldstart == true) // user tapped on notification
+ if (data.additionalData.dismissed != undefined || data.additionalData.coldstart == true || $rootScope.platformOS == 'ios') // user tapped on notification
+ // in iOS case, since content-av is not there this notification won't be called unless you tap
{
NVRDataModel.debug("Notification Tapped");
$rootScope.alarmCount = "0";
$rootScope.isAlarm = 0;
$rootScope.tappedNotification = 1;
- var mid = data.additionalData.mid;
- var eid = data.additionalData.eid;
+
+ var mid;
+ var eid;
+
+ // we are using FCM on IOS too
+ /* if ($rootScope.platformOS == 'ios') {
+ mid = data.additionalData.gcm.notification.mid;
+ eid = data.additionalData.gcm.notification.eid;
+
+ }
+ else {*/
+
+ mid = data.additionalData.mid;
+ eid = data.additionalData.eid;
+ // }
+
// if Multiple mids, take the first one
diff --git a/www/js/PortalLoginCtrl.js b/www/js/PortalLoginCtrl.js
index 838d107e..5138fcd6 100644
--- a/www/js/PortalLoginCtrl.js
+++ b/www/js/PortalLoginCtrl.js
@@ -6,10 +6,18 @@
angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionicPlatform', '$scope', 'zm', 'NVRDataModel', '$ionicSideMenuDelegate', '$rootScope', '$http', '$q', '$state', '$ionicLoading', '$ionicPopover', '$ionicScrollDelegate', '$ionicModal', '$timeout', 'zmAutoLogin', '$ionicHistory', 'EventServer', '$translate', function($ionicPlatform, $scope, zm, NVRDataModel, $ionicSideMenuDelegate, $rootScope, $http, $q, $state, $ionicLoading, $ionicPopover, $ionicScrollDelegate, $ionicModal, $timeout, zmAutoLogin, $ionicHistory, EventServer, $translate)
{
+ var processPush = false;
+
+ $scope.$on ('$ionicView.beforeEnter', function() {
+ processPush = false;
+ NVRDataModel.debug ("BeforeEnter in Portal: setting ProcessPush to false");
+ });
+
$scope.$on('$ionicView.enter',
function()
{
+
NVRDataModel.debug("Inside Portal login Enter handler");
loginData = NVRDataModel.getLogin();
@@ -267,6 +275,108 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionic
return (d.promise);
}
+
+ $rootScope.$on("process-push", function () {
+ NVRDataModel.debug("*** PROCESS PUSH HANDLER CALLED INSIDE PORTAL LOGIN, setting ProcessPush to true");
+ processPush = true;
+
+
+ });
+
+ function evaluateTappedNotification()
+ {
+ var ld = NVRDataModel.getLogin();
+ processPush = false;
+
+ if ($rootScope.tappedNotification == 2) { // url launch
+ NVRDataModel.debug("Came via app url launch with mid="+$rootScope.tappedMid);
+ NVRDataModel.debug("Came via app url launch with eid="+$rootScope.tappedEid);
+ $rootScope.tappedNotification = 0;
+ $ionicHistory.nextViewOptions(
+ {
+ disableBack: true
+ });
+
+ if (parseInt($rootScope.tappedMid) > 0)
+ {
+ NVRDataModel.debug("Going to live view ");
+ $state.go("app.monitors",
+ {},
+ {
+ reload: true
+ });
+ return;
+
+ }
+
+ else if (parseInt($rootScope.tappedEid) > 0) {
+ NVRDataModel.debug("Going to events with EID=" + $rootScope.tappedEid);
+ $state.go("app.events",
+ {
+ //"id": $rootScope.tappedEid,
+ "id": 0,
+ "playEvent": true
+ },
+ {
+ reload: true
+ });
+ return;
+ }
+ // go with monitor first, then event - just because I feel like ;)
+
+
+ }
+ else if ($rootScope.tappedNotification == 1) // push
+ {
+
+
+ NVRDataModel.log("Came via push tap. onTapScreen=" + ld.onTapScreen);
+ $rootScope.pushOverride = true;
+ //console.log ("***** NOTIFICATION TAPPED ");
+ $rootScope.tappedNotification = 0;
+ $ionicHistory.nextViewOptions(
+ {
+ disableBack: true
+ });
+
+ if (ld.onTapScreen == $translate.instant('kTapMontage'))
+ {
+ NVRDataModel.debug("Going to montage");
+ $state.go("app.montage",
+ {},
+ {
+ reload: true
+ });
+
+ return;
+ }
+ else if (ld.onTapScreen == $translate.instant('kTapEvents'))
+ {
+ NVRDataModel.debug("Going to events");
+ $state.go("app.events",
+ {
+ "id": 0,
+ "playEvent": false
+ },
+ {
+ reload: true
+ });
+ return;
+ }
+ else // we go to live
+ {
+ NVRDataModel.debug("Going to live view ");
+ $state.go("app.monitors",
+ {},
+ {
+ reload: true
+ });
+ return;
+ }
+ }
+
+ }
+
function unlock(idVerified)
@@ -339,7 +449,7 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionic
NVRDataModel.getKeyConfigParams(1);
NVRDataModel.getTimeZone();
EventServer.refresh();
- if ($rootScope.tappedNotification == 0)
+ if (!processPush)
{
//console.log ("NOTIFICATION TAPPED INSIDE CHECK IS "+$rootScope.tappedNotification);
var statetoGo = $rootScope.lastState ? $rootScope.lastState : 'app.montage';
@@ -351,8 +461,8 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionic
return;
}
- //else
- // evaluateTappedNotification();
+ else
+ evaluateTappedNotification();
},
diff --git a/www/js/app.js b/www/js/app.js
index 765b765e..469c1db6 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -915,6 +915,7 @@ angular.module('zmApp', [
NVRDataModel.log("Came via push tap. onTapScreen=" + ld.onTapScreen);
+ $rootScope.pushOverride = true;
//console.log ("***** NOTIFICATION TAPPED ");
$rootScope.tappedNotification = 0;
$ionicHistory.nextViewOptions(
@@ -1984,6 +1985,8 @@ angular.module('zmApp', [
NVRDataModel.setBackground(true);
NVRDataModel.setJustResumed(true); // used for window stop
+ EventServer.disconnect();
+
NVRDataModel.log("ROOT APP:App is going into background");
$interval.cancel($rootScope.eventQueryInterval);
diff --git a/www/templates/events-modal.html b/www/templates/events-modal.html
index bc0a33e5..c838f128 100644
--- a/www/templates/events-modal.html
+++ b/www/templates/events-modal.html
@@ -99,6 +99,7 @@
</ion-content>
</ion-modal-view>
+
<div ng-if="!liveFeedMid">
<nav mfb-menu position="tr" effect="zoomin" label="{{'kCollapse'|translate}}" active-icon="ion-chevron-up" resting-icon="ion-chevron-down" toggling-method="click">
<a mfb-button icon="ion-arrow-right-c" label="{{'kNextEvent'|translate}}" ng-click="jumpToEvent(nextId,1);"></a>