86 lines
2.7 KiB
Swift
86 lines
2.7 KiB
Swift
//
|
|
// 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))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|