diff options
Diffstat (limited to 'src/accounts-service-user.vala')
-rw-r--r-- | src/accounts-service-user.vala | 458 |
1 files changed, 229 insertions, 229 deletions
diff --git a/src/accounts-service-user.vala b/src/accounts-service-user.vala index 25b19ee..fee5fe9 100644 --- a/src/accounts-service-user.vala +++ b/src/accounts-service-user.vala @@ -18,251 +18,251 @@ */ public class AccountsServiceUser : Object { - Act.UserManager accounts_manager = Act.UserManager.get_default(); - Act.User? user = null; - AccountsServiceSoundSettings? proxy = null; + Act.UserManager accounts_manager = Act.UserManager.get_default(); + Act.User? user = null; + AccountsServiceSoundSettings? proxy = null; #if HAS_UT_ACCTSERVICE_PRIVACY_SETTINGS - AccountsServicePrivacySettings? privacyproxy = null; + AccountsServicePrivacySettings? privacyproxy = null; #endif #if HAS_UT_ACCTSERVICE_SYSTEMSOUND_SETTINGS - AccountsServiceSystemSoundSettings? syssoundproxy = null; + AccountsServiceSystemSoundSettings? syssoundproxy = null; #endif - uint timer = 0; - MediaPlayer? _player = null; - GreeterBroadcast? greeter = null; - - public bool showDataOnGreeter { get; set; } - - bool _silentMode = false; - public bool silentMode { - get { - return _silentMode; - } - set { - _silentMode = value; + uint timer = 0; + MediaPlayer? _player = null; + GreeterBroadcast? greeter = null; + + public bool showDataOnGreeter { get; set; } + + bool _silentMode = false; + public bool silentMode { + get { + return _silentMode; + } + set { + _silentMode = value; #if HAS_UT_ACCTSERVICE_SYSTEMSOUND_SETTINGS - if (syssoundproxy != null) - syssoundproxy.silent_mode = value; + if (syssoundproxy != null) + syssoundproxy.silent_mode = value; #endif - } - } - - public MediaPlayer? player { - set { - this._player = value; - debug("New player: %s", this._player != null ? this._player.name : "Cleared"); - - /* No proxy, no settings to set */ - if (this.proxy == null) { - debug("Nothing written to Accounts Service, waiting on proxy"); - return; - } - - /* Always reset the timer */ - if (this.timer != 0) { - GLib.Source.remove(this.timer); - this.timer = 0; - } - - if (this._player == null) { - debug("Clearing player data in accounts service"); - - /* Clear it */ - this.proxy.player_name = ""; - this.proxy.timestamp = 0; - this.proxy.title = ""; - this.proxy.artist = ""; - this.proxy.album = ""; - this.proxy.art_url = ""; - - var icon = new ThemedIcon.with_default_fallbacks ("application-default-icon"); - this.proxy.player_icon = icon.serialize(); - } else { - this.proxy.timestamp = GLib.get_monotonic_time(); - this.proxy.player_name = this._player.name; - - /* Serialize the icon if it exits, if it doesn't or errors then - we need to use the application default icon */ - GLib.Variant? icon_serialization = null; - if (this._player.icon != null) - icon_serialization = this._player.icon.serialize(); - if (icon_serialization == null) { - var icon = new ThemedIcon.with_default_fallbacks ("application-default-icon"); - icon_serialization = icon.serialize(); - } - this.proxy.player_icon = icon_serialization; - - /* Set state of the player */ - this.proxy.running = this._player.is_running; - this.proxy.state = this._player.state; - - if (this._player.current_track != null) { - this.proxy.title = this._player.current_track.title; - this.proxy.artist = this._player.current_track.artist; - this.proxy.album = this._player.current_track.album; - this.proxy.art_url = this._player.current_track.art_url; - } else { - this.proxy.title = ""; - this.proxy.artist = ""; - this.proxy.album = ""; - this.proxy.art_url = ""; - } - - this.timer = GLib.Timeout.add_seconds(5 * 60, () => { - debug("Writing timestamp"); - this.proxy.timestamp = GLib.get_monotonic_time(); - return true; - }); - } - } - get { - return this._player; - } - } - - public AccountsServiceUser () { - user = accounts_manager.get_user(GLib.Environment.get_user_name()); - user.notify["is-loaded"].connect(() => user_loaded_changed()); - user_loaded_changed(); - - Bus.get_proxy.begin<GreeterBroadcast> ( - BusType.SYSTEM, - "org.ayatana.Desktop.Greeter.Broadcast", - "/org/ayatana/Desktop/Greeter/Broadcast", - DBusProxyFlags.NONE, - null, - greeter_proxy_new); - } - - void user_loaded_changed () { - debug("User loaded changed"); - - this.proxy = null; - - if (this.user.is_loaded) { - Bus.get_proxy.begin<AccountsServiceSoundSettings> ( - BusType.SYSTEM, - "org.freedesktop.Accounts", - user.get_object_path(), - DBusProxyFlags.GET_INVALIDATED_PROPERTIES, - null, - new_sound_proxy); + } + } + + public MediaPlayer? player { + set { + this._player = value; + debug("New player: %s", this._player != null ? this._player.name : "Cleared"); + + /* No proxy, no settings to set */ + if (this.proxy == null) { + debug("Nothing written to Accounts Service, waiting on proxy"); + return; + } + + /* Always reset the timer */ + if (this.timer != 0) { + GLib.Source.remove(this.timer); + this.timer = 0; + } + + if (this._player == null) { + debug("Clearing player data in accounts service"); + + /* Clear it */ + this.proxy.player_name = ""; + this.proxy.timestamp = 0; + this.proxy.title = ""; + this.proxy.artist = ""; + this.proxy.album = ""; + this.proxy.art_url = ""; + + var icon = new ThemedIcon.with_default_fallbacks ("application-default-icon"); + this.proxy.player_icon = icon.serialize(); + } else { + this.proxy.timestamp = GLib.get_monotonic_time(); + this.proxy.player_name = this._player.name; + + /* Serialize the icon if it exits, if it doesn't or errors then + we need to use the application default icon */ + GLib.Variant? icon_serialization = null; + if (this._player.icon != null) + icon_serialization = this._player.icon.serialize(); + if (icon_serialization == null) { + var icon = new ThemedIcon.with_default_fallbacks ("application-default-icon"); + icon_serialization = icon.serialize(); + } + this.proxy.player_icon = icon_serialization; + + /* Set state of the player */ + this.proxy.running = this._player.is_running; + this.proxy.state = this._player.state; + + if (this._player.current_track != null) { + this.proxy.title = this._player.current_track.title; + this.proxy.artist = this._player.current_track.artist; + this.proxy.album = this._player.current_track.album; + this.proxy.art_url = this._player.current_track.art_url; + } else { + this.proxy.title = ""; + this.proxy.artist = ""; + this.proxy.album = ""; + this.proxy.art_url = ""; + } + + this.timer = GLib.Timeout.add_seconds(5 * 60, () => { + debug("Writing timestamp"); + this.proxy.timestamp = GLib.get_monotonic_time(); + return true; + }); + } + } + get { + return this._player; + } + } + + public AccountsServiceUser () { + user = accounts_manager.get_user(GLib.Environment.get_user_name()); + user.notify["is-loaded"].connect(() => user_loaded_changed()); + user_loaded_changed(); + + Bus.get_proxy.begin<GreeterBroadcast> ( + BusType.SYSTEM, + "org.ayatana.Desktop.Greeter.Broadcast", + "/org/ayatana/Desktop/Greeter/Broadcast", + DBusProxyFlags.NONE, + null, + greeter_proxy_new); + } + + void user_loaded_changed () { + debug("User loaded changed"); + + this.proxy = null; + + if (this.user.is_loaded) { + Bus.get_proxy.begin<AccountsServiceSoundSettings> ( + BusType.SYSTEM, + "org.freedesktop.Accounts", + user.get_object_path(), + DBusProxyFlags.GET_INVALIDATED_PROPERTIES, + null, + new_sound_proxy); #if HAS_UT_ACCTSERVICE_PRIVACY_SETTINGS - 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<AccountsServicePrivacySettings> ( + BusType.SYSTEM, + "org.freedesktop.Accounts", + user.get_object_path(), + DBusProxyFlags.GET_INVALIDATED_PROPERTIES, + null, + new_privacy_proxy); #endif #if HAS_UT_ACCTSERVICE_SYSTEMSOUND_SETTINGS - Bus.get_proxy.begin<AccountsServiceSystemSoundSettings> ( - BusType.SYSTEM, - "org.freedesktop.Accounts", - user.get_object_path(), - DBusProxyFlags.GET_INVALIDATED_PROPERTIES, - null, - new_system_sound_proxy); + Bus.get_proxy.begin<AccountsServiceSystemSoundSettings> ( + BusType.SYSTEM, + "org.freedesktop.Accounts", + user.get_object_path(), + DBusProxyFlags.GET_INVALIDATED_PROPERTIES, + null, + new_system_sound_proxy); #endif - } - } - - ~AccountsServiceUser () { - debug("Account Service Object Finalizing"); - this.player = null; - - if (this.timer != 0) { - GLib.Source.remove(this.timer); - this.timer = 0; - } - } - - void new_sound_proxy (GLib.Object? obj, AsyncResult res) { - try { - this.proxy = Bus.get_proxy.end (res); - this.player = _player; - } catch (Error e) { - this.proxy = null; - warning("Unable to get proxy to user sound settings: %s", e.message); - } - } + } + } + + ~AccountsServiceUser () { + debug("Account Service Object Finalizing"); + this.player = null; + + if (this.timer != 0) { + GLib.Source.remove(this.timer); + this.timer = 0; + } + } + + void new_sound_proxy (GLib.Object? obj, AsyncResult res) { + try { + this.proxy = Bus.get_proxy.end (res); + this.player = _player; + } catch (Error e) { + this.proxy = null; + warning("Unable to get proxy to user sound settings: %s", e.message); + } + } #if HAS_UT_ACCTSERVICE_PRIVACY_SETTINGS - 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_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); + } + } #endif #if HAS_UT_ACCTSERVICE_SYSTEMSOUND_SETTINGS - 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 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); + } + } #endif - void greeter_proxy_new (GLib.Object? obj, AsyncResult res) { - try { - this.greeter = Bus.get_proxy.end (res); - - this.greeter.SoundPlayPause.connect((username) => { - if (username != GLib.Environment.get_user_name()) - return; - if (this._player == null) - return; - this._player.play_pause(); - }); - - this.greeter.SoundNext.connect((username) => { - if (username != GLib.Environment.get_user_name()) - return; - if (this._player == null) - return; - this._player.next(); - }); - - this.greeter.SoundPrev.connect((username) => { - if (username != GLib.Environment.get_user_name()) - return; - if (this._player == null) - return; - this._player.previous(); - }); - } catch (Error e) { - this.greeter = null; - warning("Unable to get greeter proxy: %s", e.message); - } - } + void greeter_proxy_new (GLib.Object? obj, AsyncResult res) { + try { + this.greeter = Bus.get_proxy.end (res); + + this.greeter.SoundPlayPause.connect((username) => { + if (username != GLib.Environment.get_user_name()) + return; + if (this._player == null) + return; + this._player.play_pause(); + }); + + this.greeter.SoundNext.connect((username) => { + if (username != GLib.Environment.get_user_name()) + return; + if (this._player == null) + return; + this._player.next(); + }); + + this.greeter.SoundPrev.connect((username) => { + if (username != GLib.Environment.get_user_name()) + return; + if (this._player == null) + return; + this._player.previous(); + }); + } catch (Error e) { + this.greeter = null; + warning("Unable to get greeter proxy: %s", e.message); + } + } } |