Commit a79e003
* simulator: add diagnostic for iOS status-bar tap scroll-to-top (#3589)
Adds a Simulate -> iOS Status Bar Tap menu item that mirrors the
synthesized tap (displayWidth/2, 0) dispatched by
scrollViewShouldScrollToTop: in CodenameOne_GLViewController.m. It
reports the responder at that coordinate plus the relevant theme
constants, so users can verify on the simulator whether the device
tap path would land on the built-in StatusBar button or be blocked
by another component.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* iOS: expose status-bar tap counters via Display.getProperty (#3589)
Records each scrollViewShouldScrollToTop: dispatch from the
status-bar tap proxy and exposes the counters as
Display.getProperty("cn1.iosStatusBarTap.*") so on-device code can
distinguish "iOS never delivered the scroll-to-top message" from
"iOS delivered it but a CodenameOne component intercepted the tap".
Properties:
cn1.iosStatusBarTap.count number of taps received
cn1.iosStatusBarTap.lastEpochMillis ms-since-epoch of last tap
cn1.iosStatusBarTap.lastX x of last synthesized tap
cn1.iosStatusBarTap.lastY y of last synthesized tap
cn1.iosStatusBarTap.proxyInstalled is the proxy view attached
cn1.iosStatusBarTap.diagnostics all of the above as a string
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* hellocodenameone: screenshot test for iOS status-bar tap diagnostic (#3589)
Adds StatusBarTapDiagnosticScreenshotTest plus a StatusBarTapDiagnosticNative
interface (iOS / JavaSE / Android / JS / Win impls). Each frame in the 2x3
grid alternates "scrolled to bottom" / "tap fired -> scrolled to top",
overlaid with a glass pane showing the rising tap counter.
The native interface routes simulateStatusBarTap() through the same path as
scrollViewShouldScrollToTop:; the body is now factored into cn1FireStatusBarTap
in CodenameOne_GLViewController.m so the screenshot test exercises the real
counter+pointer-dispatch on iOS without needing a UIKit status-bar event.
Other platforms stub the call (or fall back to Form.pointerPressed in the
JavaSE impl) and the visible scroll is applied explicitly each frame, so
the screenshot is deterministic across platforms.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix: iOS native build for cn1FireStatusBarTap + simpler screenshot
iOS build was failing: cn1FireStatusBarTap calls pointerPressedC and
pointerReleasedC which are defined further down in the file. Add forward
declarations so the function compiles.
Replace the 2x3 animation grid with a side-by-side before/after composite.
Each half is a full-height frame with a glass-pane header showing the
counter, scroll position, and native-interface availability. Reads at a
glance and avoids the JS-port animation-grid decode failures.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* hellocodenameone: skip status-bar tap test on JS port at runTest
The JS port chunk-truncates large screenshot streams. The runner-level
skip list addition wasn't enough (the test still ran on this branch's
CI), so apply the same pattern as AbstractStickyHeaderScreenshotTest
and short-circuit inside runTest with a SKIPPED status log.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* hellocodenameone: add iOS/Android baselines for status-bar tap test
iOS baseline shows native:yes (real cn1FireStatusBarTap counter), Android
shows native:no (stub impl) — both confirm the counter rises 0->3 and the
scroll position flips bottom->top across the before/after composite.
Captured from PR 4868 CI artifacts (ios-ui-tests + emulator-screenshot).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent dba33b4 commit a79e003
16 files changed
Lines changed: 526 additions & 8 deletions
File tree
- Ports
- JavaSE/src/com/codename1/impl/javase
- iOSPort
- nativeSources
- src/com/codename1/impl/ios
- scripts
- android/screenshots
- hellocodenameone
- android/src/main/java/com/codenameone/examples/hellocodenameone
- common/src/main/java/com/codenameone/examples/hellocodenameone
- tests
- ios/src/main/objectivec
- javascript/src/main/javascript
- javase/src/main/java/com/codenameone/examples/hellocodenameone
- win/src/main/csharp/com/codenameone/examples/hellocodenameone
- ios/screenshots
Lines changed: 89 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4502 | 4502 | | |
4503 | 4503 | | |
4504 | 4504 | | |
| 4505 | + | |
| 4506 | + | |
| 4507 | + | |
| 4508 | + | |
| 4509 | + | |
| 4510 | + | |
| 4511 | + | |
| 4512 | + | |
| 4513 | + | |
| 4514 | + | |
| 4515 | + | |
| 4516 | + | |
| 4517 | + | |
| 4518 | + | |
| 4519 | + | |
| 4520 | + | |
| 4521 | + | |
| 4522 | + | |
| 4523 | + | |
| 4524 | + | |
| 4525 | + | |
| 4526 | + | |
| 4527 | + | |
| 4528 | + | |
| 4529 | + | |
| 4530 | + | |
| 4531 | + | |
| 4532 | + | |
| 4533 | + | |
| 4534 | + | |
| 4535 | + | |
| 4536 | + | |
| 4537 | + | |
| 4538 | + | |
| 4539 | + | |
| 4540 | + | |
| 4541 | + | |
| 4542 | + | |
| 4543 | + | |
| 4544 | + | |
| 4545 | + | |
| 4546 | + | |
| 4547 | + | |
| 4548 | + | |
| 4549 | + | |
| 4550 | + | |
| 4551 | + | |
| 4552 | + | |
| 4553 | + | |
| 4554 | + | |
| 4555 | + | |
| 4556 | + | |
| 4557 | + | |
| 4558 | + | |
| 4559 | + | |
| 4560 | + | |
| 4561 | + | |
| 4562 | + | |
| 4563 | + | |
| 4564 | + | |
| 4565 | + | |
| 4566 | + | |
| 4567 | + | |
| 4568 | + | |
| 4569 | + | |
| 4570 | + | |
| 4571 | + | |
| 4572 | + | |
| 4573 | + | |
| 4574 | + | |
| 4575 | + | |
| 4576 | + | |
| 4577 | + | |
| 4578 | + | |
| 4579 | + | |
| 4580 | + | |
| 4581 | + | |
| 4582 | + | |
| 4583 | + | |
| 4584 | + | |
| 4585 | + | |
| 4586 | + | |
| 4587 | + | |
| 4588 | + | |
| 4589 | + | |
| 4590 | + | |
| 4591 | + | |
| 4592 | + | |
| 4593 | + | |
4505 | 4594 | | |
4506 | 4595 | | |
4507 | 4596 | | |
| |||
Lines changed: 46 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
221 | 221 | | |
222 | 222 | | |
223 | 223 | | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
224 | 269 | | |
225 | 270 | | |
226 | 271 | | |
| |||
2023 | 2068 | | |
2024 | 2069 | | |
2025 | 2070 | | |
2026 | | - | |
2027 | | - | |
2028 | | - | |
2029 | | - | |
2030 | | - | |
2031 | | - | |
2032 | | - | |
| 2071 | + | |
2033 | 2072 | | |
2034 | 2073 | | |
2035 | 2074 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4692 | 4692 | | |
4693 | 4693 | | |
4694 | 4694 | | |
| 4695 | + | |
| 4696 | + | |
| 4697 | + | |
| 4698 | + | |
| 4699 | + | |
| 4700 | + | |
| 4701 | + | |
| 4702 | + | |
| 4703 | + | |
| 4704 | + | |
| 4705 | + | |
| 4706 | + | |
| 4707 | + | |
| 4708 | + | |
| 4709 | + | |
| 4710 | + | |
| 4711 | + | |
| 4712 | + | |
| 4713 | + | |
| 4714 | + | |
| 4715 | + | |
| 4716 | + | |
| 4717 | + | |
| 4718 | + | |
| 4719 | + | |
| 4720 | + | |
4695 | 4721 | | |
4696 | 4722 | | |
4697 | 4723 | | |
| |||
9250 | 9276 | | |
9251 | 9277 | | |
9252 | 9278 | | |
| 9279 | + | |
| 9280 | + | |
| 9281 | + | |
| 9282 | + | |
| 9283 | + | |
| 9284 | + | |
| 9285 | + | |
| 9286 | + | |
| 9287 | + | |
| 9288 | + | |
| 9289 | + | |
| 9290 | + | |
| 9291 | + | |
| 9292 | + | |
| 9293 | + | |
| 9294 | + | |
| 9295 | + | |
| 9296 | + | |
| 9297 | + | |
| 9298 | + | |
9253 | 9299 | | |
9254 | 9300 | | |
9255 | 9301 | | |
| |||
Lines changed: 30 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6488 | 6488 | | |
6489 | 6489 | | |
6490 | 6490 | | |
6491 | | - | |
| 6491 | + | |
| 6492 | + | |
| 6493 | + | |
| 6494 | + | |
| 6495 | + | |
| 6496 | + | |
| 6497 | + | |
| 6498 | + | |
| 6499 | + | |
| 6500 | + | |
| 6501 | + | |
| 6502 | + | |
| 6503 | + | |
| 6504 | + | |
| 6505 | + | |
| 6506 | + | |
| 6507 | + | |
| 6508 | + | |
| 6509 | + | |
| 6510 | + | |
| 6511 | + | |
| 6512 | + | |
| 6513 | + | |
| 6514 | + | |
| 6515 | + | |
| 6516 | + | |
| 6517 | + | |
| 6518 | + | |
| 6519 | + | |
| 6520 | + | |
6492 | 6521 | | |
6493 | 6522 | | |
6494 | 6523 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
324 | 324 | | |
325 | 325 | | |
326 | 326 | | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
327 | 338 | | |
328 | 339 | | |
329 | 340 | | |
| |||
Lines changed: 15 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
Lines changed: 14 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
| 87 | + | |
87 | 88 | | |
88 | 89 | | |
89 | 90 | | |
| |||
292 | 293 | | |
293 | 294 | | |
294 | 295 | | |
| 296 | + | |
295 | 297 | | |
296 | 298 | | |
297 | 299 | | |
| |||
0 commit comments