Default avatar
npub1ahck...7v97
npub1ahck...7v97
Migrate away from sticky deprecated non-pubkey-scoped settings (#1124) Changelog-Fixed: Migrate away from sticky deprecated non-pubkey-scoped settings This fixes a bug where older users of Damus who created another account could have OnlyZaps enabled even though the default is false. tyiu/unstick-settings, 1 commits
fix crash related to preloading events (#1115) This PR fixes the top crash in build 1.4.3(24): <img width="376" alt="damus_—_Profiles_swift" src="https://github.com/damus-io/damus/assets/445882/1cf51c52-920d-43a7-a832-0776790557d8"> The crash is caused by a data contention for the `profiles` dictionary in the `Profiles` class. Many views and view models access this dictionary from the main thread by calling `Profiles.lookup(id:)`. `Profiles.add(id:profile:)` is currently called only from the main thread. However, the stack trace in the crash report indicates that it happens when `Profiles.lookup(id:)` is called from a non-main thread during event preloading. When a profile is added on the main thread and a profile lookup occurs on a non-main thread at the same time, we have a data contention and the app crashes. To resolve this, I added a concurrent `DispatchQueue` to synchronize access to the `profiles` dictionary. Concurrent reads can happen safely from both main and non-main threads, but writes will happen asynchronously and use the `barrier` flag to enforce exclusive access. An alternative fix would be to make the `Profiles` class an `actor` instead of a `class`, which automatically synchronizes access to all of its members. I chose not to pursue this solution because it would also make `Profiles.lookup(id:)` `async`, which would change all the call sites. profiles-crash, 1 commits
Add translate.nostr.wine to available translation services (#1113) Added translate.nostr.wine to the translation service options in Settings. Thank you for making it very easy. Please let us know if we missed anything. Powered by DeepL and backed up by Google Cloud Translation API if the language is not supported. master, 1 commits
Fix Issue #1038 - "User tag autocomplete message area blocks text input" (#1111) Fix Issue #1038 Fix: -Cursor in a post/reply now remains visible (regardless of initial location) even when the search/autocomplete view `UserSearch` is present Change: -Conditionally set the `.isScrollEnabled` of `TextViewWrapper`(ie, default =true; and =false only when `UserSearch` is present) bugfix-UI-1038--User-tag-autocomplete-message-area-blocks-text-input, 2 commits
in-text-mentioning (#1102) By making this adjustment, we will be able to mention individuals by repositioning the cursor within the previously composed content of a post. Currently, we are only able to mention individuals at the end of a post and not during the editing process. Demo video of in-text-mentioning: in-text-mentioning, 1 commits