Skip to content

Added sheet scrolling swipe and animation#4835

Merged
shai-almog merged 5 commits into
masterfrom
feature-sheet-scrolling-animation-4825
May 1, 2026
Merged

Added sheet scrolling swipe and animation#4835
shai-almog merged 5 commits into
masterfrom
feature-sheet-scrolling-animation-4825

Conversation

@shai-almog
Copy link
Copy Markdown
Collaborator

Fixed #4825

@shai-almog
Copy link
Copy Markdown
Collaborator Author

shai-almog commented Apr 30, 2026

✅ JavaScript-port screenshot tests passed.

@shai-almog
Copy link
Copy Markdown
Collaborator Author

shai-almog commented Apr 30, 2026

Compared 86 screenshots: 86 matched.

Native Android coverage

  • 📊 Line coverage: 9.76% (5296/54243 lines covered) [HTML preview] (artifact android-coverage-report, jacocoAndroidReport/html/index.html)
    • Other counters: instruction 7.67% (26011/339142), branch 3.48% (1132/32522), complexity 4.53% (1411/31163), method 7.93% (1155/14567), class 12.97% (253/1950)
    • 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: 9.76% (5296/54243 lines covered) [HTML preview] (artifact android-coverage-report, jacocoAndroidReport/html/index.html)
    • Other counters: instruction 7.67% (26011/339142), branch 3.48% (1132/32522), complexity 4.53% (1411/31163), method 7.93% (1155/14567), class 12.97% (253/1950)
    • 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 1041.000 ms
Base64 CN1 encode 81.000 ms
Base64 encode ratio (CN1/native) 0.078x (92.2% faster)
Base64 native decode 1092.000 ms
Base64 CN1 decode 195.000 ms
Base64 decode ratio (CN1/native) 0.179x (82.1% faster)
Image encode benchmark status skipped (SIMD unsupported)

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 30, 2026

✅ 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.

The animation grid test emits a 2x3 frame composite that exceeds the
JS port's chunk-emission window, causing the screenshot decoder to
fail on a truncated PNG. Add the test to both port.js skip tables
(cn1ssForcedTimeoutTestClasses keyed by class id and
cn1ssForcedTimeoutTestNames keyed by simple name) so the JS port
force-finalises it the same way as every other animation grid test.

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

github-actions Bot commented Apr 30, 2026

✅ ByteCodeTranslator Quality Report

Test & Coverage

  • Tests: 644 total, 0 failed, 2 skipped

Benchmark Results

  • Execution Time: 11698 ms

  • Hotspots (Top 20 sampled methods):

    • 28.58% java.util.ArrayList.indexOf (581 samples)
    • 21.94% java.lang.String.indexOf (446 samples)
    • 16.77% com.codename1.tools.translator.Parser.isMethodUsed (341 samples)
    • 4.77% java.lang.Object.hashCode (97 samples)
    • 2.61% java.lang.System.identityHashCode (53 samples)
    • 1.67% com.codename1.tools.translator.ByteCodeClass.updateAllDependencies (34 samples)
    • 1.67% com.codename1.tools.translator.BytecodeMethod.optimize (34 samples)
    • 1.28% com.codename1.tools.translator.BytecodeMethod.appendMethodSignatureSuffixFromDesc (26 samples)
    • 1.23% com.codename1.tools.translator.ByteCodeClass.calcUsedByNative (25 samples)
    • 1.18% com.codename1.tools.translator.Parser.getClassByName (24 samples)
    • 1.13% java.lang.StringBuilder.append (23 samples)
    • 0.93% com.codename1.tools.translator.ByteCodeClass.markDependent (19 samples)
    • 0.84% com.codename1.tools.translator.Parser.cullMethods (17 samples)
    • 0.79% com.codename1.tools.translator.Parser.generateClassAndMethodIndexHeader (16 samples)
    • 0.69% com.codename1.tools.translator.BytecodeMethod.appendCMethodPrefix (14 samples)
    • 0.69% java.lang.StringCoding.encode (14 samples)
    • 0.64% java.lang.Integer.getChars (13 samples)
    • 0.64% sun.nio.cs.UTF_8$Encoder.encode (13 samples)
    • 0.49% java.io.FileOutputStream.writeBytes (10 samples)
    • 0.49% com.codename1.tools.translator.ByteCodeClass.isDefaultInterfaceMethod (10 samples)
  • ⚠️ Coverage report not generated.

