summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPliable Pixels <pliablepixels@users.noreply.github.com>2018-08-23 11:37:03 -0400
committerGitHub <noreply@github.com>2018-08-23 11:37:03 -0400
commit1af33a0e7980339bece9660389a96a404f57532b (patch)
tree5fb18c917eb5145f281df98febf3527e02d5dc4b
parentd6c4c4389df146740efabc18fdb62501ada61bbc (diff)
parentcc6e5ac9388241cbddcbd1c7081718b081e5981a (diff)
Merge pull request #687 from pliablepixels/multi-window-support
#682 - various updates to handle multi-window pause state
-rw-r--r--.github/stale.yml1
-rw-r--r--config.xml4
-rw-r--r--package.json10
-rw-r--r--www/js/MonitorModalCtrl.js24
-rw-r--r--www/js/MontageCtrl.js13
-rwxr-xr-xwww/js/app.js60
6 files changed, 62 insertions, 50 deletions
diff --git a/.github/stale.yml b/.github/stale.yml
index 399cb995..7d6713d6 100644
--- a/.github/stale.yml
+++ b/.github/stale.yml
@@ -10,6 +10,7 @@ exemptLabels:
- bug
- long term
- informational
+ - help wanted
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
diff --git a/config.xml b/config.xml
index c497bdf2..2ae4c0a4 100644
--- a/config.xml
+++ b/config.xml
@@ -145,7 +145,9 @@
<plugin name="cordova-plugin-email" spec="^1.2.7" />
<plugin name="cordova-plugin-statusbar" spec="^2.4.2" />
<plugin name="cordova-library-helper-pp-fork" spec="^1.0.1" />
+ <plugin name="cordova-plugin-multi-window" spec="0.0.3" />
+ <plugin name="cordova-plugin-ignore-lint-translation" spec="0.0.1" />
<plugin name="cordova-plugin-certificates" spec="^0.6.4" />
- <engine name="android" spec="^6.3.0" />
<engine name="ios" spec="^4.5.5" />
+ <engine name="android" spec="^6.3.0" />
</widget>
diff --git a/package.json b/package.json
index 8186d54e..2c4e6349 100644
--- a/package.json
+++ b/package.json
@@ -4,8 +4,8 @@
"displayName": "zmNinja",
"cordova": {
"platforms": [
- "android",
- "ios"
+ "ios",
+ "android"
],
"plugins": {
"cordova-plugin-add-swift-support": {},
@@ -46,7 +46,9 @@
"cordova-plugin-email": {},
"cordova-plugin-statusbar": {},
"cordova-plugin-certificates": {},
- "cordova-library-helper-pp-fork": {}
+ "cordova-library-helper-pp-fork": {},
+ "cordova-plugin-multi-window": {},
+ "cordova-plugin-ignore-lint-translation": {}
}
},
"dependencies": {
@@ -68,9 +70,11 @@
"cordova-plugin-file": "^6.0.1",
"cordova-plugin-file-transfer": "^1.7.1",
"cordova-plugin-globalization": "^1.0.7",
+ "cordova-plugin-ignore-lint-translation": "0.0.1",
"cordova-plugin-inappbrowser": "^1.7.1",
"cordova-plugin-insomnia": "^4.3.0",
"cordova-plugin-media-pp-fork": "^1.0.2-dev",
+ "cordova-plugin-multi-window": "0.0.3",
"cordova-plugin-network-information": "^2.0.1",
"cordova-plugin-photo-library": "^1.2.2",
"cordova-plugin-pin-dialog": "^0.1.3",
diff --git a/www/js/MonitorModalCtrl.js b/www/js/MonitorModalCtrl.js
index 82e43c01..3d765aed 100644
--- a/www/js/MonitorModalCtrl.js
+++ b/www/js/MonitorModalCtrl.js
@@ -1315,6 +1315,14 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
$scope.$on('modal.removed', function () {
+ if ($rootScope.platformOS == 'android') {
+ NVRDataModel.debug ("Deregistering handlers for multi-window");
+
+ window.MultiWindowPlugin.deregisterOnStop("monitormodal-pause");
+ window.MultiWindowPlugin.deregisterOnStart("monitormodal-resume");
+
+ }
+
if ($rootScope.platformOS == 'desktop') {
NVRDataModel.debug ("Removing keyboard handler");
window.removeEventListener('keydown', keyboardHandler, true);
@@ -1741,16 +1749,18 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
$scope.monStatus = "";
$scope.isToggleListMenu = true;
//console.log (">>>>>>>>>>>>>>>>>>>STOOOP");
- document.addEventListener("pause", onPause, false);
- document.addEventListener("resume", onResume, false);
-
- /*document.addEventListener("mouseup", moveStop, false);
- document.addEventListener("touchend", moveStop, false);
- document.addEventL`istener("mousemove", moveContinue, false);
- document.addEventListener("touchmove", moveContinue, false);*/
+ if ($rootScope.platformOS != 'android') {
+ document.addEventListener("pause", onPause, false);
+ document.addEventListener("resume", onResume, false);
+ }
+ else {
+ NVRDataModel.debug ("MonitorModal: Android detected, using cordova-multiwindow plugin for onStop/onStart instead");
+ window.MultiWindowPlugin.registerOnStop("monitormodal-pause", onPause);
+ window.MultiWindowPlugin.registerOnStart("monitormodal-resume", onResume);
+ }
$scope.showZones = false;
diff --git a/www/js/MontageCtrl.js b/www/js/MontageCtrl.js
index d9eb1409..e3e0eaa9 100644
--- a/www/js/MontageCtrl.js
+++ b/www/js/MontageCtrl.js
@@ -1406,6 +1406,11 @@ angular.module('zmApp.controllers')
$scope.$on('$ionicView.leave', function () {
// console.log("**VIEW ** Montage Ctrl Left, force removing modal");
+ if ($rootScope.platformOS == 'android') {
+ NVRDataModel.debug ("Deregistering handlers for multi-window");
+ window.MultiWindowPlugin.deregisterOnStop("montage-pause");
+
+ }
if ($scope.modal) $scope.modal.remove();
});
@@ -1968,7 +1973,13 @@ angular.module('zmApp.controllers')
//console.log("**VIEW ** Montage Ctrl AFTER ENTER");
window.addEventListener("resize", orientationChanged, false);
- document.addEventListener("pause", onPause, false);
+ if ($rootScope.platformOS != 'android') {
+ document.addEventListener("pause", onPause, false);
+ }
+ else {
+ NVRDataModel.debug ("MontageCtrl: Android detected, using cordova-multiwindow plugin for onStop/onStart instead");
+ window.MultiWindowPlugin.registerOnStop("montage-pause", onPause);
+ }
// document.addEventListener("resume", onResume, false);
});
diff --git a/www/js/app.js b/www/js/app.js
index 0d776437..9d88362d 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -2044,11 +2044,26 @@ angular.module('zmApp', [
function setupPauseAndResume() {
NVRDataModel.log("Setting up pause and resume handler AFTER language is loaded...");
- //---------------------------------------------------------------------------
- // resume handler
- //----------------------------------------------------------------------------
- document.addEventListener("resume", function () {
+
+ if ($rootScope.platformOS != 'android') {
+ document.addEventListener("resume", function () {
+ resumeHandler();
+ }, false);
+
+ document.addEventListener("pause", function () {
+ pauseHandler();
+ }, false);
+ }
+ else {
+ NVRDataModel.debug ("Android detected, using cordova-multiwindow plugin for onStop/onStart instead");
+ window.MultiWindowPlugin.registerOnStop("app-pause", pauseHandler);
+ window.MultiWindowPlugin.registerOnStart("app-resume", resumeHandler);
+
+
+ }
+
+ function resumeHandler() {
NVRDataModel.setBackground(false);
NVRDataModel.setJustResumed(true);
$ionicPlatform.ready(function () {
@@ -2097,12 +2112,9 @@ angular.module('zmApp', [
});
- }, false);
+ }
- //---------------------------------------------------------------------------
- // background handler
- //----------------------------------------------------------------------------
- document.addEventListener("pause", function (mtask) {
+ function pauseHandler() {
NVRDataModel.setBackground(true);
NVRDataModel.setJustResumed(false);
// NVRDataModel.setJustResumed(true); // used for window stop
@@ -2114,13 +2126,6 @@ angular.module('zmApp', [
$interval.cancel($rootScope.intervalHandle);
zmAutoLogin.stop();
-
-
- // NVRDataModel.log("ROOT APP: Stopping network ");
- //NVRDataModel.stopNetwork("called from app.js");
-
- // dont call stopNetwork - we need to stop here
-
var ld = NVRDataModel.getLogin();
@@ -2139,30 +2144,9 @@ angular.module('zmApp', [
}, 5000);
}
-
-
- /* if (ld.exitOnSleep && $rootScope.platformOS == "android") {
- NVRDataModel.log("user exited app");
- navigator.app.exitApp();
-
- // ionic.Platform.exitApp();
- }*/
-
- /* if (NVRDataModel.getCurrentServerMultiPortSupported() && $rootScope.platformOS == "android" && !NVRDataModel.isMultiPortDisabled()) {
- NVRDataModel.log ("Multiport is active, killing app to make sure no streams continue in background...");
- navigator.app.exitApp();
- } else {
- NVRDataModel.debug ("Not exiting app because:");
- NVRDataModel.debug ("getCurrentServerMultiPortSupported:"+NVRDataModel.getCurrentServerMultiPortSupported());
- NVRDataModel.debug ("platform:"+$rootScope.platformOS);
- NVRDataModel.debug ("isMultiPortDisabled:"+NVRDataModel.isMultiPortDisabled());
-
- }*/
-
if ($rootScope.zmPopup)
$rootScope.zmPopup.close();
-
- }, false);
+ }
}