Skip to content

Modernize code base and enable saving to external storage#12

Open
jaredning wants to merge 15 commits into
DefiantCatgirl:masterfrom
jaredning:master
Open

Modernize code base and enable saving to external storage#12
jaredning wants to merge 15 commits into
DefiantCatgirl:masterfrom
jaredning:master

Conversation

@jaredning
Copy link
Copy Markdown

@jaredning jaredning commented Apr 5, 2026

Basically, I forked the repo, modernized the code and made some of the changes I've been wanting to see for a while and it works great for my purposes. I doubt anyone else is still using this (although I'll note I have yet to find a better alternative that works on my Android 7.1.1 tablet) but just in case - here's the PR:

  • Migrate app to AndroidX and modernize and migrate all dependencies to current versions so that it can successfully compile again
  • Enable external storage access so that users can store chapters on SD cards, instead of being locked to internal storage
  • Fix Browse > Series tab not displaying any results at all, and add pagination buttons to easily scroll through all series listed on DynastyScans
  • Add chapter download button when viewing a series so that you can queue up chapters for download without having to click into each chapter
  • Optimize performance around reading/writing chapters to/from external storage
  • Optimize loading chapters from external storage for reading to match the speed of the original app when reading off internal storage as closely as possible
  • Other performance optimizations to improve performance on older devices, including:
    • Switch to 16 bit rendering with RGB_565
    • Flatten Reader view hierarchy
    • Optimize render loop and scrolling
    • Optimizations when reading from external storage via SAF to speed this up

And yes, this was 100% done with Gemini - The file system changes I probably could've figured out on my own, but I have zero Android experience so tackling a migration of this size would've been impossible otherwise.

The original functionality should've all been more-or-less maintained, as far as I can tell - although I worry some of the changes around keeping the delete chapter functionality working are probably pretty close to AI slop, but my goal was just to make the improvements I needed without breaking the rest of the app.

Also, this breaks compatibility with Android versions pre 6.0 - seems worth noting considering the original app in its current form supports Android 4.1.

I created my own APK from my fork here for download if anyone's interested.

EDIT: I'm still fixing bugs as I find them, but this is close to being at the very least stable, with functionality akin to the original app. There are some QOL improvements I can think of that would be worth doing, especially to streamline things for users other than me, such as:

  • Multiple source folders (i.e. let the app download and read from both internal and external storage at the same time)
  • Allow importing from pre-existing source folders to sync DB state with chapters/series that have already been downloaded

I'll see how I feel about these based on my testing / personal use - but for now, the goal now is to ensure the app is stable, and most importantly that the original functionality is also preserved on top of the changes I've added.

jaredning added 15 commits April 4, 2026 04:24
…es, and fix TabLayout indicator being inaccurate
…oad button so that chapters can be downloaded without opening them. remove unnecessary logs, fix overly aggressive GC, fix potential memory leaks, and improve performance when reading a chapter that's currently downloading
…smoothness when loading data off an SD card, compared to the original app when loading chapters from internal storage
… signed apk to crash and fix delete chapter button not working
…ion when downloading multiple chapters at once causing chapters to fall out of sync
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