Review of "Prayer Times" version 17

Details Page Preview

Highly customizable and efficient prayer time and athan reminder extension for Gnome. ** Features: Sources: - Manual location (latitude and longitude) - Automatic location (with fallback to manual location) - Mawaqit to display local mosque times (with a toggle for fallback to auto or otherwise manual location) Location Calculations: - Preset and custom Fajr & Isha angles - Asr shadow lengths - High latitude Fajr and Isha correction (1/2 of night, 1/7th of night, and angle based) - Optionally include sunnah prayers (Duha) Notifications: - Send notifications for prayers - Play a shorter version of an athan for prayers - Reminders before prayer time Indicator types: - Countdown to next prayer - Time of the next prayer Translations: Arabic

Extension Homepage
https://github.com/Mocab/Prayer-times-gnome-extension

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) warning 3

Shexli found 3 issues that may need reviewer attention.

EGO-L-001 warning

extension must not create GObject instances or modify shell before enable()

Resource creation or signal/source setup was found outside `enable()`.

Only use initialization for static resources

  • extension.js:61
    this._clockSignalId = this._wallClock.connect("notify::clock", () => this._tick())
  • extension.js:61
    this._wallClock.connect("notify::clock", () => this._tick())
  • extension.js:141
    this._geoclueService = new GeoclueService(this.metadata.name, this.onLocationChanged.bind(this))

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

  • setting-manager.js:138
            this._gSettingListener.calcMethod = this._gSettings.connect("changed::preset-methods", () => {
                chooseCalcMethod();
                this._reloadExtensionMain();
            })
  • setting-manager.js:40
                notification.connect("destroy", (_notification, reason) => {
                    if (reason === MessageTray.NotificationDestroyedReason.DISMISSED) this._gSettings.set_int("version-cache", metadata.version);
                })

EGO-L-006 warning

preferences classes should not retain window-scoped objects on instance fields without close-request cleanup

Preferences code stores window-scoped objects on the exported prefs class without `close-request` cleanup.

Destroy all objects

  • prefs.js:240
    this._settingsSignalId = gSettings.connect("changed::mawaqit-slug", () => updateMosqueTitle(getBaseMosqueTitle()))

All Versions

Previous Reviews on this Version

JustPerfection active