Static Analysis

  • ✅ SpotBugs: no findings (report was not generated by the build).
  • ⚠️ PMD report not generated.
  • ⚠️ Checkstyle report not generated.

Generated automatically by the PR CI workflow.

@shai-almog
Copy link
Copy Markdown
Collaborator Author

shai-almog commented Apr 30, 2026

iOS screenshot updates

Compared 86 screenshots: 85 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: 162 seconds

Build and Run Timing

Metric Duration
Simulator Boot 84000 ms
Simulator Boot (Run) 0 ms
App Install 12000 ms
App Launch 4000 ms
Test Execution 235000 ms

Detailed Performance Metrics

Metric Duration
Base64 payload size 8192 bytes
Base64 benchmark iterations 6000
Base64 native encode 927.000 ms
Base64 CN1 encode 1577.000 ms
Base64 encode ratio (CN1/native) 1.701x (70.1% slower)
Base64 native decode 691.000 ms
Base64 CN1 decode 988.000 ms
Base64 decode ratio (CN1/native) 1.430x (43.0% slower)
Base64 SIMD encode 378.000 ms
Base64 encode ratio (SIMD/native) 0.408x (59.2% faster)
Base64 encode ratio (SIMD/CN1) 0.240x (76.0% faster)
Base64 SIMD decode 408.000 ms
Base64 decode ratio (SIMD/native) 0.590x (41.0% faster)
Base64 decode ratio (SIMD/CN1) 0.413x (58.7% faster)
Image encode benchmark iterations 100
Image createMask (SIMD off) 61.000 ms
Image createMask (SIMD on) 11.000 ms
Image createMask ratio (SIMD on/off) 0.180x (82.0% faster)
Image applyMask (SIMD off) 122.000 ms
Image applyMask (SIMD on) 57.000 ms
Image applyMask ratio (SIMD on/off) 0.467x (53.3% faster)
Image modifyAlpha (SIMD off) 123.000 ms
Image modifyAlpha (SIMD on) 69.000 ms
Image modifyAlpha ratio (SIMD on/off) 0.561x (43.9% faster)
Image modifyAlpha removeColor (SIMD off) 143.000 ms
Image modifyAlpha removeColor (SIMD on) 66.000 ms
Image modifyAlpha removeColor ratio (SIMD on/off) 0.462x (53.8% faster)
Image PNG encode (SIMD off) 945.000 ms
Image PNG encode (SIMD on) 823.000 ms
Image PNG encode ratio (SIMD on/off) 0.871x (12.9% faster)
Image JPEG encode 458.000 ms

shai-almog and others added 2 commits April 30, 2026 20:14
Both baselines were extracted from the latest CI build artifacts on
this PR (Android run 25173656748 emulator-screenshot artifact, iOS
run 25173656731 ios-ui-tests artifact). They show the 6-frame
animation grid with the sheet sliding from off-screen at the bottom
to its resting position over a 30%-black scrim background.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The Android JDK 8 image occasionally drops a single CN1SS chunk line
from logcat (typically once per run, on a different test each time),
which leaves an unreassemblable PNG and fails the build for what is
ultimately a transport-layer flake. JDK 17 and JDK 21 don't show the
issue.

When the initial decode loop reports any FAILED_TESTS, restart the
already-installed APK directly via `adb shell am start` (no Gradle,
no recompile, no reinstall), capture a fresh logcat, and re-decode
just the previously-failed tests. The suite re-emits every test
on-device, but we short-circuit the wait as soon as every previously-
failed test re-emits its CN1SS:END marker — so a typical single-test
flake recovers in a handful of seconds rather than ~5 minutes of
suite re-run.

Tests that decode successfully on retry are removed from
FAILED_TESTS, so the existing comparison/exit logic only fails the
build for genuine, reproducible chunk drops.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@shai-almog shai-almog merged commit caaa0df into master May 1, 2026
19 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.

RFE: sheet scrolling animation and closing by swiping the sheet downward

1 participant