mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-11-08 09:49:51 +00:00
Temp
This commit is contained in:
parent
fe5ccfac26
commit
5fed1fbeb1
1
BUCK
1
BUCK
@ -43,6 +43,7 @@ resource_dependencies = [
|
|||||||
"//submodules/LegacyComponents:LegacyComponentsResources",
|
"//submodules/LegacyComponents:LegacyComponentsResources",
|
||||||
"//submodules/TelegramUI:TelegramUIAssets",
|
"//submodules/TelegramUI:TelegramUIAssets",
|
||||||
"//submodules/TelegramUI:TelegramUIResources",
|
"//submodules/TelegramUI:TelegramUIResources",
|
||||||
|
"//submodules/WalletUI:WalletUIResources",
|
||||||
"//:AppResources",
|
"//:AppResources",
|
||||||
"//:AppStringResources",
|
"//:AppStringResources",
|
||||||
"//:InfoPlistStringResources",
|
"//:InfoPlistStringResources",
|
||||||
|
|||||||
@ -4756,23 +4756,23 @@ Any member of this group will be able to see messages in the channel.";
|
|||||||
|
|
||||||
"ChatSearch.ResultsTooltip" = "Tap to view as a list.";
|
"ChatSearch.ResultsTooltip" = "Tap to view as a list.";
|
||||||
|
|
||||||
"Updated.JustNow" = "just now";
|
"Wallet.Updated.JustNow" = "just now";
|
||||||
"Updated.MinutesAgo_0" = "%@ minutes ago"; //three to ten
|
"Wallet.Updated.MinutesAgo_0" = "%@ minutes ago"; //three to ten
|
||||||
"Updated.MinutesAgo_1" = "1 minute ago"; //one
|
"Wallet.Updated.MinutesAgo_1" = "1 minute ago"; //one
|
||||||
"Updated.MinutesAgo_2" = "2 minutes ago"; //two
|
"Wallet.Updated.MinutesAgo_2" = "2 minutes ago"; //two
|
||||||
"Updated.MinutesAgo_3_10" = "%@ minutes ago"; //three to ten
|
"Wallet.Updated.MinutesAgo_3_10" = "%@ minutes ago"; //three to ten
|
||||||
"Updated.MinutesAgo_many" = "%@ minutes ago"; // more than ten
|
"Wallet.Updated.MinutesAgo_many" = "%@ minutes ago"; // more than ten
|
||||||
"Updated.MinutesAgo_any" = "%@ minutes ago"; // more than ten
|
"Wallet.Updated.MinutesAgo_any" = "%@ minutes ago"; // more than ten
|
||||||
"Updated.HoursAgo_0" = "%@ hours ago";
|
"Wallet.Updated.HoursAgo_0" = "%@ hours ago";
|
||||||
"Updated.HoursAgo_1" = "1 hour ago";
|
"Wallet.Updated.HoursAgo_1" = "1 hour ago";
|
||||||
"Updated.HoursAgo_2" = "2 hours ago";
|
"Wallet.Updated.HoursAgo_2" = "2 hours ago";
|
||||||
"Updated.HoursAgo_3_10" = "%@ hours ago";
|
"Wallet.Updated.HoursAgo_3_10" = "%@ hours ago";
|
||||||
"Updated.HoursAgo_any" = "%@ hours ago";
|
"Wallet.Updated.HoursAgo_any" = "%@ hours ago";
|
||||||
"Updated.HoursAgo_many" = "%@ hours ago";
|
"Wallet.Updated.HoursAgo_many" = "%@ hours ago";
|
||||||
"Updated.HoursAgo_0" = "%@ hours ago";
|
"Wallet.Updated.HoursAgo_0" = "%@ hours ago";
|
||||||
"Updated.YesterdayAt" = "yesterday at %@";
|
"Wallet.Updated.YesterdayAt" = "yesterday at %@";
|
||||||
"Updated.AtDate" = "%@";
|
"Wallet.Updated.AtDate" = "%@";
|
||||||
"Updated.TodayAt" = "today at %@";
|
"Wallet.Updated.TodayAt" = "today at %@";
|
||||||
|
|
||||||
"Wallet.Info.WalletCreated" = "Wallet Created";
|
"Wallet.Info.WalletCreated" = "Wallet Created";
|
||||||
"Wallet.Info.Address" = "Your wallet address";
|
"Wallet.Info.Address" = "Your wallet address";
|
||||||
@ -4906,3 +4906,60 @@ Any member of this group will be able to see messages in the channel.";
|
|||||||
"Conversation.WalletRequiredSetup" = "Set Up";
|
"Conversation.WalletRequiredSetup" = "Set Up";
|
||||||
|
|
||||||
"Wallet.CreateInvoice.Title" = "Create Invoice";
|
"Wallet.CreateInvoice.Title" = "Create Invoice";
|
||||||
|
|
||||||
|
"Wallet.Navigation.Close" = "Close";
|
||||||
|
"Wallet.Navigation.Back" = "Back";
|
||||||
|
"Wallet.Navigation.Done" = "Done";
|
||||||
|
"Wallet.Navigation.Cancel" = "Cancel";
|
||||||
|
"Wallet.Alert.OK" = "OK";
|
||||||
|
"Wallet.Alert.Cancel" = "Cancel";
|
||||||
|
|
||||||
|
"Wallet.Month.GenJanuary" = "January";
|
||||||
|
"Wallet.Month.GenFebruary" = "February";
|
||||||
|
"Wallet.Month.GenMarch" = "March";
|
||||||
|
"Wallet.Month.GenApril" = "April";
|
||||||
|
"Wallet.Month.GenMay" = "May";
|
||||||
|
"Wallet.Month.GenJune" = "June";
|
||||||
|
"Wallet.Month.GenJuly" = "July";
|
||||||
|
"Wallet.Month.GenAugust" = "August";
|
||||||
|
"Wallet.Month.GenSeptember" = "September";
|
||||||
|
"Wallet.Month.GenOctober" = "October";
|
||||||
|
"Wallet.Month.GenNovember" = "November";
|
||||||
|
"Wallet.Month.GenDecember" = "December";
|
||||||
|
"Wallet.Month.ShortJanuary" = "Jan";
|
||||||
|
"Wallet.Month.ShortFebruary" = "Feb";
|
||||||
|
"Wallet.Month.ShortMarch" = "Mar";
|
||||||
|
"Wallet.Month.ShortApril" = "Apr";
|
||||||
|
"Wallet.Month.ShortMay" = "May";
|
||||||
|
"Wallet.Month.ShortJune" = "Jun";
|
||||||
|
"Wallet.Month.ShortJuly" = "Jul";
|
||||||
|
"Wallet.Month.ShortAugust" = "Aug";
|
||||||
|
"Wallet.Month.ShortSeptember" = "Sep";
|
||||||
|
"Wallet.Month.ShortOctober" = "Oct";
|
||||||
|
"Wallet.Month.ShortNovember" = "Nov";
|
||||||
|
"Wallet.Month.ShortDecember" = "Dec";
|
||||||
|
|
||||||
|
"Wallet.Weekday.Today" = "Today";
|
||||||
|
"Wallet.Weekday.Yesterday" = "Yesterday";
|
||||||
|
|
||||||
|
"Wallet.Info.TransactionDateHeader" = "%1$@ %2$@";
|
||||||
|
"Wallet.Info.TransactionDateHeaderYear" = "%1$@ %2$@, %3$@";
|
||||||
|
|
||||||
|
"Wallet.UnknownError" = "An error occurred. Please try again later.";
|
||||||
|
|
||||||
|
"Wallet.ContextMenuCopy" = "Copy";
|
||||||
|
|
||||||
|
"Wallet.Time.PreciseDate_m1" = "Jan %1$@, %2$@ at %3$@";
|
||||||
|
"Wallet.Time.PreciseDate_m2" = "Feb %1$@, %2$@ at %3$@";
|
||||||
|
"Wallet.Time.PreciseDate_m3" = "Mar %1$@, %2$@ at %3$@";
|
||||||
|
"Wallet.Time.PreciseDate_m4" = "Apr %1$@, %2$@ at %3$@";
|
||||||
|
"Wallet.Time.PreciseDate_m5" = "May %1$@, %2$@ at %3$@";
|
||||||
|
"Wallet.Time.PreciseDate_m6" = "Jun %1$@, %2$@ at %3$@";
|
||||||
|
"Wallet.Time.PreciseDate_m7" = "Jul %1$@, %2$@ at %3$@";
|
||||||
|
"Wallet.Time.PreciseDate_m8" = "Aug %1$@, %2$@ at %3$@";
|
||||||
|
"Wallet.Time.PreciseDate_m9" = "Sep %1$@, %2$@ at %3$@";
|
||||||
|
"Wallet.Time.PreciseDate_m10" = "Oct %1$@, %2$@ at %3$@";
|
||||||
|
"Wallet.Time.PreciseDate_m11" = "Nov %1$@, %2$@ at %3$@";
|
||||||
|
"Wallet.Time.PreciseDate_m12" = "Dec %1$@, %2$@ at %3$@";
|
||||||
|
|
||||||
|
"Wallet.VoiceOver.Editing.ClearText" = "Clear text";
|
||||||
|
|||||||
@ -7,7 +7,6 @@ static_library(
|
|||||||
]),
|
]),
|
||||||
deps = [
|
deps = [
|
||||||
"//submodules/Display:Display#shared",
|
"//submodules/Display:Display#shared",
|
||||||
"//submodules/AccountContext:AccountContext",
|
|
||||||
],
|
],
|
||||||
frameworks = [
|
frameworks = [
|
||||||
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
|
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
|
||||||
|
|||||||
@ -1,14 +1,22 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import UIKit
|
import UIKit
|
||||||
import Display
|
import Display
|
||||||
import AccountContext
|
import SwiftSignalKit
|
||||||
|
|
||||||
public func textAlertController(context: AccountContext, title: String?, text: String, actions: [TextAlertAction], actionLayout: TextAlertContentActionLayout = .horizontal, allowInputInset: Bool = true) -> AlertController {
|
public final class AlertControllerContext {
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
public let theme: AlertControllerTheme
|
||||||
|
public let themeSignal: Signal<AlertControllerTheme, NoError>
|
||||||
|
|
||||||
let controller = standardTextAlertController(theme: AlertControllerTheme(presentationTheme: presentationData.theme), title: title, text: text, actions: actions, actionLayout: actionLayout, allowInputInset: allowInputInset)
|
public init(theme: AlertControllerTheme, themeSignal: Signal<AlertControllerTheme, NoError>) {
|
||||||
let presentationDataDisposable = context.sharedContext.presentationData.start(next: { [weak controller] presentationData in
|
self.theme = theme
|
||||||
controller?.theme = AlertControllerTheme(presentationTheme: presentationData.theme)
|
self.themeSignal = themeSignal
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public func textAlertController(alertContext: AlertControllerContext, title: String?, text: String, actions: [TextAlertAction], actionLayout: TextAlertContentActionLayout = .horizontal, allowInputInset: Bool = true) -> AlertController {
|
||||||
|
let controller = standardTextAlertController(theme: alertContext.theme, title: title, text: text, actions: actions, actionLayout: actionLayout, allowInputInset: allowInputInset)
|
||||||
|
let presentationDataDisposable = alertContext.themeSignal.start(next: { [weak controller] theme in
|
||||||
|
controller?.theme = theme
|
||||||
})
|
})
|
||||||
controller.dismissed = {
|
controller.dismissed = {
|
||||||
presentationDataDisposable.dispose()
|
presentationDataDisposable.dispose()
|
||||||
@ -17,9 +25,8 @@ public func textAlertController(context: AccountContext, title: String?, text: S
|
|||||||
return controller
|
return controller
|
||||||
}
|
}
|
||||||
|
|
||||||
public func richTextAlertController(context: AccountContext, title: NSAttributedString?, text: NSAttributedString, actions: [TextAlertAction], actionLayout: TextAlertContentActionLayout = .horizontal, allowInputInset: Bool = true, dismissAutomatically: Bool = true) -> AlertController {
|
public func richTextAlertController(alertContext: AlertControllerContext, title: NSAttributedString?, text: NSAttributedString, actions: [TextAlertAction], actionLayout: TextAlertContentActionLayout = .horizontal, allowInputInset: Bool = true, dismissAutomatically: Bool = true) -> AlertController {
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let theme = alertContext.theme
|
||||||
let theme = AlertControllerTheme(presentationTheme: presentationData.theme)
|
|
||||||
|
|
||||||
var dismissImpl: (() -> Void)?
|
var dismissImpl: (() -> Void)?
|
||||||
let controller = AlertController(theme: theme, contentNode: TextAlertContentNode(theme: theme, title: title, text: text, actions: actions.map { action in
|
let controller = AlertController(theme: theme, contentNode: TextAlertContentNode(theme: theme, title: title, text: text, actions: actions.map { action in
|
||||||
@ -34,8 +41,8 @@ public func richTextAlertController(context: AccountContext, title: NSAttributed
|
|||||||
controller?.dismissAnimated()
|
controller?.dismissAnimated()
|
||||||
}
|
}
|
||||||
|
|
||||||
let presentationDataDisposable = context.sharedContext.presentationData.start(next: { [weak controller] presentationData in
|
let presentationDataDisposable = alertContext.themeSignal.start(next: { [weak controller] theme in
|
||||||
controller?.theme = AlertControllerTheme(presentationTheme: presentationData.theme)
|
controller?.theme = theme
|
||||||
})
|
})
|
||||||
controller.dismissed = {
|
controller.dismissed = {
|
||||||
presentationDataDisposable.dispose()
|
presentationDataDisposable.dispose()
|
||||||
|
|||||||
@ -302,13 +302,12 @@ public struct AnimatedStickerStatus: Equatable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public enum AnimatedStickerNodeResource {
|
public enum AnimatedStickerNodeResource {
|
||||||
case resource(MediaResource)
|
case resource(Account, MediaResource)
|
||||||
case localFile(String)
|
case localFile(String)
|
||||||
}
|
}
|
||||||
|
|
||||||
public final class AnimatedStickerNode: ASDisplayNode {
|
public final class AnimatedStickerNode: ASDisplayNode {
|
||||||
private let queue: Queue
|
private let queue: Queue
|
||||||
private var account: Account?
|
|
||||||
private var fileReference: FileMediaReference?
|
private var fileReference: FileMediaReference?
|
||||||
private let disposable = MetaDisposable()
|
private let disposable = MetaDisposable()
|
||||||
private let fetchDisposable = MetaDisposable()
|
private let fetchDisposable = MetaDisposable()
|
||||||
@ -386,7 +385,7 @@ public final class AnimatedStickerNode: ASDisplayNode {
|
|||||||
self.addSubnode(self.renderer!)
|
self.addSubnode(self.renderer!)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func setup(account: Account, resource: AnimatedStickerNodeResource, fitzModifier: EmojiFitzModifier? = nil, width: Int, height: Int, playbackMode: AnimatedStickerPlaybackMode = .loop, mode: AnimatedStickerMode) {
|
public func setup(resource: AnimatedStickerNodeResource, fitzModifier: EmojiFitzModifier? = nil, width: Int, height: Int, playbackMode: AnimatedStickerPlaybackMode = .loop, mode: AnimatedStickerMode) {
|
||||||
if width < 2 || height < 2 {
|
if width < 2 || height < 2 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -407,7 +406,7 @@ public final class AnimatedStickerNode: ASDisplayNode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch resource {
|
switch resource {
|
||||||
case let .resource(resource):
|
case let .resource(account, resource):
|
||||||
self.disposable.set((account.postbox.mediaBox.resourceData(resource)
|
self.disposable.set((account.postbox.mediaBox.resourceData(resource)
|
||||||
|> deliverOnMainQueue).start(next: { data in
|
|> deliverOnMainQueue).start(next: { data in
|
||||||
f(data)
|
f(data)
|
||||||
@ -417,7 +416,7 @@ public final class AnimatedStickerNode: ASDisplayNode {
|
|||||||
}
|
}
|
||||||
case .cached:
|
case .cached:
|
||||||
switch resource {
|
switch resource {
|
||||||
case let .resource(resource):
|
case let .resource(account, resource):
|
||||||
self.disposable.set((chatMessageAnimationData(postbox: account.postbox, resource: resource, fitzModifier: fitzModifier, width: width, height: height, synchronousLoad: false)
|
self.disposable.set((chatMessageAnimationData(postbox: account.postbox, resource: resource, fitzModifier: fitzModifier, width: width, height: height, synchronousLoad: false)
|
||||||
|> deliverOnMainQueue).start(next: { [weak self] data in
|
|> deliverOnMainQueue).start(next: { [weak self] data in
|
||||||
if let strongSelf = self, data.complete {
|
if let strongSelf = self, data.complete {
|
||||||
|
|||||||
@ -19,6 +19,7 @@ static_library(
|
|||||||
"//submodules/Stripe:Stripe",
|
"//submodules/Stripe:Stripe",
|
||||||
"//submodules/CountrySelectionUI:CountrySelectionUI",
|
"//submodules/CountrySelectionUI:CountrySelectionUI",
|
||||||
"//submodules/AppBundle:AppBundle",
|
"//submodules/AppBundle:AppBundle",
|
||||||
|
"//submodules/PresentationDataUtils:PresentationDataUtils",
|
||||||
],
|
],
|
||||||
frameworks = [
|
frameworks = [
|
||||||
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
|
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
|
||||||
|
|||||||
@ -8,8 +8,10 @@ import SwiftSignalKit
|
|||||||
import PassKit
|
import PassKit
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import TelegramNotices
|
import TelegramNotices
|
||||||
import TelegramStringFormatting
|
import TelegramStringFormatting
|
||||||
import PasswordSetupUI
|
import PasswordSetupUI
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import SwiftSignalKit
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import PhotoResources
|
import PhotoResources
|
||||||
|
|
||||||
class BotCheckoutHeaderItem: ListViewItem, ItemListItem {
|
class BotCheckoutHeaderItem: ListViewItem, ItemListItem {
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import SwiftSignalKit
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import CountrySelectionUI
|
import CountrySelectionUI
|
||||||
|
|
||||||
private final class BotCheckoutInfoAddressItems {
|
private final class BotCheckoutInfoAddressItems {
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import AsyncDisplayKit
|
|||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
class BotCheckoutPriceItem: ListViewItem, ItemListItem {
|
class BotCheckoutPriceItem: ListViewItem, ItemListItem {
|
||||||
let theme: PresentationTheme
|
let theme: PresentationTheme
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import TelegramCore
|
|||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import TelegramStringFormatting
|
import TelegramStringFormatting
|
||||||
|
|
||||||
|
|||||||
@ -18,6 +18,7 @@ static_library(
|
|||||||
"//submodules/AvatarNode:AvatarNode",
|
"//submodules/AvatarNode:AvatarNode",
|
||||||
"//submodules/TelegramStringFormatting:TelegramStringFormatting",
|
"//submodules/TelegramStringFormatting:TelegramStringFormatting",
|
||||||
"//submodules/AlertUI:AlertUI",
|
"//submodules/AlertUI:AlertUI",
|
||||||
|
"//submodules/PresentationDataUtils:PresentationDataUtils",
|
||||||
"//submodules/TelegramNotices:TelegramNotices",
|
"//submodules/TelegramNotices:TelegramNotices",
|
||||||
"//submodules/MergeLists:MergeLists",
|
"//submodules/MergeLists:MergeLists",
|
||||||
],
|
],
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import SwiftSignalKit
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AvatarNode
|
import AvatarNode
|
||||||
import TelegramStringFormatting
|
import TelegramStringFormatting
|
||||||
|
|
||||||
|
|||||||
@ -7,8 +7,10 @@ import TelegramCore
|
|||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AppBundle
|
import AppBundle
|
||||||
|
|
||||||
public enum CallListControllerMode {
|
public enum CallListControllerMode {
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import SwiftSignalKit
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import TelegramUIPreferences
|
import TelegramUIPreferences
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import TelegramNotices
|
import TelegramNotices
|
||||||
|
|
||||||
|
|||||||
@ -17,6 +17,7 @@ static_library(
|
|||||||
"//submodules/TelegramBaseController:TelegramBaseController",
|
"//submodules/TelegramBaseController:TelegramBaseController",
|
||||||
"//submodules/OverlayStatusController:OverlayStatusController",
|
"//submodules/OverlayStatusController:OverlayStatusController",
|
||||||
"//submodules/AlertUI:AlertUI",
|
"//submodules/AlertUI:AlertUI",
|
||||||
|
"//submodules/PresentationDataUtils:PresentationDataUtils",
|
||||||
"//submodules/UndoUI:UndoUI",
|
"//submodules/UndoUI:UndoUI",
|
||||||
"//submodules/TelegramNotices:TelegramNotices",
|
"//submodules/TelegramNotices:TelegramNotices",
|
||||||
"//submodules/SearchUI:SearchUI",
|
"//submodules/SearchUI:SearchUI",
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import Display
|
|||||||
import TelegramUIPreferences
|
import TelegramUIPreferences
|
||||||
import OverlayStatusController
|
import OverlayStatusController
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
func archiveContextMenuItems(context: AccountContext, groupId: PeerGroupId, chatListController: ChatListControllerImpl?) -> Signal<[ContextMenuItem], NoError> {
|
func archiveContextMenuItems(context: AccountContext, groupId: PeerGroupId, chatListController: ChatListControllerImpl?) -> Signal<[ContextMenuItem], NoError> {
|
||||||
let strings = context.sharedContext.currentPresentationData.with({ $0 }).strings
|
let strings = context.sharedContext.currentPresentationData.with({ $0 }).strings
|
||||||
@ -179,7 +180,7 @@ func chatContextMenuItems(context: AccountContext, peerId: PeerId, source: ChatC
|
|||||||
var cancelImpl: (() -> Void)?
|
var cancelImpl: (() -> Void)?
|
||||||
let progressSignal = Signal<Never, NoError> { subscriber in
|
let progressSignal = Signal<Never, NoError> { subscriber in
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
let controller = OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .loading(cancelled: {
|
let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: {
|
||||||
cancelImpl?()
|
cancelImpl?()
|
||||||
}))
|
}))
|
||||||
chatListController?.present(controller, in: .window(.root))
|
chatListController?.present(controller, in: .window(.root))
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import TelegramBaseController
|
|||||||
import OverlayStatusController
|
import OverlayStatusController
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import UndoUI
|
import UndoUI
|
||||||
import TelegramNotices
|
import TelegramNotices
|
||||||
import SearchUI
|
import SearchUI
|
||||||
@ -873,7 +874,7 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController,
|
|||||||
if let controller = controller as? UndoOverlayController {
|
if let controller = controller as? UndoOverlayController {
|
||||||
switch controller.content {
|
switch controller.content {
|
||||||
case let .archivedChat(archivedChat):
|
case let .archivedChat(archivedChat):
|
||||||
if peerIds.contains(archivedChat.peerId) {
|
if peerIds.contains(PeerId(archivedChat.peerId)) {
|
||||||
controller.dismiss()
|
controller.dismiss()
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@ -1210,7 +1211,7 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController,
|
|||||||
let context = strongSelf.context
|
let context = strongSelf.context
|
||||||
let presentationData = strongSelf.presentationData
|
let presentationData = strongSelf.presentationData
|
||||||
let progressSignal = Signal<Never, NoError> { subscriber in
|
let progressSignal = Signal<Never, NoError> { subscriber in
|
||||||
let controller = OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .loading(cancelled: nil))
|
let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: nil))
|
||||||
self?.present(controller, in: .window(.root))
|
self?.present(controller, in: .window(.root))
|
||||||
return ActionDisposable { [weak controller] in
|
return ActionDisposable { [weak controller] in
|
||||||
Queue.mainQueue().async() {
|
Queue.mainQueue().async() {
|
||||||
@ -1302,7 +1303,7 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController,
|
|||||||
})
|
})
|
||||||
|
|
||||||
if value {
|
if value {
|
||||||
strongSelf.present(UndoOverlayController(context: strongSelf.context, content: .hidArchive(title: strongSelf.presentationData.strings.ChatList_UndoArchiveHiddenTitle, text: strongSelf.presentationData.strings.ChatList_UndoArchiveHiddenText, undo: false), elevatedLayout: false, animateInAsReplacement: true, action: { [weak self] shouldCommit in
|
strongSelf.present(UndoOverlayController(presentationData: strongSelf.context.sharedContext.currentPresentationData.with { $0 }, content: .hidArchive(title: strongSelf.presentationData.strings.ChatList_UndoArchiveHiddenTitle, text: strongSelf.presentationData.strings.ChatList_UndoArchiveHiddenText, undo: false), elevatedLayout: false, animateInAsReplacement: true, action: { [weak self] shouldCommit in
|
||||||
guard let strongSelf = self else {
|
guard let strongSelf = self else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -1320,7 +1321,7 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController,
|
|||||||
}
|
}
|
||||||
}), in: .current)
|
}), in: .current)
|
||||||
} else {
|
} else {
|
||||||
strongSelf.present(UndoOverlayController(context: strongSelf.context, content: .revealedArchive(title: strongSelf.presentationData.strings.ChatList_UndoArchiveRevealedTitle, text: strongSelf.presentationData.strings.ChatList_UndoArchiveRevealedText, undo: false), elevatedLayout: false, animateInAsReplacement: true, action: { _ in
|
strongSelf.present(UndoOverlayController(presentationData: strongSelf.context.sharedContext.currentPresentationData.with { $0 }, content: .revealedArchive(title: strongSelf.presentationData.strings.ChatList_UndoArchiveRevealedTitle, text: strongSelf.presentationData.strings.ChatList_UndoArchiveRevealedText, undo: false), elevatedLayout: false, animateInAsReplacement: true, action: { _ in
|
||||||
}), in: .current)
|
}), in: .current)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -1414,7 +1415,7 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController,
|
|||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
|
|
||||||
strongSelf.present(UndoOverlayController(context: strongSelf.context, content: .removedChat(text: strongSelf.presentationData.strings.Undo_ChatCleared), elevatedLayout: false, animateInAsReplacement: true, action: { shouldCommit in
|
strongSelf.present(UndoOverlayController(presentationData: strongSelf.context.sharedContext.currentPresentationData.with { $0 }, content: .removedChat(text: strongSelf.presentationData.strings.Undo_ChatCleared), elevatedLayout: false, animateInAsReplacement: true, action: { shouldCommit in
|
||||||
guard let strongSelf = self else {
|
guard let strongSelf = self else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -1617,7 +1618,8 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController,
|
|||||||
title = ""
|
title = ""
|
||||||
undo = true
|
undo = true
|
||||||
}
|
}
|
||||||
strongSelf.present(UndoOverlayController(context: strongSelf.context, content: .archivedChat(peerId: peerIds[0], title: title, text: text, undo: undo), elevatedLayout: false, animateInAsReplacement: true, action: action), in: .current)
|
let controller = UndoOverlayController(presentationData: strongSelf.context.sharedContext.currentPresentationData.with { $0 }, content: .archivedChat(peerId: peerIds[0].toInt64(), title: title, text: text, undo: undo), elevatedLayout: false, animateInAsReplacement: true, action: action)
|
||||||
|
strongSelf.present(controller, in: .current)
|
||||||
|
|
||||||
strongSelf.chatListDisplayNode.playArchiveAnimation()
|
strongSelf.chatListDisplayNode.playArchiveAnimation()
|
||||||
})
|
})
|
||||||
@ -1680,7 +1682,7 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController,
|
|||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
|
|
||||||
self.present(UndoOverlayController(context: self.context, content: .removedChat(text: statusText), elevatedLayout: false, animateInAsReplacement: true, action: { [weak self] shouldCommit in
|
self.present(UndoOverlayController(presentationData: self.context.sharedContext.currentPresentationData.with { $0 }, content: .removedChat(text: statusText), elevatedLayout: false, animateInAsReplacement: true, action: { [weak self] shouldCommit in
|
||||||
guard let strongSelf = self else {
|
guard let strongSelf = self else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import SwiftSignalKit
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AvatarNode
|
import AvatarNode
|
||||||
import TelegramStringFormatting
|
import TelegramStringFormatting
|
||||||
import AccountContext
|
import AccountContext
|
||||||
|
|||||||
@ -14,6 +14,7 @@ static_library(
|
|||||||
"//submodules/ItemListUI:ItemListUI",
|
"//submodules/ItemListUI:ItemListUI",
|
||||||
"//submodules/AccountContext:AccountContext",
|
"//submodules/AccountContext:AccountContext",
|
||||||
"//submodules/AlertUI:AlertUI",
|
"//submodules/AlertUI:AlertUI",
|
||||||
|
"//submodules/PresentationDataUtils:PresentationDataUtils",
|
||||||
],
|
],
|
||||||
frameworks = [
|
frameworks = [
|
||||||
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
|
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
|
||||||
|
|||||||
@ -6,8 +6,10 @@ import Postbox
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
private let maxTextLength = 255
|
private let maxTextLength = 255
|
||||||
private let maxOptionLength = 100
|
private let maxOptionLength = 100
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import AsyncDisplayKit
|
|||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
class CreatePollOptionActionItem: ListViewItem, ItemListItem {
|
class CreatePollOptionActionItem: ListViewItem, ItemListItem {
|
||||||
let theme: PresentationTheme
|
let theme: PresentationTheme
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import AsyncDisplayKit
|
|||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
struct CreatePollOptionItemEditing {
|
struct CreatePollOptionItemEditing {
|
||||||
let editable: Bool
|
let editable: Bool
|
||||||
|
|||||||
@ -23,6 +23,7 @@ static_library(
|
|||||||
"//submodules/TelegramPermissionsUI:TelegramPermissionsUI",
|
"//submodules/TelegramPermissionsUI:TelegramPermissionsUI",
|
||||||
"//submodules/TelegramNotices:TelegramNotices",
|
"//submodules/TelegramNotices:TelegramNotices",
|
||||||
"//submodules/AlertUI:AlertUI",
|
"//submodules/AlertUI:AlertUI",
|
||||||
|
"//submodules/PresentationDataUtils:PresentationDataUtils",
|
||||||
"//submodules/ShareController:ShareController",
|
"//submodules/ShareController:ShareController",
|
||||||
"//submodules/AppBundle:AppBundle",
|
"//submodules/AppBundle:AppBundle",
|
||||||
"//submodules/OverlayStatusController:OverlayStatusController",
|
"//submodules/OverlayStatusController:OverlayStatusController",
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import Postbox
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import Display
|
import Display
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import OverlayStatusController
|
import OverlayStatusController
|
||||||
|
|
||||||
func contactContextMenuItems(context: AccountContext, peerId: PeerId, contactsController: ContactsController?) -> Signal<[ContextMenuItem], NoError> {
|
func contactContextMenuItems(context: AccountContext, peerId: PeerId, contactsController: ContactsController?) -> Signal<[ContextMenuItem], NoError> {
|
||||||
@ -62,7 +63,7 @@ func contactContextMenuItems(context: AccountContext, peerId: PeerId, contactsCo
|
|||||||
var cancelImpl: (() -> Void)?
|
var cancelImpl: (() -> Void)?
|
||||||
let progressSignal = Signal<Never, NoError> { subscriber in
|
let progressSignal = Signal<Never, NoError> { subscriber in
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
let controller = OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .loading(cancelled: {
|
let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: {
|
||||||
cancelImpl?()
|
cancelImpl?()
|
||||||
}))
|
}))
|
||||||
contactsController?.present(controller, in: .window(.root))
|
contactsController?.present(controller, in: .window(.root))
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import AsyncDisplayKit
|
|||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import ContactsPeerItem
|
import ContactsPeerItem
|
||||||
import AccountContext
|
import AccountContext
|
||||||
|
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import TelegramUIPreferences
|
|||||||
import DeviceAccess
|
import DeviceAccess
|
||||||
import MergeLists
|
import MergeLists
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import MediaResources
|
import MediaResources
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import TelegramPermissions
|
import TelegramPermissions
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import TelegramUIPreferences
|
|||||||
import DeviceAccess
|
import DeviceAccess
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import TelegramPermissions
|
import TelegramPermissions
|
||||||
import TelegramNotices
|
import TelegramNotices
|
||||||
import ContactsPeerItem
|
import ContactsPeerItem
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import TelegramPresentationData
|
|||||||
import AccountContext
|
import AccountContext
|
||||||
import ShareController
|
import ShareController
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import SearchUI
|
import SearchUI
|
||||||
|
|
||||||
public class InviteContactsController: ViewController, MFMessageComposeViewControllerDelegate, UINavigationControllerDelegate {
|
public class InviteContactsController: ViewController, MFMessageComposeViewControllerDelegate, UINavigationControllerDelegate {
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import TelegramCore
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import TelegramUIPreferences
|
import TelegramUIPreferences
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import CheckNode
|
import CheckNode
|
||||||
import AvatarNode
|
import AvatarNode
|
||||||
import TelegramStringFormatting
|
import TelegramStringFormatting
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import AsyncDisplayKit
|
|||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import TextFormat
|
import TextFormat
|
||||||
import AppBundle
|
import AppBundle
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import TelegramCore
|
|||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import ActivityIndicator
|
import ActivityIndicator
|
||||||
import AvatarNode
|
import AvatarNode
|
||||||
import TelegramStringFormatting
|
import TelegramStringFormatting
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import AsyncDisplayKit
|
|||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
public enum ItemListPeerActionItemHeight {
|
public enum ItemListPeerActionItemHeight {
|
||||||
case generic
|
case generic
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import TelegramCore
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import TelegramUIPreferences
|
import TelegramUIPreferences
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AvatarNode
|
import AvatarNode
|
||||||
import TelegramStringFormatting
|
import TelegramStringFormatting
|
||||||
import PeerPresenceStatusManager
|
import PeerPresenceStatusManager
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import Postbox
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import StickerResources
|
import StickerResources
|
||||||
import AnimationUI
|
import AnimationUI
|
||||||
|
|
||||||
@ -599,7 +600,7 @@ class ItemListStickerPackItemNode: ItemListRevealOptionsItemNode {
|
|||||||
animationNode = AnimatedStickerNode()
|
animationNode = AnimatedStickerNode()
|
||||||
strongSelf.animationNode = animationNode
|
strongSelf.animationNode = animationNode
|
||||||
strongSelf.addSubnode(animationNode)
|
strongSelf.addSubnode(animationNode)
|
||||||
animationNode.setup(account: item.account, resource: .resource(resource), width: 80, height: 80, mode: .cached)
|
animationNode.setup(resource: .resource(item.account, resource), width: 80, height: 80, mode: .cached)
|
||||||
}
|
}
|
||||||
animationNode.visibility = strongSelf.visibility != .none && item.playAnimatedStickers
|
animationNode.visibility = strongSelf.visibility != .none && item.playAnimatedStickers
|
||||||
animationNode.isHidden = !item.playAnimatedStickers
|
animationNode.isHidden = !item.playAnimatedStickers
|
||||||
|
|||||||
@ -9,7 +9,6 @@ static_library(
|
|||||||
"//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit#shared",
|
"//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit#shared",
|
||||||
"//submodules/AsyncDisplayKit:AsyncDisplayKit#shared",
|
"//submodules/AsyncDisplayKit:AsyncDisplayKit#shared",
|
||||||
"//submodules/Display:Display#shared",
|
"//submodules/Display:Display#shared",
|
||||||
"//submodules/AccountContext:AccountContext",
|
|
||||||
"//submodules/TelegramPresentationData:TelegramPresentationData",
|
"//submodules/TelegramPresentationData:TelegramPresentationData",
|
||||||
"//submodules/MergeLists:MergeLists",
|
"//submodules/MergeLists:MergeLists",
|
||||||
"//submodules/TextFormat:TextFormat",
|
"//submodules/TextFormat:TextFormat",
|
||||||
|
|||||||
@ -2,9 +2,7 @@ import Foundation
|
|||||||
import UIKit
|
import UIKit
|
||||||
import Display
|
import Display
|
||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramCore
|
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import AccountContext
|
|
||||||
import ProgressNavigationButtonNode
|
import ProgressNavigationButtonNode
|
||||||
|
|
||||||
public enum ItemListNavigationButtonStyle {
|
public enum ItemListNavigationButtonStyle {
|
||||||
@ -217,15 +215,6 @@ open class ItemListController: ViewController, KeyShortcutResponder, Presentable
|
|||||||
public var willDisappear: ((Bool) -> Void)?
|
public var willDisappear: ((Bool) -> Void)?
|
||||||
public var didDisappear: ((Bool) -> Void)?
|
public var didDisappear: ((Bool) -> Void)?
|
||||||
|
|
||||||
convenience public init<ItemGenerationArguments>(context: AccountContext, state: Signal<(ItemListControllerState, (ItemListNodeState, ItemGenerationArguments)), NoError>, tabBarItem: Signal<ItemListControllerTabBarItem, NoError>? = nil) {
|
|
||||||
self.init(sharedContext: context.sharedContext, state: state, tabBarItem: tabBarItem)
|
|
||||||
}
|
|
||||||
|
|
||||||
convenience public init<ItemGenerationArguments>(sharedContext: SharedAccountContext, state: Signal<(ItemListControllerState, (ItemListNodeState, ItemGenerationArguments)), NoError>, tabBarItem: Signal<ItemListControllerTabBarItem, NoError>? = nil) {
|
|
||||||
let presentationData = sharedContext.currentPresentationData.with { $0 }
|
|
||||||
self.init(theme: presentationData.theme, strings: presentationData.strings, updatedPresentationData: sharedContext.presentationData |> map { ($0.theme, $0.strings) }, state: state, tabBarItem: tabBarItem)
|
|
||||||
}
|
|
||||||
|
|
||||||
public init<ItemGenerationArguments>(theme: PresentationTheme, strings: PresentationStrings, updatedPresentationData: Signal<(theme: PresentationTheme, strings: PresentationStrings), NoError>, state: Signal<(ItemListControllerState, (ItemListNodeState, ItemGenerationArguments)), NoError>, tabBarItem: Signal<ItemListControllerTabBarItem, NoError>?) {
|
public init<ItemGenerationArguments>(theme: PresentationTheme, strings: PresentationStrings, updatedPresentationData: Signal<(theme: PresentationTheme, strings: PresentationStrings), NoError>, state: Signal<(ItemListControllerState, (ItemListNodeState, ItemGenerationArguments)), NoError>, tabBarItem: Signal<ItemListControllerTabBarItem, NoError>?) {
|
||||||
self.state = state
|
self.state = state
|
||||||
|> map { controllerState, nodeStateAndArgument -> (ItemListControllerState, (ItemListNodeState, Any)) in
|
|> map { controllerState, nodeStateAndArgument -> (ItemListControllerState, (ItemListNodeState, Any)) in
|
||||||
|
|||||||
@ -14,6 +14,7 @@ static_library(
|
|||||||
"//submodules/TelegramPresentationData:TelegramPresentationData",
|
"//submodules/TelegramPresentationData:TelegramPresentationData",
|
||||||
"//submodules/AccountContext:AccountContext",
|
"//submodules/AccountContext:AccountContext",
|
||||||
"//submodules/AlertUI:AlertUI",
|
"//submodules/AlertUI:AlertUI",
|
||||||
|
"//submodules/PresentationDataUtils:PresentationDataUtils",
|
||||||
"//submodules/ShareController:ShareController",
|
"//submodules/ShareController:ShareController",
|
||||||
"//submodules/SelectablePeerNode:SelectablePeerNode",
|
"//submodules/SelectablePeerNode:SelectablePeerNode",
|
||||||
],
|
],
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import SwiftSignalKit
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
public final class JoinLinkPreviewController: ViewController {
|
public final class JoinLinkPreviewController: ViewController {
|
||||||
private var controllerNode: JoinLinkPreviewControllerNode {
|
private var controllerNode: JoinLinkPreviewControllerNode {
|
||||||
|
|||||||
@ -16,6 +16,7 @@ static_library(
|
|||||||
"//submodules/TextFormat:TextFormat",
|
"//submodules/TextFormat:TextFormat",
|
||||||
"//submodules/ShareController:ShareController",
|
"//submodules/ShareController:ShareController",
|
||||||
"//submodules/AlertUI:AlertUI",
|
"//submodules/AlertUI:AlertUI",
|
||||||
|
"//submodules/PresentationDataUtils:PresentationDataUtils",
|
||||||
],
|
],
|
||||||
frameworks = [
|
frameworks = [
|
||||||
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
|
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import SwiftSignalKit
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
public final class LanguageLinkPreviewController: ViewController {
|
public final class LanguageLinkPreviewController: ViewController {
|
||||||
private var controllerNode: LanguageLinkPreviewControllerNode {
|
private var controllerNode: LanguageLinkPreviewControllerNode {
|
||||||
|
|||||||
@ -144,7 +144,7 @@ static void MTNetworkAvailabilityContextRelease(const void *info)
|
|||||||
((flags & kSCNetworkReachabilityFlagsConnectionOnTraffic) != 0));
|
((flags & kSCNetworkReachabilityFlagsConnectionOnTraffic) != 0));
|
||||||
BOOL canConnectWithoutUserInteraction = (canConnectionAutomatically &&
|
BOOL canConnectWithoutUserInteraction = (canConnectionAutomatically &&
|
||||||
(flags & kSCNetworkReachabilityFlagsInterventionRequired) == 0);
|
(flags & kSCNetworkReachabilityFlagsInterventionRequired) == 0);
|
||||||
BOOL isNetworkReachable = (isReachable && (!needsConnection || canConnectWithoutUserInteraction));
|
BOOL isNetworkReachable = isReachable;
|
||||||
|
|
||||||
bool isWWAN = false;
|
bool isWWAN = false;
|
||||||
#if TARGET_OS_IPHONE
|
#if TARGET_OS_IPHONE
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import TelegramCore
|
|||||||
import AVFoundation
|
import AVFoundation
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import TelegramStringFormatting
|
import TelegramStringFormatting
|
||||||
import AppBundle
|
import AppBundle
|
||||||
|
|||||||
@ -8,7 +8,6 @@ static_library(
|
|||||||
deps = [
|
deps = [
|
||||||
"//submodules/Display:Display#shared",
|
"//submodules/Display:Display#shared",
|
||||||
"//submodules/LegacyComponents:LegacyComponents",
|
"//submodules/LegacyComponents:LegacyComponents",
|
||||||
"//submodules/TelegramPresentationData:TelegramPresentationData",
|
|
||||||
],
|
],
|
||||||
frameworks = [
|
frameworks = [
|
||||||
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
|
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import UIKit
|
import UIKit
|
||||||
import Display
|
import Display
|
||||||
import TelegramPresentationData
|
|
||||||
import LegacyComponents
|
import LegacyComponents
|
||||||
|
|
||||||
public enum OverlayStatusControllerType {
|
public enum OverlayStatusControllerType {
|
||||||
@ -80,26 +79,26 @@ private final class OverlayStatusControllerNode: ViewControllerTracingNode {
|
|||||||
private let dismissed: () -> Void
|
private let dismissed: () -> Void
|
||||||
private let contentController: OverlayStatusContentController
|
private let contentController: OverlayStatusContentController
|
||||||
|
|
||||||
init(theme: PresentationTheme, strings: PresentationStrings, type: OverlayStatusControllerType, dismissed: @escaping () -> Void) {
|
init(style: OverlayStatusControllerStyle, type: OverlayStatusControllerType, dismissed: @escaping () -> Void) {
|
||||||
self.dismissed = dismissed
|
self.dismissed = dismissed
|
||||||
var isUserInteractionEnabled = true
|
var isUserInteractionEnabled = true
|
||||||
switch type {
|
switch type {
|
||||||
case let .loading(cancelled):
|
case let .loading(cancelled):
|
||||||
let controller = TGProgressWindowController(light: theme.actionSheet.backgroundType == .light)!
|
let controller = TGProgressWindowController(light: style == .light)!
|
||||||
controller.cancelled = {
|
controller.cancelled = {
|
||||||
cancelled?()
|
cancelled?()
|
||||||
}
|
}
|
||||||
self.contentController = .loading(controller)
|
self.contentController = .loading(controller)
|
||||||
case .success:
|
case .success:
|
||||||
self.contentController = .progress(TGProgressWindowController(light: theme.actionSheet.backgroundType == .light))
|
self.contentController = .progress(TGProgressWindowController(light: style == .light))
|
||||||
case let .shieldSuccess(text, increasedDelay):
|
case let .shieldSuccess(text, increasedDelay):
|
||||||
self.contentController = .shieldSuccess(TGProxyWindowController(light: theme.actionSheet.backgroundType == .light, text: text, shield: true, star: false), increasedDelay)
|
self.contentController = .shieldSuccess(TGProxyWindowController(light: style == .light, text: text, shield: true, star: false), increasedDelay)
|
||||||
case let .genericSuccess(text, increasedDelay):
|
case let .genericSuccess(text, increasedDelay):
|
||||||
let controller = TGProxyWindowController(light: theme.actionSheet.backgroundType == .light, text: text, shield: false, star: false)!
|
let controller = TGProxyWindowController(light: style == .light, text: text, shield: false, star: false)!
|
||||||
self.contentController = .genericSuccess(controller, increasedDelay)
|
self.contentController = .genericSuccess(controller, increasedDelay)
|
||||||
isUserInteractionEnabled = false
|
isUserInteractionEnabled = false
|
||||||
case let .starSuccess(text):
|
case let .starSuccess(text):
|
||||||
self.contentController = .genericSuccess(TGProxyWindowController(light: theme.actionSheet.backgroundType == .light, text: text, shield: false, star: true), false)
|
self.contentController = .genericSuccess(TGProxyWindowController(light: style == .light, text: text, shield: false, star: true), false)
|
||||||
}
|
}
|
||||||
|
|
||||||
super.init()
|
super.init()
|
||||||
@ -129,9 +128,13 @@ private final class OverlayStatusControllerNode: ViewControllerTracingNode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum OverlayStatusControllerStyle {
|
||||||
|
case light
|
||||||
|
case dark
|
||||||
|
}
|
||||||
|
|
||||||
public final class OverlayStatusController: ViewController, StandalonePresentableController {
|
public final class OverlayStatusController: ViewController, StandalonePresentableController {
|
||||||
private let theme: PresentationTheme
|
private let style: OverlayStatusControllerStyle
|
||||||
private let strings: PresentationStrings
|
|
||||||
private let type: OverlayStatusControllerType
|
private let type: OverlayStatusControllerType
|
||||||
|
|
||||||
private var animatedDidAppear = false
|
private var animatedDidAppear = false
|
||||||
@ -140,9 +143,8 @@ public final class OverlayStatusController: ViewController, StandalonePresentabl
|
|||||||
return self.displayNode as! OverlayStatusControllerNode
|
return self.displayNode as! OverlayStatusControllerNode
|
||||||
}
|
}
|
||||||
|
|
||||||
public init(theme: PresentationTheme, strings: PresentationStrings, type: OverlayStatusControllerType) {
|
public init(style: OverlayStatusControllerStyle, type: OverlayStatusControllerType) {
|
||||||
self.theme = theme
|
self.style = style
|
||||||
self.strings = strings
|
|
||||||
self.type = type
|
self.type = type
|
||||||
|
|
||||||
super.init(navigationBarPresentationData: nil)
|
super.init(navigationBarPresentationData: nil)
|
||||||
@ -155,7 +157,7 @@ public final class OverlayStatusController: ViewController, StandalonePresentabl
|
|||||||
}
|
}
|
||||||
|
|
||||||
override public func loadDisplayNode() {
|
override public func loadDisplayNode() {
|
||||||
self.displayNode = OverlayStatusControllerNode(theme: self.theme, strings: self.strings, type: self.type, dismissed: { [weak self] in
|
self.displayNode = OverlayStatusControllerNode(style: self.style, type: self.type, dismissed: { [weak self] in
|
||||||
self?.presentingViewController?.dismiss(animated: false, completion: nil)
|
self?.presentingViewController?.dismiss(animated: false, completion: nil)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -22,6 +22,7 @@ static_library(
|
|||||||
"//submodules/DateSelectionUI:DateSelectionUI",
|
"//submodules/DateSelectionUI:DateSelectionUI",
|
||||||
"//submodules/PasswordSetupUI:PasswordSetupUI",
|
"//submodules/PasswordSetupUI:PasswordSetupUI",
|
||||||
"//submodules/AppBundle:AppBundle",
|
"//submodules/AppBundle:AppBundle",
|
||||||
|
"//submodules/PresentationDataUtils:PresentationDataUtils",
|
||||||
],
|
],
|
||||||
frameworks = [
|
frameworks = [
|
||||||
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
|
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import AsyncDisplayKit
|
|||||||
import Display
|
import Display
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
class FormEditableBlockItemNode<Item: FormControllerItem>: ASDisplayNode, FormControllerItemNode, FormBlockItemNodeProto, UIGestureRecognizerDelegate {
|
class FormEditableBlockItemNode<Item: FormControllerItem>: ASDisplayNode, FormControllerItemNode, FormBlockItemNodeProto, UIGestureRecognizerDelegate {
|
||||||
private let topSeparatorInset: FormBlockItemInset
|
private let topSeparatorInset: FormBlockItemInset
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import OverlayStatusController
|
|||||||
import AccountContext
|
import AccountContext
|
||||||
import LegacyUI
|
import LegacyUI
|
||||||
import ImageCompression
|
import ImageCompression
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
enum SecureIdAttachmentMenuType {
|
enum SecureIdAttachmentMenuType {
|
||||||
case generic
|
case generic
|
||||||
@ -64,7 +65,7 @@ func presentLegacySecureIdAttachmentMenu(context: AccountContext, present: @esca
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
uploadStarted = true
|
uploadStarted = true
|
||||||
let statusController = OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .loading(cancelled: nil))
|
let statusController = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: nil))
|
||||||
let statusDisposable = (Signal<Never, NoError> { subscriber in
|
let statusDisposable = (Signal<Never, NoError> { subscriber in
|
||||||
present(statusController)
|
present(statusController)
|
||||||
return ActionDisposable {
|
return ActionDisposable {
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import TextFormat
|
|||||||
import ProgressNavigationButtonNode
|
import ProgressNavigationButtonNode
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import PasswordSetupUI
|
import PasswordSetupUI
|
||||||
|
|
||||||
public enum SecureIdRequestResult: String {
|
public enum SecureIdRequestResult: String {
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import TelegramPresentationData
|
|||||||
import ProgressNavigationButtonNode
|
import ProgressNavigationButtonNode
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
enum SecureIdDocumentFormScrollToSubject {
|
enum SecureIdDocumentFormScrollToSubject {
|
||||||
case selfie
|
case selfie
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import CoreTelephony
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import CountrySelectionUI
|
import CountrySelectionUI
|
||||||
|
|
||||||
private func cleanPhoneNumber(_ text: String?) -> String {
|
private func cleanPhoneNumber(_ text: String?) -> String {
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import Display
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import TelegramStringFormatting
|
import TelegramStringFormatting
|
||||||
import RadialStatusNode
|
import RadialStatusNode
|
||||||
import PhotoResources
|
import PhotoResources
|
||||||
|
|||||||
@ -16,6 +16,7 @@ static_library(
|
|||||||
"//submodules/ProgressNavigationButtonNode:ProgressNavigationButtonNode",
|
"//submodules/ProgressNavigationButtonNode:ProgressNavigationButtonNode",
|
||||||
"//submodules/ActivityIndicator:ActivityIndicator",
|
"//submodules/ActivityIndicator:ActivityIndicator",
|
||||||
"//submodules/AlertUI:AlertUI",
|
"//submodules/AlertUI:AlertUI",
|
||||||
|
"//submodules/PresentationDataUtils:PresentationDataUtils",
|
||||||
"//submodules/ItemListUI:ItemListUI",
|
"//submodules/ItemListUI:ItemListUI",
|
||||||
],
|
],
|
||||||
frameworks = [
|
frameworks = [
|
||||||
|
|||||||
@ -6,8 +6,10 @@ import Postbox
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
private final class ResetPasswordControllerArguments {
|
private final class ResetPasswordControllerArguments {
|
||||||
let updateCodeText: (String) -> Void
|
let updateCodeText: (String) -> Void
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import TelegramPresentationData
|
|||||||
import ActivityIndicator
|
import ActivityIndicator
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
public enum SetupTwoStepVerificationInitialState {
|
public enum SetupTwoStepVerificationInitialState {
|
||||||
case automatic
|
case automatic
|
||||||
|
|||||||
@ -15,6 +15,7 @@ static_library(
|
|||||||
"//submodules/AccountContext:AccountContext",
|
"//submodules/AccountContext:AccountContext",
|
||||||
"//submodules/ItemListUI:ItemListUI",
|
"//submodules/ItemListUI:ItemListUI",
|
||||||
"//submodules/AlertUI:AlertUI",
|
"//submodules/AlertUI:AlertUI",
|
||||||
|
"//submodules/PresentationDataUtils:PresentationDataUtils",
|
||||||
"//submodules/ItemListAvatarAndNameInfoItem:ItemListAvatarAndNameInfoItem",
|
"//submodules/ItemListAvatarAndNameInfoItem:ItemListAvatarAndNameInfoItem",
|
||||||
"//submodules/UndoUI:UndoUI",
|
"//submodules/UndoUI:UndoUI",
|
||||||
"//submodules/TelegramUIPreferences:TelegramUIPreferences",
|
"//submodules/TelegramUIPreferences:TelegramUIPreferences",
|
||||||
|
|||||||
@ -6,8 +6,10 @@ import Postbox
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import ItemListAvatarAndNameInfoItem
|
import ItemListAvatarAndNameInfoItem
|
||||||
import Emoji
|
import Emoji
|
||||||
|
|
||||||
|
|||||||
@ -7,9 +7,11 @@ import TelegramCore
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import TelegramUIPreferences
|
import TelegramUIPreferences
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import TemporaryCachedPeerDataManager
|
import TemporaryCachedPeerDataManager
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import UndoUI
|
import UndoUI
|
||||||
import ItemListPeerItem
|
import ItemListPeerItem
|
||||||
import ItemListPeerActionItem
|
import ItemListPeerActionItem
|
||||||
@ -525,7 +527,7 @@ public func channelAdminsController(context: AccountContext, peerId: PeerId, loa
|
|||||||
guard let peer = peer, let user = user else {
|
guard let peer = peer, let user = user else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
presentControllerImpl?(UndoOverlayController(context: context, content: .succeed(text: presentationData.strings.Channel_OwnershipTransfer_TransferCompleted(user.displayTitle, peer.displayTitle).0), elevatedLayout: false, action: { _ in }), nil)
|
presentControllerImpl?(UndoOverlayController(presentationData: context.sharedContext.currentPresentationData.with { $0 }, content: .succeed(text: presentationData.strings.Channel_OwnershipTransfer_TransferCompleted(user.displayTitle, peer.displayTitle).0), elevatedLayout: false, action: { _ in }), nil)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -6,10 +6,12 @@ import Postbox
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import TelegramStringFormatting
|
import TelegramStringFormatting
|
||||||
import OverlayStatusController
|
import OverlayStatusController
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import ItemListAvatarAndNameInfoItem
|
import ItemListAvatarAndNameInfoItem
|
||||||
|
|
||||||
private final class ChannelBannedMemberControllerArguments {
|
private final class ChannelBannedMemberControllerArguments {
|
||||||
@ -673,7 +675,7 @@ public func channelBannedMemberController(context: AccountContext, peerId: PeerI
|
|||||||
}, completed: {
|
}, completed: {
|
||||||
if previousRights == nil {
|
if previousRights == nil {
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .genericSuccess(presentationData.strings.GroupPermission_AddSuccess, false)), nil)
|
presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .genericSuccess(presentationData.strings.GroupPermission_AddSuccess, false)), nil)
|
||||||
}
|
}
|
||||||
updated(cleanResolvedRights.flags.isEmpty ? nil : cleanResolvedRights)
|
updated(cleanResolvedRights.flags.isEmpty ? nil : cleanResolvedRights)
|
||||||
dismissImpl?()
|
dismissImpl?()
|
||||||
|
|||||||
@ -7,9 +7,11 @@ import TelegramCore
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import TelegramUIPreferences
|
import TelegramUIPreferences
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import OverlayStatusController
|
import OverlayStatusController
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import ItemListPeerItem
|
import ItemListPeerItem
|
||||||
|
|
||||||
private final class ChannelBlacklistControllerArguments {
|
private final class ChannelBlacklistControllerArguments {
|
||||||
@ -317,7 +319,7 @@ public func channelBlacklistController(context: AccountContext, peerId: PeerId)
|
|||||||
}
|
}
|
||||||
|
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
let progress = OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .loading(cancelled: nil))
|
let progress = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: nil))
|
||||||
presentControllerImpl?(progress, nil)
|
presentControllerImpl?(progress, nil)
|
||||||
removePeerDisposable.set((context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(account: context.account, peerId: peerId, memberId: peer.id, bannedRights: TelegramChatBannedRights(flags: [.banReadMessages], untilDate: Int32.max))
|
removePeerDisposable.set((context.peerChannelMemberCategoriesContextsManager.updateMemberBannedRights(account: context.account, peerId: peerId, memberId: peer.id, bannedRights: TelegramChatBannedRights(flags: [.banReadMessages], untilDate: Int32.max))
|
||||||
|> deliverOnMainQueue).start(error: { [weak progress] _ in
|
|> deliverOnMainQueue).start(error: { [weak progress] _ in
|
||||||
|
|||||||
@ -7,9 +7,11 @@ import TelegramCore
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import TelegramUIPreferences
|
import TelegramUIPreferences
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import OverlayStatusController
|
import OverlayStatusController
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import ItemListPeerItem
|
import ItemListPeerItem
|
||||||
import ItemListPeerActionItem
|
import ItemListPeerActionItem
|
||||||
|
|
||||||
@ -247,7 +249,7 @@ public func channelDiscussionGroupSetupController(context: AccountContext, peerI
|
|||||||
var cancelImpl: (() -> Void)?
|
var cancelImpl: (() -> Void)?
|
||||||
let progressSignal = Signal<Never, NoError> { subscriber in
|
let progressSignal = Signal<Never, NoError> { subscriber in
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
let controller = OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .loading(cancelled: {
|
let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: {
|
||||||
cancelImpl?()
|
cancelImpl?()
|
||||||
}))
|
}))
|
||||||
presentControllerImpl?(controller, nil)
|
presentControllerImpl?(controller, nil)
|
||||||
@ -279,7 +281,7 @@ public func channelDiscussionGroupSetupController(context: AccountContext, peerI
|
|||||||
}, completed: {
|
}, completed: {
|
||||||
dismiss()
|
dismiss()
|
||||||
/*let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
/*let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
let controller = OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .success)
|
let controller = OverlayStatusController(theme: presentationData.theme, type: .success)
|
||||||
presentControllerImpl?(controller, nil)*/
|
presentControllerImpl?(controller, nil)*/
|
||||||
}))
|
}))
|
||||||
}))
|
}))
|
||||||
@ -347,7 +349,7 @@ public func channelDiscussionGroupSetupController(context: AccountContext, peerI
|
|||||||
var cancelImpl: (() -> Void)?
|
var cancelImpl: (() -> Void)?
|
||||||
let progressSignal = Signal<Never, NoError> { subscriber in
|
let progressSignal = Signal<Never, NoError> { subscriber in
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
let controller = OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .loading(cancelled: {
|
let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: {
|
||||||
cancelImpl?()
|
cancelImpl?()
|
||||||
}))
|
}))
|
||||||
presentControllerImpl?(controller, nil)
|
presentControllerImpl?(controller, nil)
|
||||||
@ -402,7 +404,7 @@ public func channelDiscussionGroupSetupController(context: AccountContext, peerI
|
|||||||
var cancelImpl: (() -> Void)?
|
var cancelImpl: (() -> Void)?
|
||||||
let progressSignal = Signal<Never, NoError> { subscriber in
|
let progressSignal = Signal<Never, NoError> { subscriber in
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
let controller = OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .loading(cancelled: {
|
let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: {
|
||||||
cancelImpl?()
|
cancelImpl?()
|
||||||
}))
|
}))
|
||||||
presentControllerImpl?(controller, nil)
|
presentControllerImpl?(controller, nil)
|
||||||
@ -482,7 +484,7 @@ public func channelDiscussionGroupSetupController(context: AccountContext, peerI
|
|||||||
var cancelImpl: (() -> Void)?
|
var cancelImpl: (() -> Void)?
|
||||||
let progressSignal = Signal<Never, NoError> { subscriber in
|
let progressSignal = Signal<Never, NoError> { subscriber in
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
let controller = OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .loading(cancelled: {
|
let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: {
|
||||||
cancelImpl?()
|
cancelImpl?()
|
||||||
}))
|
}))
|
||||||
presentControllerImpl?(controller, nil)
|
presentControllerImpl?(controller, nil)
|
||||||
@ -513,7 +515,7 @@ public func channelDiscussionGroupSetupController(context: AccountContext, peerI
|
|||||||
}, completed: {
|
}, completed: {
|
||||||
if case .group = peer.info {
|
if case .group = peer.info {
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
let controller = OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .success)
|
let controller = OverlayStatusController(theme: presentationData.theme, type: .success)
|
||||||
presentControllerImpl?(controller, nil)
|
presentControllerImpl?(controller, nil)
|
||||||
|
|
||||||
dismissImpl?()
|
dismissImpl?()
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import AsyncDisplayKit
|
|||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import TextFormat
|
import TextFormat
|
||||||
import AppBundle
|
import AppBundle
|
||||||
|
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import TelegramCore
|
|||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import SearchBarNode
|
import SearchBarNode
|
||||||
|
|
||||||
|
|||||||
@ -8,12 +8,14 @@ import TelegramCore
|
|||||||
import LegacyComponents
|
import LegacyComponents
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import TextFormat
|
import TextFormat
|
||||||
import OverlayStatusController
|
import OverlayStatusController
|
||||||
import TelegramStringFormatting
|
import TelegramStringFormatting
|
||||||
import ShareController
|
import ShareController
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import GalleryUI
|
import GalleryUI
|
||||||
import LegacyUI
|
import LegacyUI
|
||||||
import ItemListAvatarAndNameInfoItem
|
import ItemListAvatarAndNameInfoItem
|
||||||
@ -849,7 +851,7 @@ public func channelInfoController(context: AccountContext, peerId: PeerId) -> Vi
|
|||||||
var cancelImpl: (() -> Void)?
|
var cancelImpl: (() -> Void)?
|
||||||
let progressSignal = Signal<Never, NoError> { subscriber in
|
let progressSignal = Signal<Never, NoError> { subscriber in
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
let controller = OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .loading(cancelled: {
|
let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: {
|
||||||
cancelImpl?()
|
cancelImpl?()
|
||||||
}))
|
}))
|
||||||
presentControllerImpl?(controller, nil)
|
presentControllerImpl?(controller, nil)
|
||||||
|
|||||||
@ -7,8 +7,10 @@ import TelegramCore
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import TelegramUIPreferences
|
import TelegramUIPreferences
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import ItemListPeerItem
|
import ItemListPeerItem
|
||||||
|
|
||||||
private final class ChannelMembersControllerArguments {
|
private final class ChannelMembersControllerArguments {
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import ActivityIndicator
|
|||||||
import TextFormat
|
import TextFormat
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import PasswordSetupUI
|
import PasswordSetupUI
|
||||||
|
|
||||||
private final class ChannelOwnershipTransferPasswordFieldNode: ASDisplayNode, UITextFieldDelegate {
|
private final class ChannelOwnershipTransferPasswordFieldNode: ASDisplayNode, UITextFieldDelegate {
|
||||||
|
|||||||
@ -7,10 +7,12 @@ import TelegramCore
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import TelegramUIPreferences
|
import TelegramUIPreferences
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import OverlayStatusController
|
import OverlayStatusController
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import TemporaryCachedPeerDataManager
|
import TemporaryCachedPeerDataManager
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import ItemListPeerItem
|
import ItemListPeerItem
|
||||||
import TelegramPermissionsUI
|
import TelegramPermissionsUI
|
||||||
import ItemListPeerActionItem
|
import ItemListPeerActionItem
|
||||||
@ -701,7 +703,7 @@ public func channelPermissionsController(context: AccountContext, peerId origina
|
|||||||
}
|
}
|
||||||
|
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
let progress = OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .loading(cancelled: nil))
|
let progress = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: nil))
|
||||||
presentControllerImpl?(progress, nil)
|
presentControllerImpl?(progress, nil)
|
||||||
|
|
||||||
let signal = convertGroupToSupergroup(account: context.account, peerId: view.peerId)
|
let signal = convertGroupToSupergroup(account: context.account, peerId: view.peerId)
|
||||||
|
|||||||
@ -7,10 +7,12 @@ import TelegramCore
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import TelegramUIPreferences
|
import TelegramUIPreferences
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import OverlayStatusController
|
import OverlayStatusController
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import ShareController
|
import ShareController
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import TelegramNotices
|
import TelegramNotices
|
||||||
import ItemListPeerItem
|
import ItemListPeerItem
|
||||||
|
|
||||||
@ -914,7 +916,7 @@ public func channelVisibilityController(context: AccountContext, peerId: PeerId,
|
|||||||
if let link = link {
|
if let link = link {
|
||||||
UIPasteboard.general.string = link
|
UIPasteboard.general.string = link
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .genericSuccess(presentationData.strings.Username_LinkCopied, false)), nil)
|
presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .genericSuccess(presentationData.strings.Username_LinkCopied, false)), nil)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}, revokePrivateLink: {
|
}, revokePrivateLink: {
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import TelegramUIPreferences
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import LegacyComponents
|
import LegacyComponents
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
class ChatSlowmodeItem: ListViewItem, ItemListItem {
|
class ChatSlowmodeItem: ListViewItem, ItemListItem {
|
||||||
let theme: PresentationTheme
|
let theme: PresentationTheme
|
||||||
|
|||||||
@ -6,8 +6,10 @@ import Postbox
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
private final class ConvertToSupergroupArguments {
|
private final class ConvertToSupergroupArguments {
|
||||||
let convert: () -> Void
|
let convert: () -> Void
|
||||||
|
|||||||
@ -7,9 +7,11 @@ import TelegramCore
|
|||||||
import MessageUI
|
import MessageUI
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import TelegramStringFormatting
|
import TelegramStringFormatting
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import PhotoResources
|
import PhotoResources
|
||||||
import MediaResources
|
import MediaResources
|
||||||
import ItemListAvatarAndNameInfoItem
|
import ItemListAvatarAndNameInfoItem
|
||||||
|
|||||||
@ -10,12 +10,14 @@ import TelegramPresentationData
|
|||||||
import SafariServices
|
import SafariServices
|
||||||
import TelegramUIPreferences
|
import TelegramUIPreferences
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import TextFormat
|
import TextFormat
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import TelegramStringFormatting
|
import TelegramStringFormatting
|
||||||
import TemporaryCachedPeerDataManager
|
import TemporaryCachedPeerDataManager
|
||||||
import ShareController
|
import ShareController
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import MediaResources
|
import MediaResources
|
||||||
import PhotoResources
|
import PhotoResources
|
||||||
import GalleryUI
|
import GalleryUI
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import Postbox
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
|
|
||||||
final class ChannelMembersSearchItem: ItemListControllerSearch {
|
final class ChannelMembersSearchItem: ItemListControllerSearch {
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import Postbox
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import SearchBarNode
|
import SearchBarNode
|
||||||
|
|
||||||
private let searchBarFont = Font.regular(17.0)
|
private let searchBarFont = Font.regular(17.0)
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import Postbox
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
|
|
||||||
private final class GroupPreHistorySetupArguments {
|
private final class GroupPreHistorySetupArguments {
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import Postbox
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import ActivityIndicator
|
import ActivityIndicator
|
||||||
import StickerResources
|
import StickerResources
|
||||||
import AppBundle
|
import AppBundle
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import TelegramCore
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import TelegramUIPreferences
|
import TelegramUIPreferences
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import StickerPackPreviewUI
|
import StickerPackPreviewUI
|
||||||
import ItemListStickerPackItem
|
import ItemListStickerPackItem
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import TelegramCore
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import TelegramUIPreferences
|
import TelegramUIPreferences
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import ItemListPeerItem
|
import ItemListPeerItem
|
||||||
|
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import Postbox
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import TelegramStringFormatting
|
import TelegramStringFormatting
|
||||||
|
|
||||||
class ItemListCallListItem: ListViewItem, ItemListItem {
|
class ItemListCallListItem: ListViewItem, ItemListItem {
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import SwiftSignalKit
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import EncryptionKeyVisualization
|
import EncryptionKeyVisualization
|
||||||
|
|
||||||
class ItemListSecretChatKeyItem: ListViewItem, ItemListItem {
|
class ItemListSecretChatKeyItem: ListViewItem, ItemListItem {
|
||||||
|
|||||||
@ -6,9 +6,11 @@ import Postbox
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import ContextUI
|
import ContextUI
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
public enum PeerReportSubject {
|
public enum PeerReportSubject {
|
||||||
case peer(PeerId)
|
case peer(PeerId)
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import Postbox
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import TelegramStringFormatting
|
import TelegramStringFormatting
|
||||||
|
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import TelegramCore
|
|||||||
import LegacyComponents
|
import LegacyComponents
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import TextFormat
|
import TextFormat
|
||||||
import OverlayStatusController
|
import OverlayStatusController
|
||||||
@ -15,6 +16,7 @@ import TelegramStringFormatting
|
|||||||
import AccountContext
|
import AccountContext
|
||||||
import ShareController
|
import ShareController
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import TelegramNotices
|
import TelegramNotices
|
||||||
import GalleryUI
|
import GalleryUI
|
||||||
import ItemListAvatarAndNameInfoItem
|
import ItemListAvatarAndNameInfoItem
|
||||||
@ -785,7 +787,7 @@ public func openAddPersonContactImpl(context: AccountContext, peerId: PeerId, pu
|
|||||||
}
|
}
|
||||||
|
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
present(OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .genericSuccess(presentationData.strings.AddContact_StatusSuccess(peer.compactDisplayTitle).0, true)), nil)
|
present(OverlayStatusController(theme: presentationData.theme, type: .genericSuccess(presentationData.strings.AddContact_StatusSuccess(peer.compactDisplayTitle).0, true)), nil)
|
||||||
}
|
}
|
||||||
}), completed: nil, cancelled: nil))
|
}), completed: nil, cancelled: nil))
|
||||||
})
|
})
|
||||||
@ -1065,7 +1067,7 @@ public func userInfoController(context: AccountContext, peerId: PeerId, mode: Pe
|
|||||||
|
|
||||||
let progressSignal = Signal<Never, NoError> { subscriber in
|
let progressSignal = Signal<Never, NoError> { subscriber in
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
let controller = OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .loading(cancelled: nil))
|
let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: nil))
|
||||||
presentControllerImpl?(controller, nil)
|
presentControllerImpl?(controller, nil)
|
||||||
return ActionDisposable { [weak controller] in
|
return ActionDisposable { [weak controller] in
|
||||||
Queue.mainQueue().async() {
|
Queue.mainQueue().async() {
|
||||||
@ -1348,7 +1350,7 @@ public func userInfoController(context: AccountContext, peerId: PeerId, mode: Pe
|
|||||||
let _ = (enqueueMessages(account: context.account, peerId: peerId, messages: [.message(text: "", attributes: [], mediaReference: .standalone(media: contact), replyToMessageId: nil, localGroupingKey: nil)])
|
let _ = (enqueueMessages(account: context.account, peerId: peerId, messages: [.message(text: "", attributes: [], mediaReference: .standalone(media: contact), replyToMessageId: nil, localGroupingKey: nil)])
|
||||||
|> deliverOnMainQueue).start(next: { [weak controller] _ in
|
|> deliverOnMainQueue).start(next: { [weak controller] _ in
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
controller?.present(OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .success), in: .window(.root))
|
controller?.present(OverlayStatusController(theme: presentationData.theme, type: .success), in: .window(.root))
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -1384,7 +1386,7 @@ public func userInfoController(context: AccountContext, peerId: PeerId, mode: Pe
|
|||||||
var cancelImpl: (() -> Void)?
|
var cancelImpl: (() -> Void)?
|
||||||
let progressSignal = Signal<Never, NoError> { subscriber in
|
let progressSignal = Signal<Never, NoError> { subscriber in
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
let controller = OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .loading(cancelled: {
|
let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: {
|
||||||
cancelImpl?()
|
cancelImpl?()
|
||||||
}))
|
}))
|
||||||
presentControllerImpl?(controller, nil)
|
presentControllerImpl?(controller, nil)
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import AsyncDisplayKit
|
|||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
class UserInfoEditingPhoneActionItem: ListViewItem, ItemListItem {
|
class UserInfoEditingPhoneActionItem: ListViewItem, ItemListItem {
|
||||||
let theme: PresentationTheme
|
let theme: PresentationTheme
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import AsyncDisplayKit
|
|||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import SinglePhoneInputNode
|
import SinglePhoneInputNode
|
||||||
import AppBundle
|
import AppBundle
|
||||||
|
|
||||||
|
|||||||
@ -18,6 +18,7 @@ static_library(
|
|||||||
"//submodules/OverlayStatusController:OverlayStatusController",
|
"//submodules/OverlayStatusController:OverlayStatusController",
|
||||||
"//submodules/DeviceLocationManager:DeviceLocationManager",
|
"//submodules/DeviceLocationManager:DeviceLocationManager",
|
||||||
"//submodules/AlertUI:AlertUI",
|
"//submodules/AlertUI:AlertUI",
|
||||||
|
"//submodules/PresentationDataUtils:PresentationDataUtils",
|
||||||
"//submodules/ItemListPeerItem:ItemListPeerItem",
|
"//submodules/ItemListPeerItem:ItemListPeerItem",
|
||||||
"//submodules/TelegramPermissionsUI:TelegramPermissionsUI",
|
"//submodules/TelegramPermissionsUI:TelegramPermissionsUI",
|
||||||
"//submodules/ItemListPeerActionItem:ItemListPeerActionItem",
|
"//submodules/ItemListPeerActionItem:ItemListPeerActionItem",
|
||||||
|
|||||||
@ -8,10 +8,12 @@ import MapKit
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import TelegramUIPreferences
|
import TelegramUIPreferences
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import OverlayStatusController
|
import OverlayStatusController
|
||||||
import DeviceLocationManager
|
import DeviceLocationManager
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import ItemListPeerItem
|
import ItemListPeerItem
|
||||||
import TelegramPermissionsUI
|
import TelegramPermissionsUI
|
||||||
import ItemListPeerActionItem
|
import ItemListPeerActionItem
|
||||||
@ -313,7 +315,7 @@ public func peersNearbyController(context: AccountContext) -> ViewController {
|
|||||||
|
|
||||||
var cancelImpl: (() -> Void)?
|
var cancelImpl: (() -> Void)?
|
||||||
let progressSignal = Signal<Never, NoError> { subscriber in
|
let progressSignal = Signal<Never, NoError> { subscriber in
|
||||||
let controller = OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .loading(cancelled: {
|
let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: {
|
||||||
cancelImpl?()
|
cancelImpl?()
|
||||||
}))
|
}))
|
||||||
presentControllerImpl?(controller, nil)
|
presentControllerImpl?(controller, nil)
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import AsyncDisplayKit
|
|||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import PeersNearbyIconNode
|
import PeersNearbyIconNode
|
||||||
|
|
||||||
class PeersNearbyHeaderItem: ListViewItem, ItemListItem {
|
class PeersNearbyHeaderItem: ListViewItem, ItemListItem {
|
||||||
|
|||||||
20
submodules/PresentationDataUtils/BUCK
Normal file
20
submodules/PresentationDataUtils/BUCK
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
load("//Config:buck_rule_macros.bzl", "static_library")
|
||||||
|
|
||||||
|
static_library(
|
||||||
|
name = "PresentationDataUtils",
|
||||||
|
srcs = glob([
|
||||||
|
"Sources/**/*.swift",
|
||||||
|
]),
|
||||||
|
deps = [
|
||||||
|
"//submodules/Display:Display#shared",
|
||||||
|
"//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit#shared",
|
||||||
|
"//submodules/AccountContext:AccountContext",
|
||||||
|
"//submodules/TelegramPresentationData:TelegramPresentationData",
|
||||||
|
"//submodules/AlertUI:AlertUI",
|
||||||
|
"//submodules/ItemListUI:ItemListUI",
|
||||||
|
],
|
||||||
|
frameworks = [
|
||||||
|
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
|
||||||
|
"$SDKROOT/System/Library/Frameworks/UIKit.framework",
|
||||||
|
],
|
||||||
|
)
|
||||||
22
submodules/PresentationDataUtils/Info.plist
Normal file
22
submodules/PresentationDataUtils/Info.plist
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>$(EXECUTABLE_NAME)</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>$(PRODUCT_NAME)</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
13
submodules/PresentationDataUtils/Sources/AlertTheme.swift
Normal file
13
submodules/PresentationDataUtils/Sources/AlertTheme.swift
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import Foundation
|
||||||
|
import Display
|
||||||
|
import AlertUI
|
||||||
|
import AccountContext
|
||||||
|
import SwiftSignalKit
|
||||||
|
|
||||||
|
public func textAlertController(context: AccountContext, title: String?, text: String, actions: [TextAlertAction], actionLayout: TextAlertContentActionLayout = .horizontal, allowInputInset: Bool = true) -> AlertController {
|
||||||
|
return textAlertController(alertContext: AlertControllerContext(theme: AlertControllerTheme(presentationTheme: context.sharedContext.currentPresentationData.with({ $0 }).theme), themeSignal: context.sharedContext.presentationData |> map { presentationData in AlertControllerTheme(presentationTheme: presentationData.theme) }), title: title, text: text, actions: actions, actionLayout: actionLayout, allowInputInset: allowInputInset)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func richTextAlertController(context: AccountContext, title: NSAttributedString?, text: NSAttributedString, actions: [TextAlertAction], actionLayout: TextAlertContentActionLayout = .horizontal, allowInputInset: Bool = true, dismissAutomatically: Bool = true) -> AlertController {
|
||||||
|
return richTextAlertController(alertContext: AlertControllerContext(theme: AlertControllerTheme(presentationTheme: context.sharedContext.currentPresentationData.with({ $0 }).theme), themeSignal: context.sharedContext.presentationData |> map { presentationData in AlertControllerTheme(presentationTheme: presentationData.theme) }), title: title, text: text, actions: actions, actionLayout: actionLayout, allowInputInset: allowInputInset, dismissAutomatically: dismissAutomatically)
|
||||||
|
}
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
import Foundation
|
||||||
|
import Display
|
||||||
|
import AlertUI
|
||||||
|
import AccountContext
|
||||||
|
import SwiftSignalKit
|
||||||
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
|
public extension ItemListController {
|
||||||
|
convenience init<ItemGenerationArguments>(context: AccountContext, state: Signal<(ItemListControllerState, (ItemListNodeState, ItemGenerationArguments)), NoError>, tabBarItem: Signal<ItemListControllerTabBarItem, NoError>? = nil) {
|
||||||
|
self.init(sharedContext: context.sharedContext, state: state, tabBarItem: tabBarItem)
|
||||||
|
}
|
||||||
|
|
||||||
|
convenience init<ItemGenerationArguments>(sharedContext: SharedAccountContext, state: Signal<(ItemListControllerState, (ItemListNodeState, ItemGenerationArguments)), NoError>, tabBarItem: Signal<ItemListControllerTabBarItem, NoError>? = nil) {
|
||||||
|
let presentationData = sharedContext.currentPresentationData.with { $0 }
|
||||||
|
self.init(theme: presentationData.theme, strings: presentationData.strings, updatedPresentationData: sharedContext.presentationData |> map { ($0.theme, $0.strings) }, state: state, tabBarItem: tabBarItem)
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
import OverlayStatusController
|
||||||
|
import TelegramPresentationData
|
||||||
|
|
||||||
|
public extension OverlayStatusController {
|
||||||
|
convenience init(theme: PresentationTheme, type: OverlayStatusControllerType) {
|
||||||
|
self.init(style: theme.actionSheet.backgroundType == .light ? .light : .dark, type: type)
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -135,7 +135,7 @@ final class ReactionNode: ASDisplayNode {
|
|||||||
renderSize = CGSize(width: intrinsicSize.width * 2.5, height: intrinsicSize.height * 2.5)
|
renderSize = CGSize(width: intrinsicSize.width * 2.5, height: intrinsicSize.height * 2.5)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.animationNode.setup(account: account, resource: .localFile(path), width: Int(renderSize.width), height: Int(renderSize.height), mode: .direct)
|
self.animationNode.setup(resource: .localFile(path), width: Int(renderSize.width), height: Int(renderSize.height), mode: .direct)
|
||||||
case .reply:
|
case .reply:
|
||||||
self.intrinsicOffset = CGPoint(x: 0.0, y: 0.0)
|
self.intrinsicOffset = CGPoint(x: 0.0, y: 0.0)
|
||||||
self.imageNode.image = UIImage(named: "Chat/Context Menu/ReactionReply", in: getAppBundle(), compatibleWith: nil)
|
self.imageNode.image = UIImage(named: "Chat/Context Menu/ReactionReply", in: getAppBundle(), compatibleWith: nil)
|
||||||
|
|||||||
@ -16,6 +16,7 @@ static_library(
|
|||||||
"//submodules/AccountContext:AccountContext",
|
"//submodules/AccountContext:AccountContext",
|
||||||
"//submodules/ActivityIndicator:ActivityIndicator",
|
"//submodules/ActivityIndicator:ActivityIndicator",
|
||||||
"//submodules/AlertUI:AlertUI",
|
"//submodules/AlertUI:AlertUI",
|
||||||
|
"//submodules/PresentationDataUtils:PresentationDataUtils",
|
||||||
"//submodules/AvatarNode:AvatarNode",
|
"//submodules/AvatarNode:AvatarNode",
|
||||||
"//submodules/CallListUI:CallListUI",
|
"//submodules/CallListUI:CallListUI",
|
||||||
"//submodules/ChatListSearchItemNode:ChatListSearchItemNode",
|
"//submodules/ChatListSearchItemNode:ChatListSearchItemNode",
|
||||||
|
|||||||
@ -6,9 +6,11 @@ import Postbox
|
|||||||
import TelegramCore
|
import TelegramCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import OverlayStatusController
|
import OverlayStatusController
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AuthorizationUI
|
import AuthorizationUI
|
||||||
|
|
||||||
private final class ChangePhoneNumberCodeControllerArguments {
|
private final class ChangePhoneNumberCodeControllerArguments {
|
||||||
@ -272,7 +274,7 @@ func changePhoneNumberCodeController(context: AccountContext, phoneNumber: Strin
|
|||||||
return $0.withUpdatedChecking(false)
|
return $0.withUpdatedChecking(false)
|
||||||
}
|
}
|
||||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||||
presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, strings: presentationData.strings, type: .success), nil)
|
presentControllerImpl?(OverlayStatusController(theme: presentationData.theme, type: .success), nil)
|
||||||
dismissImpl?()
|
dismissImpl?()
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import TelegramPresentationData
|
|||||||
import ProgressNavigationButtonNode
|
import ProgressNavigationButtonNode
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import CountrySelectionUI
|
import CountrySelectionUI
|
||||||
|
|
||||||
final class ChangePhoneNumberController: ViewController {
|
final class ChangePhoneNumberController: ViewController {
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import TelegramPresentationData
|
|||||||
import TextFormat
|
import TextFormat
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import AlertUI
|
import AlertUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AppBundle
|
import AppBundle
|
||||||
|
|
||||||
private final class ChangePhoneNumberIntroControllerNode: ASDisplayNode {
|
private final class ChangePhoneNumberIntroControllerNode: ASDisplayNode {
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import TelegramCore
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import TelegramUIPreferences
|
import TelegramUIPreferences
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
import AccountContext
|
import AccountContext
|
||||||
|
|
||||||
enum AutomaticDownloadConnectionType {
|
enum AutomaticDownloadConnectionType {
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import TelegramUIPreferences
|
|||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import LegacyComponents
|
import LegacyComponents
|
||||||
import ItemListUI
|
import ItemListUI
|
||||||
|
import PresentationDataUtils
|
||||||
|
|
||||||
enum AutomaticDownloadDataUsage: Int {
|
enum AutomaticDownloadDataUsage: Int {
|
||||||
case low
|
case low
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user