fix(notification): give reminders Calendula's own status-bar mark (#83)

The status bar draws a notification's small icon from its alpha channel
alone, so the silhouette is all that distinguishes an app there — and ours
was the stock Material "event" glyph, the same shape the system's date
surfaces and every other calendar app use.

Redrawn at 24dp from the launcher mark rather than scaled down from it: the
numeral is dropped and the bloom's petals are filled instead of stroked,
both of which turn to mush at this size. The bloom is sized and placed for
legibility over fidelity, and the calendar body's opening is derived from
where the bloom would collide with it.

The shade needs no change — since Android 12 its header shows the launcher
icon, which is already unmistakable.
This commit is contained in:
2026-07-31 19:59:40 +02:00
parent 94d989537d
commit fea5a58428
3 changed files with 67 additions and 5 deletions

View File

@@ -17,6 +17,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
a start gets the default too; one that names its own end — an `.ics` file, a
duplicate — keeps that length. All-day events are unaffected ([#54]).
### Changed
- A reminder in the status bar is now Calendula's own mark — the calendar with
the bloom — instead of the generic calendar glyph it shared with the system's
date surfaces and every other calendar app. The status bar draws that icon as
a plain silhouette, so its shape is the only thing that could tell them apart
([#83]).
## [2.17.1] — 2026-07-30
### Added
@@ -1259,6 +1266,7 @@ automatically, with zero telemetry and no internet permission.
[#79]: https://codeberg.org/jlmakiola/calendula/issues/79
[#81]: https://codeberg.org/jlmakiola/calendula/issues/81
[#82]: https://codeberg.org/jlmakiola/calendula/issues/82
[#83]: https://codeberg.org/jlmakiola/calendula/issues/83
[#87]: https://codeberg.org/jlmakiola/calendula/issues/87
[#89]: https://codeberg.org/jlmakiola/calendula/issues/89
[#103]: https://codeberg.org/jlmakiola/calendula/issues/103

View File

@@ -1,12 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Monochrome status-bar mark: Material "event" calendar glyph. -->
<!--
Status-bar mark for reminders (issue #83). Calendula's own mark, not the
stock Material "event" glyph it replaces: the status bar draws a small icon
from its alpha channel alone, so the silhouette is the only thing that can
tell Calendula apart from the system's date surfaces and every other
calendar app.
Redrawn for 24dp from design/icon/calendula_notification.svg rather than
scaled down from the launcher mark — the numeral "1" is dropped and the
bloom's petals are filled instead of stroked, both of which turn to mush at
this size. Stays opaque white on transparent; any colour here is discarded.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
android:viewportHeight="24">
<!-- Calendar body, left open at the bottom-right where the bloom sits -->
<path
android:fillColor="@android:color/white"
android:pathData="M19,3h-1V1h-2v2H8V1H6v2H5C3.89,3 3.01,3.9 3.01,5L3,19c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2V5C21,3.9 20.1,3 19,3zM19,19H5V8h14V19zM7,10h5v5H7V10z" />
android:strokeColor="#FFFFFFFF"
android:strokeWidth="1.9"
android:strokeLineCap="round"
android:strokeLineJoin="round"
android:pathData="M1.4,5.4H18.6M18.6,9.43V4.7C18.6,2.99 17.21,1.6 15.5,1.6H4.5C2.79,1.6 1.4,2.99 1.4,4.7V15.7C1.4,17.41 2.79,18.8 4.5,18.8H9.63" />
<!-- Calendula bloom: eight filled petals around a filled centre -->
<path
android:fillColor="#FFFFFFFF"
android:pathData="M17.6,16.35Q20.42,18.65 23.25,16.35Q20.42,14.05 17.6,16.35Z" />
<path
android:fillColor="#FFFFFFFF"
android:pathData="M17.26,17.16Q17.63,20.79 21.26,21.16Q20.89,17.53 17.26,17.16Z" />
<path
android:fillColor="#FFFFFFFF"
android:pathData="M16.45,17.5Q14.15,20.33 16.45,23.15Q18.75,20.33 16.45,17.5Z" />
<path
android:fillColor="#FFFFFFFF"
android:pathData="M15.64,17.16Q12.01,17.53 11.64,21.16Q15.27,20.79 15.64,17.16Z" />
<path
android:fillColor="#FFFFFFFF"
android:pathData="M15.3,16.35Q12.47,14.05 9.65,16.35Q12.47,18.65 15.3,16.35Z" />
<path
android:fillColor="#FFFFFFFF"
android:pathData="M15.64,15.54Q15.27,11.91 11.64,11.54Q12.01,15.17 15.64,15.54Z" />
<path
android:fillColor="#FFFFFFFF"
android:pathData="M16.45,15.2Q18.75,12.38 16.45,9.55Q14.15,12.38 16.45,15.2Z" />
<path
android:fillColor="#FFFFFFFF"
android:pathData="M17.26,15.54Q20.89,15.17 21.26,11.54Q17.63,11.91 17.26,15.54Z" />
<path
android:fillColor="#FFFFFFFF"
android:pathData="M16.45,13.85A2.5,2.5 0 1,1 16.45,18.85A2.5,2.5 0 1,1 16.45,13.85Z" />
</vector>

View File

@@ -0,0 +1,12 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.4 5.4H18.6M18.6 9.43V4.7C18.6 2.99 17.21 1.6 15.5 1.6H4.5C2.79 1.6 1.4 2.99 1.4 4.7V15.7C1.4 17.41 2.79 18.8 4.5 18.8H9.63" stroke="black" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M17.6 16.35Q20.42 18.65 23.25 16.35Q20.42 14.05 17.6 16.35Z" fill="black"/>
<path d="M17.26 17.16Q17.63 20.79 21.26 21.16Q20.89 17.53 17.26 17.16Z" fill="black"/>
<path d="M16.45 17.5Q14.15 20.33 16.45 23.15Q18.75 20.33 16.45 17.5Z" fill="black"/>
<path d="M15.64 17.16Q12.01 17.53 11.64 21.16Q15.27 20.79 15.64 17.16Z" fill="black"/>
<path d="M15.3 16.35Q12.47 14.05 9.65 16.35Q12.47 18.65 15.3 16.35Z" fill="black"/>
<path d="M15.64 15.54Q15.27 11.91 11.64 11.54Q12.01 15.17 15.64 15.54Z" fill="black"/>
<path d="M16.45 15.2Q18.75 12.38 16.45 9.55Q14.15 12.38 16.45 15.2Z" fill="black"/>
<path d="M17.26 15.54Q20.89 15.17 21.26 11.54Q17.63 11.91 17.26 15.54Z" fill="black"/>
<circle cx="16.45" cy="16.35" r="2.5" fill="black"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB