Review of "Advanced Media Controller" version 5

Details Page Preview

Take control of all your music and media from one stylish spot in your GNOME panel — no more switching windows just to skip a track. 🎵 What it does • Play, pause, skip, shuffle and repeat without opening any app • Works with Spotify, YouTube, VLC, Rhythmbox, browsers and anything that supports MPRIS • Handles multiple players at once — switch between them with tabs in the popup 🎨 Vinyl Record Effect • Double-click the album art to turn any app's cover into a spinning vinyl disc • Animated tonearm glides in when music plays and parks when it stops • Each app remembers its own vinyl setting independently — Spotify can spin while your browser stays flat 🎤 Time-Synced Lyrics ← NEW • Triple-click the album art to instantly show scrolling lyrics for the current song • Lyrics are fetched automatically from lrclib.net (free, no account needed) • Active line is highlighted and centred; the view scrolls smoothly as the song progresses • Single-click anywhere on the lyrics panel to go back to the album art • Each player tab remembers its own lyrics preference independently ✨ More highlights • Panel shows current track and artist with smooth marquee scrolling • Browser web apps (YouTube Music, Spotify Web, SoundCloud) tracked separately per tab • All seen apps are remembered — re-enable vinyl or lyrics for any of them at any time • Clean native GNOME design — fits perfectly in any shell theme

Extension Homepage
https://github.com/Sanjai-Shaarugesh/Advanced-media-controller

No comments.

Diff Against

Files

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

All Versions

Version Status
17 Unreviewed
16 Rejected
15 Active
14 Active
13 Active
12 Active
11 Rejected
10 Rejected
9 Rejected
8 Active
7 Active
6 Rejected
5 Rejected
4 Rejected
3 Rejected
2 Rejected
1 Rejected

Previous Reviews on this Version

sanjai posted a review
Fixed the issues
sanjai posted a review
Can you review it fast please
sanjai posted a review
removed unnecessary files
sanjai posted a review
review it , if it's needed any change kindly mention it , please review it fast
JustPerfection rejected
Please don't expect fast reviews for 3572 lines of code, especially when you didn't address the requested fixes in version 3. 1. Please remove `messages.mo`: [EGO Review Guidelines: unnecessary files](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#don-t-include-unnecessary-files) 2. Please remove `schemas/gschemas.compiled`. Not needed for 45+ packages. 3. Remove `utils/locale.js`. Also no need for translation initiation since it happens automatically. So, remove: - line 10 `extension.js` - line 12 `prefs.js` 4. Please follow our rules for clipboard: [EGO Review Guidelines: Clipboard](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#clipboard-access-must-be-declared) 5. Use `console.*` instead of `log()`. Logs should be only available on debug mode. For debug use `console.debug()` instead of `console.log()`: [Port Guide 45: Logging](https://gjs.guide/extensions/upgrading/gnome-shell-45.html#logging) 6. Timeout should be removed on destroy and before creating a new one. - line 51, 61 `utils/indicator/IndicatorState.js` - line 233, 226, 271, 283 `utils/mpris/MprisPlayer.js` - line 109, 191, 400 `utils/mpris/MprisManager.js` - line 60 `utils/indicator/IndicatorPlayerHandlers.js` [EGO Review Guidelines: Timeout](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#remove-main-loop-sources) 7. You shouldn't monitor `is_destroyed` (line 175 `utils/indicator.js`). The instance is either destroyed and nulled out or it is not destroyed. 8. Destroy shouldn't use timeout to destroy (line 220 `utils/indicator.js`). 9. Unnecessary try-catch are simply indication of AI generated code: [EGO Review Guidelines: AI](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#extensions-must-not-be-ai-generated) To give you an example, line 174-234 `utils/indicator.js`. 10. Extensions cannot use `run_dispose()` (line 285 `utils/mpris/MprisPlayer.js`): [EGO Review Guidelines: run_dispose](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#extensions-should-not-force-dispose-a-gobject) 11. Not clear that `stopScrolling()` is called on instances when extension is disabled (line 107 `utils/indicator/PanelUI.js`). 12. Everything you are connecting in `utils/indicator/IndicatorEventHandlers.js` should be disconnected on destroy/disable. I guess you are doing that in other files but each class should be responsible for what it does, so it is easy to follow for the reviewers. Connecting in one file and disconnecting in another is not easy to follow and review. Please fix them.