mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Various fixes
This commit is contained in:
parent
16d6010385
commit
c038d10c9a
@ -7797,3 +7797,5 @@ Sorry for the inconvenience.";
|
|||||||
"DeleteAccount.ConfirmationAlertDelete" = "Delete My Account";
|
"DeleteAccount.ConfirmationAlertDelete" = "Delete My Account";
|
||||||
|
|
||||||
"DeleteAccount.Success" = "The account has been successfully deleted.";
|
"DeleteAccount.Success" = "The account has been successfully deleted.";
|
||||||
|
|
||||||
|
"SettingsSearch.DeleteAccount.DeleteMyAccount" = " ";
|
||||||
|
@ -49,6 +49,8 @@ extension SettingsSearchableItemIcon {
|
|||||||
return PresentationResourcesSettings.faq
|
return PresentationResourcesSettings.faq
|
||||||
case .chatFolders:
|
case .chatFolders:
|
||||||
return PresentationResourcesSettings.chatFolders
|
return PresentationResourcesSettings.chatFolders
|
||||||
|
case .deleteAccount:
|
||||||
|
return PresentationResourcesSettings.deleteAccount
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -67,6 +69,7 @@ final class SettingsSearchItem: ItemListControllerSearch {
|
|||||||
let archivedStickerPacks: Signal<[ArchivedStickerPackItem]?, NoError>
|
let archivedStickerPacks: Signal<[ArchivedStickerPackItem]?, NoError>
|
||||||
let privacySettings: Signal<AccountPrivacySettings?, NoError>
|
let privacySettings: Signal<AccountPrivacySettings?, NoError>
|
||||||
let hasTwoStepAuth: Signal<Bool?, NoError>
|
let hasTwoStepAuth: Signal<Bool?, NoError>
|
||||||
|
let twoStepAuthData: Signal<TwoStepVerificationAccessConfiguration?, NoError>
|
||||||
let activeSessionsContext: Signal<ActiveSessionsContext?, NoError>
|
let activeSessionsContext: Signal<ActiveSessionsContext?, NoError>
|
||||||
let webSessionsContext: Signal<WebSessionsContext?, NoError>
|
let webSessionsContext: Signal<WebSessionsContext?, NoError>
|
||||||
|
|
||||||
@ -74,7 +77,7 @@ final class SettingsSearchItem: ItemListControllerSearch {
|
|||||||
private var activity: ValuePromise<Bool> = ValuePromise(ignoreRepeated: false)
|
private var activity: ValuePromise<Bool> = ValuePromise(ignoreRepeated: false)
|
||||||
private let activityDisposable = MetaDisposable()
|
private let activityDisposable = MetaDisposable()
|
||||||
|
|
||||||
init(context: AccountContext, theme: PresentationTheme, placeholder: String, activated: Bool, updateActivated: @escaping (Bool) -> Void, presentController: @escaping (ViewController, Any?) -> Void, pushController: @escaping (ViewController) -> Void, getNavigationController: (() -> NavigationController?)?, resolvedFaqUrl: Signal<ResolvedUrl?, NoError>, exceptionsList: Signal<NotificationExceptionsList?, NoError>, archivedStickerPacks: Signal<[ArchivedStickerPackItem]?, NoError>, privacySettings: Signal<AccountPrivacySettings?, NoError>, hasTwoStepAuth: Signal<Bool?, NoError>, activeSessionsContext: Signal<ActiveSessionsContext?, NoError>, webSessionsContext: Signal<WebSessionsContext?, NoError>) {
|
init(context: AccountContext, theme: PresentationTheme, placeholder: String, activated: Bool, updateActivated: @escaping (Bool) -> Void, presentController: @escaping (ViewController, Any?) -> Void, pushController: @escaping (ViewController) -> Void, getNavigationController: (() -> NavigationController?)?, resolvedFaqUrl: Signal<ResolvedUrl?, NoError>, exceptionsList: Signal<NotificationExceptionsList?, NoError>, archivedStickerPacks: Signal<[ArchivedStickerPackItem]?, NoError>, privacySettings: Signal<AccountPrivacySettings?, NoError>, hasTwoStepAuth: Signal<Bool?, NoError>, twoStepAuthData: Signal<TwoStepVerificationAccessConfiguration?, NoError>, activeSessionsContext: Signal<ActiveSessionsContext?, NoError>, webSessionsContext: Signal<WebSessionsContext?, NoError>) {
|
||||||
self.context = context
|
self.context = context
|
||||||
self.theme = theme
|
self.theme = theme
|
||||||
self.placeholder = placeholder
|
self.placeholder = placeholder
|
||||||
@ -88,6 +91,7 @@ final class SettingsSearchItem: ItemListControllerSearch {
|
|||||||
self.archivedStickerPacks = archivedStickerPacks
|
self.archivedStickerPacks = archivedStickerPacks
|
||||||
self.privacySettings = privacySettings
|
self.privacySettings = privacySettings
|
||||||
self.hasTwoStepAuth = hasTwoStepAuth
|
self.hasTwoStepAuth = hasTwoStepAuth
|
||||||
|
self.twoStepAuthData = twoStepAuthData
|
||||||
self.activeSessionsContext = activeSessionsContext
|
self.activeSessionsContext = activeSessionsContext
|
||||||
self.webSessionsContext = webSessionsContext
|
self.webSessionsContext = webSessionsContext
|
||||||
self.activityDisposable.set((activity.get() |> mapToSignal { value -> Signal<Bool, NoError> in
|
self.activityDisposable.set((activity.get() |> mapToSignal { value -> Signal<Bool, NoError> in
|
||||||
@ -153,7 +157,7 @@ final class SettingsSearchItem: ItemListControllerSearch {
|
|||||||
pushController(c)
|
pushController(c)
|
||||||
}, presentController: { c, a in
|
}, presentController: { c, a in
|
||||||
presentController(c, a)
|
presentController(c, a)
|
||||||
}, getNavigationController: self.getNavigationController, resolvedFaqUrl: self.resolvedFaqUrl, exceptionsList: self.exceptionsList, archivedStickerPacks: self.archivedStickerPacks, privacySettings: self.privacySettings, hasTwoStepAuth: self.hasTwoStepAuth, activeSessionsContext: self.activeSessionsContext, webSessionsContext: self.webSessionsContext)
|
}, getNavigationController: self.getNavigationController, resolvedFaqUrl: self.resolvedFaqUrl, exceptionsList: self.exceptionsList, archivedStickerPacks: self.archivedStickerPacks, privacySettings: self.privacySettings, hasTwoStepAuth: self.hasTwoStepAuth, twoStepAuthData: self.twoStepAuthData, activeSessionsContext: self.activeSessionsContext, webSessionsContext: self.webSessionsContext)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -338,7 +342,7 @@ public final class SettingsSearchContainerNode: SearchDisplayControllerContentNo
|
|||||||
private var presentationDataDisposable: Disposable?
|
private var presentationDataDisposable: Disposable?
|
||||||
private let presentationDataPromise: Promise<PresentationData>
|
private let presentationDataPromise: Promise<PresentationData>
|
||||||
|
|
||||||
public init(context: AccountContext, openResult: @escaping (SettingsSearchableItem) -> Void, resolvedFaqUrl: Signal<ResolvedUrl?, NoError>, exceptionsList: Signal<NotificationExceptionsList?, NoError>, archivedStickerPacks: Signal<[ArchivedStickerPackItem]?, NoError>, privacySettings: Signal<AccountPrivacySettings?, NoError>, hasTwoStepAuth: Signal<Bool?, NoError>, activeSessionsContext: Signal<ActiveSessionsContext?, NoError>, webSessionsContext: Signal<WebSessionsContext?, NoError>) {
|
public init(context: AccountContext, openResult: @escaping (SettingsSearchableItem) -> Void, resolvedFaqUrl: Signal<ResolvedUrl?, NoError>, exceptionsList: Signal<NotificationExceptionsList?, NoError>, archivedStickerPacks: Signal<[ArchivedStickerPackItem]?, NoError>, privacySettings: Signal<AccountPrivacySettings?, NoError>, hasTwoStepAuth: Signal<Bool?, NoError>, twoStepAuthData: Signal<TwoStepVerificationAccessConfiguration?, NoError>, activeSessionsContext: Signal<ActiveSessionsContext?, NoError>, webSessionsContext: Signal<WebSessionsContext?, NoError>) {
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
self.presentationData = presentationData
|
self.presentationData = presentationData
|
||||||
self.presentationDataPromise = Promise(self.presentationData)
|
self.presentationDataPromise = Promise(self.presentationData)
|
||||||
@ -372,7 +376,7 @@ public final class SettingsSearchContainerNode: SearchDisplayControllerContentNo
|
|||||||
})
|
})
|
||||||
|
|
||||||
let searchableItems = Promise<[SettingsSearchableItem]>()
|
let searchableItems = Promise<[SettingsSearchableItem]>()
|
||||||
searchableItems.set(settingsSearchableItems(context: context, notificationExceptionsList: exceptionsList, archivedStickerPacks: archivedStickerPacks, privacySettings: privacySettings, hasTwoStepAuth: hasTwoStepAuth, activeSessionsContext: activeSessionsContext, webSessionsContext: webSessionsContext))
|
searchableItems.set(settingsSearchableItems(context: context, notificationExceptionsList: exceptionsList, archivedStickerPacks: archivedStickerPacks, privacySettings: privacySettings, hasTwoStepAuth: hasTwoStepAuth, twoStepAuthData: twoStepAuthData, activeSessionsContext: activeSessionsContext, webSessionsContext: webSessionsContext))
|
||||||
|
|
||||||
let faqItems = Promise<[SettingsSearchableItem]>()
|
let faqItems = Promise<[SettingsSearchableItem]>()
|
||||||
faqItems.set(faqSearchableItems(context: context, resolvedUrl: resolvedFaqUrl, suggestAccountDeletion: false))
|
faqItems.set(faqSearchableItems(context: context, resolvedUrl: resolvedFaqUrl, suggestAccountDeletion: false))
|
||||||
@ -646,12 +650,13 @@ private final class SettingsSearchItemNode: ItemListControllerSearchNode {
|
|||||||
let archivedStickerPacks: Signal<[ArchivedStickerPackItem]?, NoError>
|
let archivedStickerPacks: Signal<[ArchivedStickerPackItem]?, NoError>
|
||||||
let privacySettings: Signal<AccountPrivacySettings?, NoError>
|
let privacySettings: Signal<AccountPrivacySettings?, NoError>
|
||||||
let hasTwoStepAuth: Signal<Bool?, NoError>
|
let hasTwoStepAuth: Signal<Bool?, NoError>
|
||||||
|
let twoStepAuthData: Signal<TwoStepVerificationAccessConfiguration?, NoError>
|
||||||
let activeSessionsContext: Signal<ActiveSessionsContext?, NoError>
|
let activeSessionsContext: Signal<ActiveSessionsContext?, NoError>
|
||||||
let webSessionsContext: Signal<WebSessionsContext?, NoError>
|
let webSessionsContext: Signal<WebSessionsContext?, NoError>
|
||||||
|
|
||||||
var cancel: () -> Void
|
var cancel: () -> Void
|
||||||
|
|
||||||
init(context: AccountContext, cancel: @escaping () -> Void, updateActivity: @escaping(Bool) -> Void, pushController: @escaping (ViewController) -> Void, presentController: @escaping (ViewController, Any?) -> Void, getNavigationController: (() -> NavigationController?)?, resolvedFaqUrl: Signal<ResolvedUrl?, NoError>, exceptionsList: Signal<NotificationExceptionsList?, NoError>, archivedStickerPacks: Signal<[ArchivedStickerPackItem]?, NoError>, privacySettings: Signal<AccountPrivacySettings?, NoError>, hasTwoStepAuth: Signal<Bool?, NoError>, activeSessionsContext: Signal<ActiveSessionsContext?, NoError>, webSessionsContext: Signal<WebSessionsContext?, NoError>) {
|
init(context: AccountContext, cancel: @escaping () -> Void, updateActivity: @escaping(Bool) -> Void, pushController: @escaping (ViewController) -> Void, presentController: @escaping (ViewController, Any?) -> Void, getNavigationController: (() -> NavigationController?)?, resolvedFaqUrl: Signal<ResolvedUrl?, NoError>, exceptionsList: Signal<NotificationExceptionsList?, NoError>, archivedStickerPacks: Signal<[ArchivedStickerPackItem]?, NoError>, privacySettings: Signal<AccountPrivacySettings?, NoError>, hasTwoStepAuth: Signal<Bool?, NoError>, twoStepAuthData: Signal<TwoStepVerificationAccessConfiguration?, NoError>, activeSessionsContext: Signal<ActiveSessionsContext?, NoError>, webSessionsContext: Signal<WebSessionsContext?, NoError>) {
|
||||||
self.context = context
|
self.context = context
|
||||||
self.presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
self.presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
self.cancel = cancel
|
self.cancel = cancel
|
||||||
@ -663,6 +668,7 @@ private final class SettingsSearchItemNode: ItemListControllerSearchNode {
|
|||||||
self.archivedStickerPacks = archivedStickerPacks
|
self.archivedStickerPacks = archivedStickerPacks
|
||||||
self.privacySettings = privacySettings
|
self.privacySettings = privacySettings
|
||||||
self.hasTwoStepAuth = hasTwoStepAuth
|
self.hasTwoStepAuth = hasTwoStepAuth
|
||||||
|
self.twoStepAuthData = twoStepAuthData
|
||||||
self.activeSessionsContext = activeSessionsContext
|
self.activeSessionsContext = activeSessionsContext
|
||||||
self.webSessionsContext = webSessionsContext
|
self.webSessionsContext = webSessionsContext
|
||||||
|
|
||||||
@ -704,7 +710,7 @@ private final class SettingsSearchItemNode: ItemListControllerSearchNode {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}, resolvedFaqUrl: self.resolvedFaqUrl, exceptionsList: self.exceptionsList, archivedStickerPacks: self.archivedStickerPacks, privacySettings: self.privacySettings, hasTwoStepAuth: self.hasTwoStepAuth, activeSessionsContext: self.activeSessionsContext, webSessionsContext: self.webSessionsContext), cancel: { [weak self] in
|
}, resolvedFaqUrl: self.resolvedFaqUrl, exceptionsList: self.exceptionsList, archivedStickerPacks: self.archivedStickerPacks, privacySettings: self.privacySettings, hasTwoStepAuth: self.hasTwoStepAuth, twoStepAuthData: self.twoStepAuthData, activeSessionsContext: self.activeSessionsContext, webSessionsContext: self.webSessionsContext), cancel: { [weak self] in
|
||||||
self?.cancel()
|
self?.cancel()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -35,6 +35,7 @@ enum SettingsSearchableItemIcon {
|
|||||||
case support
|
case support
|
||||||
case faq
|
case faq
|
||||||
case chatFolders
|
case chatFolders
|
||||||
|
case deleteAccount
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum SettingsSearchableItemId: Hashable {
|
public enum SettingsSearchableItemId: Hashable {
|
||||||
@ -54,6 +55,7 @@ public enum SettingsSearchableItemId: Hashable {
|
|||||||
case support(Int32)
|
case support(Int32)
|
||||||
case faq(Int32)
|
case faq(Int32)
|
||||||
case chatFolders(Int32)
|
case chatFolders(Int32)
|
||||||
|
case deleteAccount(Int32)
|
||||||
|
|
||||||
private var namespace: Int32 {
|
private var namespace: Int32 {
|
||||||
switch self {
|
switch self {
|
||||||
@ -89,6 +91,8 @@ public enum SettingsSearchableItemId: Hashable {
|
|||||||
return 15
|
return 15
|
||||||
case .chatFolders:
|
case .chatFolders:
|
||||||
return 16
|
return 16
|
||||||
|
case .deleteAccount:
|
||||||
|
return 17
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -109,7 +113,8 @@ public enum SettingsSearchableItemId: Hashable {
|
|||||||
let .wallet(id),
|
let .wallet(id),
|
||||||
let .support(id),
|
let .support(id),
|
||||||
let .faq(id),
|
let .faq(id),
|
||||||
let .chatFolders(id):
|
let .chatFolders(id),
|
||||||
|
let .deleteAccount(id):
|
||||||
return id
|
return id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -154,6 +159,8 @@ public enum SettingsSearchableItemId: Hashable {
|
|||||||
self = .faq(id)
|
self = .faq(id)
|
||||||
case 16:
|
case 16:
|
||||||
self = .chatFolders(id)
|
self = .chatFolders(id)
|
||||||
|
case 17:
|
||||||
|
self = .deleteAccount(id)
|
||||||
default:
|
default:
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -338,12 +345,6 @@ private func notificationSearchableItems(context: AccountContext, settings: Glob
|
|||||||
SettingsSearchableItem(id: .notifications(0), title: strings.Settings_NotificationsAndSounds, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_Title), icon: icon, breadcrumbs: [], present: { context, _, present in
|
SettingsSearchableItem(id: .notifications(0), title: strings.Settings_NotificationsAndSounds, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_Title), icon: icon, breadcrumbs: [], present: { context, _, present in
|
||||||
presentNotificationSettings(context, present, nil)
|
presentNotificationSettings(context, present, nil)
|
||||||
}),
|
}),
|
||||||
// SettingsSearchableItem(id: .notifications(1), title: strings.Notifications_MessageNotificationsAlert, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert), icon: icon, breadcrumbs: [strings.Settings_NotificationsAndSounds, strings.Notifications_MessageNotifications], present: { context, _, present in
|
|
||||||
// presentNotificationSettings(context, present, .messageAlerts)
|
|
||||||
// }),
|
|
||||||
// SettingsSearchableItem(id: .notifications(2), title: strings.Notifications_MessageNotificationsPreview, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview), icon: icon, breadcrumbs: [strings.Settings_NotificationsAndSounds, strings.Notifications_MessageNotifications], present: { context, _, present in
|
|
||||||
// presentNotificationSettings(context, present, .messagePreviews)
|
|
||||||
// }),
|
|
||||||
SettingsSearchableItem(id: .notifications(3), title: strings.Notifications_MessageNotificationsSound, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_MessageNotificationsSound), icon: icon, breadcrumbs: [strings.Settings_NotificationsAndSounds, strings.Notifications_MessageNotifications], present: { context, _, present in
|
SettingsSearchableItem(id: .notifications(3), title: strings.Notifications_MessageNotificationsSound, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_MessageNotificationsSound), icon: icon, breadcrumbs: [strings.Settings_NotificationsAndSounds, strings.Notifications_MessageNotifications], present: { context, _, present in
|
||||||
|
|
||||||
let controller = notificationSoundSelectionController(context: context, isModal: true, currentSound: filteredGlobalSound(settings.privateChats.sound), defaultSound: nil, completion: { value in
|
let controller = notificationSoundSelectionController(context: context, isModal: true, currentSound: filteredGlobalSound(settings.privateChats.sound), defaultSound: nil, completion: { value in
|
||||||
@ -358,12 +359,6 @@ private func notificationSearchableItems(context: AccountContext, settings: Glob
|
|||||||
SettingsSearchableItem(id: .notifications(4), title: strings.Notifications_MessageNotificationsExceptions, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions), icon: icon, breadcrumbs: [strings.Settings_NotificationsAndSounds, strings.Notifications_MessageNotifications], present: { context, _, present in
|
SettingsSearchableItem(id: .notifications(4), title: strings.Notifications_MessageNotificationsExceptions, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions), icon: icon, breadcrumbs: [strings.Settings_NotificationsAndSounds, strings.Notifications_MessageNotifications], present: { context, _, present in
|
||||||
present(.push, NotificationExceptionsController(context: context, mode: exceptions().0, updatedMode: { _ in}))
|
present(.push, NotificationExceptionsController(context: context, mode: exceptions().0, updatedMode: { _ in}))
|
||||||
}),
|
}),
|
||||||
// SettingsSearchableItem(id: .notifications(5), title: strings.Notifications_GroupNotificationsAlert, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert), icon: icon, breadcrumbs: [strings.Settings_NotificationsAndSounds, strings.Notifications_GroupNotifications], present: { context, _, present in
|
|
||||||
// presentNotificationSettings(context, present, .groupAlerts)
|
|
||||||
// }),
|
|
||||||
// SettingsSearchableItem(id: .notifications(6), title: strings.Notifications_GroupNotificationsPreview, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview), icon: icon, breadcrumbs: [strings.Settings_NotificationsAndSounds, strings.Notifications_GroupNotifications], present: { context, _, present in
|
|
||||||
// presentNotificationSettings(context, present, .groupPreviews)
|
|
||||||
// }),
|
|
||||||
SettingsSearchableItem(id: .notifications(7), title: strings.Notifications_GroupNotificationsSound, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_GroupNotificationsSound), icon: icon, breadcrumbs: [strings.Settings_NotificationsAndSounds, strings.Notifications_GroupNotifications], present: { context, _, present in
|
SettingsSearchableItem(id: .notifications(7), title: strings.Notifications_GroupNotificationsSound, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_GroupNotificationsSound), icon: icon, breadcrumbs: [strings.Settings_NotificationsAndSounds, strings.Notifications_GroupNotifications], present: { context, _, present in
|
||||||
let controller = notificationSoundSelectionController(context: context, isModal: true, currentSound: filteredGlobalSound(settings.groupChats.sound), defaultSound: nil, completion: { value in
|
let controller = notificationSoundSelectionController(context: context, isModal: true, currentSound: filteredGlobalSound(settings.groupChats.sound), defaultSound: nil, completion: { value in
|
||||||
let _ = updateGlobalNotificationSettingsInteractively(postbox: context.account.postbox, { settings in
|
let _ = updateGlobalNotificationSettingsInteractively(postbox: context.account.postbox, { settings in
|
||||||
@ -377,12 +372,6 @@ private func notificationSearchableItems(context: AccountContext, settings: Glob
|
|||||||
SettingsSearchableItem(id: .notifications(8), title: strings.Notifications_GroupNotificationsExceptions, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions), icon: icon, breadcrumbs: [strings.Settings_NotificationsAndSounds, strings.Notifications_GroupNotifications], present: { context, _, present in
|
SettingsSearchableItem(id: .notifications(8), title: strings.Notifications_GroupNotificationsExceptions, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions), icon: icon, breadcrumbs: [strings.Settings_NotificationsAndSounds, strings.Notifications_GroupNotifications], present: { context, _, present in
|
||||||
present(.push, NotificationExceptionsController(context: context, mode: exceptions().1, updatedMode: { _ in}))
|
present(.push, NotificationExceptionsController(context: context, mode: exceptions().1, updatedMode: { _ in}))
|
||||||
}),
|
}),
|
||||||
// SettingsSearchableItem(id: .notifications(9), title: strings.Notifications_ChannelNotificationsAlert, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert), icon: icon, breadcrumbs: [strings.Settings_NotificationsAndSounds, strings.Notifications_ChannelNotifications], present: { context, _, present in
|
|
||||||
// presentNotificationSettings(context, present, .channelAlerts)
|
|
||||||
// }),
|
|
||||||
// SettingsSearchableItem(id: .notifications(10), title: strings.Notifications_ChannelNotificationsPreview, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview), icon: icon, breadcrumbs: [strings.Settings_NotificationsAndSounds, strings.Notifications_ChannelNotifications], present: { context, _, present in
|
|
||||||
// presentNotificationSettings(context, present, .channelPreviews)
|
|
||||||
// }),
|
|
||||||
SettingsSearchableItem(id: .notifications(11), title: strings.Notifications_ChannelNotificationsSound, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_ChannelNotificationsSound), icon: icon, breadcrumbs: [strings.Settings_NotificationsAndSounds, strings.Notifications_ChannelNotifications], present: { context, _, present in
|
SettingsSearchableItem(id: .notifications(11), title: strings.Notifications_ChannelNotificationsSound, alternate: synonyms(strings.SettingsSearch_Synonyms_Notifications_ChannelNotificationsSound), icon: icon, breadcrumbs: [strings.Settings_NotificationsAndSounds, strings.Notifications_ChannelNotifications], present: { context, _, present in
|
||||||
let controller = notificationSoundSelectionController(context: context, isModal: true, currentSound: filteredGlobalSound(settings.channels.sound), defaultSound: nil, completion: { value in
|
let controller = notificationSoundSelectionController(context: context, isModal: true, currentSound: filteredGlobalSound(settings.channels.sound), defaultSound: nil, completion: { value in
|
||||||
let _ = updateGlobalNotificationSettingsInteractively(postbox: context.account.postbox, { settings in
|
let _ = updateGlobalNotificationSettingsInteractively(postbox: context.account.postbox, { settings in
|
||||||
@ -735,7 +724,7 @@ private func languageSearchableItems(context: AccountContext, localizations: [Lo
|
|||||||
return items
|
return items
|
||||||
}
|
}
|
||||||
|
|
||||||
func settingsSearchableItems(context: AccountContext, notificationExceptionsList: Signal<NotificationExceptionsList?, NoError>, archivedStickerPacks: Signal<[ArchivedStickerPackItem]?, NoError>, privacySettings: Signal<AccountPrivacySettings?, NoError>, hasTwoStepAuth: Signal<Bool?, NoError>, activeSessionsContext: Signal<ActiveSessionsContext?, NoError>, webSessionsContext: Signal<WebSessionsContext?, NoError>) -> Signal<[SettingsSearchableItem], NoError> {
|
func settingsSearchableItems(context: AccountContext, notificationExceptionsList: Signal<NotificationExceptionsList?, NoError>, archivedStickerPacks: Signal<[ArchivedStickerPackItem]?, NoError>, privacySettings: Signal<AccountPrivacySettings?, NoError>, hasTwoStepAuth: Signal<Bool?, NoError>, twoStepAuthData: Signal<TwoStepVerificationAccessConfiguration?, NoError>, activeSessionsContext: Signal<ActiveSessionsContext?, NoError>, webSessionsContext: Signal<WebSessionsContext?, NoError>) -> Signal<[SettingsSearchableItem], NoError> {
|
||||||
let watchAppInstalled = (context.watchManager?.watchAppInstalled ?? .single(false))
|
let watchAppInstalled = (context.watchManager?.watchAppInstalled ?? .single(false))
|
||||||
|> take(1)
|
|> take(1)
|
||||||
|
|
||||||
@ -832,8 +821,8 @@ func settingsSearchableItems(context: AccountContext, notificationExceptionsList
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return combineLatest(watchAppInstalled, canAddAccount, localizations, notificationSettings, notificationExceptionsList, archivedStickerPacks, proxyServers, privacySettings, hasTwoStepAuth, activeSessionsContext, activeWebSessionsContext)
|
return combineLatest(watchAppInstalled, canAddAccount, localizations, notificationSettings, notificationExceptionsList, archivedStickerPacks, proxyServers, privacySettings, hasTwoStepAuth, twoStepAuthData, activeSessionsContext, activeWebSessionsContext)
|
||||||
|> map { watchAppInstalled, canAddAccount, localizations, notificationSettings, notificationExceptionsList, archivedStickerPacks, proxyServers, privacySettings, hasTwoStepAuth, activeSessionsContext, activeWebSessionsContext in
|
|> map { watchAppInstalled, canAddAccount, localizations, notificationSettings, notificationExceptionsList, archivedStickerPacks, proxyServers, privacySettings, hasTwoStepAuth, twoStepAuthData, activeSessionsContext, activeWebSessionsContext in
|
||||||
let strings = context.sharedContext.currentPresentationData.with { $0 }.strings
|
let strings = context.sharedContext.currentPresentationData.with { $0 }.strings
|
||||||
|
|
||||||
var allItems: [SettingsSearchableItem] = []
|
var allItems: [SettingsSearchableItem] = []
|
||||||
@ -900,7 +889,6 @@ func settingsSearchableItems(context: AccountContext, notificationExceptionsList
|
|||||||
allItems.append(support)
|
allItems.append(support)
|
||||||
|
|
||||||
let faq = SettingsSearchableItem(id: .faq(0), title: strings.Settings_FAQ, alternate: synonyms(strings.SettingsSearch_Synonyms_FAQ), icon: .faq, breadcrumbs: [], present: { context, navigationController, present in
|
let faq = SettingsSearchableItem(id: .faq(0), title: strings.Settings_FAQ, alternate: synonyms(strings.SettingsSearch_Synonyms_FAQ), icon: .faq, breadcrumbs: [], present: { context, navigationController, present in
|
||||||
|
|
||||||
let _ = (cachedFaqInstantPage(context: context)
|
let _ = (cachedFaqInstantPage(context: context)
|
||||||
|> deliverOnMainQueue).start(next: { resolvedUrl in
|
|> deliverOnMainQueue).start(next: { resolvedUrl in
|
||||||
context.sharedContext.openResolvedUrl(resolvedUrl, context: context, urlContext: .generic, navigationController: navigationController, forceExternal: false, openPeer: { peer, navigation in
|
context.sharedContext.openResolvedUrl(resolvedUrl, context: context, urlContext: .generic, navigationController: navigationController, forceExternal: false, openPeer: { peer, navigation in
|
||||||
@ -910,6 +898,13 @@ func settingsSearchableItems(context: AccountContext, notificationExceptionsList
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
allItems.append(faq)
|
allItems.append(faq)
|
||||||
|
|
||||||
|
allItems.append(SettingsSearchableItem(id: .deleteAccount(0), title: strings.DeleteAccount_DeleteMyAccount, alternate: synonyms(strings.SettingsSearch_DeleteAccount_DeleteMyAccount), icon: .deleteAccount, breadcrumbs: [], present: { context, navigationController, present in
|
||||||
|
if let navigationController = navigationController {
|
||||||
|
let controller = deleteAccountOptionsController(context: context, navigationController: navigationController, hasTwoStepAuth: hasTwoStepAuth ?? false, twoStepAuthData: twoStepAuthData)
|
||||||
|
present(.push, controller)
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
|
||||||
return allItems
|
return allItems
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,8 @@ public struct PresentationResourcesSettings {
|
|||||||
public static let dataAndStorage = renderIcon(name: "Settings/Menu/DataAndStorage")
|
public static let dataAndStorage = renderIcon(name: "Settings/Menu/DataAndStorage")
|
||||||
public static let appearance = renderIcon(name: "Settings/Menu/Appearance")
|
public static let appearance = renderIcon(name: "Settings/Menu/Appearance")
|
||||||
public static let language = renderIcon(name: "Settings/Menu/Language")
|
public static let language = renderIcon(name: "Settings/Menu/Language")
|
||||||
|
|
||||||
|
public static let deleteAccount = renderIcon(name: "Chat/Info/GroupRemovedIcon")
|
||||||
|
|
||||||
public static let wallet = generateImage(CGSize(width: 29.0, height: 29.0), contextGenerator: { size, context in
|
public static let wallet = generateImage(CGSize(width: 29.0, height: 29.0), contextGenerator: { size, context in
|
||||||
let bounds = CGRect(origin: CGPoint(), size: size)
|
let bounds = CGRect(origin: CGPoint(), size: size)
|
||||||
|
@ -2209,6 +2209,12 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
|
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
|
||||||
|
if let inputMediaNode = self.inputMediaNode, self.inputNode === inputMediaNode {
|
||||||
|
let convertedPoint = self.view.convert(point, to: inputMediaNode.view)
|
||||||
|
if inputMediaNode.point(inside: convertedPoint, with: event) {
|
||||||
|
return inputMediaNode.hitTest(convertedPoint, with: event)
|
||||||
|
}
|
||||||
|
}
|
||||||
switch self.chatPresentationInterfaceState.mode {
|
switch self.chatPresentationInterfaceState.mode {
|
||||||
case .standard(previewing: true):
|
case .standard(previewing: true):
|
||||||
if let result = self.historyNode.view.hitTest(self.view.convert(point, to: self.historyNode.view), with: event), let node = result.asyncdisplaykit_node, node is ChatMessageSelectionNode || node is GridMessageSelectionNode {
|
if let result = self.historyNode.view.hitTest(self.view.convert(point, to: self.historyNode.view), with: event), let node = result.asyncdisplaykit_node, node is ChatMessageSelectionNode || node is GridMessageSelectionNode {
|
||||||
|
@ -2658,6 +2658,15 @@ final class ChatMediaInputNode: ChatInputNode {
|
|||||||
self.updatePaneClippingContainer(size: self.paneClippingContainer.bounds.size, offset: collectionListPanelOffset, transition: transition)
|
self.updatePaneClippingContainer(size: self.paneClippingContainer.bounds.size, offset: collectionListPanelOffset, transition: transition)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
|
||||||
|
if self.panelIsFocused {
|
||||||
|
if point.y > -41.0 {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return super.point(inside: point, with: event)
|
||||||
|
}
|
||||||
|
|
||||||
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
|
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
|
||||||
if self.panelIsFocused {
|
if self.panelIsFocused {
|
||||||
if point.y > -41.0 && point.y < 38.0 {
|
if point.y > -41.0 && point.y < 38.0 {
|
||||||
|
@ -1700,6 +1700,7 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewDelegate
|
|||||||
private let archivedPacks = Promise<[ArchivedStickerPackItem]?>()
|
private let archivedPacks = Promise<[ArchivedStickerPackItem]?>()
|
||||||
private let blockedPeers = Promise<BlockedPeersContext?>(nil)
|
private let blockedPeers = Promise<BlockedPeersContext?>(nil)
|
||||||
private let hasTwoStepAuth = Promise<Bool?>(nil)
|
private let hasTwoStepAuth = Promise<Bool?>(nil)
|
||||||
|
private let twoStepAuthData = Promise<TwoStepVerificationAccessConfiguration?>(nil)
|
||||||
private let hasPassport = Promise<Bool>(false)
|
private let hasPassport = Promise<Bool>(false)
|
||||||
private let supportPeerDisposable = MetaDisposable()
|
private let supportPeerDisposable = MetaDisposable()
|
||||||
private let tipsPeerDisposable = MetaDisposable()
|
private let tipsPeerDisposable = MetaDisposable()
|
||||||
@ -2968,6 +2969,10 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewDelegate
|
|||||||
))
|
))
|
||||||
self.privacySettings.set(.single(nil) |> then(context.engine.privacy.requestAccountPrivacySettings() |> map(Optional.init)))
|
self.privacySettings.set(.single(nil) |> then(context.engine.privacy.requestAccountPrivacySettings() |> map(Optional.init)))
|
||||||
self.archivedPacks.set(.single(nil) |> then(context.engine.stickers.archivedStickerPacks() |> map(Optional.init)))
|
self.archivedPacks.set(.single(nil) |> then(context.engine.stickers.archivedStickerPacks() |> map(Optional.init)))
|
||||||
|
self.twoStepAuthData.set(.single(nil) |> then(context.engine.auth.twoStepVerificationConfiguration()
|
||||||
|
|> map { value -> TwoStepVerificationAccessConfiguration? in
|
||||||
|
return TwoStepVerificationAccessConfiguration(configuration: value, password: nil)
|
||||||
|
}))
|
||||||
self.hasPassport.set(.single(false) |> then(context.engine.auth.twoStepAuthData()
|
self.hasPassport.set(.single(false) |> then(context.engine.auth.twoStepAuthData()
|
||||||
|> map { value -> Bool in
|
|> map { value -> Bool in
|
||||||
return value.hasSecretValues
|
return value.hasSecretValues
|
||||||
@ -6745,7 +6750,7 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewDelegate
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}, resolvedFaqUrl: self.cachedFaq.get(), exceptionsList: .single(settings.notificationExceptions), archivedStickerPacks: .single(settings.archivedStickerPacks), privacySettings: .single(settings.privacySettings), hasTwoStepAuth: self.hasTwoStepAuth.get(), activeSessionsContext: self.activeSessionsContextAndCount.get() |> map { $0?.0 }, webSessionsContext: self.activeSessionsContextAndCount.get() |> map { $0?.2 }), cancel: { [weak self] in
|
}, resolvedFaqUrl: self.cachedFaq.get(), exceptionsList: .single(settings.notificationExceptions), archivedStickerPacks: .single(settings.archivedStickerPacks), privacySettings: .single(settings.privacySettings), hasTwoStepAuth: self.hasTwoStepAuth.get(), twoStepAuthData: self.twoStepAuthData.get(), activeSessionsContext: self.activeSessionsContextAndCount.get() |> map { $0?.0 }, webSessionsContext: self.activeSessionsContextAndCount.get() |> map { $0?.2 }), cancel: { [weak self] in
|
||||||
self?.deactivateSearch()
|
self?.deactivateSearch()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user