mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 22:25:57 +00:00
Stories
This commit is contained in:
@@ -116,12 +116,15 @@ private func fetchedNotificationSettings(network: Network) -> Signal<GlobalNotif
|
||||
|> map { chats, users, channels, contactsJoinedMuted in
|
||||
let chatsSettings: MessageNotificationSettings
|
||||
switch chats {
|
||||
case let .peerNotifySettings(_, showPreviews, _, muteUntil, iosSound, _, desktopSound, storiesMuted, _, _, _, _):
|
||||
case let .peerNotifySettings(_, showPreviews, _, muteUntil, iosSound, _, desktopSound, storiesMuted, storiesHideSender, storiesIosSound, _, storiesDesktopSound):
|
||||
let sound: Api.NotificationSound?
|
||||
let storiesSound: Api.NotificationSound?
|
||||
#if os(iOS)
|
||||
sound = iosSound
|
||||
storiesSound = storiesIosSound
|
||||
#elseif os(macOS)
|
||||
sound = desktopSound
|
||||
storiesSound = storiesDesktopSound
|
||||
#endif
|
||||
|
||||
let enabled: Bool
|
||||
@@ -137,22 +140,43 @@ private func fetchedNotificationSettings(network: Network) -> Signal<GlobalNotif
|
||||
displayPreviews = true
|
||||
}
|
||||
|
||||
var storiesMutedValue: Bool?
|
||||
let storiesMutedValue: PeerStoryNotificationSettings.Mute
|
||||
if let storiesMuted = storiesMuted {
|
||||
storiesMutedValue = storiesMuted == .boolTrue
|
||||
storiesMutedValue = storiesMuted == .boolTrue ? .muted : .unmuted
|
||||
} else {
|
||||
storiesMutedValue = .default
|
||||
}
|
||||
|
||||
chatsSettings = MessageNotificationSettings(enabled: enabled, displayPreviews: displayPreviews, sound: PeerMessageSound(apiSound: sound ?? .notificationSoundDefault), storiesMuted: storiesMutedValue)
|
||||
var storiesHideSenderValue: PeerStoryNotificationSettings.HideSender
|
||||
if let storiesHideSender = storiesHideSender {
|
||||
storiesHideSenderValue = storiesHideSender == .boolTrue ? .hide : .show
|
||||
} else {
|
||||
storiesHideSenderValue = .default
|
||||
}
|
||||
|
||||
chatsSettings = MessageNotificationSettings(
|
||||
enabled: enabled,
|
||||
displayPreviews: displayPreviews,
|
||||
sound: PeerMessageSound(apiSound: sound ?? .notificationSoundDefault),
|
||||
storySettings: PeerStoryNotificationSettings(
|
||||
mute: storiesMutedValue,
|
||||
hideSender: storiesHideSenderValue,
|
||||
sound: PeerMessageSound(apiSound: sound ?? .notificationSoundDefault)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
let userSettings: MessageNotificationSettings
|
||||
switch users {
|
||||
case let .peerNotifySettings(_, showPreviews, _, muteUntil, iosSound, _, desktopSound, storiesMuted, _, _, _, _):
|
||||
case let .peerNotifySettings(_, showPreviews, _, muteUntil, iosSound, _, desktopSound, storiesMuted, storiesHideSender, storiesIosSound, _, storiesDesktopSound):
|
||||
let sound: Api.NotificationSound?
|
||||
let storiesSound: Api.NotificationSound?
|
||||
#if os(iOS)
|
||||
sound = iosSound
|
||||
storiesSound = storiesIosSound
|
||||
#elseif os(macOS)
|
||||
sound = desktopSound
|
||||
storiesSound = storiesDesktopSound
|
||||
#endif
|
||||
|
||||
let enabled: Bool
|
||||
@@ -168,22 +192,43 @@ private func fetchedNotificationSettings(network: Network) -> Signal<GlobalNotif
|
||||
displayPreviews = true
|
||||
}
|
||||
|
||||
var storiesMutedValue: Bool?
|
||||
let storiesMutedValue: PeerStoryNotificationSettings.Mute
|
||||
if let storiesMuted = storiesMuted {
|
||||
storiesMutedValue = storiesMuted == .boolTrue
|
||||
storiesMutedValue = storiesMuted == .boolTrue ? .muted : .unmuted
|
||||
} else {
|
||||
storiesMutedValue = .default
|
||||
}
|
||||
|
||||
userSettings = MessageNotificationSettings(enabled: enabled, displayPreviews: displayPreviews, sound: PeerMessageSound(apiSound: sound ?? .notificationSoundDefault), storiesMuted: storiesMutedValue)
|
||||
var storiesHideSenderValue: PeerStoryNotificationSettings.HideSender
|
||||
if let storiesHideSender = storiesHideSender {
|
||||
storiesHideSenderValue = storiesHideSender == .boolTrue ? .hide : .show
|
||||
} else {
|
||||
storiesHideSenderValue = .default
|
||||
}
|
||||
|
||||
userSettings = MessageNotificationSettings(
|
||||
enabled: enabled,
|
||||
displayPreviews: displayPreviews,
|
||||
sound: PeerMessageSound(apiSound: sound ?? .notificationSoundDefault),
|
||||
storySettings: PeerStoryNotificationSettings(
|
||||
mute: storiesMutedValue,
|
||||
hideSender: storiesHideSenderValue,
|
||||
sound: PeerMessageSound(apiSound: sound ?? .notificationSoundDefault)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
let channelSettings: MessageNotificationSettings
|
||||
switch channels {
|
||||
case let .peerNotifySettings(_, showPreviews, _, muteUntil, iosSound, _, desktopSound, storiesMuted, _, _, _, _):
|
||||
case let .peerNotifySettings(_, showPreviews, _, muteUntil, iosSound, _, desktopSound, storiesMuted, storiesHideSender, storiesIosSound, _, storiesDesktopSound):
|
||||
let sound: Api.NotificationSound?
|
||||
let storiesSound: Api.NotificationSound?
|
||||
#if os(iOS)
|
||||
sound = iosSound
|
||||
storiesSound = storiesIosSound
|
||||
#elseif os(macOS)
|
||||
sound = desktopSound
|
||||
storiesSound = storiesDesktopSound
|
||||
#endif
|
||||
|
||||
let enabled: Bool
|
||||
@@ -199,12 +244,30 @@ private func fetchedNotificationSettings(network: Network) -> Signal<GlobalNotif
|
||||
displayPreviews = true
|
||||
}
|
||||
|
||||
var storiesMutedValue: Bool?
|
||||
let storiesMutedValue: PeerStoryNotificationSettings.Mute
|
||||
if let storiesMuted = storiesMuted {
|
||||
storiesMutedValue = storiesMuted == .boolTrue
|
||||
storiesMutedValue = storiesMuted == .boolTrue ? .muted : .unmuted
|
||||
} else {
|
||||
storiesMutedValue = .default
|
||||
}
|
||||
|
||||
channelSettings = MessageNotificationSettings(enabled: enabled, displayPreviews: displayPreviews, sound: PeerMessageSound(apiSound: sound ?? .notificationSoundDefault), storiesMuted: storiesMutedValue)
|
||||
var storiesHideSenderValue: PeerStoryNotificationSettings.HideSender
|
||||
if let storiesHideSender = storiesHideSender {
|
||||
storiesHideSenderValue = storiesHideSender == .boolTrue ? .hide : .show
|
||||
} else {
|
||||
storiesHideSenderValue = .default
|
||||
}
|
||||
|
||||
channelSettings = MessageNotificationSettings(
|
||||
enabled: enabled,
|
||||
displayPreviews: displayPreviews,
|
||||
sound: PeerMessageSound(apiSound: sound ?? .notificationSoundDefault),
|
||||
storySettings: PeerStoryNotificationSettings(
|
||||
mute: storiesMutedValue,
|
||||
hideSender: storiesHideSenderValue,
|
||||
sound: PeerMessageSound(apiSound: sound ?? .notificationSoundDefault)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
return GlobalNotificationSettingsSet(privateChats: userSettings, groupChats: chatsSettings, channels: channelSettings, contactsJoined: contactsJoinedMuted == .boolFalse)
|
||||
@@ -228,13 +291,38 @@ private func apiInputPeerNotifySettings(_ settings: MessageNotificationSettings)
|
||||
flags |= (1 << 3)
|
||||
}
|
||||
|
||||
var storiesMuted: Api.Bool?
|
||||
if let storiesMutedValue = settings.storiesMuted {
|
||||
let storiesMuted: Api.Bool?
|
||||
switch settings.storySettings.mute {
|
||||
case .default:
|
||||
storiesMuted = nil
|
||||
case .muted:
|
||||
storiesMuted = .boolTrue
|
||||
case .unmuted:
|
||||
storiesMuted = .boolFalse
|
||||
}
|
||||
if storiesMuted != nil {
|
||||
flags |= (1 << 6)
|
||||
storiesMuted = storiesMutedValue ? .boolTrue : .boolFalse
|
||||
}
|
||||
|
||||
return .inputPeerNotifySettings(flags: flags, showPreviews: settings.displayPreviews ? .boolTrue : .boolFalse, silent: nil, muteUntil: muteUntil, sound: sound, storiesMuted: storiesMuted, storiesHideSender: nil, storiesSound: nil)
|
||||
let storiesHideSender: Api.Bool?
|
||||
switch settings.storySettings.hideSender {
|
||||
case .default:
|
||||
storiesHideSender = nil
|
||||
case .hide:
|
||||
storiesHideSender = .boolTrue
|
||||
case .show:
|
||||
storiesHideSender = .boolFalse
|
||||
}
|
||||
if storiesHideSender != nil {
|
||||
flags |= (1 << 7)
|
||||
}
|
||||
|
||||
let storiesSound: Api.NotificationSound? = settings.storySettings.sound.apiSound
|
||||
if storiesSound != nil {
|
||||
flags |= (1 << 8)
|
||||
}
|
||||
|
||||
return .inputPeerNotifySettings(flags: flags, showPreviews: settings.displayPreviews ? .boolTrue : .boolFalse, silent: nil, muteUntil: muteUntil, sound: sound, storiesMuted: storiesMuted, storiesHideSender: storiesHideSender, storiesSound: storiesSound)
|
||||
}
|
||||
|
||||
private func pushedNotificationSettings(network: Network, settings: GlobalNotificationSettingsSet) -> Signal<Void, NoError> {
|
||||
|
||||
Reference in New Issue
Block a user