3.3 KiB
Delta 0.1.0-2-beta.1.fix.4
Base
Base déclarée : 0.1.0-2-beta.1.fix.3.
Constat
fix.3 a validé le logging Android via tracing-android, mais son callback Back PRIORITY_DEFAULT est trop intrusif pour une launcher Activity racine :
- il consomme la navigation système ;
- il désactive le chemin Back-to-home normal ;
- il ajoute un bridge JNI et une file atomique Rust inutiles pour ce cas.
Le smoke AVD a confirmé que adb shell input keyevent 4 déclenche correctement la navigation Back système, alors que le contrôle graphique Back de l'AVD peut ne rien injecter.
Correctif
Le logging Android de fix.3 est conservé.
Le chemin suivant est supprimé :
OnBackInvokedCallback PRIORITY_DEFAULT
-> JNI nativeRequestPlatformBack()
-> engine-v1-sdl::request_platform_back()
-> QuitSource::PlatformBack
Pour API 36+, Android utilise uniquement :
OnBackInvokedDispatcher.PRIORITY_SYSTEM_NAVIGATION_OBSERVER
L'observer écrit :
Android system Back observed
dans logcat, sans consommer l'action.
La navigation Back-to-home reste entièrement gérée par Android.
Manifest
Les deux launcher applications déclarent explicitement :
android:enableOnBackInvokedCallback="true"
JNI
Le contrat Java/JNI passe à 3.
Il ne contient plus que le contrôle de version en plus de SDL_main.
SDL
La prise en charge SDL native de :
Keycode::AcBack
Scancode::AcBack
reste présente.
Elle continue à produire QuitSource::PlatformBack sur les plateformes qui exposent réellement Back comme événement SDL.
Validation Rust/statique
cargo fmt --all
cargo fmt --all -- --check
python3 scripts/audit_rust_workspace_rules.py
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates Android deltas history
python3 scripts/audit_distribution_layout.py
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test -p engine-v1-sdl --all-targets --all-features
cargo test -p game-logging-lib --all-targets --all-features
AVD x86_64
python3 scripts/build_android_rust.py reflex --abi x86_64
python3 scripts/build_android_rust.py snake --abi x86_64
cd Android
gradle :game-reflex-poc:assembleDebug
gradle :game-snake-poc:assembleDebug
cd ..
adb -s emulator-5554 install -r Android/game-reflex-poc/build/outputs/apk/debug/game-reflex-poc-debug.apk
adb -s emulator-5554 install -r Android/game-snake-poc/build/outputs/apk/debug/game-snake-poc-debug.apk
Pour Reflex :
adb -s emulator-5554 logcat -c
adb -s emulator-5554 shell am start -n com.sasedev.games.reflex/.ReflexActivity
adb -s emulator-5554 shell input keyevent 4
adb -s emulator-5554 logcat | grep -iE 'games\.sasedev|CoreBackPreview|SDL|AndroidRuntime|FATAL|panic'
Attendu sur API 36 :
Android tracing initialized;SDL3 runtime started;Android system Back observed;- retour système à l'écran précédent / accueil ;
- arrêt propre du runtime ou cycle de pause/stop conforme au comportement système ;
- aucun
FATAL,AndroidRuntimeou panic.
Répéter pour Snake.
ARM64 réel
Après validation AVD, refaire un smoke court des deux jeux sur le Galaxy S9+ pour vérifier l'absence de régression sur l'ancien chemin système Android.