From eb759a42ccb0366b1f532f48fb76173fde44cfe3 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Thu, 20 Dec 2018 00:08:47 +0400 Subject: [PATCH] Update submodules --- Telegram-iOS/AppDelegate.swift | 2 +- Telegram-iOS/ApplicationContext.swift | 26 +++++++++++------------ Telegram-iOS/en.lproj/Localizable.strings | 1 + submodules/LegacyComponents | 2 +- submodules/MtProtoKit | 2 +- submodules/TelegramCore | 2 +- submodules/TelegramUI | 2 +- 7 files changed, 19 insertions(+), 18 deletions(-) diff --git a/Telegram-iOS/AppDelegate.swift b/Telegram-iOS/AppDelegate.swift index 0591af6d8f..896e7efd03 100644 --- a/Telegram-iOS/AppDelegate.swift +++ b/Telegram-iOS/AppDelegate.swift @@ -1429,11 +1429,11 @@ private enum QueuedWakeup: Int32 { private func registerForNotifications(replyString: String, messagePlaceholderString: String, hiddenContentString: String, includeNames: Bool, authorize: Bool = true, completion: @escaping (Bool) -> Void = { _ in }) { if #available(iOS 10.0, *) { let notificationCenter = UNUserNotificationCenter.current() - notificationCenter.getNotificationSettings(completionHandler: { settings in switch (settings.authorizationStatus, authorize) { case (.authorized, _), (.notDetermined, true): notificationCenter.requestAuthorization(options: [.badge, .sound, .alert], completionHandler: { result, _ in + completion(result) if result { Queue.mainQueue().async { let reply = UNTextInputNotificationAction(identifier: "reply", title: replyString, options: [], textInputButtonTitle: replyString, textInputPlaceholder: messagePlaceholderString) diff --git a/Telegram-iOS/ApplicationContext.swift b/Telegram-iOS/ApplicationContext.swift index 6dd7b2149e..883bdfb0fa 100644 --- a/Telegram-iOS/ApplicationContext.swift +++ b/Telegram-iOS/ApplicationContext.swift @@ -801,6 +801,8 @@ final class AuthorizedApplicationContext { })) if #available(iOS 10.0, *) { + let alwaysModal = true + let permissionsPosition = ValuePromise(0, ignoreRepeated: true) self.permissionsDisposable.set((combineLatest(requiredPermissions(account: account), permissionUISplitTest(postbox: account.postbox), permissionsPosition.get(), account.postbox.combinedView(keys: [.noticeEntry(ApplicationSpecificNotice.contactsPermissionWarningKey()), .noticeEntry(ApplicationSpecificNotice.notificationsPermissionWarningKey())])) |> deliverOnMainQueue).start(next: { [weak self] contactsAndNotifications, splitTest, position, combined in @@ -811,10 +813,10 @@ final class AuthorizedApplicationContext { let contactsTimestamp = (combined.views[.noticeEntry(ApplicationSpecificNotice.contactsPermissionWarningKey())] as? NoticeEntryView)?.value.flatMap({ ApplicationSpecificNotice.getTimestampValue($0) }) let notificationsTimestamp = (combined.views[.noticeEntry(ApplicationSpecificNotice.notificationsPermissionWarningKey())] as? NoticeEntryView)?.value.flatMap({ ApplicationSpecificNotice.getTimestampValue($0) }) if contactsTimestamp == nil, case .requestable = contactsAndNotifications.0.status { - ApplicationSpecificNotice.setContactsPermissionWarning(postbox: account.postbox, value: -1) + ApplicationSpecificNotice.setContactsPermissionWarning(postbox: account.postbox, value: 1) } if notificationsTimestamp == nil, case .requestable = contactsAndNotifications.1.status { - ApplicationSpecificNotice.setNotificationsPermissionWarning(postbox: account.postbox, value: -1) + ApplicationSpecificNotice.setNotificationsPermissionWarning(postbox: account.postbox, value: 1) } let config = splitTest.configuration @@ -831,15 +833,15 @@ final class AuthorizedApplicationContext { if case .modal = config.contacts { modal = true } - if case .requestable = contactsAndNotifications.0.status { - requestedPermissions.append((contactsAndNotifications.0, modal)) + if case .requestable = contactsAndNotifications.0.status, contactsTimestamp != 0 { + requestedPermissions.append((contactsAndNotifications.0, modal || alwaysModal)) } case .notifications: if case .modal = config.notifications { modal = true } - if case .requestable = contactsAndNotifications.1.status { - requestedPermissions.append((contactsAndNotifications.1, modal)) + if case .requestable = contactsAndNotifications.1.status, notificationsTimestamp != 0 { + requestedPermissions.append((contactsAndNotifications.1, modal || alwaysModal)) } default: break @@ -860,7 +862,7 @@ final class AuthorizedApplicationContext { } controller.setState(state, animated: didAppear) - controller.proceed = { + controller.proceed = { resolved in permissionsPosition.set(position + 1) switch state { case .contacts: @@ -881,7 +883,7 @@ final class AuthorizedApplicationContext { switch state { case .contacts: splitTest.addEvent(.ContactsRequest) - DeviceAccess.authorizeAccess(to: .contacts) { result in + DeviceAccess.authorizeAccess(to: .contacts, account: account) { result in if result { splitTest.addEvent(.ContactsAllowed) } else { @@ -892,7 +894,7 @@ final class AuthorizedApplicationContext { } case .notifications: splitTest.addEvent(.NotificationsRequest) - DeviceAccess.authorizeAccess(to: .notifications) { result in + DeviceAccess.authorizeAccess(to: .notifications, account: account) { result in if result { splitTest.addEvent(.NotificationsAllowed) } else { @@ -907,10 +909,8 @@ final class AuthorizedApplicationContext { } } else { if let controller = strongSelf.currentPermissionsController { - controller.dismiss(completion: { [weak self] in - if let strongSelf = self { - strongSelf.currentPermissionsController = nil - } + strongSelf.currentPermissionsController = nil + controller.dismiss(completion: { }) } } diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index 61c0d02f6f..f0c0a94cce 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -3595,6 +3595,7 @@ Unused sets are archived when you add more."; "Notifications.PermissionsTitle" = "Turn ON Notifications"; "Notifications.PermissionsText" = "Don't miss important messages from your friends and coworkers."; +"Notifications.PermissionsUnreachableTitle" = "Check Notification Settings"; "Notifications.PermissionsUnreachableText" = "Please note that you partly disabled message notifications in your Settings."; "Notifications.PermissionsAllow" = "Turn Notifications ON"; "Notifications.PermissionsAllowInSettings" = "Turn ON in Settings"; diff --git a/submodules/LegacyComponents b/submodules/LegacyComponents index 834e3a865d..ccfa2e2f83 160000 --- a/submodules/LegacyComponents +++ b/submodules/LegacyComponents @@ -1 +1 @@ -Subproject commit 834e3a865deb0bad47c54094792044aef450c910 +Subproject commit ccfa2e2f8381bcca126abba8de3fb326dfb168fc diff --git a/submodules/MtProtoKit b/submodules/MtProtoKit index cc97fc2fa2..a7e2581217 160000 --- a/submodules/MtProtoKit +++ b/submodules/MtProtoKit @@ -1 +1 @@ -Subproject commit cc97fc2fa2a6fd875c2af18cbad65a365e9ffdd0 +Subproject commit a7e2581217adaadb0dbe3aa9c94c243facd7f16f diff --git a/submodules/TelegramCore b/submodules/TelegramCore index 99e75d0f2d..98767051c5 160000 --- a/submodules/TelegramCore +++ b/submodules/TelegramCore @@ -1 +1 @@ -Subproject commit 99e75d0f2dc4f76deff6689ff9dd6b848b8312e9 +Subproject commit 98767051c506be81ce802194738fe295766de391 diff --git a/submodules/TelegramUI b/submodules/TelegramUI index f8bee27599..9961c6212d 160000 --- a/submodules/TelegramUI +++ b/submodules/TelegramUI @@ -1 +1 @@ -Subproject commit f8bee2759931fd4b1c094dc0135b6ffba5667a6a +Subproject commit 9961c6212de8208faa0e078f704b8bf5bdc899f9