CarStrings' placeholder pattern escaped its opening brace and left the
closing one bare. Desktop java.util.regex reads a lone "}" as a literal;
Android compiles through ICU, which refuses it. So the companion object
threw PatternSyntaxException the first time anything touched it, which is
VaultScreen's constructor, which is every car screen there is — the host
bound the service, the app died, and the head unit sat black with nothing
in the log but a clean bind.
i18n.dart, which this is the twin of, escapes both. Do the same.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>