Various fixes

This commit is contained in:
Ilya Laktyushin 2021-02-14 17:44:19 +04:00
parent 9dd0e3f69e
commit 656f4899c2
4 changed files with 20 additions and 12 deletions

View File

@ -44,7 +44,11 @@ func isValidNumberOfUsers(_ number: String) -> Bool {
if number.rangeOfCharacter(from: invalidAmountCharacters) != nil || number == "0" {
return false
}
return true
if let _ = Int32(number) {
return true
} else {
return false
}
}
private enum InviteLinksEditEntry: ItemListNodeEntry {
@ -55,7 +59,7 @@ private enum InviteLinksEditEntry: ItemListNodeEntry {
case timeInfo(PresentationTheme, String)
case usageHeader(PresentationTheme, String)
case usagePicker(PresentationTheme, InviteLinkUsageLimit)
case usagePicker(PresentationTheme, PresentationDateTimeFormat, InviteLinkUsageLimit)
case usageCustomPicker(PresentationTheme, Int32?, Bool, Bool)
case usageInfo(PresentationTheme, String)
@ -135,8 +139,8 @@ private enum InviteLinksEditEntry: ItemListNodeEntry {
} else {
return false
}
case let .usagePicker(lhsTheme, lhsValue):
if case let .usagePicker(rhsTheme, rhsValue) = rhs, lhsTheme === rhsTheme, lhsValue == rhsValue {
case let .usagePicker(lhsTheme, lhsDateTimeFormat, lhsValue):
if case let .usagePicker(rhsTheme, rhsDateTimeFormat, rhsValue) = rhs, lhsTheme === rhsTheme, lhsDateTimeFormat == rhsDateTimeFormat, lhsValue == rhsValue {
return true
} else {
return false
@ -209,8 +213,8 @@ private enum InviteLinksEditEntry: ItemListNodeEntry {
return ItemListTextItem(presentationData: presentationData, text: .plain(text), sectionId: self.section)
case let .usageHeader(_, text):
return ItemListSectionHeaderItem(presentationData: presentationData, text: text, sectionId: self.section)
case let .usagePicker(_, value):
return ItemListInviteLinkUsageLimitItem(theme: presentationData.theme, strings: presentationData.strings, value: value, enabled: true, sectionId: self.section, updated: { value in
case let .usagePicker(_, dateTimeFormat, value):
return ItemListInviteLinkUsageLimitItem(theme: presentationData.theme, strings: presentationData.strings, dateTimeFormat: dateTimeFormat, value: value, enabled: true, sectionId: self.section, updated: { value in
arguments.dismissInput()
arguments.updateState({ state in
var updatedState = state
@ -234,7 +238,9 @@ private enum InviteLinksEditEntry: ItemListNodeEntry {
}
arguments.updateState { state in
var updatedState = state
updatedState.usage = InviteLinkUsageLimit(value: Int32(updatedText))
if let value = Int32(updatedText) {
updatedState.usage = InviteLinkUsageLimit(value: value)
}
return updatedState
}
}, shouldUpdateText: { text in
@ -288,7 +294,7 @@ private func inviteLinkEditControllerEntries(invite: ExportedInvitation?, state:
entries.append(.timeInfo(presentationData.theme, presentationData.strings.InviteLink_Create_TimeLimitInfo))
entries.append(.usageHeader(presentationData.theme, presentationData.strings.InviteLink_Create_UsersLimit.uppercased()))
entries.append(.usagePicker(presentationData.theme, state.usage))
entries.append(.usagePicker(presentationData.theme, presentationData.dateTimeFormat, state.usage))
var customValue = false
if case .custom = state.usage {

View File

@ -297,7 +297,7 @@ private func inviteLinkListControllerEntries(presentationData: PresentationData,
mainInvite = nil
}
entries.append(.mainLinkHeader(presentationData.theme, isPublic ? presentationData.strings.InviteLink_PublicLink.uppercased() : presentationData.strings.InviteLink_PermanentLink.uppercased()))
entries.append(.mainLinkHeader(presentationData.theme, isPublic ? presentationData.strings.InviteLink_PublicLink.uppercased() : presentationData.strings.InviteLink_InviteLink.uppercased()))
let importersCount: Int32
if let count = importers?.count {

View File

@ -89,14 +89,16 @@ enum InviteLinkUsageLimit: Equatable {
final class ItemListInviteLinkUsageLimitItem: ListViewItem, ItemListItem {
let theme: PresentationTheme
let strings: PresentationStrings
let dateTimeFormat: PresentationDateTimeFormat
let value: InviteLinkUsageLimit
let enabled: Bool
let sectionId: ItemListSectionId
let updated: (InviteLinkUsageLimit) -> Void
init(theme: PresentationTheme, strings: PresentationStrings, value: InviteLinkUsageLimit, enabled: Bool, sectionId: ItemListSectionId, updated: @escaping (InviteLinkUsageLimit) -> Void) {
init(theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, value: InviteLinkUsageLimit, enabled: Bool, sectionId: ItemListSectionId, updated: @escaping (InviteLinkUsageLimit) -> Void) {
self.theme = theme
self.strings = strings
self.dateTimeFormat = dateTimeFormat
self.value = value
self.enabled = enabled
self.sectionId = sectionId
@ -285,7 +287,7 @@ private final class ItemListInviteLinkUsageLimitItemNode: ListViewItemNode {
let customTextString: String
if case let .custom(value) = item.value {
customTextString = "\(value)"
customTextString = compactNumericCountString(Int(value), decimalSeparator: item.dateTimeFormat.decimalSeparator)
} else {
customTextString = ""
}

View File

@ -413,7 +413,7 @@ public func universalServiceMessageString(presentationData: (PresentationTheme,
let titleString = strings.Notification_VoiceChatEnded(callDurationString(strings: strings, value: duration)).0
attributedString = NSAttributedString(string: titleString, font: titleFont, textColor: primaryTextColor)
} else {
var attributePeerIds: [(Int, PeerId?)] = [(0, message.author?.id)]
let attributePeerIds: [(Int, PeerId?)] = [(0, message.author?.id)]
let titleString = strings.Notification_VoiceChatStarted(authorName)
attributedString = addAttributesToStringWithRanges(titleString, body: bodyAttributes, argumentAttributes: peerMentionsAttributes(primaryTextColor: primaryTextColor, peerIds: attributePeerIds))
}