1.0.2
1.0.2
Focused release on dictionary interaction polish and a per-book-state bug that affected multilingual users.
Dictionary
- Every word in a rendered dictionary entry is now tappable and dispatches a recursive lookup on that word, matching how word scanning works in the reader. Visual appearance is unchanged: no underline, no color shift — the entry looks exactly like it did in 1.0.1, only the tap surface is denser. For Japanese dictionaries, only hiragana/katakana/CJK tokens are tappable; Latin interlinear like romanizations stays non-tappable to avoid cluttering the tap surface with tokens that cannot resolve against a Japanese dictionary. For space-delimited languages (English, Czech, German, Polish, Russian, Ukrainian, custom), any word-character-containing token is tappable. Cross-reference anchors (the red ones that were already tappable) keep their existing behavior unchanged.
- The recursive dictionary AppBar gains two new buttons: Back (leading, left) pops one dictionary page, and Close (one next to Back on the left, one on the right at the start of the actions strip) pops every stacked dictionary page at once, landing directly on whatever opened the first dict (reader, player, creator). Tapping through ten recursive lookups used to cost ten back presses to return to the book; now it costs one tap.
Reader
- Per-book state — split view position, audio and translation secondary book, split ratio, TTU appearance settings, bookmarks — is now correctly scoped per target language. In 1.0.1, books across languages could collide because TTU assigns book ids per-language-instance starting at 1, while the Hive box that stores per-book state was shared across all languages and keyed only by the TTU id. A Japanese book with TTU
?id=1and a Polish book with TTU?id=1stomped on each other's settings; switching languages appeared to randomly shuffle per-book settings. After the update, books across languages cannot collide; per-book settings for existing books should be re-saved once (pre-fix stored state was already corrupted from the stomping, so it is not migrated forward).
Infrastructure
- Release APKs are now built for arm64 only; wall time per build is reduced by about two-thirds (armeabi-v7a and x86_64 variants are no longer produced).
tools/bump-build.shnow handles the X.Y.Z → X.Y.Z+1 transition (first dev build after a release), not just the X.Y.Z+N → X.Y.Z+(N+1) case.
Full changelog: 1.0.1...1.0.2