Merge commit '0ffcbf0b061fb71912f74e4b5575524a1d0de362'

This commit is contained in:
Ali
2022-10-25 19:12:21 +04:00
11 changed files with 57 additions and 36 deletions

View File

@@ -222,8 +222,12 @@ func _internal_toggleAddressNameActive(account: Account, domain: AddressNameDoma
switch domain {
case .account:
return account.network.request(Api.functions.account.toggleUsername(username: name, active: active ? .boolTrue : .boolFalse), automaticFloodWait: false)
|> mapError { _ -> ToggleAddressNameActiveError in
return .generic
|> mapError { error -> ToggleAddressNameActiveError in
if error.errorDescription == "USERNAMES_ACTIVE_TOO_MUCH" {
return .activeLimitReached
} else {
return .generic
}
}
|> mapToSignal { result -> Signal<Void, ToggleAddressNameActiveError> in
return account.postbox.transaction { transaction -> Void in
@@ -276,8 +280,12 @@ func _internal_toggleAddressNameActive(account: Account, domain: AddressNameDoma
case let .peer(peerId):
if let peer = transaction.getPeer(peerId), let inputChannel = apiInputChannel(peer) {
return account.network.request(Api.functions.channels.toggleUsername(channel: inputChannel, username: name, active: active ? .boolTrue : .boolFalse), automaticFloodWait: false)
|> mapError { _ -> ToggleAddressNameActiveError in
return .generic
|> mapError { error -> ToggleAddressNameActiveError in
if error.errorDescription == "USERNAMES_ACTIVE_TOO_MUCH" {
return .activeLimitReached
} else {
return .generic
}
}
|> mapToSignal { result -> Signal<Void, ToggleAddressNameActiveError> in
return account.postbox.transaction { transaction -> Void in

View File

@@ -145,27 +145,27 @@ public enum EnginePeer: Equatable {
}
public enum IndexName: Equatable {
case title(title: String, addressName: String?)
case personName(first: String, last: String, addressName: String?, phoneNumber: String?)
case title(title: String, addressNames: [String])
case personName(first: String, last: String, addressNames: [String], phoneNumber: String?)
public var isEmpty: Bool {
switch self {
case let .title(title, addressName):
case let .title(title, addressNames):
if !title.isEmpty {
return false
}
if let addressName = addressName, !addressName.isEmpty {
if !addressNames.isEmpty {
return false
}
return true
case let .personName(first, last, addressName, phoneNumber):
case let .personName(first, last, addressNames, phoneNumber):
if !first.isEmpty {
return false
}
if !last.isEmpty {
return false
}
if let addressName = addressName, !addressName.isEmpty {
if !addressNames.isEmpty {
return false
}
if let phoneNumber = phoneNumber, !phoneNumber.isEmpty {
@@ -396,19 +396,19 @@ public extension EnginePeer.Presence {
public extension EnginePeer.IndexName {
init(_ indexName: PeerIndexNameRepresentation) {
switch indexName {
case let .title(title, addressName):
self = .title(title: title, addressName: addressName)
case let .personName(first, last, addressName, phoneNumber):
self = .personName(first: first, last: last, addressName: addressName, phoneNumber: phoneNumber)
case let .title(title, addressNames):
self = .title(title: title, addressNames: addressNames)
case let .personName(first, last, addressNames, phoneNumber):
self = .personName(first: first, last: last, addressNames: addressNames, phoneNumber: phoneNumber)
}
}
func _asIndexName() -> PeerIndexNameRepresentation {
switch self {
case let .title(title, addressName):
return .title(title: title, addressName: addressName)
case let .personName(first, last, addressName, phoneNumber):
return .personName(first: first, last: last, addressName: addressName, phoneNumber: phoneNumber)
case let .title(title, addressNames):
return .title(title: title, addressNames: addressNames)
case let .personName(first, last, addressNames, phoneNumber):
return .personName(first: first, last: last, addressNames: addressNames, phoneNumber: phoneNumber)
}
}