Review of "Advanced Media Controller" version 5

Details Page Preview

Media controls for the GNOME Shell panel. Works with any MPRIS player (Spotify, VLC, Rhythmbox, browsers) and lets you switch between several players from tabs in the popup. * Play, pause, skip, shuffle and repeat * Track and artist in the panel with a scrolling label * Optional vinyl record effect on the album art, set per app (double-click the art) * Time-synced lyrics fetched from lrclib.net (single-click the art) * Seekable progress slider with selectable themes * Panel label font, colour and element order settings

Extension Homepage
https://codeberg.org/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.

Shexli (experimental)

Shexli has not produced a result yet.

All Versions

Version Status
6.6 (44) Active
6.6 (43) Active
6.6 (42) Rejected
6.6 (41) Rejected
6.6 (40) Active
6.6 (39) Rejected
6.6 (38) Rejected
6.6 (37) Rejected
6.6 (36) Rejected
6.6 (35) Rejected
6.6 (34) Rejected
6.6 (33) Rejected
6.6 (32) Rejected
6.5 (31) Active
6.5 (30) Rejected
6.5 (29) Rejected
6.5 (28) Rejected
6.5 (27) Rejected
6.5 (26) Rejected
6.5 (25) Rejected
6.5 (24) Rejected
6.0 (23) Rejected
6.0 (22) Rejected
6.0 (21) Rejected
20 Active
19 Rejected
18 Rejected
17 Active
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.