aboutsummaryrefslogtreecommitdiff
path: root/src/accounts-service-user.vala
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-12-07 12:10:26 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-12-07 12:10:26 +0100
commita162229fb1d77a1616dd7fed2b17ad6cbe038b12 (patch)
tree17a164d3467028819d04a4443723b8b6d43568ef /src/accounts-service-user.vala
parentd08b85f6382bda49d4b2830602369d5f9f76db89 (diff)
downloadayatana-indicator-sound-a162229fb1d77a1616dd7fed2b17ad6cbe038b12.tar.gz
ayatana-indicator-sound-a162229fb1d77a1616dd7fed2b17ad6cbe038b12.tar.bz2
ayatana-indicator-sound-a162229fb1d77a1616dd7fed2b17ad6cbe038b12.zip
Revert "com.ubuntu.touch: Drop system sound setting access and privacy settings access for now. Can be re-added later, if required."
This reverts commit 2a1a7325adc6d0bbb57d7ed4bcef90e1285e1eb5.
Diffstat (limited to 'src/accounts-service-user.vala')
-rw-r--r--src/accounts-service-user.vala60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/accounts-service-user.vala b/src/accounts-service-user.vala
index 496b67c..535f6c7 100644
--- a/src/accounts-service-user.vala
+++ b/src/accounts-service-user.vala
@@ -21,6 +21,8 @@ public class AccountsServiceUser : Object {
Act.UserManager accounts_manager = Act.UserManager.get_default();
Act.User? user = null;
AccountsServiceSoundSettings? proxy = null;
+ AccountsServicePrivacySettings? privacyproxy = null;
+ AccountsServiceSystemSoundSettings? syssoundproxy = null;
uint timer = 0;
MediaPlayer? _player = null;
GreeterBroadcast? greeter = null;
@@ -34,6 +36,8 @@ public class AccountsServiceUser : Object {
}
set {
_silentMode = value;
+ if (syssoundproxy != null)
+ syssoundproxy.silent_mode = value;
}
}
@@ -137,6 +141,22 @@ public class AccountsServiceUser : Object {
DBusProxyFlags.GET_INVALIDATED_PROPERTIES,
null,
new_sound_proxy);
+
+ Bus.get_proxy.begin<AccountsServicePrivacySettings> (
+ BusType.SYSTEM,
+ "org.freedesktop.Accounts",
+ user.get_object_path(),
+ DBusProxyFlags.GET_INVALIDATED_PROPERTIES,
+ null,
+ new_privacy_proxy);
+
+ Bus.get_proxy.begin<AccountsServiceSystemSoundSettings> (
+ BusType.SYSTEM,
+ "org.freedesktop.Accounts",
+ user.get_object_path(),
+ DBusProxyFlags.GET_INVALIDATED_PROPERTIES,
+ null,
+ new_system_sound_proxy);
}
}
@@ -160,6 +180,46 @@ public class AccountsServiceUser : Object {
}
}
+ void new_privacy_proxy (GLib.Object? obj, AsyncResult res) {
+ try {
+ this.privacyproxy = Bus.get_proxy.end (res);
+
+ (this.privacyproxy as DBusProxy).g_properties_changed.connect((proxy, changed, invalid) => {
+ var welcomeval = changed.lookup_value("MessagesWelcomeScreen", VariantType.BOOLEAN);
+ if (welcomeval != null) {
+ debug("Messages on welcome screen changed");
+ this.showDataOnGreeter = welcomeval.get_boolean();
+ }
+ });
+
+ this.showDataOnGreeter = this.privacyproxy.messages_welcome_screen;
+ } catch (Error e) {
+ this.privacyproxy = null;
+ warning("Unable to get proxy to user privacy settings: %s", e.message);
+ }
+ }
+
+ void new_system_sound_proxy (GLib.Object? obj, AsyncResult res) {
+ try {
+ this.syssoundproxy = Bus.get_proxy.end (res);
+
+ (this.syssoundproxy as DBusProxy).g_properties_changed.connect((proxy, changed, invalid) => {
+ var silentvar = changed.lookup_value("SilentMode", VariantType.BOOLEAN);
+ if (silentvar != null) {
+ debug("Silent Mode changed");
+ this._silentMode = silentvar.get_boolean();
+ this.notify_property("silentMode");
+ }
+ });
+
+ this._silentMode = this.syssoundproxy.silent_mode;
+ this.notify_property("silentMode");
+ } catch (Error e) {
+ this.syssoundproxy = null;
+ warning("Unable to get proxy to system sound settings: %s", e.message);
+ }
+ }
+
void greeter_proxy_new (GLib.Object? obj, AsyncResult res) {
try {
this.greeter = Bus.get_proxy.end (res);