bluetooth: Port to BlueZ 5
In BlueZ 4, Authorize() was used to authorize both service and JustWorks authorization requests. In BlueZ 5 these two have been split into AuthorizeService() for services and RequestAuthorization for JustWorks devices. Adapt the Bluetooth code accordingly. https://bugzilla.gnome.org/show_bug.cgi?id=700891
This commit is contained in:
parent
c6fe6eb7ab
commit
dd74ea99a7
@ -86,6 +86,7 @@ const Indicator = new Lang.Class({
|
|||||||
this._applet.connect('pincode-request', Lang.bind(this, this._pinRequest));
|
this._applet.connect('pincode-request', Lang.bind(this, this._pinRequest));
|
||||||
this._applet.connect('confirm-request', Lang.bind(this, this._confirmRequest));
|
this._applet.connect('confirm-request', Lang.bind(this, this._confirmRequest));
|
||||||
this._applet.connect('auth-request', Lang.bind(this, this._authRequest));
|
this._applet.connect('auth-request', Lang.bind(this, this._authRequest));
|
||||||
|
this._applet.connect('auth-service-request', Lang.bind(this, this._authServiceRequest));
|
||||||
this._applet.connect('cancel-request', Lang.bind(this, this._cancelRequest));
|
this._applet.connect('cancel-request', Lang.bind(this, this._cancelRequest));
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -292,9 +293,14 @@ const Indicator = new Lang.Class({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_authRequest: function(applet, device_path, name, long_name, uuid) {
|
_authRequest: function(applet, device_path, name, long_name) {
|
||||||
this._ensureSource();
|
this._ensureSource();
|
||||||
this._source.notify(new AuthNotification(this._source, this._applet, device_path, name, long_name, uuid));
|
this._source.notify(new AuthNotification(this._source, this._applet, device_path, name, long_name));
|
||||||
|
},
|
||||||
|
|
||||||
|
_authServiceRequest: function(applet, device_path, name, long_name, uuid) {
|
||||||
|
this._ensureSource();
|
||||||
|
this._source.notify(new AuthServiceNotification(this._source, this._applet, device_path, name, long_name, uuid));
|
||||||
},
|
},
|
||||||
|
|
||||||
_confirmRequest: function(applet, device_path, name, long_name, pin) {
|
_confirmRequest: function(applet, device_path, name, long_name, pin) {
|
||||||
@ -316,6 +322,34 @@ const AuthNotification = new Lang.Class({
|
|||||||
Name: 'AuthNotification',
|
Name: 'AuthNotification',
|
||||||
Extends: MessageTray.Notification,
|
Extends: MessageTray.Notification,
|
||||||
|
|
||||||
|
_init: function(source, applet, device_path, name, long_name) {
|
||||||
|
this.parent(source,
|
||||||
|
_("Bluetooth"),
|
||||||
|
_("Authorization request from %s").format(name),
|
||||||
|
{ customContent: true });
|
||||||
|
this.setResident(true);
|
||||||
|
|
||||||
|
this._applet = applet;
|
||||||
|
this._devicePath = device_path;
|
||||||
|
this.addBody(_("Device %s wants to pair with this computer").format(long_name));
|
||||||
|
|
||||||
|
this.addButton('allow', _("Allow"));
|
||||||
|
this.addButton('deny', _("Deny"));
|
||||||
|
|
||||||
|
this.connect('action-invoked', Lang.bind(this, function(self, action) {
|
||||||
|
if (action == 'allow')
|
||||||
|
this._applet.agent_reply_confirm(this._devicePath, true);
|
||||||
|
else
|
||||||
|
this._applet.agent_reply_confirm(this._devicePath, false);
|
||||||
|
this.destroy();
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const AuthServiceNotification = new Lang.Class({
|
||||||
|
Name: 'AuthServiceNotification',
|
||||||
|
Extends: MessageTray.Notification,
|
||||||
|
|
||||||
_init: function(source, applet, device_path, name, long_name, uuid) {
|
_init: function(source, applet, device_path, name, long_name, uuid) {
|
||||||
this.parent(source,
|
this.parent(source,
|
||||||
_("Bluetooth"),
|
_("Bluetooth"),
|
||||||
@ -334,14 +368,14 @@ const AuthNotification = new Lang.Class({
|
|||||||
this.connect('action-invoked', Lang.bind(this, function(self, action) {
|
this.connect('action-invoked', Lang.bind(this, function(self, action) {
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case 'always-grant':
|
case 'always-grant':
|
||||||
this._applet.agent_reply_auth(this._devicePath, true, true);
|
this._applet.agent_reply_auth_service(this._devicePath, true, true);
|
||||||
break;
|
break;
|
||||||
case 'grant':
|
case 'grant':
|
||||||
this._applet.agent_reply_auth(this._devicePath, true, false);
|
this._applet.agent_reply_auth_service(this._devicePath, true, false);
|
||||||
break;
|
break;
|
||||||
case 'reject':
|
case 'reject':
|
||||||
default:
|
default:
|
||||||
this._applet.agent_reply_auth(this._devicePath, false, false);
|
this._applet.agent_reply_auth_service(this._devicePath, false, false);
|
||||||
}
|
}
|
||||||
this.destroy();
|
this.destroy();
|
||||||
}));
|
}));
|
||||||
|
Loading…
Reference in New Issue
Block a user