mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 14:20:20 +00:00
Various improvements
This commit is contained in:
@@ -42,8 +42,9 @@ private final class ChannelVisibilityControllerArguments {
|
||||
let toggleApproveMembers: (Bool) -> Void
|
||||
let activateLink: (String) -> Void
|
||||
let deactivateLink: (String) -> Void
|
||||
let openAuction: (String) -> Void
|
||||
|
||||
init(context: AccountContext, updateCurrentType: @escaping (CurrentChannelType) -> Void, updatePublicLinkText: @escaping (String?, String) -> Void, scrollToPublicLinkText: @escaping () -> Void, setPeerIdWithRevealedOptions: @escaping (PeerId?, PeerId?) -> Void, revokePeerId: @escaping (PeerId) -> Void, copyLink: @escaping (ExportedInvitation) -> Void, shareLink: @escaping (ExportedInvitation) -> Void, linkContextAction: @escaping (ASDisplayNode, ContextGesture?) -> Void, manageInviteLinks: @escaping () -> Void, openLink: @escaping (ExportedInvitation) -> Void, toggleForwarding: @escaping (Bool) -> Void, updateJoinToSend: @escaping (CurrentChannelJoinToSend) -> Void, toggleApproveMembers: @escaping (Bool) -> Void, activateLink: @escaping (String) -> Void, deactivateLink: @escaping (String) -> Void) {
|
||||
init(context: AccountContext, updateCurrentType: @escaping (CurrentChannelType) -> Void, updatePublicLinkText: @escaping (String?, String) -> Void, scrollToPublicLinkText: @escaping () -> Void, setPeerIdWithRevealedOptions: @escaping (PeerId?, PeerId?) -> Void, revokePeerId: @escaping (PeerId) -> Void, copyLink: @escaping (ExportedInvitation) -> Void, shareLink: @escaping (ExportedInvitation) -> Void, linkContextAction: @escaping (ASDisplayNode, ContextGesture?) -> Void, manageInviteLinks: @escaping () -> Void, openLink: @escaping (ExportedInvitation) -> Void, toggleForwarding: @escaping (Bool) -> Void, updateJoinToSend: @escaping (CurrentChannelJoinToSend) -> Void, toggleApproveMembers: @escaping (Bool) -> Void, activateLink: @escaping (String) -> Void, deactivateLink: @escaping (String) -> Void, openAuction: @escaping (String) -> Void) {
|
||||
self.context = context
|
||||
self.updateCurrentType = updateCurrentType
|
||||
self.updatePublicLinkText = updatePublicLinkText
|
||||
@@ -60,6 +61,7 @@ private final class ChannelVisibilityControllerArguments {
|
||||
self.toggleApproveMembers = toggleApproveMembers
|
||||
self.activateLink = activateLink
|
||||
self.deactivateLink = deactivateLink
|
||||
self.openAuction = openAuction
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,7 +111,7 @@ private enum ChannelVisibilityEntry: ItemListNodeEntry {
|
||||
case privateLinkManageInfo(PresentationTheme, String)
|
||||
|
||||
case publicLinkInfo(PresentationTheme, String)
|
||||
case publicLinkStatus(PresentationTheme, String, AddressNameValidationStatus)
|
||||
case publicLinkStatus(PresentationTheme, String, AddressNameValidationStatus, String)
|
||||
|
||||
case existingLinksInfo(PresentationTheme, String)
|
||||
case existingLinkPeerItem(Int32, PresentationTheme, PresentationStrings, PresentationDateTimeFormat, PresentationPersonNameOrder, Peer, ItemListPeerItemEditing, Bool)
|
||||
@@ -317,8 +319,8 @@ private enum ChannelVisibilityEntry: ItemListNodeEntry {
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
case let .publicLinkStatus(lhsTheme, lhsText, lhsStatus):
|
||||
if case let .publicLinkStatus(rhsTheme, rhsText, rhsStatus) = rhs, lhsTheme === rhsTheme, lhsText == rhsText, lhsStatus == rhsStatus {
|
||||
case let .publicLinkStatus(lhsTheme, lhsText, lhsStatus, lhsUsername):
|
||||
if case let .publicLinkStatus(rhsTheme, rhsText, rhsStatus, rhsUsername) = rhs, lhsTheme === rhsTheme, lhsText == rhsText, lhsStatus == rhsStatus, lhsUsername == rhsUsername {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
@@ -671,7 +673,7 @@ private enum ChannelVisibilityEntry: ItemListNodeEntry {
|
||||
return ItemListTextItem(presentationData: presentationData, text: .markdown(text), sectionId: self.section)
|
||||
case let .publicLinkInfo(_, text):
|
||||
return ItemListTextItem(presentationData: presentationData, text: .markdown(text), sectionId: self.section)
|
||||
case let .publicLinkStatus(_, text, status):
|
||||
case let .publicLinkStatus(_, text, status, username):
|
||||
var displayActivity = false
|
||||
let textColor: ItemListActivityTextItem.TextColor
|
||||
switch status {
|
||||
@@ -686,13 +688,15 @@ private enum ChannelVisibilityEntry: ItemListNodeEntry {
|
||||
case .taken:
|
||||
textColor = .destructive
|
||||
case .purchaseAvailable:
|
||||
textColor = .generic
|
||||
textColor = .warning
|
||||
}
|
||||
case .checking:
|
||||
textColor = .generic
|
||||
displayActivity = true
|
||||
}
|
||||
return ItemListActivityTextItem(displayActivity: displayActivity, presentationData: presentationData, text: text, color: textColor, linkAction: { _ in }, sectionId: self.section)
|
||||
return ItemListActivityTextItem(displayActivity: displayActivity, presentationData: presentationData, text: text, color: textColor, linkAction: { _ in
|
||||
arguments.openAuction(username)
|
||||
}, sectionId: self.section)
|
||||
case let .existingLinksInfo(_, text):
|
||||
return ItemListTextItem(presentationData: presentationData, text: .plain(text), sectionId: self.section)
|
||||
case let .existingLinkPeerItem(_, _, _, dateTimeFormat, nameDisplayOrder, peer, editing, enabled):
|
||||
@@ -1074,7 +1078,7 @@ private func channelVisibilityControllerEntries(presentationData: PresentationDa
|
||||
text = presentationData.strings.Channel_Username_CheckingUsername
|
||||
}
|
||||
|
||||
entries.append(.publicLinkStatus(presentationData.theme, text, status))
|
||||
entries.append(.publicLinkStatus(presentationData.theme, text, status, currentUsername))
|
||||
}
|
||||
if isGroup {
|
||||
if let cachedChannelData = view.cachedData as? CachedChannelData, cachedChannelData.peerGeoLocation != nil {
|
||||
@@ -1275,7 +1279,7 @@ private func channelVisibilityControllerEntries(presentationData: PresentationDa
|
||||
text = presentationData.strings.Channel_Username_CheckingUsername
|
||||
}
|
||||
|
||||
entries.append(.publicLinkStatus(presentationData.theme, text, status))
|
||||
entries.append(.publicLinkStatus(presentationData.theme, text, status, currentUsername))
|
||||
}
|
||||
|
||||
entries.append(.publicLinkInfo(presentationData.theme, presentationData.strings.Group_Username_CreatePublicLinkHelp))
|
||||
@@ -1742,6 +1746,10 @@ public func channelVisibilityController(context: AccountContext, updatedPresenta
|
||||
let _ = context.engine.peers.toggleAddressNameActive(domain: .peer(peerId), name: name, active: false).start()
|
||||
})]), nil)
|
||||
})
|
||||
}, openAuction: { username in
|
||||
dismissInputImpl?()
|
||||
|
||||
context.sharedContext.openExternalUrl(context: context, urlContext: .generic, url: "https://fragment.com/username/\(username)", forceExternal: true, presentationData: context.sharedContext.currentPresentationData.with { $0 }, navigationController: nil, dismissInput: {})
|
||||
})
|
||||
|
||||
let peerView = context.account.viewTracker.peerView(peerId)
|
||||
|
||||
Reference in New Issue
Block a user