Skip to content
This repository was archived by the owner on Sep 15, 2021. It is now read-only.

Commit 600b30e

Browse files
committed
feat(plugin:batteryStatus): refractor out anonymous functions for better memory management
+ wrap $broadcast calls in a $timout function to ensure $rootscope.$apply() occurs
1 parent 0c6de57 commit 600b30e

File tree

5 files changed

+72
-42
lines changed

5 files changed

+72
-42
lines changed

demo/www/lib/ngCordova/dist/ng-cordova.js

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -404,21 +404,31 @@ angular.module('ngCordova.plugins.barcodeScanner', [])
404404

405405
angular.module('ngCordova.plugins.batteryStatus', [])
406406

407-
.factory('$cordovaBatteryStatus', ['$rootScope', '$window', function ($rootScope, $window) {
407+
.factory('$cordovaBatteryStatus', ['$rootScope', '$window', '$timeout', function ($rootScope, $window, $timeout) {
408408

409-
document.addEventListener("deviceready", function () {
410-
if (navigator.battery) {
411-
$window.addEventListener('batterystatus', function (status) {
412-
$rootScope.$broadcast('$cordovaBatteryStatus:status', status);
413-
}, false);
409+
var batteryStatus = function (status) {
410+
$timeout(function () {
411+
$rootScope.$broadcast('$cordovaBatteryStatus:status', status);
412+
})
413+
};
414414

415-
$window.addEventListener('batterycritical', function (status) {
416-
$rootScope.$broadcast('$cordovaBatteryStatus:critical', status);
417-
}, false);
415+
var batteryCritical = function (status) {
416+
$timeout(function () {
417+
$rootScope.$broadcast('$cordovaBatteryStatus:critical', status);
418+
})
419+
};
418420

419-
$window.addEventListener('batterylow', function (status) {
420-
$rootScope.$broadcast('$cordovaBatteryStatus:low', status);
421-
}, false);
421+
var batteryLow = function (status) {
422+
$timeout(function () {
423+
$rootScope.$broadcast('$cordovaBatteryStatus:low', status);
424+
})
425+
};
426+
427+
document.addEventListener("deviceready", function () {
428+
if (navigator.battery) {
429+
$window.addEventListener('batterystatus', batteryStatus, false);
430+
$window.addEventListener('batterycritical', batteryCritical, false);
431+
$window.addEventListener('batterylow', batteryLow, false);
422432
}
423433
}, false);
424434
}])

demo/www/lib/ngCordova/dist/ng-cordova.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ng-cordova.js

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -404,21 +404,31 @@ angular.module('ngCordova.plugins.barcodeScanner', [])
404404

405405
angular.module('ngCordova.plugins.batteryStatus', [])
406406

407-
.factory('$cordovaBatteryStatus', ['$rootScope', '$window', function ($rootScope, $window) {
407+
.factory('$cordovaBatteryStatus', ['$rootScope', '$window', '$timeout', function ($rootScope, $window, $timeout) {
408408

409-
document.addEventListener("deviceready", function () {
410-
if (navigator.battery) {
411-
$window.addEventListener('batterystatus', function (status) {
412-
$rootScope.$broadcast('$cordovaBatteryStatus:status', status);
413-
}, false);
409+
var batteryStatus = function (status) {
410+
$timeout(function () {
411+
$rootScope.$broadcast('$cordovaBatteryStatus:status', status);
412+
})
413+
};
414414

415-
$window.addEventListener('batterycritical', function (status) {
416-
$rootScope.$broadcast('$cordovaBatteryStatus:critical', status);
417-
}, false);
415+
var batteryCritical = function (status) {
416+
$timeout(function () {
417+
$rootScope.$broadcast('$cordovaBatteryStatus:critical', status);
418+
})
419+
};
418420

419-
$window.addEventListener('batterylow', function (status) {
420-
$rootScope.$broadcast('$cordovaBatteryStatus:low', status);
421-
}, false);
421+
var batteryLow = function (status) {
422+
$timeout(function () {
423+
$rootScope.$broadcast('$cordovaBatteryStatus:low', status);
424+
})
425+
};
426+
427+
document.addEventListener("deviceready", function () {
428+
if (navigator.battery) {
429+
$window.addEventListener('batterystatus', batteryStatus, false);
430+
$window.addEventListener('batterycritical', batteryCritical, false);
431+
$window.addEventListener('batterylow', batteryLow, false);
422432
}
423433
}, false);
424434
}])

dist/ng-cordova.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/plugins/batteryStatus.js

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,31 @@
33

44
angular.module('ngCordova.plugins.batteryStatus', [])
55

6-
.factory('$cordovaBatteryStatus', ['$rootScope', '$window', function ($rootScope, $window) {
6+
.factory('$cordovaBatteryStatus', ['$rootScope', '$window', '$timeout', function ($rootScope, $window, $timeout) {
77

8-
document.addEventListener("deviceready", function () {
9-
if (navigator.battery) {
10-
$window.addEventListener('batterystatus', function (status) {
11-
$rootScope.$broadcast('$cordovaBatteryStatus:status', status);
12-
}, false);
8+
var batteryStatus = function (status) {
9+
$timeout(function () {
10+
$rootScope.$broadcast('$cordovaBatteryStatus:status', status);
11+
})
12+
};
13+
14+
var batteryCritical = function (status) {
15+
$timeout(function () {
16+
$rootScope.$broadcast('$cordovaBatteryStatus:critical', status);
17+
})
18+
};
1319

14-
$window.addEventListener('batterycritical', function (status) {
15-
$rootScope.$broadcast('$cordovaBatteryStatus:critical', status);
16-
}, false);
20+
var batteryLow = function (status) {
21+
$timeout(function () {
22+
$rootScope.$broadcast('$cordovaBatteryStatus:low', status);
23+
})
24+
};
1725

18-
$window.addEventListener('batterylow', function (status) {
19-
$rootScope.$broadcast('$cordovaBatteryStatus:low', status);
20-
}, false);
26+
document.addEventListener("deviceready", function () {
27+
if (navigator.battery) {
28+
$window.addEventListener('batterystatus', batteryStatus, false);
29+
$window.addEventListener('batterycritical', batteryCritical, false);
30+
$window.addEventListener('batterylow', batteryLow, false);
2131
}
2232
}, false);
2333
}])

0 commit comments

Comments
 (0)