naughty: display the client-supplied localized action description in UI

According to the Desktop Notification specification document [1] the
clients supply actions available along with a notification in a form of
a list of pairs where first element is an identifier of an action and
the second is a localized message that will be displayed to the user.

Up to now the naughty code directly used the action identifier text as a
part of the notification layout exposed to the user. This commit makes
use of a localized action description for that purpose.

1) https://developer.gnome.org/notification-spec/
This commit is contained in:
Jajauma 2016-05-12 00:17:40 +03:00
parent c1d9e58f94
commit b1dbbb0041
1 changed files with 8 additions and 12 deletions

View File

@ -137,24 +137,20 @@ capi.dbus.connect_signal("org.freedesktop.Notifications", function (data, appnam
if actions then
args.actions = {}
local actionid
-- create actions callbacks
for i , v in ipairs(actions) do
if i % 2 == 1 then
actionid = v
elseif actionid == "default" then
for i = 1,#actions,2 do
local action_id = actions[i]
local action_text = actions[i + 1]
if action_id == "default" then
args.run = function()
sendActionInvoked(notification.id, "default")
naughty.destroy(notification, naughty.notificationClosedReason.dismissedByUser)
end
actionid = nil
elseif actionid ~= nil then
local action = actionid
args.actions[actionid] = function()
sendActionInvoked(notification.id, action)
elseif action_id ~= nil and action_text ~= nil then
args.actions[action_text] = function()
sendActionInvoked(notification.id, action_id)
naughty.destroy(notification, naughty.notificationClosedReason.dismissedByUser)
end
actionid = nil
end
end
end