Review of "MusicBar" version 1.1 (1)

Details Page Preview

Compact media controls for the top bar that follow the colors of the current cover art. Works with Spotify and any MPRIS player. * Previous, play/pause and next in a small pill, with the song position drawn as a ring around it * Hover the pill for a popup with large cover art, title, artist, album, year and genre, a scrubber, shuffle, repeat and volume * Click the cover to bring the player to the front * Scroll over the pill to skip tracks or seek * Six open animations, adjustable opacity and tinting * Optional: like songs, add them to playlists and see Smart Shuffle with your own Spotify developer app Network access: cover art is downloaded from the URL the player provides. Year and genre are looked up on musicbrainz.org (artist, title and album are sent) when the player does not provide them; this can be turned off in the settings. Spotify account features only talk to the Spotify Web API after you connect your account.

Extension Homepage
https://github.com/JorGra/musicbar

No comments.

FAQ

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental) error 1 warning 2

Shexli found 3 issues that may need reviewer attention.

EGO-L-003 warning

signals connected by extension should be disconnected in disable()

Signals assigned in `enable()` are missing matching disconnect calls in `disable()` or its helper methods.

Disconnect all signals

  • extension.js:90
    this._indicator.connect('destroy', actor => this._onActorDestroyed(actor))
  • extension.js:91
    this._indicator.connect('notify::hover', () => this._syncHover())
  • extension.js:27
    this._manager.connect('active-changed', () => this._onActiveChanged())
  • extension.js:28
    this._manager.connect('changed', () => this._sync())
  • extension.js:30
    this._manager.connect('position-changed', () => this._updateProgress())
  • extension.js:29
    this._manager.connect('track-changed', () => this._sync())
  • extension.js:42
    this._popup.connect('destroy', actor => this._onActorDestroyed(actor))
  • extension.js:44
    this._popup.connect('drag-changed', () => this._syncHover())
  • extension.js:43
    this._popup.connect('hover-changed', () => this._syncHover())

EGO-L-004 warning

main loop sources should be removed in disable()

Main loop sources assigned in `enable()` are missing matching removals in `disable()` or its helper methods.

Remove main loop sources

  • extension.js:209
                    this._closeId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
                        Math.max(1, this._settings.get_int('close-delay')), () => {
                            this._closeId = 0;
                            this._popup.close();
                            return GLib.SOURCE_REMOVE;
             
  • extension.js:199
                    this._openId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
                        Math.max(1, this._settings.get_int('open-delay')), () => {
                            this._openId = 0;
                            this._popup.open(this._indicator);
                            return GLib.SOURCE_REMOVE
  • extension.js:146
                this._tickId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, TICK_INTERVAL, () => {
                    sinceResync += TICK_INTERVAL;
                    if (sinceResync >= RESYNC_INTERVAL) {
                        sinceResync = 0;
                        this._manager.active?.resync();
                    }
       

EGO-M-004 error

metadata shell-version must only include plausible stable releases and at most one development release

Field `shell-version` contains invalid values, more than one development release, or implausible future releases.

metadata.json must be well-formed

  • metadata.json
    shell-version=['50', '51']

All Versions

Version Status
1.1 (1) Unreviewed