20 Commits
Author SHA1 Message Date
shihabal3amri 49d3f92799 Merge dashboard settings into the language branch with localized controls 2026-09-29 19:27:03 +04:00
georgiyrrandClaude Opus 5.5 11bc01c6e2 Let the dashboard show the turn card instead of the map
The iPhone lists three cluster contents in its /info altScreenURLs: the
map, an instruction (turn) card and "instrumentcluster", which draws the
map with the turn card on it. A new "Dashboard shows" choice picks the
one DiPlay asks for as the alt screen's initial URL; the map stays the
default. On the tested car the turn card fit the Small screen navi
window well and streamed 0–5 kbit/s against 0.3–4 Mbit/s for the map.

The iPhone lays out the map, the car marker and the card inside the
same safe area, so the existing position settings move whichever is
shown; they are now labelled "Car marker" or "Turn card" to match.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 16:55:38 +02:00
georgiyrrandClaude Opus 5.5 c3faa630a4 Call the instrument cluster the dashboard in settings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 11:21:35 +02:00
shihabal3amri 3273fbd428 Fix app locale synchronization, missing translations and audio routing guards 2026-09-29 11:08:58 +04:00
baileileicn c9aaf09810 i18n P5: move language section below About in settings
The language section at the top of the settings list pushed the audio
routing Save button below the fold and broke the UI regression scroll
anchors. Moving it after About restores the baseline layout above the
audio section; regression 26/26 and language smoke 27/27 pass.
2026-09-29 12:02:35 +08:00
baileileicn 25a59e4ada i18n P4: add Arabic, Russian and Spanish translations
- values-ar / values-ru / values-es for common (387 keys each; brand and
  technical keys intentionally fall back to English) and shared module
- Format specifiers verified identical to the English source
- zh-rCN coverage confirmed at 399/399
2026-09-29 10:23:25 +08:00
baileileicn a8555309b2 i18n P3: locale config + residual UI string resourceization
- Add res/xml/locales_config.xml and android:localeConfig for Android 13+
  per-app language settings (en, zh-CN, ar, ru, es)
- Resourceize 60 residual UI strings missed by P2 (settings preview panel,
  hotspot status view, connection hints, cluster marker labels, status
  stages, share/clipboard labels)
- Localize ClusterMapPresentation waiting placeholder and Car App screen
  titles (shared module strings)
2026-09-29 10:15:01 +08:00
baileileicn 9a4c03e2ec i18n P2: resourceize 361 hardcoded UI strings in 3 activities (en + zh-rCN)
- Replace UI literals with getString(R.string.*) across DiPlayActivity,
  CarPlayHostActivity, ImageCropActivity (316 keys + 15 parameterized keys)
- Generate values/strings.xml (338 entries) and values-zh-rCN/strings.xml
- Parameterize templates (SSID/version/suffix prefixes) with format args
- Merge concatenated Android 9/MFi hint strings into single resources
- Protect leading/trailing spaces via \\u0020 so AAPT does not trim them
- Rename reserved resource name 'native' to 'resolution_native'
2026-09-29 09:58:27 +08:00
baileileicn 2b33c3de35 P1: app language mechanism (AppLocale + attachBaseContext + language picker + host recreate check) 2026-09-29 09:29:12 +08:00
baileileicn e85285e03d Route guidance audio through a selectable navigation stream type
CarPlay marks guidance audio apart from media, but the sink always built
its AudioTrack from usage/content-type attributes. On head units that
expose navigation on a dedicated mixer output, guidance shares the media
channels, so the next turn is announced over the music in every seat.
BYD puts navigation on stream type 14, the driver-side speaker.

Add an "Audio routing" section with a 0-20 stream type grid and a test
tone, persist the selection, and build the AudioTrack on that stream
type. When the ROM rejects the stream type the track is rebuilt from
usage attributes, so devices without such an output keep today's
behavior (the diagnostic log reports route=usage or
route=streamType=N(fallback=usage)).

The advanced audio channel mapping switch is now visible on the mobile
flavor too, still off by default, so usage/content-type routing can be
picked at runtime instead of by editing resources, and the automotive
map routes default and compatibility to the navigation bus rather than
sharing media.
2026-09-29 01:00:43 +00:00
shihabal3amri 76e10ce8fe Simplify built-in hotspot setup and add guided cluster access 2026-09-28 21:11:47 +04:00
shihabal3amri 9edcf527ce Integrate current PR marker controls while preserving the DiLink 5.1 stream 2026-09-27 21:51:35 +04:00
shihabal3amri 3001bdebff Fix DiLink 5.1 cluster themes and standalone local hotspot playback 2026-09-27 21:50:37 +04:00
georgiyrrandClaude Opus 5.5 d87152ca9f Drop the cluster preview from settings
The worded horizontal/vertical choices are clear on their own, so the
settings page keeps them and the reset button without the drawing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 17:11:09 +02:00
georgiyrrandClaude Opus 5.5 ac75c94c25 Place the cluster car marker in the measured clear area
Replace the manual bottom/right insets with a measured safe area. A
calibration grid on the cluster showed what BYD draws over the
projection area in Full screen navi (status row, ADAS icons and lane
view, speed/power readouts, bottom band) and that Small screen navi
crops the panel to a centre window. The panel centre, x 35-64 % and
y 16-75 %, is clear in both modes, so the car sits there by default;
the owner confirmed it centred in both modes.

"Car marker · horizontal" (Left 40 % … Right 40 %) and "Car marker ·
vertical" (Up 30 % … Down 30 %) move the marker in 10 % steps. The safe
area keeps its size around the marker and shrinks only near a panel
edge. Settings show a small drawing of the cluster with BYD's readouts
and the marker, and a reset button.

"Cluster map size" sets the stream to 100, 83 (default, 1600x600 on
1920x720) or 67 % of the panel; the cluster scales it up, so the map
grows while staying sharp at 83 %. Apple Maps ignores the reported
physical size on the cluster, so that stays fixed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 16:56:02 +02:00
georgiyrrandClaude Opus 5.5 9a1cd52e4e Reconnect cluster map changes over the current link
The cluster position choices already reconnect through "Apply and
reconnect", so they no longer trigger a second reconnect. The on/off
switch now reconnects over the session's own link instead of always
forcing wireless, which could move a USB session to Wi-Fi.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 15:20:12 +02:00
georgiyrrandClaude Opus 5.5 700fde7ebf Show the CarPlay instrument-cluster map on BYD clusters
When a BYD cluster projection display is visible to the app, DiPlay can
declare CarPlay's second (instrument cluster) screen, ask Apple Maps for
its cluster map through initialURL, and render stream 111 in a
Presentation on the shared projection display. The driver picks Small or
Full screen navi in the cluster's own menu; no ADB is needed.

Safe-area insets place the car marker. The defaults (25 % from the
bottom, about 1/9 to the left) fit the tested DiLink 5.0 cluster. The
feature is opt-in and marked experimental.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 12:05:45 +02:00
shihabal3amri 949d67c0e1 Release 0.2.0 with standalone BYD HUD and connection fixes 2026-09-27 11:00:07 +04:00
georgiyrr 94c7563d88 Add BYD navigation and connection improvements 2026-09-26 14:29:03 +02:00
shihabal3amri 3b67c80b0a Reset public source after withdrawing credential-bearing release 2026-09-25 13:38:35 +04:00