diff options
author | Ted Gould <ted@gould.cx> | 2015-02-09 16:35:05 -0600 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2015-02-09 16:35:05 -0600 |
commit | 043af330ce48ea89d820e50c1f915ac9a9b278c6 (patch) | |
tree | aebf63cde3efe8cb7e7998e87505bddaf4b5eb32 | |
parent | 99ccf6fa240695e7b5f22bcc2637d5f72c96d241 (diff) | |
download | ayatana-indicator-sound-043af330ce48ea89d820e50c1f915ac9a9b278c6.tar.gz ayatana-indicator-sound-043af330ce48ea89d820e50c1f915ac9a9b278c6.tar.bz2 ayatana-indicator-sound-043af330ce48ea89d820e50c1f915ac9a9b278c6.zip |
Make it so that the accounts service object is made outside of the service object
-rw-r--r-- | src/main.c | 5 | ||||
-rw-r--r-- | src/service.vala | 7 | ||||
-rw-r--r-- | tests/notifications-test.cc | 2 |
3 files changed, 8 insertions, 6 deletions
@@ -22,19 +22,22 @@ main (int argc, char ** argv) { notify_init ("indicator-sound"); MediaPlayerList * playerlist = NULL; + AccountsServiceUser * accounts = NULL; if (g_strcmp0("lightdm", g_get_user_name()) == 0) { playerlist = MEDIA_PLAYER_LIST(media_player_list_greeter_new()); } else { playerlist = MEDIA_PLAYER_LIST(media_player_list_mpris_new()); + accounts = accounts_service_user_new(); } VolumeControlPulse * volume = volume_control_pulse_new(); - service = indicator_sound_service_new (playerlist, volume); + service = indicator_sound_service_new (playerlist, volume, accounts); result = indicator_sound_service_run (service); g_object_unref(playerlist); + g_clear_object(&accounts); g_object_unref(service); return result; diff --git a/src/service.vala b/src/service.vala index c63f5c0..c6f318b 100644 --- a/src/service.vala +++ b/src/service.vala @@ -18,7 +18,7 @@ */ public class IndicatorSound.Service: Object { - public Service (MediaPlayerList playerlist, VolumeControl volume) { + public Service (MediaPlayerList playerlist, VolumeControl volume, AccountsServiceUser? accounts) { sync_notification = new Notify.Notification(_("Volume"), "", "audio-volume-muted"); this.notification_server_watch = GLib.Bus.watch_name(GLib.BusType.SESSION, "org.freedesktop.Notifications", @@ -34,10 +34,9 @@ public class IndicatorSound.Service: Object { this.volume_control = volume; + this.accounts_service = accounts; /* If we're on the greeter, don't export */ - if (GLib.Environment.get_user_name() != "lightdm") { - this.accounts_service = new AccountsServiceUser(); - + if (this.accounts_service != null) { this.accounts_service.notify["showDataOnGreeter"].connect(() => { this.export_to_accounts_service = this.accounts_service.showDataOnGreeter; eventually_update_player_actions(); diff --git a/tests/notifications-test.cc b/tests/notifications-test.cc index 6e531fd..c738027 100644 --- a/tests/notifications-test.cc +++ b/tests/notifications-test.cc @@ -91,7 +91,7 @@ class NotificationsTest : public ::testing::Test TEST_F(NotificationsTest, BasicObject) { auto playerList = std::shared_ptr<MediaPlayerList>(MEDIA_PLAYER_LIST(media_player_list_mock_new()), [](MediaPlayerList * list){g_clear_object(&list);}); auto volumeControl = std::shared_ptr<VolumeControl>(VOLUME_CONTROL(volume_control_mock_new()), [](VolumeControl * control){g_clear_object(&control);}); - auto soundService = std::shared_ptr<IndicatorSoundService>(indicator_sound_service_new(playerList.get(), volumeControl.get()), [](IndicatorSoundService * service){g_clear_object(&service);}); + auto soundService = std::shared_ptr<IndicatorSoundService>(indicator_sound_service_new(playerList.get(), volumeControl.get(), nullptr), [](IndicatorSoundService * service){g_clear_object(&service);}); /* Give some time settle */ loop(50); |