fix(android): replace forbidden Unicode chars in win_summary and splash (#52, #53)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
funman300
2026-05-27 19:03:11 -07:00
parent a3b9293cd9
commit bd49364553
2 changed files with 15 additions and 15 deletions
+11 -11
View File
@@ -45,7 +45,7 @@
//! progress-bar caption, palette label, eight palette swatches, //! progress-bar caption, palette label, eight palette swatches,
//! version line). //! version line).
//! //!
//! The trailing " ready_" cursor pulse layers on top of the fade //! The trailing "| ready_" cursor pulse layers on top of the fade
//! by carrying both [`SplashFadableBg`] and [`SplashCursorPulse`]: //! by carrying both [`SplashFadableBg`] and [`SplashCursorPulse`]:
//! [`pulse_splash_cursor`] runs after [`advance_splash`] in the //! [`pulse_splash_cursor`] runs after [`advance_splash`] in the
//! schedule chain and overwrites the cursor's `BackgroundColor` //! schedule chain and overwrites the cursor's `BackgroundColor`
@@ -109,7 +109,7 @@ impl Plugin for SplashPlugin {
} }
} }
/// Period of the trailing " ready_" pulse cursor, in seconds. ~1 s /// Period of the trailing "| ready_" pulse cursor, in seconds. ~1 s
/// reads as a comfortable terminal-blink cadence — much faster reads /// reads as a comfortable terminal-blink cadence — much faster reads
/// as urgent (alarming on a hold-and-fade screen), much slower reads /// as urgent (alarming on a hold-and-fade screen), much slower reads
/// as listless. Held as a `const` rather than a token because it's /// as listless. Held as a `const` rather than a token because it's
@@ -157,7 +157,7 @@ struct SplashFadableBg {
base_color: Color, base_color: Color,
} }
/// Marks the trailing pulse cursor on the " ready_" line. Carries /// Marks the trailing pulse cursor on the "| ready_" line. Carries
/// `SplashFadableBg` too so it picks up the global fade-in / hold / /// `SplashFadableBg` too so it picks up the global fade-in / hold /
/// fade-out timeline; [`pulse_splash_cursor`] runs *after* /// fade-out timeline; [`pulse_splash_cursor`] runs *after*
/// [`advance_splash`] in the chain and overwrites the /// [`advance_splash`] in the chain and overwrites the
@@ -377,7 +377,7 @@ fn spawn_header_section(parent: &mut ChildSpawnerCommands, font_handle: &Handle<
.with_children(|hdr| { .with_children(|hdr| {
hdr.spawn(( hdr.spawn((
SplashFadable { base_color: ACCENT_PRIMARY }, SplashFadable { base_color: ACCENT_PRIMARY },
Text::new("\u{258C}"), // ▌ — the Terminal cursor block. Text::new("|"), // ASCII terminal cursor.
cursor_font, cursor_font,
TextColor(transparent(ACCENT_PRIMARY)), TextColor(transparent(ACCENT_PRIMARY)),
)); ));
@@ -431,7 +431,7 @@ fn spawn_centre_section(parent: &mut ChildSpawnerCommands, font_handle: &Handle<
}); });
} }
/// Boot-log column: three lime check rows + a " ready_" line. Content /// Boot-log column: three lime check rows + a "| ready_" line. Content
/// is fixture text, not driven from real bootstrap state — the splash /// is fixture text, not driven from real bootstrap state — the splash
/// is a brand beat, not a real loader. Capped at 480 px width on /// is a brand beat, not a real loader. Capped at 480 px width on
/// desktop (the design-system spec calls 70 % of mobile viewport, /// desktop (the design-system spec calls 70 % of mobile viewport,
@@ -483,8 +483,8 @@ fn spawn_check_row(parent: &mut ChildSpawnerCommands, line_font: &TextFont, labe
}); });
} }
/// " ready_" line — visual signature of "boot complete, awaiting /// "| ready_" line — visual signature of "boot complete, awaiting
/// input". The leading `` glyph picks up `TEXT_PRIMARY` rather than /// input". The leading `|` glyph picks up `TEXT_PRIMARY` rather than
/// `ACCENT_PRIMARY` so it doesn't compete with the big accent cursor in /// `ACCENT_PRIMARY` so it doesn't compete with the big accent cursor in
/// the header; the *trailing* 6×12 px accent pulse Node ([`SplashCursorPulse`]) /// the header; the *trailing* 6×12 px accent pulse Node ([`SplashCursorPulse`])
/// is what carries the "alive, blinking" signal called for by the /// is what carries the "alive, blinking" signal called for by the
@@ -503,12 +503,12 @@ fn spawn_ready_row(parent: &mut ChildSpawnerCommands, line_font: &TextFont) {
.with_children(|row| { .with_children(|row| {
row.spawn(( row.spawn((
SplashFadable { base_color: TEXT_PRIMARY }, SplashFadable { base_color: TEXT_PRIMARY },
Text::new("\u{258C} ready_"), // ready_ Text::new("| ready_"), // ASCII ready prompt.
line_font.clone(), line_font.clone(),
TextColor(transparent(TEXT_PRIMARY)), TextColor(transparent(TEXT_PRIMARY)),
)); ));
// Trailing 6×12 accent pulse cursor. Node-with-explicit- // Trailing 6×12 accent pulse cursor. Node-with-explicit-
// dimensions rather than a `█` text glyph so the size // dimensions rather than a solid-block text glyph so the size
// doesn't drift with the line font; matches the mockup's // doesn't drift with the line font; matches the mockup's
// 6×12 px spec literally. Pulse animation lives in // 6×12 px spec literally. Pulse animation lives in
// `pulse_splash_cursor` for testability. // `pulse_splash_cursor` for testability.
@@ -1166,8 +1166,8 @@ mod tests {
.map(|t| t.0.clone()) .map(|t| t.0.clone())
.collect(); .collect();
assert!( assert!(
texts.iter().any(|t| t == "\u{258C}"), texts.iter().any(|t| t == "|"),
"expected the cursor block (▌) on the splash, got: {texts:?}" "expected the ASCII cursor (|) on the splash, got: {texts:?}"
); );
assert!( assert!(
texts.iter().any(|t| t == "Ferrous Solitaire"), texts.iter().any(|t| t == "Ferrous Solitaire"),
+4 -4
View File
@@ -282,7 +282,7 @@ pub const SCORE_NO_UNDO_BONUS: i32 = 25;
/// Time bonus ({m:ss}) +{time_bonus} /// Time bonus ({m:ss}) +{time_bonus}
/// No-undo bonus +{no_undo_bonus} /// No-undo bonus +{no_undo_bonus}
/// Mode multiplier ({mode} ×N) ×{multiplier} /// Mode multiplier ({mode} ×N) ×{multiplier}
/// ───────────────────────────────── /// -----------------
/// Total {total} /// Total {total}
/// ``` /// ```
/// ///
@@ -1019,11 +1019,11 @@ fn spawn_score_breakdown(
row_index += 1; row_index += 1;
} }
// 5. Separator — em-dashes spanning the visual width. // 5. Separator — ASCII dashes spanning the visual width.
spawn_breakdown_row( spawn_breakdown_row(
card, card,
"─────────────────", "-----------------",
"─────".to_string(), "-----".to_string(),
TEXT_SECONDARY, TEXT_SECONDARY,
anim_speed, anim_speed,
stagger * row_index as f32, stagger * row_index as f32,