Skip to content

Readwide v1.0.1

Choose a tag to compare

@k1717 k1717 released this 10 Jun 05:30
37aa71d

Release scope

  • Kept Android metadata at versionCode 10001 and versionName "1.0.1".
  • Kept the existing Android applicationId / package name so Readwide 1.0.1 remains update-compatible with earlier compatible builds when signed with the same key.
  • Focused on viewer polish, portable backup/bookmark handling, archive safety, lifecycle hardening, and public GitHub/F-Droid packaging cleanup.

Final changes included in this upload

  • Missing bookmark target files remain visible in the bookmark list with a theme-matched File missing / 파일 없음 label. Tapping one opens a themed explanation dialog while preserving the bookmark for later portable rebind.
  • Backup import keeps last_directory, recent_folders, and folder_shortcuts only when those folders exist on the current device. Invalid imported paths are skipped, and valid current-device entries are preserved when the backup has no accessible replacement.
  • TXT bookmark imports treat pageNumber, totalPages, and pageLayoutSignature as layout-dependent cache. Character position, logical line, surrounding anchor text, and file fingerprint remain the stable bookmark location, and Page X/Y refreshes under the current device layout when the file is opened or the bookmark is used.
  • Zoomed PDF pages can fling/pan with inertia in single-page mode, and zoomed pages in vertical continuous mode support horizontal fling across the visible page while original-scale swipes keep their page-turn behavior.
  • Image viewer landscape safe-area handling now respects Android 3-button navigation on the right side of the screen.
  • Image viewer default fitting is adaptive: wide images open fit-to-width and tall images open fit-to-height. Double tap toggles against true 1:1 scale when applicable.
  • Image viewer keeps successfully decoded detail/original bitmaps after returning from zoom to adaptive-fit view, avoiding repeated detail re-decodes for the same image.
  • Archive-backed image viewer recent/saved-position reopen paths were hardened so deferred image sequence metadata is applied before decoding, with fallback handling for missing or invalid handoff metadata.
  • Legacy archive entry filename decoding was expanded for raw ZIP central-directory names and first-party ALZ/EGG name fields, covering Korean, Chinese, Japanese, Cyrillic, Greek, Turkish, Hebrew, Arabic, Thai, Vietnamese, Western/Central/Baltic Latin, and DOS ZIP code pages where raw name bytes are available.
  • Password-protected archive image viewing uses selected-image-first lazy extraction after password entry. Password-sensitive preview cache reuse validates the current password before trusting cached output.
  • ALZ Store/Deflate/BZip2 and EGG Store/Deflate/BZip2/LZMA extraction paths stream to output with CRC verification where the format path allows it.
  • Archive failure messages now distinguish password-required, bad-password, unsupported-feature, corrupt-archive, and generic failures, with conservative family-specific support-boundary details.
  • Added external RAR and non-RAR archive fixture report tooling for local compatibility QA without broadening public archive compatibility claims.
  • Removed forced process-wide System.gc() calls from image decode OOM retry; retries increase sample size and yield instead.
  • Added lifecycle guards and cleanup for document WebView callbacks, PDF delayed callbacks, TXT TTS callbacks, reader-toolbar delayed work, drawer delayed work, image sequence handoffs, archive password snapshots, and font-scan callbacks.
  • Bounded EPUB fixed-layout/font detection reads so large HTML/CSS entries are not fully loaded during detection-only scans.
  • Public GitHub/F-Droid documentation, release notes, archive/RAR/license report filenames, and Fastlane changelogs were normalized for the Readwide 1.0.1 release line.

Archive support boundary

  • ZIP/CBZ stays on Zip4j as the primary path, with Apache Commons Compress fallback for non-encrypted unsupported ZIP methods where bundled codecs can read them.
  • 7z/CB7, TAR-family archives, and single-compressor streams continue through Apache Commons Compress.
  • ALZ and EGG remain limited first-party implementations with documented method coverage and unsupported encrypted/split/solid variants.
  • RAR/CBR remains libarchive-primary with scoped first-party Java support for metadata, safe paths, stored entries, selected stored split paths, RAR4 Unicode names, diagnostics, and covered RAR5 stored-entry handling.
  • RAR creation is not implemented.
  • Split/multi-volume RAR and encrypted RAR are not guaranteed.
  • Solid RAR, PPMd, custom VM filters, broad SFX, RAR5 compressed/solid/encrypted-header cases, and unusual RAR variants remain backend-dependent or unsupported unless a specific file is covered by the bundled backend.