Skip to content

feat: show app version in Privacy tab (RFC 0016) - #18

Closed
willwade wants to merge 1 commit into
feat/text-size-callbackfrom
feat/version-in-privacy
Closed

feat: show app version in Privacy tab (RFC 0016)#18
willwade wants to merge 1 commit into
feat/text-size-callbackfrom
feat/version-in-privacy

Conversation

@willwade

Copy link
Copy Markdown
Contributor

Implements governance RFC 0016 (accepted). Fixes #17.

Stacked on #16#14 — merge in that order.

One quiet Dasher <version> line at the bottom of Settings → Privacy, reading AnalyticsService.appVersion (BuildConfig.VERSION_NAME) — the same value analytics already reports, so UI and telemetry cannot disagree. The private appVersion() collapses into a public val as the single source (callers updated). Interim home pending RFC 0006's About section.

Sibling issues: Dasher-Windows #29, Dasher-Apple #35, Dasher-GTK #54 (implementing in Dasher-GTK #55), dasher-web #151.

  • :app:compileDebugKotlin + :app:testDebugUnitTest green.
  • Manual check: line reads Dasher 0.1.0 (current versionName) under the Reset anonymous ID button.

DCO signed.

One quiet 'Dasher <version>' line at the bottom of Settings ->
Privacy, reading AnalyticsService.appVersion (BuildConfig.VERSION_NAME)
- the same value analytics already reports, so UI and telemetry cannot
disagree. appVersion() collapses into a public val as the single source.

Interim home pending the About section (RFC 0006).

Fixes #17.

Signed-off-by: will wade <willwade@gmail.com>
@willwade
willwade deleted the branch feat/text-size-callback August 22, 2026 09:16
@willwade willwade closed this Aug 22, 2026
willwade added a commit that referenced this pull request Aug 22, 2026
Supersedes #16 (squash-merged into its stacked base by mistake) and #18
(auto-closed by the same). One PR, two commits, net diff identical to
those two combined.

## 1. Real text metrics for label layout ([DasherCore
#56](dasher-project/DasherCore#56) / v0.2.4)

The engine laid out node labels using a `codepoints × fontSize/2`
estimate whose error compounds down the label shunting chain — deep-zoom
text degenerates into jumbles (user-visible on Windows; same engine path
here). Wires `dasher_set_text_size_callback` end to end:

- JNI `textSizeCallback` marshals into `NativeBridge.onTextSize` (same
cached-methodID pattern as the other callbacks); new
`nativeSetTextSizeCallback` / `nativeTextMetricsChanged`.
- `DasherCanvasView.measureGlyphText` measures with the same Paint +
size transform (`×2.5, floor 8`) the canvas draws opcode-5 text with, so
layout and drawing agree; font changes invalidate cached metrics.
- MainActivity **and** the IME install their own measurement (static
listeners — the IME must not inherit the Activity's canvas).
- Submodule → DasherCore v0.2.4.

## 2. App version line in Settings → Privacy ([RFC
0016](https://github.com/dasher-project/governance/blob/main/rfcs/0016-version-in-settings.md),
fixes #17)

Quiet `Dasher <version>` line reading `AnalyticsService.appVersion`
(`BuildConfig.VERSION_NAME`) — same value analytics reports; UI and
telemetry cannot disagree.

## Testing

`:app:compileDebugKotlin`, `:app:testDebugUnitTest`,
`:app:assembleDebug` (native vs v0.2.4, arm64-v8a + x86_64) green
locally; CI green on the superseded PRs (same code).

DCO signed (both commits carried it).

---------

Signed-off-by: will wade <willwade@gmail.com>
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.

1 participant