[gnome-shell] bluetooth: Port to BlueZ 5



commit dd74ea99a70fb0c4615b448670a4a1d0b843eab4
Author: Emilio Pozuelo Monfort <emilio pozuelo collabora co uk>
Date:   Wed May 22 16:27:02 2013 +0200

    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

 js/ui/status/bluetooth.js |   44 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 39 insertions(+), 5 deletions(-)
---
diff --git a/js/ui/status/bluetooth.js b/js/ui/status/bluetooth.js
index f4610c7..bcc853b 100644
--- a/js/ui/status/bluetooth.js
+++ b/js/ui/status/bluetooth.js
@@ -86,6 +86,7 @@ const Indicator = new Lang.Class({
         this._applet.connect('pincode-request', Lang.bind(this, this._pinRequest));
         this._applet.connect('confirm-request', Lang.bind(this, this._confirmRequest));
         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));
     },
 
@@ -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._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) {
@@ -316,6 +322,34 @@ const AuthNotification = new Lang.Class({
     Name: 'AuthNotification',
     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) {
         this.parent(source,
                     _("Bluetooth"),
@@ -334,14 +368,14 @@ const AuthNotification = new Lang.Class({
         this.connect('action-invoked', Lang.bind(this, function(self, action) {
             switch (action) {
             case 'always-grant':
-                this._applet.agent_reply_auth(this._devicePath, true, true);
+                this._applet.agent_reply_auth_service(this._devicePath, true, true);
                 break;
             case 'grant':
-                this._applet.agent_reply_auth(this._devicePath, true, false);
+                this._applet.agent_reply_auth_service(this._devicePath, true, false);
                 break;
             case 'reject':
             default:
-                this._applet.agent_reply_auth(this._devicePath, false, false);
+                this._applet.agent_reply_auth_service(this._devicePath, false, false);
             }
             this.destroy();
         }));


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]