From 810391f41ee6f8e1ea89fd6e9a9170728f0ee870 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 6 Feb 2024 18:48:02 +0100 Subject: [PATCH] messageTray: Add NotificationPolicy.newFromApp() We have several places where we create an application policy from an app if possible, and fall back to a generic policy otherwise. Make that more convenient by adding a small helper method. Part-of: --- js/ui/messageTray.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index d5cdf686e..abdc0982a 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -161,6 +161,24 @@ export const NotificationPolicy = GObject.registerClass({ GObject.ParamFlags.READABLE, false), }, }, class NotificationPolicy extends GObject.Object { + /** + * Create a new policy for app. + * + * This will be a NotificationApplicationPolicy for valid apps, + * or a NotificationGenericPolicy otherwise. + * + * @param {Shell.App=} app + * @returns {NotificationPolicy} + */ + static newForApp(app) { + // fallback to generic policy + if (!app?.get_app_info()) + return new NotificationGenericPolicy(); + + const id = app.get_id().replace(/\.desktop$/, ''); + return new NotificationApplicationPolicy(id); + } + // Do nothing for the default policy. These methods are only useful for the // GSettings policy. store() { }