v0.11.3-release
TLDR version:
The long awaited performance update.
Full version:
- Fix memory leak that may sometimes be caused by toasts.
- Fix incorrect close/archive flags used in ChanOriginalPost.
- Fix floating controllers in split screen have incorrect width which makes the content go outside the bounds of the views.
- Update snackbar appearance logic in SPLIT layout mode (which was broken after introducing NavigationRailView).
- Fix post marks getting out of recyclerview view bounds if a thread has way too many posts (thousands).
- Add a menu option for BookmarksController bottom panel to add ability to start downloading selected bookmarked threads.
- Fix last seen post indicator being incorrectly shown (delayed by one thread update).
- Do not hide popup reply/search post screens when quoting posts.
- Include exoplayer cache dir total length calculation in the dev settings.
- Add deeplinks for all supported sites/archives.
- Show internal media cache/exo player cache sizes separately in the dev settings.
- Show total thread download cache size in the dev settings.
- Use alternative solution to figure out whether we can use swipe-to-refresh (maybe will help people that claim it doesn't work in the catalog).
- Fix a bitmap scaling problem when loading post icons. Because of using ImageSize.UnknownImageSize the result bitmap might end up incorrectly scaled which might lead to bitmaps having sizes 50+ times greater than needed (16001600px instead of 3232px). This obviously led to increased GC invocations which led to micro-freezes when scrolling the catalog on boards with flags.
- Replace GridLayoutManager with StaggeredGridLayoutManager because GridLayoutManager causes a weird bug where it automatically starts scrolling to the top of the catalog when using GRID layout mode and fast scroller.
- Add ability to manually add catalog threads to navigation history. Increase MAX_NAV_HISTORY_ENTRIES by 2.
v0.11.2-release
- Fix crash when trying to open a thread with a marked post when using SPLIT layout mode and when the right (thread) controller is closed.
v0.11.1-beta
- New icons (including adaptive).
- Fix thumbnails being cut off slightly horizontally when a post has only one thumbnail.
- Reuse PostImageThumbnailViewContainer instead of doing removeAllViews() on every bind/unbind().
v0.11.0-beta
- New post comment HTML parser. ~1.5-2x times faster than the old one. The old one was Jsoup which was doing lots of unnecessary stuff which made it slower. The new one was written from scratch for only one purpose: to parse post comment HTML (which only uses a handful of HTML tags).
- Consider Android M and below low RAM devices. Low RAM devices use more aggressive optimizations.
- Reduce the amount of memory used by Coil's internal bitmap caches.
- Reduce the amount of memory used by ChanPost caches.
- Move some processing that was previously called on the main thread on each PostCell bind()/unbind() onto a background thread.
- Do not use OkHttp Cache for Coil's OkHttp since we already use our own CacheHandler inside ImageLoaderV2 (should reduce memory and disk usage).
- Fix some Manager classes never removing cached data that is used by ChanThreads when those threads are removed from the ChanThreadsCache. This was a pretty serious oversight which could easily lead to increased GC runs and even OOMs. Now, once a ChanThread is removed from ChanThreadsCache listeners that listen for this to happen are notified and invoked immediately.
- Separate IMMUNE_THREADS_COUNT for low/normal ram devices.
- Reduce the overdraw issues on most of the screens.
- Reduce the overall view tree nestedness.
- Use recycledViewPool for catalog/thread recycler again.
- Rework PageRequestManager internal data structure a little bit. Make the result thread list a map for faster thread page look up.
- Add batched versions of some PostFilterManager methods.
- Move some potentially heavy (due to synchronization) stuff out of PostCell to ThreadPresenter (manager classes that are called on every PostCell.onPostBind() / PostCell.onPostUnbind()). Also move that stuff onto a background thread so that the main thread won't hang in cases where the internal locks are being held for quite some time by other threads.
- Rework post highlighting.
- Fix 4chan global search.
- Fix warosu search.
- Add option to force HTTPS scheme for url comment links.
- Add ability to delete all saved posts at once.
- Show post icons on CardPostCell.
- Add a setting to never remember and never use 4chan captcha cookie.
- Add "Media viewer offscreen pages count" setting.
- Make some of the dagger dependencies lazy to postpone their initialization utils they are actually needed.