v1.2.4
TLDR version:
!!! The first application start time after the update make take 15-60 seconds because of multiple migrations that need to be executed. !!!
- Post cell UI + performance updates.
- Split disk media cache.
Full version:
- Implement custom post report UI for 4chan.
- Implement custom post report UI for 2ch.hk.
- Fix displaying posts with no comment/thumbnails/replies/etc, basically completely empty posts.
- Rework SelectBoardForSearchController which fixes /GLOBAL/ search option being split in two lines.
- Some minor adjustments for image spoilers.
- Implement new 4chan slider captcha UI layout (grid mode) similar to Dashchan. The idea is to draw a grid of images where each subsequent image is slightly shifted to the right. This way you don't have to move the slider you can just look at the grid and find the most readable one right away.
- Use the same font size of post subject as for post comment.
- Handle 8kun
tag that is used for new lines.
v1.2.3
- Add redtext/heading support for vichan. Thanks to @chuddiechud
- Fix not being able to add any endchan boards because of too many boards being processed causing SQLite max IN operator elements error.
- Remove extension from original file name on Lynxchan sites if it's present.
- Do not show image dimensions if both of them are zeroes in PostCell and media viewer toolbar sub-title.
v1.2.2
- Process post subject in PostHighlightFilterLoader as well. Fix highlight filters not marking keywords in post subject in some cases.
- Some minor changes.
v1.2.1
- Quick fix for the crash when trying to calculate post title text bounds on Android M and above.
- Apply inset paddings on the left/right sides of media viewer controller view as well.
- Fix post filters incorrectly processing post replies when "Apply to replies" option is selected for filter.
- Load all post filters at once to avoid unnecessary postFilterManager access which involves lots of synchronization.
- Only show "Apply to replies" filter option when filter action is HIDE or REMOVE.
v1.2.0
- Post cell UI has been reworked. Measure/Layout routines were rewritten from scratch and now calculate all the stuff manually instead of using ConstraintLayout which improves Post cell measure/layout performance (Catalog/Thread scroll performance).
- When post has multiple images they are now displayed slightly differently. Image info is displayed below the thumbnail and file name is not displayed at all.
- Database SpannableString serialization reworked. Now it stores the SpannableString span info as a byte array created from a Parcelable instead of json string which improves SpannableString database store/load operations performance (used when loading catalogs or by thread downloader).
- Split media disk cache into multiple disk caches. The idea here is to store media displayed on different screens separately so that it's not evicted from the cache because it's filled with other media. For example, let's take the bookmarked threads' thumbnails. Before this change they were stored together with the other media, like post full images. So it would be evicted from the cache just because you viewed lots of images. Now lets say the bookmarked thread got deleted from the server. Now the bookmark thumbnails shows "Not found" which is not desired. With the new cache implementation bookmark thumbnails won't be evicted from the cached because it's filled with too many post images. It will only be evicted if it's filled with too many other bookmark thumbnails. So the cached thumbnail will stay cached for much longer so you will be seeing "Not found" way less frequently.
There are 7 types of media caches now, each existing in it's own separate directory:
- ThreadDownloaderThumbnail (local archive screen thread thumbnails).
- BookmarkThumbnail (bookmarks screen thread thumbnails).
- NavHistoryThumbnail (navigation history screen thread thumbnails).
- SiteIcon (all sites icons, like favicons or site flags).
- PostMediaThumbnail (post thumbnails).
- PostMediaFull (full size post media).
- Other (stuff like apk updates, media downloaded when importing it from external url, searx image cache, etc.)
They all take their own percent of the total allowed disk cache size. Most of them take 5% of the disk cache size, exceptions are: PostMediaFull which takes 65% and Other which takes 10%. The percent values will probably be adjusted in the future. For now you can't change them by yourself they are hardcoded. The ability to change them may get added in the future.
This should also increase the disk cache access speed since files are now located in separate directories the directory query should take less time due to having to query less files at a time. You can clear all the disk caches separately now on the Developer settings screen.
- Remove inlined_file_info_entity table and everything related to it since it's not used anymore.
- Decrease maxPostsInDatabaseSettingValue since we don't store thread posts in the database anymore so there is no reason to store this many posts.
- Add go to post button to album view cell thumbnail longtap menu.
- [2ch.hk] Add support for color:rgb() span attribute.
- Do not crash when TextView crashes with
java.lang.IndexOutOfBoundsException: setSpan (-1 ... -1) starts before 0
exception internally in Editor class. - Add ability to open drawer by dragging from left to right on the thread screen. A new setting was added: viewThreadControllerSwipeable. Enabled by default it controls whether the
thread screen can be swiped away. If it's disabled then instead of the thread screen being swipeable you will be able to open the drawer by performing the drag from left to right gesture from any point of the screen (similar to how you can open the drawer from the catalog). If it's enabled then you can open the drawer the same was as before - by longtapping the left screen edge and pulling it to the right. viewThreadControllerSwipeable setting doesn't work in SPLIT layout mode. - Add ability to dump thread stack by sending a broadcast intent. The old way to taking the thread dump by going to developer settings was useless because in case of an actual deadlock you probably wouldn't even be able to do anything other than restart the application. Now it's possible to send a specific intent via adb which will dump thread stack into a file which can then be pulled by adb.