// // NetworkUIImage.swift // Wallet // // Created by Igor on 23.03.2021. // Copyright © 2021 AM. All rights reserved. // import UIKit import AlamofireImage // MARK: - REFACTOR extension UIImage { static func account(_ account: String, size: CGSize = .init(width: 56, height: 56)) -> UIImage { draw(size: size) { (size,_) in (.view { $0.lzText = String(account.prefix(3)) $0.font = .font(style: .medium, size: 16) $0.textColor = Asset.textPebble.color $0.textAlignment = .center } as UILabel).drawText(in: .init(origin: .zero, size: size)) Asset.marble.color.setStroke() let path = UIBezierPath(ovalIn: .init(origin: .zero, size: size)) path.lineWidth = 2 path.stroke() } } static func from(token: Network.Model.Token?) -> UIImage? { guard let token = token else { return nil } if token.contract.lowercased() == "rublesrubles" { return UIImage(named: "token-\(token.symbol.lowercased())") } if token.contract.lowercased() == "eosiotptoken" { return Asset.tokenTPT.image } if token.contract.lowercased() == "everipediaiq" { return Asset.tokenIQ.image } if token.contract.lowercased() == "pizzatotoken" { return Asset.tokenPizza.image } guard let contract = ApplicationEnvironment.shared().current.contract(token.contract) else { return nil } switch contract { case .cash: if !token.isCertificate { return UIImage(named: "token-\(token.symbol.lowercased())") } else { return Asset.tokenGT.image } case .list: return Asset.tokenLI.image case .eosioToken: return Asset.tokenEOS.image case .usdt: return Asset.tokenUSDT.image case .swap: if token.isMLNK { return UIImage(named: "token-\(token.symbol.lowercased())") } else { return Asset.tokenSwap.image } default: return nil } } } extension UIImageView { convenience init(token: Network.Model.Token) { self.init() self.setImageFrom(token: token) } func setImageFrom(token: Network.Model.Token) { image = nil if let image = UIImage.from(token: token) { self.image = image } else { af.setImage(withURL: .from(symbol: token.symbol, contract: token.contract)) { [weak self] in if $0.error != nil { self?.af.setImage(withURL: .from(symbol: token.symbol)) } } } } }