location: Split out PermissionStore
It doesn't make sense to tie the proxy code for flatpak's permission store to the location indicator, just because that was the first component to use it, so split it into a separate module. https://bugzilla.gnome.org/show_bug.cgi?id=780252
This commit is contained in:
parent
74e1058183
commit
9cc1e6b85c
@ -23,6 +23,7 @@
|
|||||||
<file>misc/modemManager.js</file>
|
<file>misc/modemManager.js</file>
|
||||||
<file>misc/objectManager.js</file>
|
<file>misc/objectManager.js</file>
|
||||||
<file>misc/params.js</file>
|
<file>misc/params.js</file>
|
||||||
|
<file>misc/permissionStore.js</file>
|
||||||
<file>misc/smartcardManager.js</file>
|
<file>misc/smartcardManager.js</file>
|
||||||
<file>misc/util.js</file>
|
<file>misc/util.js</file>
|
||||||
<file>misc/weather.js</file>
|
<file>misc/weather.js</file>
|
||||||
|
30
js/misc/permissionStore.js
Normal file
30
js/misc/permissionStore.js
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||||
|
|
||||||
|
const Gio = imports.gi.Gio;
|
||||||
|
|
||||||
|
const PermissionStoreIface = '<node> \
|
||||||
|
<interface name="org.freedesktop.impl.portal.PermissionStore"> \
|
||||||
|
<method name="Lookup"> \
|
||||||
|
<arg name="table" type="s" direction="in"/> \
|
||||||
|
<arg name="id" type="s" direction="in"/> \
|
||||||
|
<arg name="permissions" type="a{sas}" direction="out"/> \
|
||||||
|
<arg name="data" type="v" direction="out"/> \
|
||||||
|
</method> \
|
||||||
|
<method name="Set"> \
|
||||||
|
<arg name="table" type="s" direction="in"/> \
|
||||||
|
<arg name="create" type="b" direction="in"/> \
|
||||||
|
<arg name="id" type="s" direction="in"/> \
|
||||||
|
<arg name="app_permissions" type="a{sas}" direction="in"/> \
|
||||||
|
<arg name="data" type="v" direction="in"/> \
|
||||||
|
</method> \
|
||||||
|
</interface> \
|
||||||
|
</node>';
|
||||||
|
|
||||||
|
const PermissionStoreProxy = Gio.DBusProxy.makeProxyWrapper(PermissionStoreIface);
|
||||||
|
|
||||||
|
function PermissionStore(initCallback, cancellable) {
|
||||||
|
return new PermissionStoreProxy(Gio.DBus.session,
|
||||||
|
'org.freedesktop.impl.portal.PermissionStore',
|
||||||
|
'/org/freedesktop/impl/portal/PermissionStore',
|
||||||
|
initCallback, cancellable);
|
||||||
|
};
|
@ -9,6 +9,7 @@ const Main = imports.ui.main;
|
|||||||
const PanelMenu = imports.ui.panelMenu;
|
const PanelMenu = imports.ui.panelMenu;
|
||||||
const PopupMenu = imports.ui.popupMenu;
|
const PopupMenu = imports.ui.popupMenu;
|
||||||
const ModalDialog = imports.ui.modalDialog;
|
const ModalDialog = imports.ui.modalDialog;
|
||||||
|
const PermissionStore = imports.misc.permissionStore;
|
||||||
const Shell = imports.gi.Shell;
|
const Shell = imports.gi.Shell;
|
||||||
const Signals = imports.signals;
|
const Signals = imports.signals;
|
||||||
const St = imports.gi.St;
|
const St = imports.gi.St;
|
||||||
@ -62,26 +63,6 @@ var AgentIface = '<node> \
|
|||||||
</interface> \
|
</interface> \
|
||||||
</node>';
|
</node>';
|
||||||
|
|
||||||
var PermissionStoreIface = '<node> \
|
|
||||||
<interface name="org.freedesktop.impl.portal.PermissionStore"> \
|
|
||||||
<method name="Lookup"> \
|
|
||||||
<arg name="table" type="s" direction="in"/> \
|
|
||||||
<arg name="id" type="s" direction="in"/> \
|
|
||||||
<arg name="permissions" type="a{sas}" direction="out"/> \
|
|
||||||
<arg name="data" type="v" direction="out"/> \
|
|
||||||
</method> \
|
|
||||||
<method name="Set"> \
|
|
||||||
<arg name="table" type="s" direction="in"/> \
|
|
||||||
<arg name="create" type="b" direction="in"/> \
|
|
||||||
<arg name="id" type="s" direction="in"/> \
|
|
||||||
<arg name="app_permissions" type="a{sas}" direction="in"/> \
|
|
||||||
<arg name="data" type="v" direction="in"/> \
|
|
||||||
</method> \
|
|
||||||
</interface> \
|
|
||||||
</node>';
|
|
||||||
|
|
||||||
const PermissionStore = Gio.DBusProxy.makeProxyWrapper(PermissionStoreIface);
|
|
||||||
|
|
||||||
const Indicator = new Lang.Class({
|
const Indicator = new Lang.Class({
|
||||||
Name: 'LocationIndicator',
|
Name: 'LocationIndicator',
|
||||||
Extends: PanelMenu.SystemIndicator,
|
Extends: PanelMenu.SystemIndicator,
|
||||||
@ -253,10 +234,7 @@ const Indicator = new Lang.Class({
|
|||||||
|
|
||||||
_connectToPermissionStore: function() {
|
_connectToPermissionStore: function() {
|
||||||
this._permStoreProxy = null;
|
this._permStoreProxy = null;
|
||||||
new PermissionStore(Gio.DBus.session,
|
new PermissionStore.PermissionStore(Lang.bind(this, this._onPermStoreProxyReady), null);
|
||||||
'org.freedesktop.impl.portal.PermissionStore',
|
|
||||||
'/org/freedesktop/impl/portal/PermissionStore',
|
|
||||||
Lang.bind(this, this._onPermStoreProxyReady));
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_onPermStoreProxyReady: function(proxy, error) {
|
_onPermStoreProxyReady: function(proxy, error) {
|
||||||
|
Loading…
Reference in New Issue
Block a user