Skip to content

feat(duo): add Duo notification peek with tap-to-view - #990

Merged
sameerasw merged 2 commits into
sameerasw:feature/islandfrom
WingsDavis:duo-notification-peek
Sep 13, 2026
Merged

feat(duo): add Duo notification peek with tap-to-view#990
sameerasw merged 2 commits into
sameerasw:feature/islandfrom
WingsDavis:duo-notification-peek

Conversation

@WingsDavis

Copy link
Copy Markdown

Overview

Adds an interactive notification peek pill to Duo around the camera cutout for incoming notifications with heads-up / default priority.

Incoming notifications morph out smoothly from the Duo ring into an OLED-black status capsule with vibrant accent borders extracted dynamically from the posting app.

Key Changes

  • Morphing Notification Capsule: Expands smoothly from the camera cutout with subtle bouncy spring dynamics.
  • Adaptive App Color Accent: Automatically extracts the notification/app accent color using the notification palette or falls back to Duo's active progress color.
  • Single-Line Readable Text: Displays the notification preview (sender and message) in a clean, vertically centered single line with app name deduplication.
  • Camera Cutout Spacing: Generous breathing margin (30dp) on both wings ensuring zero overlap with the punch-hole lens or the Duo progress ring.
  • Tap-to-View & Interactive Launch:
    • Tapping the notification pill dispatches contentIntent with Background Activity Launch permissions.
    • Automatic fallback to main activity launch or expanding notification shade if pending intent is restricted.
  • Swipe Gestures:
    • Swipe Down: Expands the system notification shade for full details.
    • Swipe Up: Dismisses the notification peek early.
  • Settings Toggle: Added toggle under Settings > Display > Duo > Notification peek backed by reactive state in SettingsRepository and FeatureRegistry.

Testing

  • Tested on Google Pixel 9 running Android 17.
  • Verified touch dispatch, app launching, dismiss swipe, and battery margin avoidance.
  • Verified string validation across all 74 locale files (scripts/validate_strings.py: 0 errors).

@sameerasw
sameerasw self-requested a review September 13, 2026 18:17
@sameerasw sameerasw added the enhancement New feature or request label Sep 13, 2026
@sameerasw sameerasw moved this from Backlog to In review in Essentials Progress Sep 13, 2026
@sameerasw
sameerasw changed the base branch from develop to feature/island September 13, 2026 18:27
@sameerasw

Copy link
Copy Markdown
Owner

A change of plan. Since many users are now asking for basically a dynamic island implementation, I will consider that as a feature.

The existing status glance will become "Island" feature in the future so this PR will need some modifications to point to that feature instead.

Plus there are a lot of UI inconsistency and some stuff that I'd like to see changed... but I guess I can handle that after merging as this is a new feature.

Because of this, i will merge the PR into a feature branch and will start modifying there and update.

@sameerasw sameerasw left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your contributions <3

@sameerasw
sameerasw merged commit 82f2d3c into sameerasw:feature/island Sep 13, 2026
1 check passed
@github-project-automation github-project-automation Bot moved this from In review to Done in Essentials Progress Sep 13, 2026
@WingsDavis

Copy link
Copy Markdown
Author

Sounds good. Thanks for the update and for merging the PR into the feature branch.

Please let me know once the branch is updated or if you need me to help with any of the UI adjustments and modifications for the Island feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants