Add option to only show notification from people you follow
Changelog-Added: Add option to only show notification from people you follow Closes: #866
This commit is contained in:
@@ -999,7 +999,13 @@ func process_local_notification(damus_state: DamusState, event ev: NostrEvent) {
|
|||||||
guard let type = ev.known_kind else {
|
guard let type = ev.known_kind else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if damus_state.settings.notification_only_from_following,
|
||||||
|
damus_state.contacts.follow_state(ev.pubkey) != .follows
|
||||||
|
{
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if type == .text && damus_state.settings.mention_notification {
|
if type == .text && damus_state.settings.mention_notification {
|
||||||
for block in ev.blocks(damus_state.keypair.privkey) {
|
for block in ev.blocks(damus_state.keypair.privkey) {
|
||||||
if case .mention(let mention) = block, mention.ref.ref_id == damus_state.keypair.pubkey,
|
if case .mention(let mention) = block, mention.ref.ref_id == damus_state.keypair.pubkey,
|
||||||
|
|||||||
@@ -158,6 +158,12 @@ class UserSettingsStore: ObservableObject {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Published var notification_only_from_following: Bool {
|
||||||
|
didSet {
|
||||||
|
UserDefaults.standard.set(like_notification, forKey: "notification_only_from_following")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Published var truncate_timeline_text: Bool {
|
@Published var truncate_timeline_text: Bool {
|
||||||
didSet {
|
didSet {
|
||||||
UserDefaults.standard.set(truncate_timeline_text, forKey: "truncate_timeline_text")
|
UserDefaults.standard.set(truncate_timeline_text, forKey: "truncate_timeline_text")
|
||||||
@@ -262,6 +268,7 @@ class UserSettingsStore: ObservableObject {
|
|||||||
repost_notification = UserDefaults.standard.object(forKey: "repost_notification") as? Bool ?? true
|
repost_notification = UserDefaults.standard.object(forKey: "repost_notification") as? Bool ?? true
|
||||||
like_notification = UserDefaults.standard.object(forKey: "like_notification") as? Bool ?? true
|
like_notification = UserDefaults.standard.object(forKey: "like_notification") as? Bool ?? true
|
||||||
dm_notification = UserDefaults.standard.object(forKey: "dm_notification") as? Bool ?? true
|
dm_notification = UserDefaults.standard.object(forKey: "dm_notification") as? Bool ?? true
|
||||||
|
notification_only_from_following = UserDefaults.standard.object(forKey: "notification_only_from_following") as? Bool ?? false
|
||||||
truncate_timeline_text = UserDefaults.standard.object(forKey: "truncate_timeline_text") as? Bool ?? false
|
truncate_timeline_text = UserDefaults.standard.object(forKey: "truncate_timeline_text") as? Bool ?? false
|
||||||
disable_animation = should_disable_image_animation()
|
disable_animation = should_disable_image_animation()
|
||||||
auto_translate = UserDefaults.standard.object(forKey: "auto_translate") as? Bool ?? true
|
auto_translate = UserDefaults.standard.object(forKey: "auto_translate") as? Bool ?? true
|
||||||
|
|||||||
@@ -407,6 +407,11 @@ struct NotificationView: View {
|
|||||||
Toggle(NSLocalizedString("DMs", comment: "Setting to enable DM Local Notification"), isOn: $settings.dm_notification)
|
Toggle(NSLocalizedString("DMs", comment: "Setting to enable DM Local Notification"), isOn: $settings.dm_notification)
|
||||||
.toggleStyle(.switch)
|
.toggleStyle(.switch)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Section(header: Text(NSLocalizedString("Notification Preference", comment: "Section header for Notification Preferences"))) {
|
||||||
|
Toggle(NSLocalizedString("Show only from users you follow", comment: "Setting to Show notifications only associated to users your follow"), isOn: $settings.notification_only_from_following)
|
||||||
|
.toggleStyle(.switch)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user