update icon in detailed page
This commit is contained in:
parent
e428f7993d
commit
ac007fec6d
2 changed files with 37 additions and 1 deletions
|
|
@ -7,12 +7,14 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
|
import FavIcon
|
||||||
|
|
||||||
class PasswordDetailTableViewController: UITableViewController, UIGestureRecognizerDelegate {
|
class PasswordDetailTableViewController: UITableViewController, UIGestureRecognizerDelegate {
|
||||||
var passwordEntity: PasswordEntity?
|
var passwordEntity: PasswordEntity?
|
||||||
var passwordCategoryEntities: [PasswordCategoryEntity]?
|
var passwordCategoryEntities: [PasswordCategoryEntity]?
|
||||||
var passwordCategoryText = ""
|
var passwordCategoryText = ""
|
||||||
var password = Password()
|
var password = Password()
|
||||||
|
var passwordImage: UIImage?
|
||||||
|
|
||||||
struct TableCell {
|
struct TableCell {
|
||||||
var title: String
|
var title: String
|
||||||
|
|
@ -79,16 +81,39 @@ class PasswordDetailTableViewController: UITableViewController, UIGestureRecogni
|
||||||
tableDataIndex += 1
|
tableDataIndex += 1
|
||||||
for addition in self.password.additions {
|
for addition in self.password.additions {
|
||||||
self.tableData[tableDataIndex].item.append(TableCell(title: addition.title, content: addition.content))
|
self.tableData[tableDataIndex].item.append(TableCell(title: addition.title, content: addition.content))
|
||||||
|
if addition.title.lowercased() == "url" {
|
||||||
|
self.password.url = addition.content
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DispatchQueue.main.async {
|
DispatchQueue.main.async {
|
||||||
self.tableView.reloadData()
|
self.tableView.reloadData()
|
||||||
indicator.stopAnimating()
|
indicator.stopAnimating()
|
||||||
indicatorLable.isHidden = true
|
indicatorLable.isHidden = true
|
||||||
|
if self.password.url != "" {
|
||||||
|
self.updatePasswordImage(url: self.password.url)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func updatePasswordImage(url: String) {
|
||||||
|
do {
|
||||||
|
try FavIcon.downloadPreferred(url) { result in
|
||||||
|
switch result {
|
||||||
|
case .success(let image):
|
||||||
|
let indexPath = IndexPath(row: 0, section: 0)
|
||||||
|
self.passwordImage = image
|
||||||
|
self.tableView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
|
||||||
|
case .failure(let error):
|
||||||
|
print(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
print(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func tapMenu(recognizer: UITapGestureRecognizer) {
|
func tapMenu(recognizer: UITapGestureRecognizer) {
|
||||||
if recognizer.state == UIGestureRecognizerState.ended {
|
if recognizer.state == UIGestureRecognizerState.ended {
|
||||||
let tapLocation = recognizer.location(in: self.tableView)
|
let tapLocation = recognizer.location(in: self.tableView)
|
||||||
|
|
@ -125,7 +150,7 @@ class PasswordDetailTableViewController: UITableViewController, UIGestureRecogni
|
||||||
|
|
||||||
if sectionIndex == 0 && rowIndex == 0 {
|
if sectionIndex == 0 && rowIndex == 0 {
|
||||||
let cell = tableView.dequeueReusableCell(withIdentifier: "passwordDetailTitleTableViewCell", for: indexPath) as! PasswordDetailTitleTableViewCell
|
let cell = tableView.dequeueReusableCell(withIdentifier: "passwordDetailTitleTableViewCell", for: indexPath) as! PasswordDetailTitleTableViewCell
|
||||||
cell.passwordImageImageView.image = #imageLiteral(resourceName: "PasswordImagePlaceHolder")
|
cell.passwordImageImageView.image = passwordImage ?? #imageLiteral(resourceName: "PasswordImagePlaceHolder")
|
||||||
cell.nameLabel.text = passwordEntity?.name
|
cell.nameLabel.text = passwordEntity?.name
|
||||||
cell.categoryLabel.text = passwordCategoryText
|
cell.categoryLabel.text = passwordCategoryText
|
||||||
return cell
|
return cell
|
||||||
|
|
|
||||||
|
|
@ -18,12 +18,14 @@ class Password {
|
||||||
var name: String
|
var name: String
|
||||||
var username: String
|
var username: String
|
||||||
var password: String
|
var password: String
|
||||||
|
var url: String
|
||||||
var additions: [AdditionField]
|
var additions: [AdditionField]
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
name = ""
|
name = ""
|
||||||
password = ""
|
password = ""
|
||||||
username = ""
|
username = ""
|
||||||
|
url = ""
|
||||||
additions = []
|
additions = []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -32,6 +34,15 @@ class Password {
|
||||||
self.username = username
|
self.username = username
|
||||||
self.password = password
|
self.password = password
|
||||||
self.additions = additions
|
self.additions = additions
|
||||||
|
self.url = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
init(name: String, username: String, password: String, url: String, additions: [AdditionField]) {
|
||||||
|
self.name = name
|
||||||
|
self.username = username
|
||||||
|
self.password = password
|
||||||
|
self.url = url
|
||||||
|
self.additions = additions
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue