ReviewOS

also looking at this

stacks/wildloop

feat: native trail maps and complete native mobile screens

#1017
Draft chris wants to merge codex/trail-experience into main
60 files +2505 -823

Review threads live on the whole diff, not on one commit, so none are shown here - a thread's line means something in the branch's final form, and painting it into an intermediate step would put it on code it is not about.

.maestro/native-trail/utilities.yamlmodified+27-1
Changes to .maestro/native-trail/utilities.yaml
@@ -9,6 +9,14 @@ name: Native location, route customization and GPX sharing
99 timeout: 30000
1010- assertNotVisible:
1111 id: '.*permission_allow_foreground_only_button'
12- tapOn:
13 id: map-zoom-in
14- tapOn:
15 id: map-3d
16- assertVisible:
17 id: map-3d
18 text: '^2D$'
19- takeScreenshot: android-native-camera-before-location
1220- tapOn:
1321 id: map-locate
1422- extendedWaitUntil:
@@ -20,6 +28,9 @@ name: Native location, route customization and GPX sharing
2028- extendedWaitUntil:
2129 visible: 'My location, Your location is shown'
2230 timeout: 30000
31- assertVisible:
32 id: map-3d
33 text: '^2D$'
2334- takeScreenshot: android-native-map-location
2435- tapOn:
2536 id: map-customize
@@ -48,8 +59,20 @@ name: Native location, route customization and GPX sharing
4859 timeout: 30000
4960- scrollUntilVisible:
5061 element:
51 id: trail-map-locate
62 id: trail-zoom-in
5263 direction: DOWN
64- tapOn:
65 id: trail-zoom-in
66- scrollUntilVisible:
67 element:
68 id: trail-map-3d
69 direction: DOWN
70- tapOn:
71 id: trail-map-3d
72- assertVisible:
73 id: trail-map-3d
74 text: '^2D$'
75- takeScreenshot: android-native-inline-camera-before-location
5376- tapOn:
5477 id: trail-map-locate
5578- extendedWaitUntil:
@@ -57,6 +80,9 @@ name: Native location, route customization and GPX sharing
5780 timeout: 30000
5881- assertNotVisible:
5982 id: '.*permission_allow_foreground_only_button'
83- assertVisible:
84 id: trail-map-3d
85 text: '^2D$'
6086- takeScreenshot: android-native-inline-map-location
6187- scrollUntilVisible:
6288 element:
tests/native/trail-journey.tsmodified+11-0
Changes to tests/native/trail-journey.ts
@@ -180,18 +180,29 @@ const planner:SimulatorStep[] = [
180180]
181181const location:SimulatorStep[] = [
182182 ...fullMap,
183 {command:'tapid',text:'map-zoom-in'},
184 {command:'tapid',text:'map-3d'},
185 {command:'labelid',id:'map-3d',text:'2D'},
186 {command:'shot',name:'native-camera-before-location'},
183187 {command:'exec',name:'seed-location'},
184188 {command:'tapid',text:'map-locate'},
185189 {command:'systemexpect',text:'Allow Once',seconds:10},
186190 {command:'systemtap',text:'Allow Once'},
187191 {command:'expect',text:'Your location is shown',seconds:20},
192 {command:'labelid',id:'map-3d',text:'2D'},
188193 {command:'tree',name:'native-location'},
189194 {command:'shot',name:'native-location'},
190195 {command:'openurl',url:`wildloop://trail/${input.trailId}`},
191196 {command:'expectid',text:'trail-sticky-actions',seconds:15},
197 {command:'scrollto',text:'Zoom in'},
198 {command:'tapid',text:'trail-zoom-in'},
199 {command:'tapid',text:'trail-map-3d'},
200 {command:'labelid',id:'trail-map-3d',text:'2D'},
201 {command:'shot',name:'native-inline-camera-before-location'},
192202 {command:'scrollto',text:'My location'},
193203 {command:'tapid',text:'trail-map-locate'},
194204 {command:'expect',text:'Your location is shown',seconds:20},
205 {command:'labelid',id:'trail-map-3d',text:'2D'},
195206 {command:'shot',name:'native-inline-location'},
196207 {command:'tree',name:'native-inline-location'},
197208]