Skip to content

feat: show dynamic island on lock screen - #267

Open
DevIP98 wants to merge 6 commits into
D4vidDf:masterfrom
DevIP98:feature/lockscreen-island
Open

feat: show dynamic island on lock screen#267
DevIP98 wants to merge 6 commits into
D4vidDf:masterfrom
DevIP98:feature/lockscreen-island

Conversation

@DevIP98

@DevIP98 DevIP98 commented Aug 26, 2026

Copy link
Copy Markdown

📝 Summary

This PR introduces a user-configurable "Show on Lock Screen" toggle that configures notification visibility across all HyperBridge island builders and system notification channels.

✨ What's Changed

  1. User Preference (AppPreferences):

    • Added show_island_on_lockscreen (boolean, defaults to true).
    • Exposed reactive flow showIslandOnLockscreenFlow and synchronous getter.
  2. Notification Visibility (NotificationReaderService & WidgetOverlayService):

    • Explicitly configured NotificationChannel.lockscreenVisibility = Notification.VISIBILITY_PUBLIC across all created channels (NOTIFICATION_CHANNEL_ID, WIDGET_CHANNEL_ID, LIVE_UPDATE_CHANNEL_ID).
    • Added NotificationCompat.VISIBILITY_PUBLIC to standard notification builders, native live update builders, and widget overlay builders when the setting is enabled.
  3. UI Integration:

    • Settings: Added a dedicated "Show on Lock Screen" toggle card inside PermanentIslandConfigScreen.
    • Onboarding: Integrated the lock screen toggle directly into the PermanentIslandConfigPage step in OnboardingScreen.
  4. Localization:

    • Added string resources in English (values/strings.xml) and Spanish (values-es-rES/strings.xml).

📱 Notes on HyperOS Compatibility

  • On HyperOS versions and ROMs with strict Keyguard policies, status bar cutout elements are prioritized for live content notifications. Setting VISIBILITY_PUBLIC ensures that notifications and live activities are allowed to show content on the lock screen for supported ROMs/regions.

🖼️ Screenshots

Settings Screen Onboarding Screen
(Attach your settings screenshot here) (Attach your onboarding screenshot here)

Add a new user-configurable toggle 'Show on Lock Screen' that controls
whether HyperBridge islands (standard, live update, widget, and permanent)
are visible on the device lock screen.

Implementation:
- New preference 'show_island_on_lockscreen' (default: true) in AppPreferences
- Set NotificationCompat.VISIBILITY_PUBLIC on all notification builders
  when the preference is enabled, so HyperOS renders focus notifications
  on the keyguard
- New toggle in Permanent Island config screen (applies to all islands)
- Added English and Spanish string resources

Closes: N/A (new feature)
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