regression: unbreak dms

This commit is contained in:
William Casarin
2023-04-14 10:32:54 -07:00
parent 40468b1603
commit 042e02d2e4
7 changed files with 17 additions and 17 deletions

View File

@@ -644,7 +644,7 @@ struct ContentView: View {
postbox: PostBox(pool: pool), postbox: PostBox(pool: pool),
bootstrap_relays: bootstrap_relays, bootstrap_relays: bootstrap_relays,
replies: ReplyCounter(our_pubkey: pubkey), replies: ReplyCounter(our_pubkey: pubkey),
muted_threads: MutedThreadsManager(pubkey: pubkey) muted_threads: MutedThreadsManager(keypair: keypair)
) )
home.damus_state = self.damus_state! home.damus_state = self.damus_state!

View File

@@ -40,6 +40,5 @@ struct DamusState {
} }
static var empty: DamusState { static var empty: DamusState {
return DamusState.init(pool: RelayPool(), keypair: Keypair(pubkey: "", privkey: ""), likes: EventCounter(our_pubkey: ""), boosts: EventCounter(our_pubkey: ""), contacts: Contacts(our_pubkey: ""), tips: TipCounter(our_pubkey: ""), profiles: Profiles(), dms: DirectMessagesModel(our_pubkey: ""), previews: PreviewCache(), zaps: Zaps(our_pubkey: ""), lnurls: LNUrls(), settings: UserSettingsStore(), relay_filters: RelayFilters(our_pubkey: ""), relay_metadata: RelayMetadatas(), drafts: Drafts(), events: EventCache(), bookmarks: BookmarksManager(pubkey: ""), postbox: PostBox(pool: RelayPool()), bootstrap_relays: [], replies: ReplyCounter(our_pubkey: ""), muted_threads: MutedThreadsManager(pubkey: "")) return DamusState.init(pool: RelayPool(), keypair: Keypair(pubkey: "", privkey: ""), likes: EventCounter(our_pubkey: ""), boosts: EventCounter(our_pubkey: ""), contacts: Contacts(our_pubkey: ""), tips: TipCounter(our_pubkey: ""), profiles: Profiles(), dms: DirectMessagesModel(our_pubkey: ""), previews: PreviewCache(), zaps: Zaps(our_pubkey: ""), lnurls: LNUrls(), settings: UserSettingsStore(), relay_filters: RelayFilters(our_pubkey: ""), relay_metadata: RelayMetadatas(), drafts: Drafts(), events: EventCache(), bookmarks: BookmarksManager(pubkey: ""), postbox: PostBox(pool: RelayPool()), bootstrap_relays: [], replies: ReplyCounter(our_pubkey: ""), muted_threads: MutedThreadsManager(keypair: Keypair(pubkey: "", privkey: nil))) }
}
} }

View File

@@ -199,7 +199,7 @@ class HomeModel: ObservableObject {
} }
func filter_muted() { func filter_muted() {
events.filter { !damus_state.contacts.is_muted($0.pubkey) && !damus_state.muted_threads.isMutedThread($0) } events.filter { !damus_state.contacts.is_muted($0.pubkey) && !damus_state.muted_threads.isMutedThread($0, privkey: self.damus_state.keypair.privkey) }
self.dms.dms = dms.dms.filter { !damus_state.contacts.is_muted($0.0) } self.dms.dms = dms.dms.filter { !damus_state.contacts.is_muted($0.0) }
notifications.filter_and_build_notifications(damus_state) notifications.filter_and_build_notifications(damus_state)
} }
@@ -1047,7 +1047,7 @@ func process_local_notification(damus_state: DamusState, event ev: NostrEvent) {
} }
// Don't show notifications from muted threads. // Don't show notifications from muted threads.
if damus_state.muted_threads.isMutedThread(ev) { if damus_state.muted_threads.isMutedThread(ev, privkey: damus_state.keypair.privkey) {
return return
} }

View File

