refactor(engine): audit and rationalize platform cfg gates (closes #49)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -174,17 +174,17 @@ impl HomeMode {
|
||||
}
|
||||
|
||||
/// The keyboard accelerator that dispatches the same launch event,
|
||||
/// shown in a small chip on the card.
|
||||
#[cfg(not(target_os = "android"))]
|
||||
fn hotkey(self) -> &'static str {
|
||||
match self {
|
||||
/// shown in a small chip on desktop cards.
|
||||
fn hotkey(self) -> Option<&'static str> {
|
||||
let key = match self {
|
||||
HomeMode::Classic => "N",
|
||||
HomeMode::Daily => "C",
|
||||
HomeMode::Zen => "Z",
|
||||
HomeMode::Challenge => "X",
|
||||
HomeMode::TimeAttack => "T",
|
||||
HomeMode::PlayBySeed => "6",
|
||||
}
|
||||
};
|
||||
crate::platform::SHOW_KEYBOARD_ACCELERATORS.then_some(key)
|
||||
}
|
||||
|
||||
/// `true` when the mode is gated behind `CHALLENGE_UNLOCK_LEVEL`.
|
||||
@@ -1392,27 +1392,28 @@ fn spawn_mode_card(
|
||||
));
|
||||
|
||||
if unlocked {
|
||||
// Hotkey chip — suppressed on Android (touch builds have no keyboard).
|
||||
#[cfg(not(target_os = "android"))]
|
||||
row.spawn((
|
||||
Node {
|
||||
padding: UiRect::axes(VAL_SPACE_2, VAL_SPACE_1),
|
||||
min_width: Val::Px(32.0),
|
||||
justify_content: JustifyContent::Center,
|
||||
border: UiRect::all(Val::Px(1.0)),
|
||||
border_radius: BorderRadius::all(Val::Px(RADIUS_MD)),
|
||||
..default()
|
||||
},
|
||||
BorderColor::all(BORDER_SUBTLE),
|
||||
HighContrastBorder::with_default(BORDER_SUBTLE),
|
||||
))
|
||||
.with_children(|chip| {
|
||||
chip.spawn((
|
||||
Text::new(mode.hotkey().to_string()),
|
||||
font_chip.clone(),
|
||||
TextColor(TEXT_SECONDARY),
|
||||
));
|
||||
});
|
||||
// Hotkey chip — suppressed on touch-first Android builds.
|
||||
if let Some(hotkey) = mode.hotkey() {
|
||||
row.spawn((
|
||||
Node {
|
||||
padding: UiRect::axes(VAL_SPACE_2, VAL_SPACE_1),
|
||||
min_width: Val::Px(32.0),
|
||||
justify_content: JustifyContent::Center,
|
||||
border: UiRect::all(Val::Px(1.0)),
|
||||
border_radius: BorderRadius::all(Val::Px(RADIUS_MD)),
|
||||
..default()
|
||||
},
|
||||
BorderColor::all(BORDER_SUBTLE),
|
||||
HighContrastBorder::with_default(BORDER_SUBTLE),
|
||||
))
|
||||
.with_children(|chip| {
|
||||
chip.spawn((
|
||||
Text::new(hotkey),
|
||||
font_chip.clone(),
|
||||
TextColor(TEXT_SECONDARY),
|
||||
));
|
||||
});
|
||||
}
|
||||
} else {
|
||||
// Lock icon stand-in — text glyph keeps the layout
|
||||
// dependency-free (no asset loader required) and
|
||||
|
||||
Reference in New Issue
Block a user