Skip to content

feat(island): add navigation plugin and settings to island - #1369

Open
isaacsa51 wants to merge 3 commits into
sameerasw:developfrom
isaacsa51:feat/island/navigation_plugin_connection
Open

isaacsa51 wants to merge 3 commits into
sameerasw:developfrom
isaacsa51:feat/island/navigation_plugin_connection

Conversation

@isaacsa51

@isaacsa51 isaacsa51 commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Description

Enable navigation popup on island when any type of navigation.

Navigation only accepts ongoing notifications that pass isNavigationNotification. That means the channel ID is in the navigation channel list or contains "navigation", or the category contains "navigation".

Maps' Live Update has a progress bar, so it would also qualify for the progress ring. While the island and its Navigation item are on, extractLatestProgressNotification skips navigation notifications, so the progress plugin doesn't show it a second time.

Inside the changes a couple of settings can be enabled inside the toggle:
image

  • New instruction: This options ask the user the behaviour of the island when an going change of direction is headed at. By default this expands the island with all info. (the user can set the island to only Line peek the info, or do nothing)
  • Expand before turn: Kinda self explanatory.
  • Line peek after expanding: Once the user pass a direction and collapses by default, this renders the island with the line peek info, off by default.

This implementation was only tested on a real device and on an emulator with no issues, Waze doesn't create any notification with nav info apart of the only persistent notification to keep the app alive.

Type of change

  • Bug fix
  • New feature
  • UI / visual update
  • Performance improvement
  • Refactoring / cleanup
  • Translations
  • Build / CI tooling

UI changes

Screen-20261012-181522-1791853972543.Mp4.2.mp4
Screen_recording_20261013_115734.webm

Checklist

Before submitting, please make sure:

  • The base branch is set to develop (not main).
  • The app builds cleanly locally with ./gradlew assembleDebug.
  • Unit tests pass with ./gradlew testDebugUnitTest.
  • You tested the changes on a device or emulator (including Shizuku or Root if applicable).
  • New preferences use SettingsRepository for keys and getter/setter methods.
  • New user-facing settings are registered in FeatureRegistry.kt for search indexing.
  • New UI follows the design system in ui/core/ (RoundedCardContainer, IconToggleItem, etc.).
  • Strings are added to res/values/strings.xml and drawables use rounded variants (R.drawable.rounded_*).

…gation_plugin_connection

# Conflicts:
#	app/src/main/java/com/sameerasw/essentials/data/repository/SettingsRepository.kt
#	app/src/main/java/com/sameerasw/essentials/domain/registry/FeatureRegistry.kt
#	app/src/main/java/com/sameerasw/essentials/island/service/IslandCoordinator.kt
#	app/src/main/java/com/sameerasw/essentials/ui/features/display/IslandSettingsUI.kt
#	app/src/main/java/com/sameerasw/essentials/viewmodels/MainViewModel.kt
#	app/src/main/res/values/strings.xml
@isaacsa51
isaacsa51 marked this pull request as ready for review October 13, 2026 22:35
@isaacsa51
isaacsa51 requested a review from sameerasw as a code owner October 13, 2026 22:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

1 participant