@@ -30,7 +30,7 @@ func saveMutedThreads(pubkey: String, currentValue: [String], value: [String]) -
class MutedThreadsManager: ObservableObject { class MutedThreadsManager: ObservableObject {
private let userDefaults = UserDefaults.standard private let userDefaults = UserDefaults.standard
private let pubkey: String private let keypair: Keypair
private var _mutedThreadsSet: Set<String> private var _mutedThreadsSet: Set<String>
private var _mutedThreads: [String] private var _mutedThreads: [String]
@@ -39,26 +39,26 @@ class MutedThreadsManager: ObservableObject {
return _mutedThreads return _mutedThreads
} }
set { set {
if saveMutedThreads(pubkey: pubkey, currentValue: _mutedThreads, value: newValue) { if saveMutedThreads(pubkey: keypair.pubkey, currentValue: _mutedThreads, value: newValue) {
self._mutedThreads = newValue self._mutedThreads = newValue
self.objectWillChange.send() self.objectWillChange.send()
} }
} }
} }
init(pubkey: String) { init(keypair: Keypair) {
self._mutedThreads = loadMutedThreads(pubkey: pubkey) self._mutedThreads = loadMutedThreads(pubkey: keypair.pubkey)
self._mutedThreadsSet = Set(_mutedThreads) self._mutedThreadsSet = Set(_mutedThreads)
self.pubkey = pubkey self.keypair = keypair
} }
func isMutedThread(_ ev: NostrEvent) -> Bool { func isMutedThread(_ ev: NostrEvent, privkey: String?) -> Bool {
return _mutedThreadsSet.contains(ev.thread_id(privkey: nil)) return _mutedThreadsSet.contains(ev.thread_id(privkey: privkey))
} }
func updateMutedThread(_ ev: NostrEvent) { func updateMutedThread(_ ev: NostrEvent) {
let threadId = ev.thread_id(privkey: nil) let threadId = ev.thread_id(privkey: nil)
if isMutedThread(ev) { if isMutedThread(ev, privkey: keypair.privkey) {
mutedThreads = mutedThreads.filter { $0 != threadId } mutedThreads = mutedThreads.filter { $0 != threadId }
_mutedThreadsSet.remove(threadId) _mutedThreadsSet.remove(threadId)
notify(.unmute_thread, ev) notify(.unmute_thread, ev)

View File

@@ -319,6 +319,7 @@ class NotificationsModel: ObservableObject, ScrollQueue {
} }
func include_event(_ event: NostrEvent, damus_state: DamusState) -> Bool { func include_event(_ event: NostrEvent, damus_state: DamusState) -> Bool {
return should_show_event(contacts: damus_state.contacts, ev: event) && !damus_state.muted_threads.isMutedThread(event) let privkey = damus_state.keypair.privkey
return should_show_event(contacts: damus_state.contacts, ev: event) && !damus_state.muted_threads.isMutedThread(event, privkey: privkey)
} }
} }

View File

@@ -46,7 +46,7 @@ struct MenuItems: View {
let bookmarked = bookmarks.isBookmarked(event) let bookmarked = bookmarks.isBookmarked(event)
self._isBookmarked = State(initialValue: bookmarked) self._isBookmarked = State(initialValue: bookmarked)
let muted_thread = muted_threads.isMutedThread(event) let muted_thread = muted_threads.isMutedThread(event, privkey: keypair.privkey)
self._isMutedThread = State(initialValue: muted_thread) self._isMutedThread = State(initialValue: muted_thread)
self.bookmarks = bookmarks self.bookmarks = bookmarks
@@ -96,7 +96,7 @@ struct MenuItems: View {
if event.known_kind != .dm { if event.known_kind != .dm {
Button { Button {
self.muted_threads.updateMutedThread(event) self.muted_threads.updateMutedThread(event)
let muted = self.muted_threads.isMutedThread(event) let muted = self.muted_threads.isMutedThread(event, privkey: self.keypair.privkey)
isMutedThread = muted isMutedThread = muted
} label: { } label: {
let imageName = isMutedThread ? "speaker" : "speaker.slash" let imageName = isMutedThread ? "speaker" : "speaker.slash"

View File

@@ -50,7 +50,7 @@ struct SearchHomeView: View {
damus: damus_state, damus: damus_state,
show_friend_icon: true, show_friend_icon: true,
filter: { filter: {
if damus_state.muted_threads.isMutedThread($0) { if damus_state.muted_threads.isMutedThread($0, privkey: self.damus_state.keypair.privkey) {
return false return false
} }