fix(engine): silence Android-target dead-code and unused-import warnings
Build and Deploy / build-and-push (push) Successful in 34s
Build and Deploy / build-and-push (push) Successful in 34s
All 10 warnings were caused by hotkey/keyboard UI code behind #[cfg(not(target_os = "android"))] call sites whose definitions lacked the matching gate. Fixes: - help_plugin: gate keyboard-chip imports and font_kbd; #[allow(dead_code)] on ControlRow (keys field is data, not dead) - hud_plugin/ui_modal: replace cfg shadow pattern with cfg!() expression so the hotkey parameter is read on every platform - home_plugin: gate fn hotkey behind not(android) - onboarding_plugin: gate HotkeyRow, HOTKEYS, spawn_slide_hotkeys and their exclusive imports behind not(android) - replay_overlay: gate keybind_footer_hint_text behind not(android) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -3,11 +3,13 @@ name: Build and Deploy
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [master]
|
branches: [master]
|
||||||
# Only run when server code changes, not when CI itself updates deploy/.
|
paths:
|
||||||
paths-ignore:
|
- 'solitaire_server/**'
|
||||||
- 'deploy/**'
|
- 'solitaire_sync/**'
|
||||||
- 'argocd/**'
|
- 'solitaire_core/**'
|
||||||
- '**.md'
|
- 'Cargo.toml'
|
||||||
|
- 'Cargo.lock'
|
||||||
|
- '.gitea/workflows/docker-build.yml'
|
||||||
|
|
||||||
env:
|
env:
|
||||||
REGISTRY: git.aleshym.co
|
REGISTRY: git.aleshym.co
|
||||||
|
|||||||
@@ -13,10 +13,9 @@ use crate::ui_modal::{
|
|||||||
spawn_modal, spawn_modal_actions, spawn_modal_button, spawn_modal_header, ButtonVariant,
|
spawn_modal, spawn_modal_actions, spawn_modal_button, spawn_modal_header, ButtonVariant,
|
||||||
ScrimDismissible,
|
ScrimDismissible,
|
||||||
};
|
};
|
||||||
use crate::ui_theme::{
|
use crate::ui_theme::{SPACE_2, TEXT_PRIMARY, TEXT_SECONDARY, TYPE_BODY, VAL_SPACE_2, VAL_SPACE_3, Z_MODAL_PANEL};
|
||||||
BORDER_SUBTLE, HighContrastBorder, RADIUS_SM, SPACE_2, TEXT_PRIMARY, TEXT_SECONDARY, TYPE_BODY,
|
#[cfg(not(target_os = "android"))]
|
||||||
TYPE_CAPTION, VAL_SPACE_1, VAL_SPACE_2, VAL_SPACE_3, Z_MODAL_PANEL,
|
use crate::ui_theme::{BORDER_SUBTLE, HighContrastBorder, RADIUS_SM, TYPE_CAPTION, VAL_SPACE_1};
|
||||||
};
|
|
||||||
|
|
||||||
/// Marker on the help overlay root node.
|
/// Marker on the help overlay root node.
|
||||||
#[derive(Component, Debug)]
|
#[derive(Component, Debug)]
|
||||||
@@ -123,6 +122,7 @@ fn scroll_help_panel(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Each entry in the controls reference table.
|
/// Each entry in the controls reference table.
|
||||||
|
#[allow(dead_code)]
|
||||||
struct ControlRow {
|
struct ControlRow {
|
||||||
keys: &'static str,
|
keys: &'static str,
|
||||||
description: &'static str,
|
description: &'static str,
|
||||||
@@ -243,6 +243,7 @@ fn spawn_help_screen(commands: &mut Commands, font_res: Option<&FontResource>) {
|
|||||||
..default()
|
..default()
|
||||||
};
|
};
|
||||||
let font_row = font_section.clone();
|
let font_row = font_section.clone();
|
||||||
|
#[cfg(not(target_os = "android"))]
|
||||||
let font_kbd = TextFont {
|
let font_kbd = TextFont {
|
||||||
font: font_handle,
|
font: font_handle,
|
||||||
font_size: TYPE_CAPTION,
|
font_size: TYPE_CAPTION,
|
||||||
|
|||||||
@@ -174,6 +174,7 @@ impl HomeMode {
|
|||||||
|
|
||||||
/// The keyboard accelerator that dispatches the same launch event,
|
/// The keyboard accelerator that dispatches the same launch event,
|
||||||
/// shown in a small chip on the card.
|
/// shown in a small chip on the card.
|
||||||
|
#[cfg(not(target_os = "android"))]
|
||||||
fn hotkey(self) -> &'static str {
|
fn hotkey(self) -> &'static str {
|
||||||
match self {
|
match self {
|
||||||
HomeMode::Classic => "N",
|
HomeMode::Classic => "N",
|
||||||
|
|||||||
@@ -799,8 +799,7 @@ fn spawn_action_button<M: Component>(
|
|||||||
// visibly clutter the narrow-viewport action row. Force the hint
|
// visibly clutter the narrow-viewport action row. Force the hint
|
||||||
// off on Android; the chevrons on Menu/Modes remain because they
|
// off on Android; the chevrons on Menu/Modes remain because they
|
||||||
// indicate dropdown behaviour and still apply on touch.
|
// indicate dropdown behaviour and still apply on touch.
|
||||||
#[cfg(target_os = "android")]
|
let hotkey = if cfg!(target_os = "android") { None } else { hotkey };
|
||||||
let hotkey: Option<&'static str> = None;
|
|
||||||
|
|
||||||
let hotkey_font = TextFont {
|
let hotkey_font = TextFont {
|
||||||
font: font.font.clone(),
|
font: font.font.clone(),
|
||||||
|
|||||||
@@ -31,9 +31,11 @@ use crate::ui_modal::{
|
|||||||
spawn_modal, spawn_modal_actions, spawn_modal_body_text, spawn_modal_button,
|
spawn_modal, spawn_modal_actions, spawn_modal_body_text, spawn_modal_button,
|
||||||
spawn_modal_header, ButtonVariant,
|
spawn_modal_header, ButtonVariant,
|
||||||
};
|
};
|
||||||
|
use crate::ui_theme::{TEXT_SECONDARY, Z_ONBOARDING};
|
||||||
|
#[cfg(not(target_os = "android"))]
|
||||||
use crate::ui_theme::{
|
use crate::ui_theme::{
|
||||||
BORDER_SUBTLE, HighContrastBorder, RADIUS_SM, TEXT_PRIMARY, TEXT_SECONDARY, TYPE_BODY,
|
BORDER_SUBTLE, HighContrastBorder, RADIUS_SM, TEXT_PRIMARY, TYPE_BODY, TYPE_CAPTION,
|
||||||
TYPE_CAPTION, VAL_SPACE_1, VAL_SPACE_2, VAL_SPACE_3, Z_ONBOARDING,
|
VAL_SPACE_1, VAL_SPACE_2, VAL_SPACE_3,
|
||||||
};
|
};
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
@@ -86,6 +88,7 @@ pub struct OnboardingSlideIndex(pub u8);
|
|||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
/// A single `key — description` pair shown on slide 3.
|
/// A single `key — description` pair shown on slide 3.
|
||||||
|
#[cfg(not(target_os = "android"))]
|
||||||
struct HotkeyRow {
|
struct HotkeyRow {
|
||||||
keys: &'static str,
|
keys: &'static str,
|
||||||
description: &'static str,
|
description: &'static str,
|
||||||
@@ -96,6 +99,7 @@ struct HotkeyRow {
|
|||||||
/// Updating the list in `help_plugin.rs` should be mirrored here. The
|
/// Updating the list in `help_plugin.rs` should be mirrored here. The
|
||||||
/// ARCHITECTURE.md decision log calls out that we copy values rather than
|
/// ARCHITECTURE.md decision log calls out that we copy values rather than
|
||||||
/// refactor the help plugin.
|
/// refactor the help plugin.
|
||||||
|
#[cfg(not(target_os = "android"))]
|
||||||
const HOTKEYS: &[HotkeyRow] = &[
|
const HOTKEYS: &[HotkeyRow] = &[
|
||||||
HotkeyRow { keys: "D / Space", description: "Draw from stock" },
|
HotkeyRow { keys: "D / Space", description: "Draw from stock" },
|
||||||
HotkeyRow { keys: "U", description: "Undo last move" },
|
HotkeyRow { keys: "U", description: "Undo last move" },
|
||||||
@@ -359,6 +363,7 @@ fn spawn_slide_how_to_play(commands: &mut Commands, font_res: Option<&FontResour
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Slide 3 — Keyboard shortcuts.
|
/// Slide 3 — Keyboard shortcuts.
|
||||||
|
#[cfg(not(target_os = "android"))]
|
||||||
fn spawn_slide_hotkeys(commands: &mut Commands, font_res: Option<&FontResource>) {
|
fn spawn_slide_hotkeys(commands: &mut Commands, font_res: Option<&FontResource>) {
|
||||||
let font_handle = font_res.map(|f| f.0.clone()).unwrap_or_default();
|
let font_handle = font_res.map(|f| f.0.clone()).unwrap_or_default();
|
||||||
let font_row = TextFont {
|
let font_row = TextFont {
|
||||||
|
|||||||
@@ -1165,6 +1165,7 @@ fn keybind_footer_mode_text() -> &'static str {
|
|||||||
/// pause/resume, the ESC accelerator for stop, and the ← / →
|
/// pause/resume, the ESC accelerator for stop, and the ← / →
|
||||||
/// accelerators for paused single-move stepping. The footer never
|
/// accelerators for paused single-move stepping. The footer never
|
||||||
/// lists unimplemented keybinds (would lie to users).
|
/// lists unimplemented keybinds (would lie to users).
|
||||||
|
#[cfg(not(target_os = "android"))]
|
||||||
fn keybind_footer_hint_text() -> &'static str {
|
fn keybind_footer_hint_text() -> &'static str {
|
||||||
"[SPACE] pause/resume \u{00B7} [ESC] stop \u{00B7} [\u{2190}\u{2192}] step" // · separator
|
"[SPACE] pause/resume \u{00B7} [ESC] stop \u{00B7} [\u{2190}\u{2192}] step" // · separator
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -335,8 +335,7 @@ pub fn spawn_modal_button<M: Component>(
|
|||||||
variant: ButtonVariant,
|
variant: ButtonVariant,
|
||||||
font_res: Option<&FontResource>,
|
font_res: Option<&FontResource>,
|
||||||
) {
|
) {
|
||||||
#[cfg(target_os = "android")]
|
let hotkey = if cfg!(target_os = "android") { None } else { hotkey };
|
||||||
let hotkey: Option<&'static str> = None;
|
|
||||||
let font_handle = font_res.map(|f| f.0.clone()).unwrap_or_default();
|
let font_handle = font_res.map(|f| f.0.clone()).unwrap_or_default();
|
||||||
let font_label = TextFont {
|
let font_label = TextFont {
|
||||||
font: font_handle.clone(),
|
font: font_handle.clone(),
|
||||||
|
|||||||
Reference in New Issue
Block a user