From a25ae842eff424c1d383e2f9476290c67dd4b38f Mon Sep 17 00:00:00 2001 From: John O'Reilly Date: Sat, 17 Oct 2026 14:13:09 +0100 Subject: [PATCH 1/2] Maestro: fail if the app dies after the route map renders; keep logcat On CI the app disappeared right after the map step, so the screenshot showed the home screen while the job passed. Re-check the screen after the screenshot, and save logcat with the debug output to see why. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01G317KNXo9kZndPaSEtMCuG --- .github/workflows/android.yml | 2 +- maestro/GalwayBus.flow | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 109f847..b525451 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -86,7 +86,7 @@ jobs: disable-animations: true script: | adb install androidApp/build/outputs/apk/debug/androidApp-debug.apk - maestro test --debug-output maestro-debug -e APP_ID=dev.johnoreilly.galwaybus maestro/GalwayBus.flow + maestro test --debug-output maestro-debug -e APP_ID=dev.johnoreilly.galwaybus maestro/GalwayBus.flow; status=$?; mkdir -p maestro-debug; adb logcat -d > maestro-debug/logcat.txt; exit $status # takeScreenshot output: Maestro saves it under --debug-output's hidden .maestro directory - uses: actions/upload-artifact@v7 diff --git a/maestro/GalwayBus.flow b/maestro/GalwayBus.flow index a9e1ad6..69a2d3d 100644 --- a/maestro/GalwayBus.flow +++ b/maestro/GalwayBus.flow @@ -20,3 +20,7 @@ appId: ${APP_ID} visible: "Updated.*" timeout: 30000 - takeScreenshot: GalwayBus +# Still showing after the map has had time to render (a crash there would otherwise go unnoticed) +- waitForAnimationToEnd: + timeout: 5000 +- assertVisible: "Route 402" From 11fc7e289cb090b42a02eac496a60f6a0a209033 Mon Sep 17 00:00:00 2001 From: John O'Reilly Date: Sat, 17 Oct 2026 14:36:27 +0100 Subject: [PATCH 2/2] Fix the route map crash with older Google Play services The Maps module in older Play services (22.50 on the CI emulator) uses the Apache HTTP client, which apps targeting API 28+ must declare, so the map crashed with NoClassDefFoundError: org/apache/http/ProtocolVersion. Real devices with older Play services would hit the same crash. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01G317KNXo9kZndPaSEtMCuG --- androidApp/src/main/AndroidManifest.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/androidApp/src/main/AndroidManifest.xml b/androidApp/src/main/AndroidManifest.xml index c81e334..984b356 100644 --- a/androidApp/src/main/AndroidManifest.xml +++ b/androidApp/src/main/AndroidManifest.xml @@ -17,6 +17,12 @@ + +