VulpesOS/android/tools/check-wallpaper.py
OverSu b38dea0597 Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
2026-09-30 23:13:03 +02:00

45 lines
1.5 KiB
Python

#!/usr/bin/env python3
"""Observe real Gaia wallpaper events over an ADB-forwarded debug connection."""
import json
import sys
import time
from rdp import RDP
def evaluate(source):
r = RDP()
try:
result = r.eval(source)
if result.get("hasException"):
raise RuntimeError(result)
return result.get("result")
finally:
r.s.close()
duration = int(sys.argv[1]) if len(sys.argv) > 1 else 30
evaluate(
"""window.__wallpaperProbe={changes:0,settings:0,start:Date.now()};
addEventListener('wallpaperchange',()=>__wallpaperProbe.changes++);
navigator.mozSettings.addObserver('wallpaper.image',()=>__wallpaperProbe.settings++);
navigator.mozSettings.createLock().get('wallpaper.image').onsuccess=e=>{
const v=e.target.result['wallpaper.image'];
__wallpaperProbe.image={blob:v instanceof Blob,size:v.size,type:v.type};
}; 'probe-started';"""
)
time.sleep(duration)
result = json.loads(
evaluate(
"""JSON.stringify({...__wallpaperProbe,
elapsed:Date.now()-__wallpaperProbe.start,ready:applications.ready,
background:document.getElementById('screen').style.backgroundImage})"""
)
)
print(json.dumps(result, indent=2))
assert result["ready"], "Gaia not ready"
assert result.get("image", {}).get("blob"), "Wallpaper was not restored as a Blob"
assert result["image"]["size"] > 0, "Empty wallpaper"
assert (
result["changes"] == 0 and result["settings"] == 0
), "Wallpaper is still changing without user action"
assert "blob:" in result["background"], "Wallpaper missing from the screen"