Releases: Adamantcheese/Kuroba
Releases · Adamantcheese/Kuroba
UI changes and performance improvements
NEXT RELEASE: When it's ready. You can always use dev, but be aware things may break without warning.
Double check your board/thread folder download settings after installing this version, they have been reset for new options!
NEW FEATURES
- Image prefetching and high-res cells have been merged together; images are now loaded when their thumbnails are displayed rather than upon thread load. If you want to load an entire thread of images, opening up the album viewer and scrolling through it will do it.
- On API 23 and up, the options field now has insertion shortcuts for sage, since4pass, and fortune on [s4s]. Also PR #999, thanks @Astridchan!
- PR #1000, moves the "copy" menu item to be a submenu item, much like filters. Additional small fixes as well! Thanks again to @Astridchan!
- The post details area is now single-tap to quote post number only, long-tap for quote with text. Corresponding options menu items have been removed.
- #1009, the image rotation button has been removed in favor of a first finger hold/second finger tap gesture on static images. 90 degrees clockwise per tap.
- #682, after a webm file is fully downloaded in the cache (from a stream or otherwise), the metadata title, if available, will be able to be displayed in the post info menu option.
GENERAL CHANGES
- #1014, NOJS captcha is back and set as default, along with the setting to switch whenever Hiro decides on a whim to do... whatever it is he's doing.
- Some Youtube duration parsing has been reworked and should operate a bit faster as a result.
- PR #1001, #982, splits out individual file saving settings from album saving settings; your previous settings HAVE BEEN RESET. Thanks again to @Astridchan!
- #371, tapping the watch notification will now take you to quotes first if you have any, followed by regular posts.
UI CHANGES
- The column count setting is now able to pick (1). With 1 selected, card post cells will render slightly differently in order to provide a nice viewing experience, which is best viewed with prefetching enabled.
- #283, thread information will now be presented (if available) below pins in the drawer. The righthand info will continue to display the unread count, but will also display the unread quote count if there are any new quotes. Additionally, that strange issue of pins flashing when updating should no longer occur.
- The JS Captcha cookies editor now has a toolbar menu item that links to the guide on Github.
- Adjusted highlight colors for Dark, GruvboxDark, Neon, and ColorBlind.
- The "bookmark" options menu item in the catalog will not be added if the post in question already has a pin associated with it.
- PR #1004, fixes a display issue with the bottom input dropdown icon. Thanks @Astridchan!
- PR #1005, fixes a display issue with italicized text in the drawer being clipped if the text area was filled with enough text. Thanks @Astridchan!
- #1008, all text colors match their respective themes in Clover.
- Marked links (ie in reply popups) are now bold, to make them easier to spot.
GENERAL FIXES
- #994, update notifications will actually not be so persistent anymore.
- Notification status icons should flicker less.
- The show links menu will now avoid showing SPOILER linkables, which should cut down on apparent duplicate links. Also you can tap outside to close it.
- The "9s" momentary display in the thread status cell when the timeout was higher has been resolved and will now no longer display (that is, Loading... will display directly).
- #367, an AndroidX bug with font sizes that has been resolved with a library update.
- Recycler views now properly recycle views without any strange view glitching; see #1002 as well.
- #974, #1011, you are now once again able to open up the drawer if the thread list has scrolling inertia without the scroll stealing the touch event.
CRASH FIXES
- #1007, fixes an issue with exporting settings when a pin has a null thumbnail URL.
DEVELOPMENT WORK
- More architecture and code cleanup; this should just be a given after this point.
- Additional debug items have been added to debug JSON failures.
- ThumbnailView has been marked as abstract and should not be instantiated directly; PostImageThumbnailView now inherits from FixedRatioThumbnailView as they shared a number of the same methods.
- Attributes are now used for FixedRatioLinearLayout and any in-code ratios have been moved to XML.
- BitmapRepository has been created for more centralized static bitmap management in the application (things like archive/sticky/youtube icons).
- Additional movement of some methods back into ThreadPresenter from ThreadLayout; unnecessary callbacks.
- Android Gradle desugaring has been enabled and JodaTime removed. Was only used for debug messages anyways.
- SubsamplingScaleImageView is no longer pulled from the upstream source as a result of the new rotate action, but that code has not changed in a while so this is fine.
Minor features and performance improvements
NEXT RELEASE: When it's ready. You can always use dev, but be aware things may break without warning.
NEW FEATURES
- Development builds are now provided by Github Actions builds in a seperate repository, Kuroba-Dev. Please install a fresh version from that repository if you have not already done so.
- #81, there is now a column count for the album view, just like for the catalog in board mode. This setting also applies to the album download view.
- #77, there are now settings for column count in portrait and landscape mode. Rotate your screen before entering the appearance settings to access them.
- #573, the "Show links" post menu option now has the option to long press an item to get the raw link value; youtube links will display fancily to indicate what they're pointing to and that they have a special action.
GENERAL CHANGES
- The NOJS option has been removed from 4chan as it is no longer useful. JS forever now, use JS Captcha Cookies.
- #984, the image rotate button and video mute buttons will be more persistent between swipes. The mute button now properly displays the muting state of the image viewer rather than the video itself, which is what it was always doing anyways.
UI CHANGES
- The Colorblind theme from Oneechan has been ported over.
- PR #980, the Gruvbox Light theme has been added. Thanks to @Astridchan for the port from @TheLastZombie's original implementation back in 2017.
- Style adjustments across the board for highlight and divider colors.
- #963, prevents an issue with certain bad ROMs using a white nav bar color when the XML calls for pure black to prevent burn-in on OLED screens.
- The divider between settings now matches the styling as between posts (1dp now rather than 1px and with margins).
- #964, external links are now a seperate color from internal ones again.
- Themes have been readjusted to before the theme cleaning; apparently a difference of 4/256 in the blue value for a background color is VERY noticeable.
- #983, the secondary text color on Tomorrow has been fixed.
- PR #969, #967, adjustments to the default colors on several themes and a small style fix. Thanks @Astridchan!
- Additionally, tan has been added as a color for toolbars and accents.
- The last seen indicator will not longer appear in the post replies popup.
- The theme settings controller now has a last seen indictor inside of it, which is tied to the accent color. Picking a new accent color will refresh the view correctly to update the last seen indicator and text highlight color.
- The theme settings controller menu now has a paint roller instead of the hamburger icon, to more accurately show that at a glance it is used for coloring the toolbar.
- In addition to the change in #980, more items use the regular backcolor attribute instead of the secondary backcolor.
GENERAL FIXES
- #976, adjustments made to have image loading be a bit less lag causing. Additionally, hi-res cells have been removed, as they just cause too many problems with lag.
- #960, #961 fixes an issue with images not loading/downloading correctly after being shared.
- #962, fixes issues with new update notifications persisting after installing a new version.
- #966, thumbnails will no longer display "error" so eagerly nor will they randomly be blank as much.
- The theme controller will now properly open up to your selected theme with the correct colors for the primary and accent.
- Local images shouldn't have any issues with threading anymore.
- #985, null texts will no longer cause filter matching to fail with an exception, which could cause an API parse error in situations where the image filehash was not set.
- #738, fixes a synchronization issue with the board suggestions dialog.
- #986, fixes posts being posted to incorrect threads.
- #778, fixes a seemingly infinite loop sometimes caused by view tree observers being constantly changed, causing strange layout stalls/issues.
CRASH FIXES
- Fixes a crash caused by a captcha freshness task not being run on the main thread.
- Fixes a crash caused by a null URL attempting to be coerced into a string instead of returning null.
- #975, tapping the "bottom" or "top" buttons when a post replies controller is opened will not crash the application and will now properly scroll to the top/bottom of the container. This should not occur regularly and is only to prevent crashes.
- #737, if the floating menu anchor isn't found for the sort catalog action, default it to be the entire controller's view.
DEVELOPMENT WORK
- Editor layout previews now completely work.
- Theme documentation has been updated a bit more.
Theme/UI color adjustments
See v4.13.0's changelog for a majority of other changes.
Next release: When it's ready!
ADDITIONS
- Grammar fix for "View your posts" to "View my posts".
- Update notifications will only be triggered if you press "Later" in the update dialog or if an automatic startup check says there is an update. Previously the update notification would be triggered before you chose to update when trying to manually, which would cause the notification to stick around instead of just never appearing.
- The toolbar will now blend to and from black when entering or exiting the image viewer.
- Text colors have been adjusted for Neon and Solarized Dark. The subject color for Tomorrow has been reverted to it's previous color.
- Highlight and divider colors have been adjusted for all themes to be darker rather than lighter. Additional test posts have been added to the theme display for a better visualization.
- Fixes the blue color in dark themes to be defaulted to red.
- #956, fixes an appearance softlock with phone layout mode and swipeable controllers.
- Fixes a banding issue caused by a poor default color configuration being used in the image library.
Final adjustments.
See v4.13.0's changelog for a majority of other changes.
ADDITIONS
- #948, fixes a crash caused by a null thumbnail URL.
- #949, fixes a crash that makes no sense???
- #951, fixes a memory leak with ThumbnailViews.
- #952, fixes a clash between day/night themes, even if a device didn't have access to a night theme. Also ensures the toolbar color in the theme setup controller is correct when toggling between day/night.
Bugfix for #946.
Small fixes.
See v4.13.0's changelog for a majority of other changes.
ADDITIONS
- #946, fixes an issue where sometimes a thread created at a close enough time to another would be loaded instead of the proper thread.
- The rotate image option has been moved to be a toolbar item for static images.
- If a watched thread is a sticky, it will have the pinned icon added to the title and the usual post/image limit bold/italics on the unread count won't be applied.
- Fixes a reported issue with site deletion; Context objects should not be dependency injected unless known to be the correct one (Application versus Activity).
Volley removal, UI updates, small changes, crash fixes, and more!
You shouldn't need to backup before this release, but it is a good idea.
A lot of the work in this release was background stuff and not directly visible to the user, which is why this isn't really a feature-filled release.
SPECIAL THANKS
The following people have been greatly helpful in this release, other than @K1rakishou of course.
- @jeremybullen, 8Kun captcha.
- @Astridchan, filter submenu and filter settings display.
- @XylTheGryphon, local reply timer.
- Optix#9026, toolbar/FAB color.
- @jkass1, test support for a reply/draft refactor.
- @TacoTheDank, the usual dependency upgrades.
- @Wired-7, fixes for their imageboard.
- @clawyf, theme refactor test support.
- @lewri, theme refactor test support.
GENERAL IMPROVEMENTS
- #15, #275, the submit button now acts like the captcha button previously if you aren't able to immediately post and stores your captcha token. Otherwise a token is consumed and will post immediately. The long-press behavior will always attempt to immediately post and ignore the local thread timer as it previously did.
- #439, a menu item has been added to quickly view your own posts in the thread and view replies to them. This appears as a popup like any normal post cell replies tap.
- #922, regular expressions that match the empty string (like /^$/) should now work. Note that any expression that would reduce to a pattern input of empty string (like //, "", or a string consisting of any number of consecutive spaces) have been prevented, as those would match everything.
- An alert has been added for when you attach a file and it has EXIF data, to recommend re-encoding it before posting.
- Shared files are no longer saved to your save location and are only stored in the application cache; less clutter woo! Also #863, shared files should work in a bunch of different applications now.
- #936, image sharing should work for all file types now.
- #799, when using "mark as my post" and "unmark", if the post has a poster ID assigned with it, all other posts matching that ID will be marked/unmarked as your post.
- #845, the correct thread title will be set if you post a new thread and have the watcher enabled.
- #843, don't allow for inlined images to be filtered as they don't have hashes; also prevent images with null hashes from being added to the selection list, and if somehow a hash gets through that is null, make it turn into an empty string.
- #721, captcha properly works for 8Kun now. Thanks to @jeremybullen for the information!
- #860, filters that match the same post will have their effects OR'd together. Except for highlight colors, in which case the last filter effect applied will be the one on the post.
- #873, the file size display will now be correct; previously units were kB instead of KB (or KiB more formally).
- #872, WEBP files are now supported for re-encoding, but only into usual imageboard formats of JPEG or PNG.
- #877, the post details tap-to-quote option is gone. Just long tap the details now to quote.
- Filter watches should be a bit less resource intensive now as the posts aren't checked via regular expression a second time.
- #869, any image viewers will be closed if you tap on the watch notification.
- #901, audio won't begin auto-playing when a video loads unless the application is in the foreground.
- The album download loading window has been removed, and the information it displayed instead put into the saving notification.
- The site picker dialog has been reworked in order to only display supported sites. No more typing to get a site, as external sites were never supported anyways (and wouldn't be due to per-site configuration varying greatly)!
UI CHANGES/THEMES
- The theme picker has been upgraded with some more examples of stuff, which should give a better representation of what a theme will look like. It now also properly applies the picked colors when you select them, and keeps track of the picked color. Exiting the theme picker discards any changes and pressing the checkmark will finish your theme selection to be whatever is currently viewed along with the colors picked.
- #898, Android 10 dark mode support; you can now pick two Themes on Android 10 and above, and when the configuration change is triggered, the application will restart with the night theme. Unfortunately I don't know how to have it smoothly transition without a lot of trial and error, and the way that themes are setup in the application makes it difficult to move to just one style without recreating all the themes for a day/night easy transition, and programatically re-inflating all layouts in the tree will become very messy.
- The image reencoding window has been heavily modified to be a two-tap operation; the reencoding type of "as-is" no longer exists, and the window defaults the reencode type to the same as the input image (JPG or PNG); the remove metadata option has been removed, as any reencoding of the image removes metadata. The remove filename option has been converted to a button next to the name field and also a long tap action on the attached image preview.
- A newly selectable color has been added, thanks to Optix#9026.
- #934, a Gruvbox Black theme has been added.
- Poster IDs are now colored with contrasting text; this should improve readability on all themes.
- Capcodes are now colored with the selected accent color.
- Emoji are now allowed in the name field, both posting and parsing, if enabled.
- Emoji are now re-parsed when looking at the reply input box, and should be shown correctly as opposed to their BBCode counterpart if the post fails to go through.
- #866, the application icon in the task switcher will be the regular app icon.
- #859, the [Exif data available] block on /p/ will correctly not display as it was meant to.
- PR #842, cleanup of the filter options in the post menu into a separate submenu, like for image searches. Thanks to @Astridchan!
- PR #927, filter details are more descriptive if you have only one board or filter type for a filter. Thanks to @Astridchan!
- #765, the toolbar unread posts badge will now only display the sum of unread posts from watching pins or archived pins (whether or not they were being watched previously is not information the app keeps track of).
- #929, fixes a display issue with bottom input expanded view and attaching an image, causing the reply window to shift under the toolbar.
- The album viewer now properly respects the layout it is based on and does its best to fit more images into the view.
- The captcha cookies editor will now show errors on all empty fields instead of just the first one.
- Filter help dialogs have been moved around a bit to where they were more useful, as well as the strings moved out of code and into strings.xml.
GENERAL FIXES
- #914, image viewers should no longer softlock the application if you do weird, fast things.
- #832, the filter image hash option will only appear if the post has images.
- #839, file hashes on 2ch.hk are sometimes incorrect, so a configuration item has been changed to not trust them for chunked downloads.
- #837, actually use the cache for Youtube title parsing, duh.
- Works around an issue reported at this URL, which is too long to describe succinctly: https://issuetracker.google.com/issues/140891676
- Fixes an issue where reencoding an image would uncheck the spoiler image checkbox instead of leaving it alone.
- Fixes an issue where if you closed the expanded-reply window, the spoiler image checkbox would be unchecked instead of leaving it alone. IE previously you would need to post spoilered images with the expanded window open but now you are free to close it and your image will still be posted with a spoiler.
- #885, overflow menus won't have the wrong action associated with them anymore.
- #890, the new posts notification won't display if in the authentication window.
- PR #900, ensures proper reply timer functionality. Thanks to @XylTheGryphon!
- Fixes an issue where all drafts would have their picked files nulled out, instead of keeping only one as was intended.
- PR #909, #899, fixes a small issue with Wired-7 desktop URL resolving. Thanks to @Wired-7!
- #910, the post date/time will properly use your default locale when not using relative timestamps.
- #930, hopefully the in-app updater for release builds will be a bit more descriptive in its failures if it does.
- The troll_flags JSON item is now parsed as country_flags, so any Board object with that should have the appropriate flag set.
- Fixed a memory leak with CaptchaHolder.
CRASH FIXES
- #831, hopefully the final fix for these notification crashes.
- A fix for notifications sometimes having a null channel. Doesn't make sense at all. Probably has some other github issue attached to it as well that was closed without resolution.
- #841, prevents a crash caused by something similar to #639 and #780.
- The post image hotlinker's regex has been fixed to not match non-HTTP(S) URIs.
- #850, if any exception is thrown when trying to open a link, display a message and not crash the app.
- #889, prevents a crash when internal functions for GIFs throw exceptions on initialization, i.e. that 10K by 10K solid white GIF with like 600 frames that's small uncompressed, but massive when decompressed.
- #852, prevents an NPE crash due to an excluded null check.
- #893, prevents a double-instantiation of the default event bus.
- #897, prevents the picked file name from being null and throwing errors.
- #903, fixes an OOB exception caused by selection possibly having their starts and ends flipped.
- #942, fixes a crash caused by a saving finished toast appearing while the application was not in the foreground.
DEVELOPMENT WORK
Hash filtering, update alerts, exclusion zones, expanded-reply options, and more!
Next update: When it's ready! If no additional issues occur, v4.13.0 will be released by 23:59 PDT, June 26. Want to make sure it's good and stable? Use the dev version!
NEW FEATURES
- #173, image filtering with hashes. A filter with a hide action will replace the thumbnail with a special hidden image, while a remove filter will remove the image from the post entirely. Filter-hidden images will not be included in album downloads.
- PR #656, #600, updates to the way that application updates are presented to the user, and how crash logs are collected/uploaded. Alert icons will be displayed on the application version and report issue settings when there are new APK updates or crash logs to be uploaded.
- PR #544, #349, #784, an Android 10 gesture exclusion zones editor. If you use gestures on Android Q or above, then you will find this very useful. Thanks to @K1rakishou for the work.
- PR #818, re-adds the expanded-view tag addition buttons, and fixes a small bug with the context-menu button for SJIS. Thanks to @Astridchan!
- PR #821, #820, adds an expanded-reply view button to add a flag to your post on /pol/. This overrides your site-set flag for this one reply. Thanks again @Astridchan!
GENERAL IMPROVEMENTS
- PR #771, #797, adds two settings to disable IPv6 (allowing IPv4 only) and disabling HTTP/2.0 (allowing HTTP/1.1 only). These may improve image loading if your ISP is truly not with the times still.
- PR #790, #788, allows image saving in local threads (copies the saved thread copy to your download location).
- #776, double tapping a post anywhere in a popup will scroll you to the appropriate post, rather than just the comment area.
- #796, the "last viewed" post when you initially load a thread you've never seen before will be set to be the bottom post, so that the new posts snackbar properly takes you to the correct location.
- For #15, you can now long-press the submit button to avoid the local reply timers. Note that you'll still get an error if you're not able to post.
- Double-tap back pressing to exit now has a delay before the double-tap state is reset.
- PR #803, allows WEBMs to be "streamed" in local threads. Internally they aren't streamed, as all the content is available on your local device; this works exactly the same as if the file was fully cached and then re-opened. tl;dr: You don't have to disable streaming just for local threads.
UI CHANGES
- Page numbers are now displayed on catalog items when not in bump-order sorting. You can disable page displaying entirely under Appearance -> Layout -> Never show page number.
- The theme selector has been upgraded as a result of PR #823, and now displays two posts, one with an image and the first with a reply, which should give you a better idea of how things will look. Also #826, changes the previewer to use the regular PostAdapter object and RecyclerView.
- PR #811, #711, adds a setting that allows the catalog sort option to be moved to the toolbar. Thanks to @Astridchan!
- A setting has been added to treat WEBMs as if they were GIFs, by changing the tap behavior. You can find it under Appearance -> Images -> Never show WEBM controls.
- #706, the opacity color for images on NSFW boards will now be correct. The OP color is different (as it it supposed to match the background color on the website, not the post box color) and has been accounted for.
- The "rotate image" option will only appear on static, zoomable images; zoomable images were only supported anyways.
- Posts with multiple images will have their images spaced slightly apart.
- #813, you can hide all thumbnails by default with a new setting as a pseudo-text-only mode. It is under Appearance -> Images -> Hide images.
- #794, text-only mode disables the toolbar album icon now. If you want a text-only mode with the toolbar icon, use the hide images option instead, which provides several benefits over text-only mode.
- PR #823, fixes an appearance issue with Gruvbox dividers in popups not being visible. Thanks again @Astridchan!
GENERAL FIXES
- #750, fixes a regression in WEBM streaming and hopefully properly resolves #742.
- #761, prevents actions from being doing anything when a thread is being loaded.
- #816, partial content chunking should work on all locales now.
- PR #824, PR #830, fixes an issue with the Yandex reverse image search url. Thanks again @Astridchan!
- #822, prevents immediately tapping the image attach button after pressing the reencode preview, to again prevent nulling the file.
- #516, if all wakeables in the wakemanager are unregistered, the background alarm will self-stop now. It will automatically restart itself if a wakeable is registered.
- #827, the drawer watch count will properly update itself when you pin something for the first time and have the watcher enabled.
- #520, #829, file hashes are now read for Dvach and for any extra files on Vichan-based sites. Taimaba does not provide file hashes unfortunately.
- #785, cancel animations before resetting an image URL to prevent random thumbnails from appearing grey.
- #783, #785 use null CompressFormat instances rather than throwing exceptions, and ensure the file isn't null before displaying a preview message.
CRASH FIXES
- PR #773, #714, #772, #720 extras, #638 extras; FSAF updates and local thread json parsing exception handling.
- PR #792, handles a weird crash with a read-only file system.
- PR #782, #781, prevents database InterruptedExceptions from escaping and crashing the application.
- PR #769, #759, ensures the reply context menu has items before removing the "share text" option.
- #762, fixes a crash caused by a null site instance when deleting a saved reply.
- PR #791, #780, gracefully handles WebView issues during captcha layout initialization.
- PR #789, #787, fixes crashes caused by corrupted cache meta files.
- PR #807, #770, adds additional logs to help determine the cause of a file cache creation crash.
- #774, correctly calls startForeground for all notifications now, to avoid crashes.
- PR #805, #777, additional prevention for hint popup crashes.
- PR #804, #800, prevents a crash from an NPE when a thread loader returns no data.
- #808, if anything is wrong when trying to show a last page notification, the request will be ignored.
- Added prevention for a drawing crash due to certain image files being very large once uncompressed.
- #815, fixes a crash caused by tapping a rogue overflow menu allowing for certain operations; you can cause this on previous versions by tapping the overflow menu button and then the album search button in rapid succession. This also resolves multiple floating menus appearing if you tap on the overflow menu several times.
- #812, notification channels are setup earlier now, which should prevent crashes if notifications were to pop up during initial dependency injection.
DEVELOPMENT WORK
- #486, Arisuchan has been removed as it has been defunct since December 31, 2019.
- Image viewer gestures and video streaming are no longer experimental settings. They can be found under Behaviour -> General and Appearance -> Video, respectively.
- #763, sites are now listed in the README.md file.
- Gradle plugin update. View binding is now possible, however will not be moved to for the time being.
- #764, if event bus messages are posted when the app is swiped away, but the watch notification is still visible, the log won't be spammed with "no subscriber" messages.
- Additional code style cleanup, deprecation fixes, etc.
420chan, small updates, and crash/bugfixes!
Next update: March 21, 2020 @ 11:59 PM PDT. Sorry for the delay!
GENERAL IMPROVEMENTS
- PR #518, #413, adds 420chan as a site. Thanks to @Lolzen for the implementation!
- PR #679, allows the image viewer to handle MP3, M4A, OGG, FLAC, and SWF files and also allows link parsing of links to such assets. Note that SWF files are not internally viewable. Thanks to @Lolzen!
- Notification changes: LastPageNotifications were not alerting in the background and are now a JobService that should properly display these; Notification channels are now made on app startup; some cleanup associated with objects being instantiated strangely.
- PR #712, #694, #687, #638, #579, #703; possibly #696, #690, #560; there's a lot to this one. Here's a rundown:
- FSAF updates, should fix a lot of issues on that front!
- File cache updates, should be fewer crashes!
- File names and directories have had their naming restrictions relaxed. Spaces are still not allowed.
- Inlined files won't be downloaded in local threads or album downloads anymore.
- Updates now display a dialog if you want to retain a copy of the APK somewhere. This can be disabled in Behaviour -> Other.
- PR #745, crash logs older than 3 days will be deleted, and crash logs will be timestamped; uncaught stack traces won't be appended twice.
UI CHANGES
- #334, #707, updates to the UI so that you can have the search menu open at the same time as the reply menu and no UI elements should overlap/be hidden (you may still need to scroll around, but everything should be visible scrolling); reply menu must be opened first to have both open at the same time. Works in both bottom and regular input modes.
- #709, fixes a frame-long visual glitch in that the preview image for when a gallery viewer is being exited would be the first image opened, instead of the most recently viewed image.
- Addendum to #679, audio files without album art will display a default volume up drawable, so you know something is there.
CRASH FIXES
- #701, prevents an NPE from occurring.
- #699, allows controller push transitions from null to something by disabling the animation parameter if the method was called as animated.
- #692, fixes a concurrent access issue with the filter controller.
- PR #705, #674, fixes snackbars appearing too high on Android Q.
- #717, fixes a crash caused by a content length of 0 attempting to be used for a percent uploaded UI update.
- #722, fixes a crash and prevents crashes that are caused by the thread presenter not being bound when certain actions occur.
- PR #731, #730, fixes a crash caused by alternate file pickers not having the READ_URI permission.
- PR #729, #708, fixes a concurrent modification exception when streaming WEBMs.
- PR #728, #720, more gracefully deal with local thread deserialization exceptions, to prevent crashes.
- #736, prevents null or empty Strings from being passed into the AndroidUtils open link functions.
- #739, prevents a crash caused by no useable result being returned in the image picker. Also PR #753, #752.
- #740, prevents a crash caused by no file picker intents being available to select a file.
- #733, fixes a crash due to a fix in #722 which appeared as a result of a saved reply not having a field initialized by the database.
- #743, please stop being having the fastest fingers in the west.
- #735, ensures that the saving notification is only started when it is in the foreground of the application; if a notification update happens when the app is in the background, the notification will be cancelled.
- #742, #750, prevents crashes with WEBM streaming calling listeners after the data source was destroyed.
- #747, if the default data of an image picker is null, it will try to get a URI from the clip data in the returned intent. Should help with MEGA at the very least.
- #748, more preventions for weird race conditions with touches.
- #758, if captcha cookies fail to parse when opening up the editor, you will be prompted to re-enter them.
- PR #754, #716, attempts to fix an NPE when calling a function on a background thread.
- PR #757, #661, fixes a number of synchronization issues causing NPEs and crashes. Adds a setting for DEV to disable safe background thread checking.
GENERAL FIXES
- #702, fixes thread loading.
- #704, fixes audio captcha not correctly displaying the keyboard.
- Fixes a semi-softlock where WEBMs in immersive mode would never show the system UI, making it impossible to back out of the image viewer.
- #744, prevents a softlock from occurring when the image viewer is backed out of before the animation to present the first image isn't finished playing. Back actions are disabled until this occurs.
- Fixes a regression that would not dismiss the new posts snackbar when viewing the bottom most post in a thread.
- Fixes an issue where tapping on "pause pins" would not update the notification if you had threads being downloaded.
- PR #726, fixes a thread downloading bug where a pin's downloading state was not set to not download anymore if you swiped away the pin.
- #725, reverts changes for #676. Unfortunately, the scrolling-to-the-top bug continues to rear its ugly head, albeit less. If this happens, sorry, but I don't have a way of properly understanding what to do about the issue. Not using shift-post formatting will likely prevent the issue entirely.
- #279, mitigations per recent findings with isInForeground to more correctly scroll to the correct post when loading from a URL.
- WEBM files should not longer "pop" when they're muted by default.
- #751, fixes a memory leak caused by the floating board selection menu.
DEVELOPMENT WORK
- A few changes have been pushed to the Super-Patch, to better facilitate quickly fixing issues over there.
UI changes, crash fixes galore, and general improvements!
Next update: ??
GENERAL IMPROVEMENTS
- #557, #559, #624, updates to gestures and exoplayer views. Gifs are now double tap to pause again, single tap to close. Players now don't display their controls by default, and a single tap will bring them up, and another tap will close the controls. Double tapping a video will play/pause it. Players now also display if they are buffering (for streaming, a black screen with no feedback felt wrong, which was the reason why it was removed previously).
- Post image thumbnails being downloaded will now be cancelled when detached from the window (ie scrolled offscreen). This improves thumbnail loading time and network usage.
- #590, #623, if an out of memory error occurs while loading an image file, try to run the garbage collector. Also adds in a commented out block in the uncaught exception handler for memory dumps.
- #625, reverts a small change that allowed an unintended feature to work; double tapping a post while searching will close the search and scroll to that post.
- #591, basic custom flag support for /pol/ for 4chan. If flags are requested on other boards, I will only accept a PR.
- #144, /jp/ and /vip/ now support SJIS tag rendering and the associated context menu item.
- The wake manager will now be triggered whenever the app enters the foreground.
- PR #547, #383, add 8kun as a site. Thanks to @jirn073-76 and @K1rakishou for the implementation!
- PR #653, #651, adds in privacy masking for image URLs, thread titles, and OP ids, so your reports aren't filled with all the lewds you're looking at.
UI CHANGES
- The toolbar has been adjusted even more; the title now takes up a little more space, menu icons have been spaced out further, the entire title area is clickable in catalog mode rather than just the text; for the catalog, the board code and board name are now on different lines. These changes are up for reverting/changing if people don't like them. (Also #592, #614, #607, #610 for bringing up an issue in implementation quickly and making me rethink how to implement the board name/code change)
- #561, you can now refresh the catalog when searching.
- Snackbars should not be so eager to appear anymore when there are new posts, ie they should now apply to the actual thread you're in and opening up your phone after a lot of loading has happened should not spam the screen with unrelated Snackbar instances.
- The captcha checkbox now has a setting for its location on the screen; top or bottom, left hand side only as a result of captcha rendering not being controllable (thanks Google). Tablets do not obey this setting for ergonomics.
- #577, when tapping report from a replies popup, the replies popup will be closed so that the report view is visible.
- Fixes the album download icon being grey.
- #632, the archives list is now displayed only if there are archives to be displayed. In addition, the archives submenu button has been disabled for sites other than 4chan.
- #352, when using a pre-entered captcha and posting an image, the progress spinner will properly be displayed now.
- The update download progress window can be dismissed, so you can continue browsing while an update is downloaded in the background.
- #660, the Tomorrow Black and Black themes will now highlight pin cells when tapping them; other themes are not affected.
- #664, fixes an issue where if the right controller in slide is not set (generally on app start) and then you swipe back to the left controller, the toolbar would not render correctly.
- #602, a UI change for exoplayer instances to swap the nav bar and buttons, and add some padding to alleviate Android 10 gesture issues.
CRASH FIXES
- #582, #588, #621 fixes issues on Android 10 with last page notification and image saver notifications crashing the application due to new Android restrictions.
- #565, pass the context in to every Toast instance, to prevent some weird crash.
- PR #603, #593, fixes a crash caused by a thread update happening at the same time as sliding the thread in Phone layout.
- PR #605, #589, fixes exceptions leaking out into crash logs when they were not fatal.
- PR #604, #592, all hint popups will be dismissed when their respective attached controller is destroyed.
- #611, #618, fixes a crash caused by a race condition between a touch tracker and an animation-bound runnable when using the Phone layout mode and swiping away threads.
- #594, fixes a crash caused by a null snackbar, somehow?
- #596, adds synchronization to a method in the watch notification class to prevent some weird crash.
- #619, fixes a weird crash that literally doesn't follow the stacktrace.
- #630, fixes a REALLY weird crash that makes no goddamn sense looking at the stack trace. How do you fail to inflate XML layouts packaged literally in the application?
- #631, #662 fixes a crash caused by a null file being tapped on to reencode.
- #628, fixes a weird race condition crash thing maybe? The logs didn't make sense for this one; also fixes a crash caused by a background update; also mitigates another thing. Don't do this, spread your issues out, most of these had unrelated solutions despite having similar causes.
- #639, fixes a crash with WebView instantiation, presumably?
- PR #648, attempts to fix FileNotFoundOnTheServerException being thrown and sometimes crashing the application instead of being ignored.
- #644, fixes a crash where a dialog box would try to render on update, but would crash the app if it was not in the foreground when the update message was received and processed.
- #645, fixes a crash where a hint popup would try to render after a delay, but would crash the app if it was not in the foreground when it tried to be rendered.
- #628, #649, fixes a crash when scrolling to a marked post (by clicking a link inside it) when in the background.
- PR #658, #657, fixes a crash caused by some code being run on the incorrect thread.
- PR #652, #585, #629, #537, possibly #580; additional logs for #579, #638; fixes some issues with SAF and directories not being created. Refactors MediaSettingsController into several subclasses that better encapsulate functionality.
- #665, update alert dialogs will now only show when in the foreground, to prevent crashes.
- #667, removes some particularly shitty architecture to fix a crash when tapping something.
- #670, fixes a crash where an audio session ID was assigned to an exoplayer instance that was already removed.
- #677, fixes an NPE when tapping on a cross board link when the database did not have that board inside (notably on DYNAMIC board specified *chans).
GENERAL FIXES
- PR #564, #563, fixes a local thread prefetch issue.
- PR #575, #562, fixes an issue with image requests not being cancelled when an image is 404'd.
- PR #576, #574, fixes an issue with sites that have a period in their name generating folder names that have periods in them, when periods are not allowed in directory names.
- PR #606, #571, adds a debouncer to the update method in the watch manager, to prevent it from being called several times being quickly and screwing up notifications.
- Fixes an issue where certain special characters in Youtube titles would cause them to fail to be correctly parsed and displayed.
- Fixed an issue with very vertical images being swipe to close in both directions when zoomed out, rather than swipe up only.
- PR #612, #609, disables retry-on-IO-error functionality with gallery viewing and prefetching. Also adds a number of logs for debugging.
- PR #647, #640, fixes a strange synchronization issue in the file cache system.
- #676, adds some mitigation for shift-post-format threads scrolling to the top randomly when a reply is posted.
- If no filter loaders are generated in onWake, the wakelock will now be promptly removed.
DEVELOPMENT WORK
- PR #586, #584, adds a bunch of logging and checking for null post image URLs.
- PR #599, #568, the dev endpoint now point to an HTTP/HTTPS location; this also means that automatic reporting should work on release builds.
- #614, LeakCanary has been updated.
- The Controller stack is now an actual Stack instance rather than an ArrayList, because that makes more sense.
- String settings now go to their default value when cleared and OK is pressed.
- #525, the dev updater will no longer, on auto update, tell you to update to a commit that is the same as the version you're running.
- Debug crashes from the developer menu will no longer be automatically uploaded, if enabled.
- A number of small code changes for maintainability; mostly amounts to removing duplicated code and reusing other code.
- PR #646, #642, #637, #617, a number of logging and reporting improvements to better catch issues.
- All images will be upgraded to HTTPS, as cleartext is not allowed on release builds.
- #659, if a backup APK is failed to be created for any reason, it shouldn't crash the app.
- #671, #583, #581, #666, a library update to get rid of a memory leak. (Note if many people have snackbar rendering issues, this will be reverted as it is a known issue, #674)
- PR #680, library updates.