feat: add object to subscribe notification callback (#19110)

This commit is contained in:
Louis Rose 2019-07-11 18:06:31 +01:00 committed by Jeremy Apthorp
parent 6d34314457
commit 79114ff40a
3 changed files with 18 additions and 4 deletions

View file

@ -67,7 +67,8 @@ class SystemPreferences : public mate::EventEmitter<SystemPreferences>
#elif defined(OS_MACOSX)
using NotificationCallback =
base::RepeatingCallback<void(const std::string&,
const base::DictionaryValue&)>;
const base::DictionaryValue&,
const std::string&)>;
void PostNotification(const std::string& name,
const base::DictionaryValue& user_info,

View file

@ -210,13 +210,22 @@ int SystemPreferences::DoSubscribeNotification(
usingBlock:^(NSNotification* notification) {
std::unique_ptr<base::DictionaryValue> user_info =
NSDictionaryToDictionaryValue(notification.userInfo);
std::string object = "";
if ([notification.object isKindOfClass:[NSString class]]) {
object = base::SysNSStringToUTF8(notification.object);
}
if (user_info) {
copied_callback.Run(
base::SysNSStringToUTF8(notification.name), *user_info);
base::SysNSStringToUTF8(notification.name),
*user_info,
object);
} else {
copied_callback.Run(
base::SysNSStringToUTF8(notification.name),
base::DictionaryValue());
base::DictionaryValue(),
object);
}
}];
return request_id;