# [Release v0.86.0 Draft Support](https://github.com/vitorpamplona/amethyst/releases/tag/v0.86.0) - 2024-04-04 This version adds support for draft notes autosaved on your relays, a new simplified UI choice on Settings, changes the Discover tab algorithm to show the latest of chats and communities and much more. Features: - Draft notes for feeds, replies, live streams, public chats, NIP-04 DMs, GiftWrap DMs, polls and classifieds by nostr:npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5 - Adds autosave for Drafts by nostr:npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5 - Adds edit draft in the dropdown menu and the long press popup by nostr:npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5 - Adds a Draft feed screen for all posts - Adds new algorithm to parse OpenGraph tags by nostr:npub168ghgug469n4r2tuyw05dmqhqv5jcwm7nxytn67afmz8qkc4a4zqsu2dlc - Adds a Simplified UI setting to both feeds and chats - Moves the username play button to the profile page. - Adds link to the version notes when clicking in the version in the drawer - Brings new git Issues and Patches to the Notification - Filters out too many reposts of the same note when on the main feed - Updates the bootstrap relay list - Adds missing classes to support WebServer connections in the Video Playback - Slightly reduces line height for improved readability - Reduces the space between chat bubbles. - Migrates shareable links from habla.news to njump.me - Restructures the Discover Tab to show the Chats and Communities with the most recent new content. - Adds a bot field to the user info - Adds k-tag to the Deletion events - Adds button to load Zap Splits from the cited users in the text - Several accessibility improvements by nostr:npub1e2yuky03caw4ke3zy68lg0fz3r4gkt94hx4fjmlelacyljgyk79svn3eef Bug Fixes: - Fixes the post cut-off when the post has massive string chars without spaces or new lines - Fixes missing Fhir Classes on Release - Don't show the button to edit the post if the author of the original post is not the logged in user - Fixes crash parsing multiple results from Amber by nostr:npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5 - Fixes the load of edits on a new edit proposal - Fixes forking information kept from a previous post - Fixes search on binary content - Fixes space after clickable user display - Centers Blank Note when post was hidden by the user. - Accepts JSON events with escaping errors - Fixes the parsing of user metadata events several times due to large coroutine backlog - Fixes Scheduled Tag in LiveStreams - Fixes the isOnlineCheck for nostr nests. - Fixes sorting contract issues when follow status and user names are the same between keys - Fixes tickmarks on dropdowns - Checks if a Classified is wellformed before rendering - Fixes size and alignment of the text when the live stream video is not present. - Fixes some imports for benchmarks - Fixes infinite Quotation issue (3 quotes are allowed). - Fixes crashing with too many videos in quoted posts. - Fixes double Show More when the user has hidden a post and ALSO the user's followers have reported the post. - Only shows OTS to the respective Edit - Fixes a bug with the latest version of jackson - Avoids showing machine-code errors when paying for zaps on external wallets - Fixes too strict timing constraints for new posts (accepts up to a minute in the future) - Fixes following of geotags - Fixes lack of zap amount refresh after zapping a note. - Fixes videos not being able to seekTo the zero position. - Fixes layout issues of Blog Post summaries when images are not present. - Doesn't show edits of blog posts in the User's Profile - Fixes Amber's deep sleep: Adds a lifeCycleOwner listener to register external signers on resume - Fixes missing context in some replies to blog posts. - Adds a space after the Channel header in the reply rows - Centralizes the counter after the list of participants in a live event. - Fixes double mention to Community headers when seeing a reply to a community post. - Fixes Chat preview images when no image has been set. - Fixes the display or Zap Events when All Follows is selected in Notifications - Fixes the reply event finder for the reply row of text notes - Makes hidden cards full width on the discovery feed - Fixes the width of muted messages on chat feeds. - Fixes the feed updates after list selections on the Discovery pages. - Realigns the reaction icons and texts between main feed and video feed. - Fixes garbled URL preview for non-UTF-8 HTML by nostr:npub168ghgug469n4r2tuyw05dmqhqv5jcwm7nxytn67afmz8qkc4a4zqsu2dlc - Adjusts icon sizes on the galleries - Avoids publishing with two equal `t` hashtags when the user already writes them in lowercase - Limits the size of image previews from opengraph from being too big - Fixes NPE with the cached state. - Increases the push notification max delay to 15 minutes - Fixes controller comparison for keep playing - Fixes tag markers for replies in DMs - Fixes layout of the reply row in chats - Fixes lack of blurhash preview in some videos - Fixes the lack of following mark on user pictures in chats - Fixes the UI spacing for channels - Fixes the use of filters that didn't discriminate the relay type setup - Holds the state of Show More when switching edits and translations - Renders DMs and live chats in the feed if they show up there - Fixes contract violation when sorting users Updated translations: - Spanish by nostr:npub1luhyzgce7qtcs6r6v00ryjxza8av8u4dzh3avg0zks38tjktnmxspxq903 - French by nostr:npub106efcyntxc5qwl3w8krrhyt626m59ya2nk9f40px5s968u5xdwhsjsr8fz - Dutch by nostr:npub1w4la29u3zv09r6crx5u8yxax0ffxgekzdm2egzjkjckef7xc83fs0ftxcd - Swahili by nostr:npub1q6ps7m94jfdastx2tx76sj8sq4nxdhlsgmzns2tr4xt6ydx6grzspm0kxr - Chinese by nostr:npub1raspu6ag9kfcw9jz0rz4z693qwmqe5sx6jdhhuvkwz5zy8rygztqnwfhd7 - Bengali by nostr:npub13qtw3yu0uc9r4yj5x0rhgy8nj5q0uyeq0pavkgt9ly69uuzxgkfqwvx23t - Hungarian by nostr:npub1ww8kjxz2akn82qptdpl7glywnchhkx3x04hez3d3rye397turrhssenvtp - Czech, German, Swedish and Portuguese by nostr:npub1e2yuky03caw4ke3zy68lg0fz3r4gkt94hx4fjmlelacyljgyk79svn3eef - Arabic by nostr:npub13qtw3yu0uc9r4yj5x0rhgy8nj5q0uyeq0pavkgt9ly69uuzxgkfqwvx23t - Thai by nostr:npub1tr66yvqghfdgwv9yxhmg7xx6pvgvu5uvdc42tgdhsys8vvzdt8msev06fl and nostr:npub1vm0kq43djwdd4psjgdjgn9z6fm836c35dv7eg7x74z3n3ueq83jqhkxp8e Performance Improvements: - Switches Robohash to Precompiled SVGs in order to reduce the memory burned of creating Strings with SVGs on the fly - Restructures Data Access filters and LocalCache to use a ConcurrentSkipList instead of ConcurrentHashMap - Only download video, image and audio files in NIP-94 - Updated hashtag icons for performance - Avoids checks if a filter has changed before generating JSon strings - Cleans up User Metadata upon receipt instead of in every rendering - Simpler/Faster UserDisplay renderings - Reduces video cache from 10 to 4 videos - Removes coroutine use for Hashtags - Brings the ZapForwarding icon to Compose - Simplifies the algorithm to check if chatroom sender intersects with the follow list - Avoids serializing temporary fields on Quartz - Refactors views to the video and chat feeds - Restructures NoteCompose for performance - Restructures markAsRead to minimize threading cost - Adds a large benchmark test for duplicate events - Optimizing the performance of Highlight rendering - After memory cleanup, only trigger liveData when it actually changes - Minimizes memory use to calculate zaps - Avoids triggering an error when decoding invalid hexes - Reduces the amount of co-routines being launched in each LiveData update - Migrates channel list and channel notes to LargeCache - Removes the use of data classes to speed up comparisons - Improves Nostr filter to bring public chat messages and avoid public chat creation and metadata updates - Removes jsoup from dependencies - Removes the need to observe author changes to event after loaded - Turns hashtag icons into programmable vectors - Moves the Following Vector to a native composable - Removes unnecessary modifier layouts from the top bar - Uses the cached thread pool instead of the scheduled thread pool for translation services - Avoids launching coroutines that were just launched - Makes a cache for Media Items - Only changes the keep playing status if different - Reduces recompositions after video/image hash verification - Avoiding feed jitter when pressing the notification button twice Code Quality Improvements: - Breaks massive NoteCompose down into each event type - Removes the release drafter plugin on actions. Too buggy - Removes dependency of the Robohash from CryptoUtils - Improves Preview helper classes - Updates secp256k1KmpJniAndroid, compose, zoomable, media3, jackson and firebase libs - Updates AGP to 8.3.1 - Deletes the old Settings local db - Refactors some of the old display name structure - Refactors Relay classes. - Isolates the LargeCache forEach method to allow quick time measurements on filters - Reorganizes classes in the commons lib - Fixes test cases for nip96 uploaders - Removes unused addMargin param - Refactoring caching systems for the Compose layer - Aligns the BOM between implementation and tests - Refactors the use of dividers out of components - Refactors composables to load events, check hidden and check report - Fix Kotlin encryptDecryptTest to decrypt with swapped private and public keys to follow NIP-44 documentation by nostr:npub1yaul8k059377u9lsu67de7y637w4jtgeuwcmh5n7788l6xnlnrgs3tvjmf - Finishes the migration of People List updates from LiveData to Flow - Migrates all Refreshable feeds to the Refreshable box component - Refactors cache methods in GiftWraps - Migrates Media3 Videos to the DefaultMediaSourceFactory Download: - [Play Edition](https://github.com/vitorpamplona/amethyst/releases/download/v0.86.0/amethyst-googleplay-universal-v0.86.0.apk ) - [FOSS Edition - No translations](https://github.com/vitorpamplona/amethyst/releases/download/v0.86.0/amethyst-fdroid-universal-v0.86.0.apk ) [Changes][v0.86.0] [v0.86.0]: https://github.com/vitorpamplona/amethyst/compare/v0.85.3...v0.86.0