messageList: Use GObject properties for Message
This will allow us to use property bindings. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3173>
This commit is contained in:

committed by
Florian Müllner

parent
ffaec5615a
commit
f0e863f529
@ -21,11 +21,11 @@ const MPRIS_PLAYER_PREFIX = 'org.mpris.MediaPlayer2.';
|
||||
|
||||
export const MediaMessage = GObject.registerClass(
|
||||
class MediaMessage extends MessageList.Message {
|
||||
_init(player) {
|
||||
super._init(player.source, '', '');
|
||||
this.add_style_class_name('media-message');
|
||||
constructor(player) {
|
||||
super(player.source);
|
||||
|
||||
this._player = player;
|
||||
this.add_style_class_name('media-message');
|
||||
|
||||
this._prevButton = this.addMediaControl('media-skip-backward-symbolic',
|
||||
() => {
|
||||
@ -58,16 +58,20 @@ class MediaMessage extends MessageList.Message {
|
||||
}
|
||||
|
||||
_update() {
|
||||
this.setTitle(this._player.trackTitle);
|
||||
this.setBody(this._player.trackArtists.join(', '));
|
||||
|
||||
let icon;
|
||||
if (this._player.trackCoverUrl) {
|
||||
const file = Gio.File.new_for_uri(this._player.trackCoverUrl);
|
||||
this.setIcon(new Gio.FileIcon({file}));
|
||||
icon = new Gio.FileIcon({file});
|
||||
} else {
|
||||
this.setIcon(new Gio.ThemedIcon({name: 'audio-x-generic-symbolic'}));
|
||||
icon = new Gio.ThemedIcon({name: 'audio-x-generic-symbolic'});
|
||||
}
|
||||
|
||||
this.set({
|
||||
title: this._player.trackTitle,
|
||||
body: this._player.trackArtists.join(', '),
|
||||
icon,
|
||||
});
|
||||
|
||||
let isPlaying = this._player.status === 'Playing';
|
||||
let iconName = isPlaying
|
||||
? 'media-playback-pause-symbolic'
|
||||
|
Reference in New Issue
Block a user