# Feature COMMS-1077 - Show the unread notification count on the installed application's icon

Project: Stream Communicator
Status: merged
URL: https://community.openproject.org/work_packages/COMMS-1077

## Planning

| Attribute | Value |
| --- | --- |
| Date |  |
| Priority | Medium |
| Target versions | Behind feature flag, 18.1.0, Passion time |
| Sprint |  |
| Backlog bucket |  |
| Votes |  |
| List |  |
| Roadmap |  |
| Relevance |  |

## OPEN POINTS / FEEDBACK

_No work packages_

## Features and Chunks

_No work packages_

## Bugs and other work packages

_No work packages_

## Technical Details

| Attribute | Value |
| --- | --- |
| Module |  |
| Feature Flag |  |
| Requires doc change | Yes |
| Enterprise plan | Community (COM) |

## Details

| Attribute | Value |
| --- | --- |
| Pull preview |  |
| Mockups |  |
| Accessibility | No |

## People

| Attribute | Value |
| --- | --- |
| Assignee |  |
| Accountable |  |
| Product manager |  |
| Developers | Kabiru Mwenja |
| Designer |  |
| Ordered by |  |
| Signed off by |  |
| Interest by |  |

## Estimates and progress

| Attribute | Value |
| --- | --- |
| PD (min) |  |
| PD (max) |  |
| Work |  |
| Labor costs |  |

## Description

**As** a person who uses OpenProject as an installed desktop application
**I want to** see my unread notification count on the application's icon
**so that** I notice new notifications alongside my other applications without bringing the window to the front.

**Acceptance criteria**

*   **Mirrors the bell**
    *   The dock or taskbar icon carries the same unread count as the notification bell while the application runs. A positive count sets the badge, capped at 99. A count of zero clears it.
    *   Signing out, or landing on a page without a bell, clears the badge.
*   **Stays current in the background**
    *   A hidden installed window refreshes the count every third polling interval instead of every tenth. Ordinary browser tabs keep the existing cadence.
*   **Progressive enhancement**
    *   Only active in a window running in standalone display mode, with the `progressive_web_app` feature flag on, in a browser that supports the Badging API. Elsewhere nothing happens and nothing errors.

**Technical notes**

*   An Angular `AppBadgeService` initialised after the configuration service, calling `navigator.setAppBadge` and `navigator.clearAppBadge`. The bell component feeds it the count and reads the background polling factor from it.
*   The flag is read from the active feature flags the frontend already receives; no new endpoint.

**Permissions and visibility considerations**

*   _To whom is this feature visible?_
    *   The signed-in user whose notifications the badge counts, on their own machine only.
*   _When is it not visible?_
    *   In a browser tab, in browsers without the Badging API, with the feature flag off, and when signed out.

**Translation considerations**

*   None. The badge is a number drawn by the operating system.

**Out of scope**

*   **Web push** and notifications while the application is closed: SE-694.
*   **Badges on browser tabs** or the favicon.
