Skip to content

Commit 9f82b14

Browse files
author
Lalit Sharma
committed
Fix: Use emulator console commands for time/GPS, add better debugging and verification
1 parent f1ab498 commit 9f82b14

1 file changed

Lines changed: 55 additions & 8 deletions

File tree

.github/workflows/wearos-emulator-screenshots.yml

Lines changed: 55 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -433,25 +433,66 @@ jobs:
433433
adb -s "$emulator_serial" shell pm grant "$BUNDLE_ID" android.permission.ACCESS_FINE_LOCATION || true
434434
adb -s "$emulator_serial" shell pm grant "$BUNDLE_ID" android.permission.ACCESS_COARSE_LOCATION || true
435435
436+
echo "Disabling automatic time/timezone updates..."
436437
adb -s "$emulator_serial" shell settings put global auto_time 0 || true
437438
adb -s "$emulator_serial" shell settings put global auto_time_zone 0 || true
439+
440+
# Verify settings
441+
auto_time_status="$(adb -s "$emulator_serial" shell settings get global auto_time 2>/dev/null | tr -d '\r')"
442+
echo "Auto time status: $auto_time_status"
443+
444+
# Wake up the device
445+
adb -s "$emulator_serial" shell input keyevent KEYCODE_WAKEUP || true
446+
sleep 1
438447
439448
set_emulator_time_utc() {
440449
local iso_utc="$1"
441-
local compact_utc
442-
compact_utc="$(date -u -j -f "%Y-%m-%dT%H:%M:%SZ" "$iso_utc" "+%Y%m%d.%H%M%S" 2>/dev/null || true)"
443-
if [ -z "$compact_utc" ]; then
444-
compact_utc="$(printf '%s' "$iso_utc" | tr -d ':-' | sed -E 's/T/./; s/Z$//')"
450+
451+
echo "Setting emulator time to: $iso_utc"
452+
453+
# Convert to Unix timestamp (seconds since epoch)
454+
local timestamp_sec
455+
timestamp_sec="$(date -u -j -f "%Y-%m-%dT%H:%M:%SZ" "$iso_utc" "+%s" 2>/dev/null)"
456+
457+
if [ -n "$timestamp_sec" ]; then
458+
# Convert to milliseconds for emulator console
459+
local timestamp_ms="${timestamp_sec}000"
460+
echo "Using emulator console to set time (timestamp ms: $timestamp_ms)"
461+
462+
# Use emulator console command - more reliable than shell date
463+
if adb -s "$emulator_serial" emu avd setclock "$timestamp_ms" </dev/null 2>&1; then
464+
echo "Time set via emulator console"
465+
else
466+
echo "::warning::Failed to set time via emulator console"
467+
fi
468+
else
469+
echo "::warning::Failed to parse timestamp from $iso_utc"
445470
fi
446-
447-
adb -s "$emulator_serial" shell "date -u $compact_utc" </dev/null >/dev/null 2>&1 || true
448-
adb -s "$emulator_serial" emu avd host-time-scale 1 </dev/null >/dev/null 2>&1 || true
471+
472+
sleep 2
473+
474+
# Verify time was set
475+
current_time="$(adb -s "$emulator_serial" shell "date -u" </dev/null 2>/dev/null | tr -d '\r')"
476+
echo "Emulator time is now: $current_time"
449477
}
450478
451479
set_emulator_geo_gibraltar() {
452480
local lat="36.1408"
453481
local lon="-5.3536"
454-
adb -s "$emulator_serial" emu geo fix "$lon" "$lat" </dev/null >/dev/null 2>&1 || true
482+
echo "Setting emulator GPS to Gibraltar: lat=$lat, lon=$lon"
483+
484+
# Use emulator console command
485+
if adb -s "$emulator_serial" emu geo fix "$lon" "$lat" 0 </dev/null 2>&1; then
486+
echo "GPS location set via emulator console"
487+
else
488+
echo "::warning::Failed to set GPS location via emulator console"
489+
fi
490+
491+
sleep 2
492+
493+
# Verify location provider is enabled
494+
location_mode="$(adb -s "$emulator_serial" shell settings get secure location_mode </dev/null 2>/dev/null | tr -d '\r')"
495+
echo "Location mode: $location_mode (3=high accuracy)"
455496
}
456497
457498
wait_for_app_foreground() {
@@ -535,12 +576,18 @@ jobs:
535576
536577
case "$url" in
537578
*gibraltar-between-c1-c3*)
579+
echo "Detected gibraltar-between-c1-c3 scenario"
538580
set_emulator_time_utc "2027-08-02T08:23:09Z"
539581
set_emulator_geo_gibraltar
582+
echo "Waiting 2 seconds for time/GPS changes to propagate..."
583+
sleep 2
540584
;;
541585
*gibraltar-max*)
586+
echo "Detected gibraltar-max scenario"
542587
set_emulator_time_utc "2027-08-02T08:47:59Z"
543588
set_emulator_geo_gibraltar
589+
echo "Waiting 2 seconds for time/GPS changes to propagate..."
590+
sleep 2
544591
;;
545592
esac
546593

0 commit comments

Comments
 (0)