regression: unbreak dms
This commit is contained in:
@@ -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!
|
||||||
|
|
||||||
|
|||||||
@@ -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))) }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user