Various fixes

This commit is contained in:
Ilya Laktyushin 2022-06-20 15:33:34 +05:00
parent 3892e07a91
commit d9d9e9ef24
2 changed files with 30 additions and 61 deletions

View File

@ -847,7 +847,7 @@ private func channelVisibilityControllerEntries(presentationData: PresentationDa
} }
var isDiscussion = false var isDiscussion = false
if let cachedData = view.cachedData as? CachedChannelData, case .known = cachedData.linkedDiscussionPeerId { if let cachedData = view.cachedData as? CachedChannelData, case let .known(peerId) = cachedData.linkedDiscussionPeerId, peerId != nil {
isDiscussion = true isDiscussion = true
} }
@ -934,67 +934,40 @@ private func channelVisibilityControllerEntries(presentationData: PresentationDa
switch selectedType { switch selectedType {
case .publicChannel: case .publicChannel:
let displayAvailability = publicChannelsToRevoke == nil || !(publicChannelsToRevoke!.isEmpty) entries.append(.editablePublicLink(presentationData.theme, presentationData.strings, "", currentAddressName))
if let status = state.addressNameValidationStatus {
if displayAvailability { let text: String
if let publicChannelsToRevoke = publicChannelsToRevoke { switch status {
// entries.append(.linksLimitInfo(presentationData.theme, presentationData.strings.Group_Username_RemoveExistingUsernamesOrExtendInfo("\(20)").string, limits.maxPublicLinksCount, premiumLimits.maxPublicLinksCount)) case let .invalidFormat(error):
switch error {
entries.append(.publicLinkAvailability(presentationData.theme, presentationData.strings.Group_Username_RemoveExistingUsernamesInfo, false)) case .startsWithDigit:
var index: Int32 = 0 text = presentationData.strings.Group_Username_InvalidStartsWithNumber
for peer in publicChannelsToRevoke.sorted(by: { lhs, rhs in case .startsWithUnderscore:
var lhsDate: Int32 = 0 text = presentationData.strings.Channel_Username_InvalidStartsWithUnderscore
var rhsDate: Int32 = 0 case .endsWithUnderscore:
if let lhs = lhs as? TelegramChannel { text = presentationData.strings.Channel_Username_InvalidEndsWithUnderscore
lhsDate = lhs.creationDate case .tooShort:
} text = presentationData.strings.Group_Username_InvalidTooShort
if let rhs = rhs as? TelegramChannel { case .invalidCharacters:
rhsDate = rhs.creationDate
}
return lhsDate > rhsDate
}) {
entries.append(.existingLinkPeerItem(index, presentationData.theme, presentationData.strings, presentationData.dateTimeFormat, presentationData.nameDisplayOrder, peer, ItemListPeerItemEditing(editable: true, editing: true, revealed: state.revealedRevokePeerId == peer.id), state.revokingPeerId == nil))
index += 1
}
} else {
entries.append(.publicLinkAvailability(presentationData.theme, presentationData.strings.Group_Username_CreatePublicLinkHelp, true))
}
} else {
entries.append(.editablePublicLink(presentationData.theme, presentationData.strings, "", currentAddressName))
if let status = state.addressNameValidationStatus {
let text: String
switch status {
case let .invalidFormat(error):
switch error {
case .startsWithDigit:
text = presentationData.strings.Group_Username_InvalidStartsWithNumber
case .startsWithUnderscore:
text = presentationData.strings.Channel_Username_InvalidStartsWithUnderscore
case .endsWithUnderscore:
text = presentationData.strings.Channel_Username_InvalidEndsWithUnderscore
case .tooShort:
text = presentationData.strings.Group_Username_InvalidTooShort
case .invalidCharacters:
text = presentationData.strings.Channel_Username_InvalidCharacters
}
case let .availability(availability):
switch availability {
case .available:
text = presentationData.strings.Channel_Username_UsernameIsAvailable(currentAddressName).string
case .invalid:
text = presentationData.strings.Channel_Username_InvalidCharacters text = presentationData.strings.Channel_Username_InvalidCharacters
case .taken:
text = presentationData.strings.Channel_Username_InvalidTaken
} }
case .checking: case let .availability(availability):
text = presentationData.strings.Channel_Username_CheckingUsername switch availability {
case .available:
text = presentationData.strings.Channel_Username_UsernameIsAvailable(currentAddressName).string
case .invalid:
text = presentationData.strings.Channel_Username_InvalidCharacters
case .taken:
text = presentationData.strings.Channel_Username_InvalidTaken
} }
case .checking:
entries.append(.publicLinkStatus(presentationData.theme, text, status)) text = presentationData.strings.Channel_Username_CheckingUsername
} }
entries.append(.publicLinkInfo(presentationData.theme, presentationData.strings.Group_Username_CreatePublicLinkHelp)) entries.append(.publicLinkStatus(presentationData.theme, text, status))
} }
entries.append(.publicLinkInfo(presentationData.theme, presentationData.strings.Group_Username_CreatePublicLinkHelp))
case .privateChannel: case .privateChannel:
let invite = (view.cachedData as? CachedGroupData)?.exportedInvitation let invite = (view.cachedData as? CachedGroupData)?.exportedInvitation
entries.append(.privateLinkHeader(presentationData.theme, presentationData.strings.InviteLink_InviteLink.uppercased())) entries.append(.privateLinkHeader(presentationData.theme, presentationData.strings.InviteLink_InviteLink.uppercased()))

View File

@ -593,11 +593,7 @@ public func chatMessagePhotoInternal(photoData: Signal<Tuple4<Data?, Data?, Chat
let fullSizeComplete = value._3 let fullSizeComplete = value._3
return ({ return ({
return nil return nil
}, quality, { arguments in }, quality, { arguments in
if !synchronousLoad {
assert(!Thread.isMainThread)
}
let drawingRect = arguments.drawingRect let drawingRect = arguments.drawingRect
var fittedSize = arguments.imageSize var fittedSize = arguments.imageSize
if abs(fittedSize.width - arguments.boundingSize.width).isLessThanOrEqualTo(CGFloat(1.0)) { if abs(fittedSize.width - arguments.boundingSize.width).isLessThanOrEqualTo(CGFloat(1.0)) {