Skip to content

Toolbar: restore setSafeArea on StatusBar button branch (#4814 regression)#4815

Merged
liannacasper merged 2 commits into
masterfrom
fix/4814-toolbar-statusbar-safearea
Apr 26, 2026
Merged

Toolbar: restore setSafeArea on StatusBar button branch (#4814 regression)#4815
liannacasper merged 2 commits into
masterfrom
fix/4814-toolbar-statusbar-safearea

Conversation

@liannacasper
Copy link
Copy Markdown
Collaborator

Summary

Bisect evidence (scripts-ios.yml on master)

run commit matches diffs
24938791654 3f33dab (parent) 37 0
24946657644 9f42c53 (#4814) 1 36

All 36 failing tests still produce 1179x2556 px images (same dims as goldens), so the differences are pixel content from the missing top inset.

Test plan

🤖 Generated with Claude Code

shai-almog and others added 2 commits April 26, 2026 09:17
…sion)

The fix in #4814 wrapped the StatusBar component creation in an
if/else but only set setSafeArea(true) on the Container fallback.
With the default statusBarScrollsUpBool=true the new Button branch
ran without safe-area treatment, so the iOS top inset was no longer
reserved and every form shifted vertically. iOS screenshot tests
caught this: 36 of 37 baselines diverged on the merge commit.

Move setSafeArea(true) below the if/else so it applies to both the
Button and Container cases, matching the pre-#4814 behavior.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The previous fix attempt ran into a compile error because
Component.setSafeArea does not exist - setSafeArea is only defined on
Container. Replacing the StatusBar Container with a Button (as #4814
did) therefore drops safe-area support entirely, which is what made
36 of 37 iOS screenshot baselines diverge.

Keep the StatusBar as a Container (so setSafeArea(true) and the
StatusBar UIID styling continue to apply unchanged), and attach a
pointer-released listener to it for the scroll-to-top behavior #4814
introduced. The synthetic iOS tap forwarded by cn1StatusBarTapProxy
still fires Component.pointerReleased, which dispatches to that
listener.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

✅ Continuous Quality Report

Test & Coverage

Static Analysis

  • SpotBugs [Report archive]
    • ByteCodeTranslator: 0 findings (no issues)
    • android: 0 findings (no issues)
    • codenameone-maven-plugin: 0 findings (no issues)
    • core-unittests: 0 findings (no issues)
    • ios: 0 findings (no issues)
  • PMD: 0 findings (no issues) [Report archive]
  • Checkstyle: 0 findings (no issues) [Report archive]

Generated automatically by the PR CI workflow.

@shai-almog
Copy link
Copy Markdown
Collaborator

shai-almog commented Apr 26, 2026

Compared 37 screenshots: 37 matched.

Native Android coverage

  • 📊 Line coverage: 7.88% (4181/53043 lines covered) [HTML preview] (artifact android-coverage-report, jacocoAndroidReport/html/index.html)
    • Other counters: instruction 6.19% (20648/333558), branch 3.01% (969/32174), complexity 3.67% (1130/30766), method 6.46% (926/14344), class 10.58% (201/1900)
    • Lowest covered classes
      • kotlin.collections.kotlin.collections.ArraysKt___ArraysKt – 0.00% (0/6327 lines covered)
      • kotlin.collections.unsigned.kotlin.collections.unsigned.UArraysKt___UArraysKt – 0.00% (0/2384 lines covered)
      • org.jacoco.agent.rt.internal_b6258fc.asm.org.jacoco.agent.rt.internal_b6258fc.asm.ClassReader – 0.00% (0/1519 lines covered)
      • kotlin.collections.kotlin.collections.CollectionsKt___CollectionsKt – 0.00% (0/1148 lines covered)
      • org.jacoco.agent.rt.internal_b6258fc.asm.org.jacoco.agent.rt.internal_b6258fc.asm.MethodWriter – 0.00% (0/923 lines covered)
      • kotlin.sequences.kotlin.sequences.SequencesKt___SequencesKt – 0.00% (0/730 lines covered)
      • kotlin.text.kotlin.text.StringsKt___StringsKt – 0.00% (0/623 lines covered)
      • org.jacoco.agent.rt.internal_b6258fc.asm.org.jacoco.agent.rt.internal_b6258fc.asm.Frame – 0.00% (0/564 lines covered)
      • kotlin.collections.kotlin.collections.ArraysKt___ArraysJvmKt – 0.00% (0/495 lines covered)
      • kotlinx.coroutines.kotlinx.coroutines.JobSupport – 0.00% (0/423 lines covered)

✅ Native Android screenshot tests passed.

Native Android coverage

  • 📊 Line coverage: 7.88% (4181/53043 lines covered) [HTML preview] (artifact android-coverage-report, jacocoAndroidReport/html/index.html)
    • Other counters: instruction 6.19% (20648/333558), branch 3.01% (969/32174), complexity 3.67% (1130/30766), method 6.46% (926/14344), class 10.58% (201/1900)
    • Lowest covered classes
      • kotlin.collections.kotlin.collections.ArraysKt___ArraysKt – 0.00% (0/6327 lines covered)
      • kotlin.collections.unsigned.kotlin.collections.unsigned.UArraysKt___UArraysKt – 0.00% (0/2384 lines covered)
      • org.jacoco.agent.rt.internal_b6258fc.asm.org.jacoco.agent.rt.internal_b6258fc.asm.ClassReader – 0.00% (0/1519 lines covered)
      • kotlin.collections.kotlin.collections.CollectionsKt___CollectionsKt – 0.00% (0/1148 lines covered)
      • org.jacoco.agent.rt.internal_b6258fc.asm.org.jacoco.agent.rt.internal_b6258fc.asm.MethodWriter – 0.00% (0/923 lines covered)
      • kotlin.sequences.kotlin.sequences.SequencesKt___SequencesKt – 0.00% (0/730 lines covered)
      • kotlin.text.kotlin.text.StringsKt___StringsKt – 0.00% (0/623 lines covered)
      • org.jacoco.agent.rt.internal_b6258fc.asm.org.jacoco.agent.rt.internal_b6258fc.asm.Frame – 0.00% (0/564 lines covered)
      • kotlin.collections.kotlin.collections.ArraysKt___ArraysJvmKt – 0.00% (0/495 lines covered)
      • kotlinx.coroutines.kotlinx.coroutines.JobSupport – 0.00% (0/423 lines covered)

Benchmark Results

Detailed Performance Metrics

Metric Duration
Base64 payload size 8192 bytes
Base64 benchmark iterations 6000
Base64 native encode 893.000 ms
Base64 CN1 encode 87.000 ms
Base64 encode ratio (CN1/native) 0.097x (90.3% faster)
Base64 native decode 1001.000 ms
Base64 CN1 decode 229.000 ms
Base64 decode ratio (CN1/native) 0.229x (77.1% faster)
Image encode benchmark status skipped (SIMD unsupported)

@shai-almog
Copy link
Copy Markdown
Collaborator

shai-almog commented Apr 26, 2026

iOS screenshot updates

Compared 37 screenshots: 36 matched, 1 updated.

  • landscape — updated screenshot. Screenshot differs (2556x1179 px, bit depth 8).

    landscape
    Preview info: Preview provided by instrumentation.
    Full-resolution PNG saved as landscape.png in workflow artifacts.

Benchmark Results

  • VM Translation Time: 0 seconds
  • Compilation Time: 299 seconds

Build and Run Timing

Metric Duration
Simulator Boot 83000 ms
Simulator Boot (Run) 1000 ms
App Install 17000 ms
App Launch 17000 ms
Test Execution 172000 ms

Detailed Performance Metrics

Metric Duration
Base64 payload size 8192 bytes
Base64 benchmark iterations 6000
Base64 native encode 1965.000 ms
Base64 CN1 encode 2353.000 ms
Base64 encode ratio (CN1/native) 1.197x (19.7% slower)
Base64 native decode 1193.000 ms
Base64 CN1 decode 1873.000 ms
Base64 decode ratio (CN1/native) 1.570x (57.0% slower)
Base64 SIMD encode 1256.000 ms
Base64 encode ratio (SIMD/native) 0.639x (36.1% faster)
Base64 encode ratio (SIMD/CN1) 0.534x (46.6% faster)
Base64 SIMD decode 889.000 ms
Base64 decode ratio (SIMD/native) 0.745x (25.5% faster)
Base64 decode ratio (SIMD/CN1) 0.475x (52.5% faster)
Image encode benchmark iterations 100
Image createMask (SIMD off) 129.000 ms
Image createMask (SIMD on) 32.000 ms
Image createMask ratio (SIMD on/off) 0.248x (75.2% faster)
Image applyMask (SIMD off) 325.000 ms
Image applyMask (SIMD on) 171.000 ms
Image applyMask ratio (SIMD on/off) 0.526x (47.4% faster)
Image modifyAlpha (SIMD off) 219.000 ms
Image modifyAlpha (SIMD on) 196.000 ms
Image modifyAlpha ratio (SIMD on/off) 0.895x (10.5% faster)
Image modifyAlpha removeColor (SIMD off) 268.000 ms
Image modifyAlpha removeColor (SIMD on) 178.000 ms
Image modifyAlpha removeColor ratio (SIMD on/off) 0.664x (33.6% faster)
Image PNG encode (SIMD off) 1334.000 ms
Image PNG encode (SIMD on) 1065.000 ms
Image PNG encode ratio (SIMD on/off) 0.798x (20.2% faster)
Image JPEG encode 901.000 ms

@liannacasper liannacasper merged commit c83f3d1 into master Apr 26, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants