You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Release v1.8.198 — inline offline 'What's new' excerpt in Settings -> About (F14)
Source the current release's notes at compile time: a whatsNewExcerpt() Gradle
helper reads the matching ## vX.Y.Z section from CHANGELOG.md, de-markdowns +
truncates it, and emits BuildConfig.WHATS_NEW (mirrors BUILD_COMMIT_HASH). About
screen shows a 'What's new' preference opening a scrollable dialog with that text
+ a 'Full changelog' link; hidden when the field is blank. No network, no runtime
file IO. assembleDebug + lintDebug green.
After updating, users had no in-app way to see what changed — the About screen's "Changelog" row only opens an external URL (a browser hop; the keyboard itself has no INTERNET). This adds an inline "What's new" entry that shows the current release's notes right inside Settings, with no network and no runtime file IO.
13
+
14
+
The excerpt is sourced at compile time: a new `whatsNewExcerpt(versionName)` Gradle helper reads the matching `## vX.Y.Z` section from the repo-root `CHANGELOG.md`, lightly de-markdowns it (strips heading hashes, bold, inline-code ticks), truncates to ~900 chars, and emits it as `BuildConfig.WHATS_NEW` — mirroring the existing `BUILD_COMMIT_HASH` build-config pattern. Settings → About shows a "What's new" preference that opens a scrollable dialog with that text plus a "Full changelog" button (the existing online link) and "Close". The preference hides itself when no section matched at build time (e.g. a dev build between releases), so it never shows an empty dialog.
15
+
16
+
### Changes
17
+
18
+
- **`app/build.gradle.kts`** — `whatsNewExcerpt()` + `String.escapeForBuildConfig()` helpers; new `BuildConfig.WHATS_NEW` field.
19
+
- **`app/settings/about/AboutScreen.kt`** — "What's new" `Preference` + Material3 `AlertDialog` (scrollable), shown only when `BuildConfig.WHATS_NEW` is non-blank; reuses `action__close`.
- `./gradlew :app:assembleDebug :app:lintDebug` green; `BuildConfig.WHATS_NEW` populated from this section. `:app:verifyNoInternetPermission` unaffected (no manifest/permission change; the inline view replaces a browser hop with on-device text).
**SwiftFloris** is a privacy-first Android keyboard, forked from FlorisBoard and pushed toward SwiftKey-class multilingual typing without the cloud. It ships under Apache-2.0, holds no `INTERNET` permission, and binds zero accounts.
Copy file name to clipboardExpand all lines: app/src/main/res/values/strings.xml
+4Lines changed: 4 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1029,6 +1029,10 @@
1029
1029
<stringname="about__signing_fingerprint__summary_loading"comment="Preference summary while computing the fingerprint">Computing SHA-256…</string>
1030
1030
<stringname="about__signing_fingerprint__summary_unavailable"comment="Preference summary when fingerprint cannot be obtained">Fingerprint unavailable on this build</string>
1031
1031
<stringname="about__signing_fingerprint__copied"comment="Toast confirming fingerprint was copied">Fingerprint copied to clipboard</string>
<stringname="about__whats_new__summary"comment="Preference summary, {version} is the app version like 1.8.198">v{version} — see what changed in this release</string>
1034
+
<stringname="about__whats_new__dialog_title"comment="Dialog title, {version} is the app version like 1.8.198">What\'s new in v{version}</string>
1035
+
<stringname="about__whats_new__full_changelog"comment="Dialog button that opens the full online changelog">Full changelog</string>
Settings → About now has a "What's new" entry that shows this release's notes inline, in a scrollable dialog, with no network — the text is baked in at build time from the changelog. A "Full changelog" button still opens the complete online history. It hides itself if there are no notes for the build.
0 commit comments