fix(android): wrap sync HTTP tasks in per-call Tokio runtime
reqwest/hyper-util's GaiResolver calls tokio::runtime::Handle::current() which panics with "no reactor running" when driven by Bevy's AsyncComputeTaskPool (async-executor, not Tokio). Fixed all three spawn sites in sync_plugin.rs (start_pull, handle_manual_sync_request, push_replay_on_win) and the push_on_exit fallback by wrapping each HTTP future in tokio::runtime::Builder::new_current_thread().enable_all(). Also fixes a clippy type_complexity warning in hud_plugin.rs by extracting HudScoreFont / HudMovesFont / HudTimeFont type aliases for the update_hud_typography query parameters. Closes P4 AVD JNI bridge test: keystore JNI verified working on Android 14 x86_64 AVD (load_access_token returned NotFound correctly); clipboard JNI compiled and linked, runtime test deferred to a real-device session with a won game and active sync server. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -2016,20 +2016,18 @@ pub fn challenge_time_color(remaining: u64) -> Color {
|
||||
/// all three items remain on one row inside the 50 %-wide HUD column
|
||||
/// (≈ 180 dp on a 360 dp phone). At ≥ 480 px the original sizes are
|
||||
/// restored so desktop/tablet layouts are unaffected.
|
||||
type HudScoreFont<'w, 's> =
|
||||
Query<'w, 's, &'static mut TextFont, (With<HudScore>, Without<HudMoves>, Without<HudTime>)>;
|
||||
type HudMovesFont<'w, 's> =
|
||||
Query<'w, 's, &'static mut TextFont, (With<HudMoves>, Without<HudScore>, Without<HudTime>)>;
|
||||
type HudTimeFont<'w, 's> =
|
||||
Query<'w, 's, &'static mut TextFont, (With<HudTime>, Without<HudScore>, Without<HudMoves>)>;
|
||||
|
||||
fn update_hud_typography(
|
||||
mut events: MessageReader<WindowResized>,
|
||||
mut score_q: Query<
|
||||
&mut TextFont,
|
||||
(With<HudScore>, Without<HudMoves>, Without<HudTime>),
|
||||
>,
|
||||
mut moves_q: Query<
|
||||
&mut TextFont,
|
||||
(With<HudMoves>, Without<HudScore>, Without<HudTime>),
|
||||
>,
|
||||
mut time_q: Query<
|
||||
&mut TextFont,
|
||||
(With<HudTime>, Without<HudScore>, Without<HudMoves>),
|
||||
>,
|
||||
mut score_q: HudScoreFont,
|
||||
mut moves_q: HudMovesFont,
|
||||
mut time_q: HudTimeFont,
|
||||
) {
|
||||
let Some(ev) = events.read().last() else {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user