Book's Story v1.0.2
🦠 Contains CLOSED SOURCE library "ML-Kit", which sends network calls to googleapis.com (more info: #7), not recommended to download! Please download release starting from v1.1.0.
✨ New features
- Built-in translator (04e67aa):
- Please note, that I cannot control the quality of the translation, it may be different for different languages. The main purpose of this feature is to help. It is not recommended to translate the whole text of a large book(especially with Auto Language Detection), it may take significant amount of time to just start translation, instead, use one paragraph translation.
- For users before Release v1.0.2(this): Database migrated to version 2. It should not affect you in any way except by default, in old books(added before v1.0.2) you will see "default" translator settings(which is Auto Language Detection → English). With newly added books you will have default settings based on your preferences in Reader Settings (Settings → Reader → Translator).
- Individual Book's settings & General settings(for newly added books).
- Based on ML Kit.
- Over 50+ different languages.
- Fully offline, the only thing you need to do is download language model, but only once per language. Each model weights ~30mb, the more you download, the larger app size will be(can easily be +1gb). If you will not download models, app size has to be under 100mb(without any data, the more books you add, the larger app will be).
- Models are the same as for Google Translator's offline translation (as said in docs, believe it or not).
- Offline auto language detection(works for all supported languages, may not always identify language correctly).
- Full/Paragraph text translation.
- New Help screen tips (ebf8622):
- How do I use tooltips? - How to use icon-buttons' tooltips.
- How do I set up translator? - How to set up translator, for both individual and general preferences.
- How do I use translator? - How to use translator, full/paragraph text translation, general controls.
- UI: New checked Switch color. (c9ddc69)
- Room Database Version Migration (1 → 2). (04e67aa)
- Added ".fb2" file format(suggested by many, #2). (6e70901)
🛠️ Bug fixes & Improvements
- Various dependencies updates. (04e67aa)
- Gradle Version Update 8.2 → 8.4 (04e67aa)
- Changed Reader text system. Now book doesn't hold any text, only ReaderViewModel does. (456d9fc)
- Returned default AnimatedVisibility, before used Custom, which prevented a bug(fixed). (161074f)
- PDF parser: changed new line indicator to "</br>"(just visual thing), more line deleting rules. (dff7499)
- Bigger cover in ReaderStartItem. (6536064)
- Less padding between HistoryItem title and description. (c9ddc69)
- LibraryTabRow: PrimaryTabRow → ScrollableTabRow(due to new material3 version PrimaryTabRow's changes). (3d6c81b)
- Transitions:
- Replaced AnimatedVisibility with SlidingTransition in LicenseInfoScreen. (21bb739)
- BrowseAddingDialogItem: More Horizontal Padding + Correct checkbox width. (124351b)
- ForEach → For loop in customItems, customItemsIndexed. (b2df80d)
- ModalBottomSheet → CustomBottomSheet(fixes bugs). (04e67aa)
- Constants.NAVIGATION_ITEMS for NavigationBars. (04e67aa)
- ReleaseResponse → LatestReleaseInfo(more accurate data class name). (04e67aa)
- Fixed: Modifier.clip did not apply correctly (04e67aa)
- CustomSelectionContainer:
- StringWithId → LineWithTranslation. (04e67aa)
- Small localization changes. (04e67aa)
- GetBooksById → GetBookById(single book usecase). (e033294)
- Canceling all ReaderViewModel.onEvent calls on screen quit(fixes bugs with text being translated after quitting). (e033294)
- Fixed: Progress resets to 0% if leave when Reader is loading. (e033294)
- Fixed: Book text does not show correctly after loading(most likely caused by new dependency version). (e033294)
- Moved ReaderScreen top and bottom bars color to Theme.kt → Colors.readerSystemBarsColor. (2a20ab2)
- Fixed: With ParagraphIndentation on, text did not show correctly. (8ecdbfb)
- ReaderScreen: Great performance improvement by reducing recompositions count. (0a06ccd)
- Ignoring file format case(like .TXT or .TxT). (09f9bbc)
- ColorPickerWithTitle: Saving initialValue in rememberSaveable(prevents unwanted reset of initial value). (3f3e285)
⚠️ I found a bug, what to do?
With new features there may be bugs, especially with big ones. If you found a bug, please tell me in Issues. If an error is in text parsing, please also provide file(book) in which you found an issue and tell me where an issue happened. This way I can see the issue myself, test and fix it.
⚙️ Installation guide
- Please note, that the app supports Android versions only from Android 8.0
Download book-story.apk from below or click here.
After that find downloaded file and install it. If you don't understand how to do so, follow this guide.
Open the app and follow instructions. If you don't understand how to use app, please read everything in the app's Help screen. If you still have questions, please feel free to ask in Discussions.
🥹 About release frequency
This release sure took me a while. Why? Well, I am working on this project alone(and I'd like to continue this way), a big new feature - such as Built-in translator is a big piece of work(over 4k lines, huh), it was a new thing to me, many new mistakes and improvements, that's why it took me this long(almost a month for a single feature). Sadly, this release was without some of suggested to me features, I remember all of them and they are in my priority. I started to work on Built-in translator a little before first release, and it was in my TODO list way before that, that's why I kept doing it and not going with suggested ones first. Also cannot guarantee that next releases will be faster, it all depends on complexity and my targets.
P.s. Sorry for the app size, I know that 20mb → 80mb is a large difference, I will look into it and try to figure something out.. But still I cannot prevent app from going larger as it grows. Anyway I hope it will not make your experience worse 😔