diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 3b4a70be33ebf01ed8c37cdff7e93ceb0471aef2..a89ede4e3bad077ba26b5128c6ab8861854bcdb7 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -9,6 +9,11 @@ and this project adheres to `Semantic Versioning`_. Unreleased ---------- +Changed +~~~~~~~ + +* PWA icons can now be marked maskable + Fixed ~~~~~ diff --git a/aleksis/core/preferences.py b/aleksis/core/preferences.py index fe29f220f211616bf57d08c04e87a95b60c84365..f1fb0227eab16a152f29918e91b37d0808471812 100644 --- a/aleksis/core/preferences.py +++ b/aleksis/core/preferences.py @@ -112,6 +112,17 @@ class PWAIcon(PublicFilePreferenceMixin, FilePreference): required = False +@site_preferences_registry.register +class PWAIconMaskable(BooleanPreference): + """PWA icon is maskable.""" + + section = theme + name = "pwa_icon_maskable" + verbose_name = _("PWA-Icon is maskable") + default = True + required = False + + @site_preferences_registry.register class MailOutName(StringPreference): """Mail out name of your AlekSIS instance.""" diff --git a/aleksis/core/views.py b/aleksis/core/views.py index ec38875ad876f6cc7f6b8943a70254a28704195b..539807bf19434b3ae812afe9fa8f317063be8654 100644 --- a/aleksis/core/views.py +++ b/aleksis/core/views.py @@ -175,6 +175,7 @@ class ManifestView(View): { "src": favicon_img.faviconImage.url, "sizes": f"{favicon_img.size}x{favicon_img.size}", + "purpose": "maskable" if prefs["theme__pwa_icon_maskable"] else "any", } for favicon_img in pwa_imgs ]