Skip to content

Commit

Permalink
Add notifaciotion about now playing when app not active
Browse files Browse the repository at this point in the history
  • Loading branch information
Rirusha committed Mar 30, 2024
1 parent 6a25f9f commit 7985184
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 2 deletions.
30 changes: 30 additions & 0 deletions src/application.vala
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,8 @@ namespace Cassette {
application_state = ApplicationState.OFFLINE;
});

player.current_track_finish_loading.connect (show_now_playing_notif);

_application_state = (ApplicationState) settings.get_enum ("application-state");

settings.bind ("application-state", this, "application-state", SettingsBindFlags.DEFAULT);
Expand Down Expand Up @@ -187,6 +189,9 @@ namespace Cassette {
}
}

/**
* @param title works only with notification
*/
public void show_message (string message) {
if (main_window != null) {
if (main_window.is_active) {
Expand All @@ -200,6 +205,31 @@ namespace Cassette {
send_notification (null, ntf);
}

public void show_now_playing_notif (YaMAPI.Track track_info) {
if (main_window != null) {
if (main_window.is_active) {
return;
}
}

var ntf = new Notification (APP_NAME);

ntf.set_body ("%s%s - %s".printf (
track_info.title,
track_info.version != null ? @" $(track_info.version)" : "",
track_info.get_artists_names ()
));

ntf.set_title (_("Now playing"));

ntf.add_button (_("Prev"), "app.prev");
ntf.add_button (_("Next"), "app.next");

ntf.set_icon (new ThemedIcon ("io.github.Rirusha.Cassette-symbolic"));

send_notification ("now-playing", ntf);
}

void on_about_action () {
string[] developers = {
RIRUSHA
Expand Down
4 changes: 2 additions & 2 deletions src/client/player/player.vala
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ public class Cassette.Client.Player.Player : Object {
* Current track started loaded.
* Inteface can be released from block.
*/
public signal void current_track_finish_loading ();
public signal void current_track_finish_loading (YaMAPI.Track track_info);

public signal void playback_callback (double playback_pos_sec);

Expand Down Expand Up @@ -440,7 +440,7 @@ public class Cassette.Client.Player.Player : Object {
storager.clear_temp_track ();
}

current_track_finish_loading ();
current_track_finish_loading (current_track);

if (settings.get_boolean ("can-cache")) {
prepare_next_track ();
Expand Down

0 comments on commit 7985184

Please sign in to comment.