Skip to content

notifications: group Android notification history by sender - #1973

Open
TheFallen058 wants to merge 9 commits into
coredevices:mainfrom
TheFallen058:feature/notification-history-grouping
Open

notifications: group Android notification history by sender#1973
TheFallen058 wants to merge 9 commits into
coredevices:mainfrom
TheFallen058:feature/notification-history-grouping

Conversation

@TheFallen058

@TheFallen058 TheFallen058 commented Aug 31, 2026

Copy link
Copy Markdown

Summary

  • Add optional sender-based grouping to notification history.
  • Support Never, 1 Day, 1 Week, and All grouping ranges.
  • Display grouped messages newest-first with existing notification actions.
  • Keep old, unsupported, and iOS notifications ungrouped.
  • Apply grouping only to history, not incoming notification popups.
  • Skip corrupt history records without hiding subsequent notifications.
  • Group Android titles formatted Conversation: Sender by conversation when sender metadata is unavailable.

Testing

  • Full unit suite: 332/332 passed
  • QEMU Gabbro firmware build passed
  • Pebble Time 2 (obelix@pvt) dual-slot release build passed
  • Sideloaded and manually verified on a retail Pebble Time 2 + Galaxy s25
  • clang-format and gitlint passed

Limitations

  • Grouping prefers Android sender metadata when available.
  • Otherwise, titles formatted Conversation: Sender use Conversation as the grouping key.
  • This title-prefix fallback can over-group unrelated Android notifications sharing the same prefix.
  • Grouping keys are not separated by application.
  • Dismissing an entire group is intentionally unsupported.

Compatibility

  • Android notifications are grouped using sender metadata or a Conversation: Sender title.
  • iOS/ANCS notifications remain ungrouped and retain existing history and dismissal behavior.

AI assistance

GPT-5.6 Sol assisted with implementation. Relevant commits contain
Co-authored-by trailers. The resulting behavior was manually tested on hardware.

Example:
Before:
image
After:
image
image
image

TheFallen058 and others added 8 commits August 30, 2026 18:01
Avoid deserializing notification payloads older than the grouping range.

Co-authored-by: GPT-5.6 Sol <noreply@openai.com>
Signed-off-by: Aliaksandr Karnilovich <thefallen058@gmail.com>
Persist Never, one-day, one-week, and all-history grouping options.

Co-authored-by: GPT-5.6 Sol <noreply@openai.com>
Signed-off-by: Aliaksandr Karnilovich <thefallen058@gmail.com>
Track notification IDs by sender while preserving chronological ordering and removal behavior.

Co-authored-by: GPT-5.6 Sol <noreply@openai.com>
Signed-off-by: Aliaksandr Karnilovich <thefallen058@gmail.com>
Display collapsed sender rows and open grouped notifications in a newest-first transcript.

Co-authored-by: GPT-5.6 Sol <noreply@openai.com>
Signed-off-by: Aliaksandr Karnilovich <thefallen058@gmail.com>
Attribute the new notification grouping sources and tests to their contributor.

Co-authored-by: GPT-5.6 Sol <noreply@openai.com>
Signed-off-by: Aliaksandr Karnilovich <thefallen058@gmail.com>
Localize grouped titles, align setting labels, and use checked sender allocation.

Co-authored-by: GPT-5.6 Sol <noreply@openai.com>
Signed-off-by: Aliaksandr Karnilovich <thefallen058@gmail.com>
Keep age-aware iteration moving so malformed records do not hide later notifications.

Co-authored-by: GPT-5.6 Sol <noreply@openai.com>
Signed-off-by: Aliaksandr Karnilovich <thefallen058@gmail.com>
Only switch to grouped history controls when a collapsed sender group exists,
so iOS and single-message histories retain navigation and dismiss-all behavior.

Co-authored-by: GPT-5.6 Sol <noreply@openai.com>
Signed-off-by: Aliaksandr Karnilovich <thefallen058@gmail.com>
@TheFallen058

TheFallen058 commented Aug 31, 2026

Copy link
Copy Markdown
Author

Related work

Related to #1970. This implementation additionally provides configurable age ranges, sender-based grouping, transcript view, iOS compatibility, storage optimizations, and unit coverage.

Use the text before a title's sender separator as a fallback conversation key
when the Android companion does not provide sender metadata.

Co-authored-by: GPT-5.6 Sol <noreply@openai.com>
Signed-off-by: Aliaksandr Karnilovich <thefallen058@gmail.com>
@gmarull
gmarull requested a review from ericmigi August 31, 2026 19:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant