Add an entry under "Tuning the Eclipse Installation" explaining that
ORC_API_KEY must be defined as an Eclipse String Substitution variable and
referenced as an environment variable in the test launch configuration, but
only if one wants to run the ORC public-certificate tests
(TestORCPublicCertificateDatabase, TestORCPerformanceCurve) locally with
success. Without the key these tests fail on purpose (rather than being
skipped) so the misconfiguration is noticed; offline tests still run.
Also describe how to obtain a key: ask the team lead, or request your own via
ORC Sailor Services -> Developers page (request API access, then create keys
once granted), noting that a key is shown only once at creation.
Assisted-By: Claude (claude-4.8-opus)
Updated instructions for smartphone tracking, including clarifications on server requirements, competitor registration, and tracking management. Enhanced details on using the Race Manager app and handling competitor invitations.
New page wiki/howto/eventmanagers/smartphone-tracking.md walks event hosts
through setting up smartphone tracking in the order they actually do it:
event structure, denoting races (incl. the race name prefix dialog),
competitor registration, course layout, the three ways to bring phones in
(device mapping QR code, e-mail invitation, open-regatta registration link),
starting tracking and typical problems. Button and dialog names were taken from the
current Admin Console string messages where available.
Linked from Home.md; the two older pages
info/mobile/smartphone-tracking-steps and -general now point to it.
Assisted-By: Claude Code with Claude Sonnet 5.5
Since August 31, 2026 Google Play rejects app updates not targeting API
level 36 ("Target SDK of artifact is too low: <versionCode>").
Build:
- AGP 8.7.3 -> 8.13.2 (8.7 supports at most API 35; 8.13 supports 36.1
and works with our Gradle 8.14.3 / JDK 21)
- compileSdk 33 -> 36, targetSdk 35 -> 36, buildTools 34.0.0 -> 36.0.0
- azure-pipelines/main.yml: androidVersion 35 -> 36
Apps (all via the shared library, so all apps get it):
- Predictive back: opt out with android:enableOnBackInvokedCallback="false"
so that the existing onBackPressed() overrides and KEYCODE_BACK handling
keep being invoked on Android 16.
- Large screens: temporarily opt out of ignored orientation/resizability
restrictions on sw600dp displays with
PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY (ignored from API 37 on).
- Edge-to-edge, enforced without opt-out for targetSdk 36: new
SystemBarInsetsHandler, registered by LoggableApplication on Android 15+
devices, pads each activity's content view by the system bar, display
cutout and (unless adjustPan/adjustNothing) keyboard insets so content
no longer hides behind the status and navigation/button bar, and fills
the status bar area with the theme's colorPrimaryDark as before.
Document the androidVersion / Play target API requirement in
building-and-deploying.md.
Assisted-By: Claude Opus 5.5
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Central Signing failed with HTTP 406 ("The requested list doesn't exist in
the library files") after 9e17c0b453 switched files2sign.json to the AGP 8
default <module>-release-unsigned.apk names: Non-ABAP Assembly allow-lists
the APK file name together with group/artifact ID per MoMa assembly, and
the allow-listed names are <module>-unsigned.apk.
Restore the allow-listed names in files2sign.json and let the releaseBuild
lane rename the APKs reported by the gradle action from
*-release-unsigned.apk to *-unsigned.apk, failing the lane if none is
found. This replaces the applicationVariants outputFileName rename dropped
in the AGP 8 migration without relying on the deprecated Variant API that
AGP 9 removes. Update building-and-deploying.md accordingly.
Assisted-By: Claude Opus 5.5
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The AGP 8 migration (5a78d3e8e3) dropped the applicationVariants
outputFileName rename that stripped "-release" from the APK name, so the
build now produces <module>-release-unsigned.apk. The central signing stage
of the sap-mobile-pipeline template signs Binaries/Android/<file> literally
as listed in files2sign.json, which still named <module>-unsigned.apk and
failed with "File does not exist". Point files2sign.json at the AGP default
names instead of reintroducing the deprecated Variant API rename, which
AGP 9 removes. Document the naming requirement and update the JDK version
in building-and-deploying.md.
Assisted-By: Claude Opus 5.5
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>