Index: lib/notificationHelper.js |
=================================================================== |
--- a/lib/notificationHelper.js |
+++ b/lib/notificationHelper.js |
@@ -24,6 +24,13 @@ |
let {initAntiAdblockNotification} = require("antiadblockInit"); |
let activeNotification = null; |
+let displayMethods = { |
Sebastian Noack
2015/09/09 17:38:57
Please use Object.create(null) for objects used as
|
+ _default: ["popup"], |
Sebastian Noack
2015/09/09 17:38:57
There is no reason why this is a prefixed property
|
+ critical: ["icon", "notification", "popup"], |
+ question: ["notification"], |
+ normal: ["notification"], |
+ information: ["icon", "popup"] |
+}; |
// Chrome on Linux does not fully support chrome.notifications until version 35 |
// https://code.google.com/p/chromium/issues/detail?id=291485 |
@@ -42,7 +49,7 @@ |
function prepareNotificationIconAndPopup() |
{ |
- let animateIcon = (activeNotification.type != "question"); |
+ let animateIcon = shouldDisplay("icon", activeNotification.type); |
activeNotification.onClicked = function() |
{ |
if (animateIcon) |
@@ -135,7 +142,7 @@ |
return; |
activeNotification = notification; |
- if (activeNotification.type == "critical" || activeNotification.type == "question") |
+ if (shouldDisplay("notification", activeNotification.type)) |
{ |
let texts = NotificationStorage.getLocalizedTexts(notification); |
let title = texts.title || ""; |
@@ -239,4 +246,19 @@ |
return activeNotification; |
}; |
+/** |
+ * Determines whether a given display method should be used for a |
+ * specified notification type. |
+ * |
+ * @param {string} method Display method: icon, notification or popup |
+ * @param {string} notificationType |
+ * @return {boolean} |
+ */ |
+exports.shouldDisplay = shouldDisplay; |
+function shouldDisplay(method, notificationType) |
+{ |
+ let methods = displayMethods[notificationType] || displayMethods._default; |
+ return methods.indexOf(method) > -1; |
Sebastian Noack
2015/09/09 17:38:57
If you use objects for these "lists", you can use
|
+} |
+ |
NotificationStorage.addShowListener(showNotification); |