This version adds support for NIP-35 Torrent files (dtan.xyz), adds significant memory pruning for encrypted payloads and large events (DMs, Notifications, Zaps, etc), and completely restructures the way most of our caching works to facilitate immediate subscription updates using the outbox model on custom feeds by NIP-51 lists. This version also offers new defaults for NIP-65 and DM relay lists for new users and fixes several bugs and inconsistencies.
Features:
- Adds support for NIP-35 torrents and their comments
- Adds a simplified sync Signer to the Quartz library
- Adds Default lists for NIP-65 inbox and outbox relays
- Adds Default lists for Search relays
- Adds local backup for UserMetadata objects
- Adds local backup for Mute lists
- Adds local backup for NIP-65 relays
- Adds local backup for DM Relays
- Adds local backup for private home relays
- Improves caching of encrypted DMs
- Updates Twitter verification to X
- Improves the rendering of QR Codes
- Adds support to Delete All Drafts
Code Quality Improvements:
- Separates Account actions from Account state in two objects
- Changes Startup procedures to start with Account state and not the full account object
- Moves scope for flows in Account from an Application-wide scope to ViewModel scope
- Removes all LiveData objects from Account in favor of flows from the state object
- Migrates settings saving logic to flows
- Migrates PushNotification services to work without Account and only Account Settings.
- Migrates the spam filter from LiveData to Flows
- Rewrites state flows initializers to avoid inconsistent startups
- Finishes the migration of the service manager to the Application class
- Moves to hold the all feeds in stateflows
- Updates benchmark, composeBOM and firebaseBOM to the latest versions
- Moves the default zap type to a state flow and avoids passing on to the screen when using the default value
- Removing unecessary livedata objects for translation services
- Moves lastread routes to mutableStateFlow
- Migrating livedata to flow for contact list updates of the user.
- Adds a destroy method to FollowList state for consistency
- Moves follow list states to the AccountViewModel
- Migrates Notification Summary to the new state model
- Moves the notification screen to the new state model instead of viewModels
- Refactoring Moving feed status from ViewModel to State objects
Interface Improvements:
- Show only 3 users in the recommended relays section
- Creates links to njump when events can't be found on Amethyst
- Adds support for MOD reports
- Displays commitment PoW if present
- Changes relay set kind to be NIP-51 consistent.
- Adds more information to when error messages are not available in the relay stats.
- Adds context to highlight events
- Adds previews to test markdown rendering
- Improves the look of inlinde code in markdown
- Improves badge display
Performance Improvements:
- Adds pruning for giftwrapped messages
- Fixes clearing of flows and live data object pools before removing notes from the local cache
- Improves stability of composables
- Migrates caching of decrypted value outside of the Event class
- Removes encrypted parts of NIP-17 from the cache
- Removes old NIP-04 messages from the cache
- Avoids deleting new NIP-17 plain text chats from memory
- Avoids bottom nav recompositions
- Simplifies nav bar selected calculations
- Avoids remembering edit lists that will never exist.
- Improves speed of chatlist rendering
Bug Fixes:
- Fixes lingering cache and threads still active after killing the app
- Fixes crash when opening the Relay screen with empty urls as relays.
- Fixes horizontal padding of the chat messages
- Fixes the download of 1000s of NIP-65 relay lists because some relays consider empty lists as null and return everything.
- Fixes fdroid push registration to re-register even if the saved distributor was already selected.
- Fixes crash when the relay url of a user is duplicated.
- Fixes padding of short quotes
- Fixes slow down when the last message on chat is a base64 image.
- Fixes the centralization of the "and more" part of relay recommendations
- Fixes miscaching flows of the relay lists from follows.
- Fixes miscache of hashtag following button
- Fixes heading sizes on markdown
- Changes Delete all events to use maximum chunks of 200 elements to avoid the 65KB stringified JSON limit of many relays.
Updated translations:
- Czech, German, Swedish and Portuguese by @npub1e2yuky03caw4ke3zy68lg0fz3r4gkt94hx4fjmlelacyljgyk79svn3eef
- Polish by @npub16gjyljum0ksrrm28zzvejydgxwfm7xse98zwc4hlgq8epxeuggushqwyrm
- French by @npub106efcyntxc5qwl3w8krrhyt626m59ya2nk9f40px5s968u5xdwhsjsr8fz
- Arabic, Bengali by @npub13qtw3yu0uc9r4yj5x0rhgy8nj5q0uyeq0pavkgt9ly69uuzxgkfqwvx23t
- Thai by @npub1vm0kq43djwdd4psjgdjgn9z6fm836c35dv7eg7x74z3n3ueq83jqhkxp8e and @npub1tr66yvqghfdgwv9yxhmg7xx6pvgvu5uvdc42tgdhsys8vvzdt8msev06fl
- Hindi by @npub1ww6huwu3xye6r05n3qkjeq62wds5pq0jswhl7uc59lchc0n0ns4sdtw5e6
- Spanish by @npub1luhyzgce7qtcs6r6v00ryjxza8av8u4dzh3avg0zks38tjktnmxspxq903
- Dutch by @npub1w4la29u3zv09r6crx5u8yxax0ffxgekzdm2egzjkjckef7xc83fs0ftxcd
- Chinese by @npub1gd8e0xfkylc7v8c5a6hkpj4gelwwcy99jt90lqjseqjj2t253s2s6ch58h and @npub1raspu6ag9kfcw9jz0rz4z693qwmqe5sx6jdhhuvkwz5zy8rygztqnwfhd7
- Hungarian by @npub1ww8kjxz2akn82qptdpl7glywnchhkx3x04hez3d3rye397turrhssenvtp