Loading src/windows/LocalNotificationCore.js +57 −42 Changes for src/windows/LocalNotificationCore.js: 57 added lines, 42 removed lines. Original line number Diff line number Diff line Loading @@ -27,8 +27,23 @@ var Notifications = Windows.UI.Notifications, exports.core = { // Array of unactivated notifications unactivatedIds: [], /** * Executes all queued events. */ deviceready: function () { var plugin = cordova.plugins.notification.local, args; this.isReady = true; for (var i = 0; i < this.eventQueue.length; i++) { args = this.eventQueue[i]; plugin.fireEvent.apply(plugin, args); } this.eventQueue = []; }, /** * Schedules new local notifications. Loading Loading @@ -124,42 +139,6 @@ exports.core = { }, /** * Cancels the local notification with the given ID. * * @param {String} id * Local notification ID */ cancelLocalNotification: function (id) { var notifier = this.getToastNotifier(), history = this.getToastHistory(), toasts = this.getScheduledToast(); history.remove('Toast' + id); for (var i = 0; i < toasts.length; i++) { var toast = toasts[i]; if (toast.id == id || toast.id == id + '-2') { notifier.removeFromSchedule(toast); } } }, /** * Clears the local notification with the given ID. * * @param {String} id * Local notification ID */ clearLocalNotification: function (id) { this.getToastHistory().remove('Toast' + id); if (this.isTriggered(id) && !this.isScheduled(id)) { this.cancelLocalNotification(id); } }, /** * Updates existing notifications specified by IDs in options. * Loading Loading @@ -191,6 +170,20 @@ exports.core = { } }, /** * Clears the local notification with the given ID. * * @param {String} id * Local notification ID */ clearLocalNotification: function (id) { this.getToastHistory().remove('Toast' + id); if (this.isTriggered(id) && !this.isScheduled(id)) { this.cancelLocalNotification(id); } }, /** * Clears all notifications. */ Loading Loading @@ -220,6 +213,28 @@ exports.core = { } }, /** * Cancels the local notification with the given ID. * * @param {String} id * Local notification ID */ cancelLocalNotification: function (id) { var notifier = this.getToastNotifier(), history = this.getToastHistory(), toasts = this.getScheduledToasts(); history.remove('Toast' + id); for (var i = 0; i < toasts.length; i++) { var toast = toasts[i]; if (toast.id == id || toast.id == id + '-2') { notifier.removeFromSchedule(toast); } } }, /** * Cancels all notifications. */ Loading Loading @@ -268,7 +283,7 @@ exports.core = { * Lists all local notification IDs. */ getAllIds: function () { var toasts = this.getScheduledToast(), var toasts = this.getScheduledToasts(), ids = []; for (var i = 0; i < toasts.length; i++) { Loading @@ -284,7 +299,7 @@ exports.core = { * Lists all scheduled notification IDs. */ getScheduledIds: function () { var toasts = this.getScheduledToast(), var toasts = this.getScheduledToasts(), ids = []; for (var i = 0; i < toasts.length; i++) { Loading @@ -303,7 +318,7 @@ exports.core = { * Lists all scheduled notification IDs. */ getTriggeredIds: function () { var toasts = this.getScheduledToast(), var toasts = this.getScheduledToasts(), ids = []; for (var i = 0; i < toasts.length; i++) { Loading @@ -328,7 +343,7 @@ exports.core = { * Local notification life cycle type */ getAll: function (ids, type) { var toasts = this.getScheduledToast(), var toasts = this.getScheduledToasts(), notifications = []; if (ids.length === 0) { Loading src/windows/LocalNotificationProxy.js +1 −1 Changes for src/windows/LocalNotificationProxy.js: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ * Executes all queued events. */ exports.deviceready = function () { exports.core.deviceready(); }; /** Loading src/windows/LocalNotificationUtil.js +26 −5 Changes for src/windows/LocalNotificationUtil.js: 26 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -29,6 +29,11 @@ exports = require('de.appplant.cordova.plugin.local-notification.LocalNotificati // True if App is running, false if suspended exports.isInBackground = true; // Indicates if the device is ready (to receive events) exports.isReady = false; // Queues all events before deviceready exports.eventQueue = []; /******** * UTIL * Loading Loading @@ -158,7 +163,7 @@ exports.getToastNotifier = function () { * * @return Array */ exports.getScheduledToast = function () { exports.getScheduledToasts = function () { return this.getToastNotifier().getScheduledToastNotifications(); }; Loading Loading @@ -229,7 +234,7 @@ exports.isToastTriggered = function (toast) { * @param Object */ exports.findToastById = function (id) { var toasts = this.getScheduledToastNotifications(); var toasts = this.getScheduledToasts(); for (var i = 0; i < toasts.length; i++) { var toast = toasts[i]; Loading Loading @@ -284,12 +289,19 @@ exports.getApplicationState = function () { */ exports.fireEvent = function (event, notification) { var plugin = cordova.plugins.notification.local.core, state = this.getApplicationState(); state = this.getApplicationState(), args; if (notification) { plugin.fireEvent(event, notification, state); args = [event, notification, state]; } else { args = [event, state]; } if (this.isReady) { plugin.fireEvent.apply(plugin, args); } else { plugin.fireEvent(event, state); this.eventQueue.push(args); } }; Loading @@ -312,3 +324,12 @@ document.addEventListener('resume', function () { document.addEventListener('deviceready', function () { exports.isInBackground = false; }, false); // Handle onclick event WinJS.Application.addEventListener('activated', function (args) { var id = args.detail.arguments, notification = exports.getAll([id])[0]; exports.clearLocalNotification(id); exports.fireEvent('click', notification); }, false); Loading
src/windows/LocalNotificationCore.js +57 −42 Changes for src/windows/LocalNotificationCore.js: 57 added lines, 42 removed lines. Original line number Diff line number Diff line Loading @@ -27,8 +27,23 @@ var Notifications = Windows.UI.Notifications, exports.core = { // Array of unactivated notifications unactivatedIds: [], /** * Executes all queued events. */ deviceready: function () { var plugin = cordova.plugins.notification.local, args; this.isReady = true; for (var i = 0; i < this.eventQueue.length; i++) { args = this.eventQueue[i]; plugin.fireEvent.apply(plugin, args); } this.eventQueue = []; }, /** * Schedules new local notifications. Loading Loading @@ -124,42 +139,6 @@ exports.core = { }, /** * Cancels the local notification with the given ID. * * @param {String} id * Local notification ID */ cancelLocalNotification: function (id) { var notifier = this.getToastNotifier(), history = this.getToastHistory(), toasts = this.getScheduledToast(); history.remove('Toast' + id); for (var i = 0; i < toasts.length; i++) { var toast = toasts[i]; if (toast.id == id || toast.id == id + '-2') { notifier.removeFromSchedule(toast); } } }, /** * Clears the local notification with the given ID. * * @param {String} id * Local notification ID */ clearLocalNotification: function (id) { this.getToastHistory().remove('Toast' + id); if (this.isTriggered(id) && !this.isScheduled(id)) { this.cancelLocalNotification(id); } }, /** * Updates existing notifications specified by IDs in options. * Loading Loading @@ -191,6 +170,20 @@ exports.core = { } }, /** * Clears the local notification with the given ID. * * @param {String} id * Local notification ID */ clearLocalNotification: function (id) { this.getToastHistory().remove('Toast' + id); if (this.isTriggered(id) && !this.isScheduled(id)) { this.cancelLocalNotification(id); } }, /** * Clears all notifications. */ Loading Loading @@ -220,6 +213,28 @@ exports.core = { } }, /** * Cancels the local notification with the given ID. * * @param {String} id * Local notification ID */ cancelLocalNotification: function (id) { var notifier = this.getToastNotifier(), history = this.getToastHistory(), toasts = this.getScheduledToasts(); history.remove('Toast' + id); for (var i = 0; i < toasts.length; i++) { var toast = toasts[i]; if (toast.id == id || toast.id == id + '-2') { notifier.removeFromSchedule(toast); } } }, /** * Cancels all notifications. */ Loading Loading @@ -268,7 +283,7 @@ exports.core = { * Lists all local notification IDs. */ getAllIds: function () { var toasts = this.getScheduledToast(), var toasts = this.getScheduledToasts(), ids = []; for (var i = 0; i < toasts.length; i++) { Loading @@ -284,7 +299,7 @@ exports.core = { * Lists all scheduled notification IDs. */ getScheduledIds: function () { var toasts = this.getScheduledToast(), var toasts = this.getScheduledToasts(), ids = []; for (var i = 0; i < toasts.length; i++) { Loading @@ -303,7 +318,7 @@ exports.core = { * Lists all scheduled notification IDs. */ getTriggeredIds: function () { var toasts = this.getScheduledToast(), var toasts = this.getScheduledToasts(), ids = []; for (var i = 0; i < toasts.length; i++) { Loading @@ -328,7 +343,7 @@ exports.core = { * Local notification life cycle type */ getAll: function (ids, type) { var toasts = this.getScheduledToast(), var toasts = this.getScheduledToasts(), notifications = []; if (ids.length === 0) { Loading
src/windows/LocalNotificationProxy.js +1 −1 Changes for src/windows/LocalNotificationProxy.js: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ * Executes all queued events. */ exports.deviceready = function () { exports.core.deviceready(); }; /** Loading
src/windows/LocalNotificationUtil.js +26 −5 Changes for src/windows/LocalNotificationUtil.js: 26 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -29,6 +29,11 @@ exports = require('de.appplant.cordova.plugin.local-notification.LocalNotificati // True if App is running, false if suspended exports.isInBackground = true; // Indicates if the device is ready (to receive events) exports.isReady = false; // Queues all events before deviceready exports.eventQueue = []; /******** * UTIL * Loading Loading @@ -158,7 +163,7 @@ exports.getToastNotifier = function () { * * @return Array */ exports.getScheduledToast = function () { exports.getScheduledToasts = function () { return this.getToastNotifier().getScheduledToastNotifications(); }; Loading Loading @@ -229,7 +234,7 @@ exports.isToastTriggered = function (toast) { * @param Object */ exports.findToastById = function (id) { var toasts = this.getScheduledToastNotifications(); var toasts = this.getScheduledToasts(); for (var i = 0; i < toasts.length; i++) { var toast = toasts[i]; Loading Loading @@ -284,12 +289,19 @@ exports.getApplicationState = function () { */ exports.fireEvent = function (event, notification) { var plugin = cordova.plugins.notification.local.core, state = this.getApplicationState(); state = this.getApplicationState(), args; if (notification) { plugin.fireEvent(event, notification, state); args = [event, notification, state]; } else { args = [event, state]; } if (this.isReady) { plugin.fireEvent.apply(plugin, args); } else { plugin.fireEvent(event, state); this.eventQueue.push(args); } }; Loading @@ -312,3 +324,12 @@ document.addEventListener('resume', function () { document.addEventListener('deviceready', function () { exports.isInBackground = false; }, false); // Handle onclick event WinJS.Application.addEventListener('activated', function (args) { var id = args.detail.arguments, notification = exports.getAll([id])[0]; exports.clearLocalNotification(id); exports.fireEvent('click', notification); }, false);