diff --git a/Telegram-iOS.xcworkspace/contents.xcworkspacedata b/Telegram-iOS.xcworkspace/contents.xcworkspacedata index 7e31881bcd..51e4105dc2 100644 --- a/Telegram-iOS.xcworkspace/contents.xcworkspacedata +++ b/Telegram-iOS.xcworkspace/contents.xcworkspacedata @@ -117,9 +117,6 @@ - - @@ -203,6 +200,9 @@ + + diff --git a/submodules/ChatListSearchRecentPeersNode/Sources/ChatListSearchRecentPeersNode.swift b/submodules/ChatListSearchRecentPeersNode/Sources/ChatListSearchRecentPeersNode.swift index 5048da2950..1bfff23243 100644 --- a/submodules/ChatListSearchRecentPeersNode/Sources/ChatListSearchRecentPeersNode.swift +++ b/submodules/ChatListSearchRecentPeersNode/Sources/ChatListSearchRecentPeersNode.swift @@ -8,7 +8,6 @@ import TelegramCore import TelegramPresentationData import MergeLists import HorizontalPeerItem -import UnreadSearchBadge import ListSectionHeaderNode private func calculateItemCustomWidth(width: CGFloat) -> CGFloat { @@ -33,7 +32,7 @@ private struct ChatListSearchRecentPeersEntry: Comparable, Identifiable { let index: Int let peer: Peer let presence: PeerPresence? - let unreadBadge: UnreadSearchBadge? + let unreadBadge: (Int32, Bool)? let theme: PresentationTheme let strings: PresentationStrings let itemCustomWidth: CGFloat? @@ -58,7 +57,10 @@ private struct ChatListSearchRecentPeersEntry: Comparable, Identifiable { } else if (lhs.presence != nil) != (rhs.presence != nil) { return false } - if lhs.unreadBadge != rhs.unreadBadge { + if lhs.unreadBadge?.0 != rhs.unreadBadge?.0 { + return false + } + if lhs.unreadBadge?.1 != rhs.unreadBadge?.1 { return false } if lhs.theme !== rhs.theme { @@ -145,7 +147,7 @@ public final class ChatListSearchRecentPeersNode: ASDisplayNode { let peersDisposable = DisposableSet() - let recent: Signal<([Peer], [PeerId: UnreadSearchBadge], [PeerId : PeerPresence]), NoError> = recentPeers(account: account) + let recent: Signal<([Peer], [PeerId: (Int32, Bool)], [PeerId : PeerPresence]), NoError> = recentPeers(account: account) |> filter { value -> Bool in switch value { case .disabled: @@ -159,10 +161,13 @@ public final class ChatListSearchRecentPeersNode: ASDisplayNode { case .disabled: return .single(([], [:], [:])) case let .peers(peers): - return combineLatest(peers.filter { !$0.isDeleted }.map {account.postbox.peerView(id: $0.id)}) |> mapToSignal { peerViews -> Signal<([Peer], [PeerId: UnreadSearchBadge], [PeerId: PeerPresence]), NoError> in - return account.postbox.unreadMessageCountsView(items: peerViews.map {.peer($0.peerId)}) |> map { values in + return combineLatest(queue: .mainQueue(), peers.filter { !$0.isDeleted }.map {account.postbox.peerView(id: $0.id)}) |> mapToSignal { peerViews -> Signal<([Peer], [PeerId: (Int32, Bool)], [PeerId: PeerPresence]), NoError> in + return account.postbox.unreadMessageCountsView(items: peerViews.map { + .peer($0.peerId) + }) + |> map { values in var peers: [Peer] = [] - var unread: [PeerId: UnreadSearchBadge] = [:] + var unread: [PeerId: (Int32, Bool)] = [:] var presences: [PeerId: PeerPresence] = [:] for peerView in peerViews { if let peer = peerViewMainPeer(peerView) { @@ -178,7 +183,7 @@ public final class ChatListSearchRecentPeersNode: ASDisplayNode { let unreadCount = values.count(for: .peer(peerView.peerId)) if let unreadCount = unreadCount, unreadCount > 0 { - unread[peerView.peerId] = isMuted ? .muted(unreadCount) : .unmuted(unreadCount) + unread[peerView.peerId] = (unreadCount, isMuted) } if let presence = peerView.peerPresences[peer.id] { @@ -196,7 +201,7 @@ public final class ChatListSearchRecentPeersNode: ASDisplayNode { let previous: Atomic<[ChatListSearchRecentPeersEntry]> = Atomic(value: []) let firstTime:Atomic = Atomic(value: true) - peersDisposable.add((combineLatest(recent, self.itemCustomWidthValuePromise.get(), self.themeAndStringsPromise.get()) |> deliverOnMainQueue).start(next: { [weak self] peers, itemCustomWidth, themeAndStrings in + peersDisposable.add((combineLatest(queue: .mainQueue(), recent, self.itemCustomWidthValuePromise.get(), self.themeAndStringsPromise.get()) |> deliverOnMainQueue).start(next: { [weak self] peers, itemCustomWidth, themeAndStrings in if let strongSelf = self { var entries: [ChatListSearchRecentPeersEntry] = [] for peer in peers.0 { diff --git a/submodules/HorizontalPeerItem/Sources/HorizontalPeerItem.swift b/submodules/HorizontalPeerItem/Sources/HorizontalPeerItem.swift index 4613e342fc..e93cbe00c0 100644 --- a/submodules/HorizontalPeerItem/Sources/HorizontalPeerItem.swift +++ b/submodules/HorizontalPeerItem/Sources/HorizontalPeerItem.swift @@ -9,7 +9,6 @@ import TelegramPresentationData import TelegramStringFormatting import PeerOnlineMarkerNode import SelectablePeerNode -import UnreadSearchBadge public enum HorizontalPeerItemMode { case list @@ -29,9 +28,9 @@ public final class HorizontalPeerItem: ListViewItem { let isPeerSelected: (PeerId) -> Bool let customWidth: CGFloat? let presence: PeerPresence? - let unreadBadge: UnreadSearchBadge? + let unreadBadge: (Int32, Bool)? - public init(theme: PresentationTheme, strings: PresentationStrings, mode: HorizontalPeerItemMode, account: Account, peer: Peer, presence: PeerPresence?, unreadBadge: UnreadSearchBadge?, action: @escaping (Peer) -> Void, longTapAction: @escaping (Peer) -> Void, isPeerSelected: @escaping (PeerId) -> Bool, customWidth: CGFloat?) { + public init(theme: PresentationTheme, strings: PresentationStrings, mode: HorizontalPeerItemMode, account: Account, peer: Peer, presence: PeerPresence?, unreadBadge: (Int32, Bool)?, action: @escaping (Peer) -> Void, longTapAction: @escaping (Peer) -> Void, isPeerSelected: @escaping (PeerId) -> Bool, customWidth: CGFloat?) { self.theme = theme self.strings = strings self.mode = mode @@ -144,16 +143,7 @@ public final class HorizontalPeerItemNode: ListViewItemNode { let badgeAttributedString: NSAttributedString if let unreadBadge = item.unreadBadge { let badgeTextColor: UIColor - let unreadCount: Int32 - let isMuted: Bool - switch unreadBadge { - case let .muted(_count): - unreadCount = _count - isMuted = true - case let .unmuted(_count): - unreadCount = _count - isMuted = false - } + let (unreadCount, isMuted) = unreadBadge if isMuted { currentBadgeBackgroundImage = PresentationResourcesChatList.badgeBackgroundInactive(item.theme) badgeTextColor = item.theme.chatList.unreadBadgeInactiveTextColor diff --git a/submodules/TelegramUI/TelegramUI/ChatListSearchContainerNode.swift b/submodules/TelegramUI/TelegramUI/ChatListSearchContainerNode.swift index 34f7e0f3f2..38a70ed2fe 100644 --- a/submodules/TelegramUI/TelegramUI/ChatListSearchContainerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatListSearchContainerNode.swift @@ -212,8 +212,8 @@ enum ChatListSearchEntryStableId: Hashable { } enum ChatListSearchEntry: Comparable, Identifiable { - case localPeer(Peer, Peer?, UnreadSearchBadge?, Int, PresentationTheme, PresentationStrings, PresentationPersonNameOrder, PresentationPersonNameOrder) - case globalPeer(FoundPeer, UnreadSearchBadge?, Int, PresentationTheme, PresentationStrings, PresentationPersonNameOrder, PresentationPersonNameOrder) + case localPeer(Peer, Peer?, (Int32, Bool)?, Int, PresentationTheme, PresentationStrings, PresentationPersonNameOrder, PresentationPersonNameOrder) + case globalPeer(FoundPeer, (Int32, Bool)?, Int, PresentationTheme, PresentationStrings, PresentationPersonNameOrder, PresentationPersonNameOrder) case message(Message, RenderedPeer, CombinedPeerReadState?, ChatListPresentationData) case addContact(String, PresentationTheme, PresentationStrings) @@ -233,13 +233,13 @@ enum ChatListSearchEntry: Comparable, Identifiable { static func ==(lhs: ChatListSearchEntry, rhs: ChatListSearchEntry) -> Bool { switch lhs { case let .localPeer(lhsPeer, lhsAssociatedPeer, lhsUnreadBadge, lhsIndex, lhsTheme, lhsStrings, lhsSortOrder, lhsDisplayOrder): - if case let .localPeer(rhsPeer, rhsAssociatedPeer, rhsUnreadBadge, rhsIndex, rhsTheme, rhsStrings, rhsSortOrder, rhsDisplayOrder) = rhs, lhsPeer.isEqual(rhsPeer) && arePeersEqual(lhsAssociatedPeer, rhsAssociatedPeer) && lhsIndex == rhsIndex && lhsTheme === rhsTheme && lhsStrings === rhsStrings && lhsSortOrder == rhsSortOrder && lhsDisplayOrder == rhsDisplayOrder && lhsUnreadBadge == rhsUnreadBadge { + if case let .localPeer(rhsPeer, rhsAssociatedPeer, rhsUnreadBadge, rhsIndex, rhsTheme, rhsStrings, rhsSortOrder, rhsDisplayOrder) = rhs, lhsPeer.isEqual(rhsPeer) && arePeersEqual(lhsAssociatedPeer, rhsAssociatedPeer) && lhsIndex == rhsIndex && lhsTheme === rhsTheme && lhsStrings === rhsStrings && lhsSortOrder == rhsSortOrder && lhsDisplayOrder == rhsDisplayOrder && lhsUnreadBadge?.0 == rhsUnreadBadge?.0 && lhsUnreadBadge?.1 == rhsUnreadBadge?.1 { return true } else { return false } case let .globalPeer(lhsPeer, lhsUnreadBadge, lhsIndex, lhsTheme, lhsStrings, lhsSortOrder, lhsDisplayOrder): - if case let .globalPeer(rhsPeer, rhsUnreadBadge, rhsIndex, rhsTheme, rhsStrings, rhsSortOrder, rhsDisplayOrder) = rhs, lhsPeer == rhsPeer && lhsIndex == rhsIndex && lhsTheme === rhsTheme && lhsStrings === rhsStrings && lhsSortOrder == rhsSortOrder && lhsDisplayOrder == rhsDisplayOrder && lhsUnreadBadge == rhsUnreadBadge { + if case let .globalPeer(rhsPeer, rhsUnreadBadge, rhsIndex, rhsTheme, rhsStrings, rhsSortOrder, rhsDisplayOrder) = rhs, lhsPeer == rhsPeer && lhsIndex == rhsIndex && lhsTheme === rhsTheme && lhsStrings === rhsStrings && lhsSortOrder == rhsSortOrder && lhsDisplayOrder == rhsDisplayOrder && lhsUnreadBadge?.0 == rhsUnreadBadge?.0 && lhsUnreadBadge?.1 == rhsUnreadBadge?.1 { return true } else { return false @@ -357,7 +357,7 @@ enum ChatListSearchEntry: Comparable, Identifiable { var badge: ContactsPeerItemBadge? if let unreadBadge = unreadBadge { - badge = ContactsPeerItemBadge(count: unreadBadge.count, type: unreadBadge.isMuted ? .inactive : .active) + badge = ContactsPeerItemBadge(count: unreadBadge.0, type: unreadBadge.1 ? .inactive : .active) } let header:ChatListSearchItemHeader? @@ -401,7 +401,7 @@ enum ChatListSearchEntry: Comparable, Identifiable { var badge: ContactsPeerItemBadge? if let unreadBadge = unreadBadge { - badge = ContactsPeerItemBadge(count: unreadBadge.count, type: unreadBadge.isMuted ? .inactive : .active) + badge = ContactsPeerItemBadge(count: unreadBadge.0, type: unreadBadge.1 ? .inactive : .active) } let header:ChatListSearchItemHeader? @@ -619,9 +619,9 @@ final class ChatListSearchContainerNode: SearchDisplayControllerContentNode { return (views, local) } } - |> mapToSignal{ viewsAndPeers -> Signal<(peers: [RenderedPeer], unread: [PeerId : UnreadSearchBadge]), NoError> in + |> mapToSignal{ viewsAndPeers -> Signal<(peers: [RenderedPeer], unread: [PeerId: (Int32, Bool)]), NoError> in return context.account.postbox.unreadMessageCountsView(items: viewsAndPeers.0.map {.peer($0.peerId)}) |> map { values in - var unread:[PeerId: UnreadSearchBadge] = [:] + var unread: [PeerId: (Int32, Bool)] = [:] for peerView in viewsAndPeers.0 { var isMuted: Bool = false if let nofiticationSettings = peerView.notificationSettings as? TelegramPeerNotificationSettings { @@ -635,7 +635,7 @@ final class ChatListSearchContainerNode: SearchDisplayControllerContentNode { let unreadCount = values.count(for: .peer(peerView.peerId)) if let unreadCount = unreadCount, unreadCount > 0 { - unread[peerView.peerId] = isMuted ? .muted(unreadCount) : .unmuted(unreadCount) + unread[peerView.peerId] = (unreadCount, isMuted) } } return (peers: viewsAndPeers.1, unread: unread) diff --git a/submodules/UnreadSearchBadge/Info.plist b/submodules/UnreadSearchBadge/Info.plist deleted file mode 100644 index e1fe4cfb7b..0000000000 --- a/submodules/UnreadSearchBadge/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - - diff --git a/submodules/UnreadSearchBadge/Sources/UnreadSearchBadge.h b/submodules/UnreadSearchBadge/Sources/UnreadSearchBadge.h deleted file mode 100644 index 1beaccb32d..0000000000 --- a/submodules/UnreadSearchBadge/Sources/UnreadSearchBadge.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// UnreadSearchBadge.h -// UnreadSearchBadge -// -// Created by Peter on 8/5/19. -// Copyright © 2019 Telegram Messenger LLP. All rights reserved. -// - -#import - -//! Project version number for UnreadSearchBadge. -FOUNDATION_EXPORT double UnreadSearchBadgeVersionNumber; - -//! Project version string for UnreadSearchBadge. -FOUNDATION_EXPORT const unsigned char UnreadSearchBadgeVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - diff --git a/submodules/UnreadSearchBadge/Sources/UnreadSearchBadge.swift b/submodules/UnreadSearchBadge/Sources/UnreadSearchBadge.swift deleted file mode 100644 index a0afc92907..0000000000 --- a/submodules/UnreadSearchBadge/Sources/UnreadSearchBadge.swift +++ /dev/null @@ -1,22 +0,0 @@ -import Foundation - -public enum UnreadSearchBadge: Equatable { - case muted(Int32) - case unmuted(Int32) - - public var count: Int32 { - switch self { - case let .muted(count), let .unmuted(count): - return count - } - } - - public var isMuted: Bool { - switch self { - case .muted: - return true - case .unmuted: - return false - } - } -} diff --git a/submodules/UnreadSearchBadge/UnreadSearchBadge_Xcode.xcodeproj/project.pbxproj b/submodules/UnreadSearchBadge/UnreadSearchBadge_Xcode.xcodeproj/project.pbxproj deleted file mode 100644 index ca510424c4..0000000000 --- a/submodules/UnreadSearchBadge/UnreadSearchBadge_Xcode.xcodeproj/project.pbxproj +++ /dev/null @@ -1,531 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - D0879D1022F87A7C00C4D6B3 /* UnreadSearchBadge.h in Headers */ = {isa = PBXBuildFile; fileRef = D0879D0E22F87A7C00C4D6B3 /* UnreadSearchBadge.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0879D1B22F87AF600C4D6B3 /* UnreadSearchBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879D1A22F87AF600C4D6B3 /* UnreadSearchBadge.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - D0879D0B22F87A7C00C4D6B3 /* UnreadSearchBadge.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UnreadSearchBadge.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0879D0E22F87A7C00C4D6B3 /* UnreadSearchBadge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UnreadSearchBadge.h; sourceTree = ""; }; - D0879D0F22F87A7C00C4D6B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D0879D1A22F87AF600C4D6B3 /* UnreadSearchBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnreadSearchBadge.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - D0879D0822F87A7C00C4D6B3 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - D0879D0122F87A7C00C4D6B3 = { - isa = PBXGroup; - children = ( - D0879D0F22F87A7C00C4D6B3 /* Info.plist */, - D0879D0D22F87A7C00C4D6B3 /* Sources */, - D0879D0C22F87A7C00C4D6B3 /* Products */, - ); - sourceTree = ""; - }; - D0879D0C22F87A7C00C4D6B3 /* Products */ = { - isa = PBXGroup; - children = ( - D0879D0B22F87A7C00C4D6B3 /* UnreadSearchBadge.framework */, - ); - name = Products; - sourceTree = ""; - }; - D0879D0D22F87A7C00C4D6B3 /* Sources */ = { - isa = PBXGroup; - children = ( - D0879D0E22F87A7C00C4D6B3 /* UnreadSearchBadge.h */, - D0879D1A22F87AF600C4D6B3 /* UnreadSearchBadge.swift */, - ); - path = Sources; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - D0879D0622F87A7C00C4D6B3 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D0879D1022F87A7C00C4D6B3 /* UnreadSearchBadge.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - D0879D0A22F87A7C00C4D6B3 /* UnreadSearchBadge */ = { - isa = PBXNativeTarget; - buildConfigurationList = D0879D1322F87A7C00C4D6B3 /* Build configuration list for PBXNativeTarget "UnreadSearchBadge" */; - buildPhases = ( - D0879D0622F87A7C00C4D6B3 /* Headers */, - D0879D0722F87A7C00C4D6B3 /* Sources */, - D0879D0822F87A7C00C4D6B3 /* Frameworks */, - D0879D0922F87A7C00C4D6B3 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = UnreadSearchBadge; - productName = UnreadSearchBadge; - productReference = D0879D0B22F87A7C00C4D6B3 /* UnreadSearchBadge.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - D0879D0222F87A7C00C4D6B3 /* Project object */ = { - isa = PBXProject; - attributes = { - DefaultBuildSystemTypeForWorkspace = Latest; - LastUpgradeCheck = 1030; - ORGANIZATIONNAME = "Telegram Messenger LLP"; - TargetAttributes = { - D0879D0A22F87A7C00C4D6B3 = { - CreatedOnToolsVersion = 10.3; - LastSwiftMigration = 1030; - }; - }; - }; - buildConfigurationList = D0879D0522F87A7C00C4D6B3 /* Build configuration list for PBXProject "UnreadSearchBadge_Xcode" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = D0879D0122F87A7C00C4D6B3; - productRefGroup = D0879D0C22F87A7C00C4D6B3 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - D0879D0A22F87A7C00C4D6B3 /* UnreadSearchBadge */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - D0879D0922F87A7C00C4D6B3 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - D0879D0722F87A7C00C4D6B3 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D0879D1B22F87AF600C4D6B3 /* UnreadSearchBadge.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - D0879D1122F87A7C00C4D6B3 /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStoreLLC; - }; - D0879D1222F87A7C00C4D6B3 /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStoreLLC; - }; - D0879D1422F87A7C00C4D6B3 /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.UnreadSearchBadge; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugAppStoreLLC; - }; - D0879D1522F87A7C00C4D6B3 /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.UnreadSearchBadge; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseAppStoreLLC; - }; - D0879D1622F87AA300C4D6B3 /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugHockeyapp; - }; - D0879D1722F87AA300C4D6B3 /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.UnreadSearchBadge; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugHockeyapp; - }; - D0879D1822F87AAE00C4D6B3 /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyappInternal; - }; - D0879D1922F87AAE00C4D6B3 /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.UnreadSearchBadge; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseHockeyappInternal; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - D0879D0522F87A7C00C4D6B3 /* Build configuration list for PBXProject "UnreadSearchBadge_Xcode" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0879D1122F87A7C00C4D6B3 /* DebugAppStoreLLC */, - D0879D1622F87AA300C4D6B3 /* DebugHockeyapp */, - D0879D1222F87A7C00C4D6B3 /* ReleaseAppStoreLLC */, - D0879D1822F87AAE00C4D6B3 /* ReleaseHockeyappInternal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseAppStoreLLC; - }; - D0879D1322F87A7C00C4D6B3 /* Build configuration list for PBXNativeTarget "UnreadSearchBadge" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0879D1422F87A7C00C4D6B3 /* DebugAppStoreLLC */, - D0879D1722F87AA300C4D6B3 /* DebugHockeyapp */, - D0879D1522F87A7C00C4D6B3 /* ReleaseAppStoreLLC */, - D0879D1922F87AAE00C4D6B3 /* ReleaseHockeyappInternal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseAppStoreLLC; - }; -/* End XCConfigurationList section */ - }; - rootObject = D0879D0222F87A7C00C4D6B3 /* Project object */; -}