Repository navigation
Keyboard: explicit Next/Done action for any constraint, and a landscape number pad that can be left - #6217
Keyboard: explicit Next/Done action for any constraint, and a landscape number pad that can be left#6217shai-almog wants to merge 5 commits into
Conversation
…toolbar in landscape Discussion #6212. A field's keyboard action could not be chosen apart from its constraint: on Android a Done listener forced Done even with a field following, and on iOS a number pad in landscape had neither a Return key nor a toolbar. - nextButton / doneButton client properties choose the action on Android and iOS. Defaults are unchanged. An explicit Next moves on without firing the Done listener. - iOS: the toolbar stays in landscape for keyboards with no Return key, and an iPad gets it for a field that chose its action. - Android: remove leftover debug output from endEditing and fix the precedence of the Done-event condition. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
- Android: remove the last debug println in endEditing. - iOS: clear the next component when there is no form to ask, so a stale successor cannot make a nextButton field skip its Done listener. - Docs: a nextButton field usually has no Done to fire a listener with; say so, and stop implying the iPad toolbar is floating-keyboard only. - Test: hold the native end codes to the Java constants by reading METALView.m, and cover the explicit flag and the end-code predicate. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
- iOS: drop the branch added for a stale next component. editStringAt returns before it when the component has no top level, so it could not run and the bug its comment described could not happen. - Docs: nextButton does not beat doneButton or a missing successor; say what it does beat. - Test: drive IOSImplementation.editingUpdate itself, so the Done-event and advance wiring is held and not only the helpers. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
|
Developer Guide build artifacts are available for download from this workflow run:
Developer Guide quality checks: |
✅ Continuous Quality ReportTest & Coverage
Static Analysis
Generated automatically by the PR CI workflow. |
Cloudflare Preview
|
|
Compared 210 screenshots: 210 matched. Benchmark ResultsDetailed Performance Metrics
ParparVM vs HotSpot (JDK 25): Windows x64Runner CPU: AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD (baseline Ratios are ParparVM / JDK 25: below 1.00x ParparVM is faster (time) or smaller (RAM). Median of 5 interleaved, paired rounds; every run's output was verified. A ratio more than 20% (time) / 25% (RAM) above its baseline in
Result: no regression |
|
Compared 196 screenshots: 196 matched. Benchmark Results
Detailed Performance Metrics
ParparVM vs HotSpot (JDK 25): macOS arm64Runner CPU: Apple M1 (Virtual) (baseline Ratios are ParparVM / JDK 25: below 1.00x ParparVM is faster (time) or smaller (RAM). Median of 5 interleaved, paired rounds; every run's output was verified. A ratio more than 20% (time) / 25% (RAM) above its baseline in
Result: no regression |
|
Compared 210 screenshots: 210 matched. Benchmark ResultsDetailed Performance Metrics
ParparVM vs HotSpot (JDK 25): Windows arm64Runner CPU: ARMv8 (64-bit) Family 8 Model D49 Revision 0, MICROSOFT CORPORATION (baseline Ratios are ParparVM / JDK 25: below 1.00x ParparVM is faster (time) or smaller (RAM). Median of 5 interleaved, paired rounds; every run's output was verified. A ratio more than 20% (time) / 25% (RAM) above its baseline in
Result: no regression |
|
Compared 195 screenshots: 195 matched. Native Android coverage
✅ Native Android screenshot tests passed. Native Android coverage
Benchmark ResultsDetailed Performance Metrics
|
|
Compared 210 screenshots: 210 matched. ParparVM vs HotSpot (JDK 25): Linux x64Runner CPU: AMD EPYC 9V74 80-Core Processor (baseline Ratios are ParparVM / JDK 25: below 1.00x ParparVM is faster (time) or smaller (RAM). Median of 5 interleaved, paired rounds; every run's output was verified. A ratio more than 20% (time) / 25% (RAM) above its baseline in
Result: no regression |
|
Compared 210 screenshots: 210 matched. ParparVM vs HotSpot (JDK 25): Linux arm64Runner CPU: Neoverse-N2 (baseline Ratios are ParparVM / JDK 25: below 1.00x ParparVM is faster (time) or smaller (RAM). Median of 5 interleaved, paired rounds; every run's output was verified. A ratio more than 20% (time) / 25% (RAM) above its baseline in
Result: no regression |
|
Compared 231 screenshots: 231 matched. |
|
Compared 192 screenshots: 192 matched. Benchmark Results
Detailed Performance Metrics
|
|
Compared 193 screenshots: 193 matched. Benchmark Results
Build and Run Timing
Detailed Performance Metrics
|
|
Compared 253 screenshots: 253 matched. |
The doc-snippets gate compiles every snippet the way the Playground runs it: the javadoc one used an undeclared variable and the guide one called a method outside its tagged region. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Discussion #6212.
nextButton/doneButtonclient properties choose the virtual keyboard's action independently of the input constraint, on Android and iOS. Fields that set neither behave as before.nextButtonoffers Next and moves on without calling the Done listener. With nothing following, the field offers Done.doneButtonoffers Done and ends editing even when another field follows. It wins if both are set.InPlaceEditView.endEditingand fixes the precedence of its Done-event condition.TextArea.setDoneListener.Tested by
TextEditUtilKeyboardActionTest(iOS decisions and theeditingUpdatewiring, plus the native end codes read fromMETALView.m). The Android port has no unit-test harness, so the IME selection is untested. Not run on a device.🤖 Generated with Claude Code