aboutsummaryrefslogtreecommitdiff
path: root/foray
diff options
context:
space:
mode:
Diffstat (limited to 'foray')
-rw-r--r--foray/Coordinators/ForayCoordinator.swift6
-rw-r--r--foray/Models/PenguinItemViewModel.swift19
-rw-r--r--foray/Presenters/PenguinItemPresenter.swift2
-rw-r--r--foray/Scenes/ForayTableViewController.swift16
4 files changed, 25 insertions, 18 deletions
diff --git a/foray/Coordinators/ForayCoordinator.swift b/foray/Coordinators/ForayCoordinator.swift
index 972bfb8..70febce 100644
--- a/foray/Coordinators/ForayCoordinator.swift
+++ b/foray/Coordinators/ForayCoordinator.swift
@@ -39,7 +39,7 @@ class ForayCoordinator: Coordinator {
}
func share(item: PenguinItemViewModel) {
- let itemSource = ForayLinkPresentationSource(title: "\(item.name) (#\(item.id))", shareURL: URL(string: "https://nick.tay.blue/")!)
+ let itemSource = ForayLinkPresentationSource(title: "\(item.name) (#\(item.id))", shareURL: URL(string: "https://nick.tay.blue/")!, image: item.icon)
let activity = UIActivityViewController(activityItems: [itemSource], applicationActivities: nil)
navigationController.present(activity, animated: true)
}
@@ -61,9 +61,9 @@ class ForayLinkPresentationSource: NSObject, UIActivityItemSource {
return metadata.originalURL
}
- init(title: String, shareURL: URL) {
+ init(title: String, shareURL: URL, image: UIImage? = nil) {
metadata = LPLinkMetadata()
- metadata.iconProvider = NSItemProvider(contentsOf: Bundle.main.url(forResource: "spy", withExtension: "png"))
+ metadata.iconProvider = NSItemProvider(object: image ?? UIImage.fromAsset(.spy))
metadata.originalURL = shareURL
metadata.url = shareURL
metadata.title = title
diff --git a/foray/Models/PenguinItemViewModel.swift b/foray/Models/PenguinItemViewModel.swift
index 9b9b058..dcaa16d 100644
--- a/foray/Models/PenguinItemViewModel.swift
+++ b/foray/Models/PenguinItemViewModel.swift
@@ -6,6 +6,7 @@
//
import Foundation
+import UIKit
struct PenguinItemViewModel {
let type: PenguinItemType
@@ -13,4 +14,22 @@ struct PenguinItemViewModel {
let year: Int
let id: String
let name: String
+
+ var typeName: String {
+ switch type {
+ case .item:
+ return "Item"
+ case .quest:
+ return "Quest"
+ }
+ }
+
+ var icon: UIImage {
+ switch type {
+ case .item:
+ return UIImage(named: id) ?? UIImage.fromAsset(.spy)
+ case .quest:
+ return UIImage.fromAsset(.spy)
+ }
+ }
}
diff --git a/foray/Presenters/PenguinItemPresenter.swift b/foray/Presenters/PenguinItemPresenter.swift
index 45b970c..9d6525d 100644
--- a/foray/Presenters/PenguinItemPresenter.swift
+++ b/foray/Presenters/PenguinItemPresenter.swift
@@ -21,7 +21,7 @@ class PenguinItemPresenter {
return transform(models: apiItems)
}
- func transform(models: [PenguinItemModel]) -> [PenguinItemViewModel] {
+ private func transform(models: [PenguinItemModel]) -> [PenguinItemViewModel] {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
diff --git a/foray/Scenes/ForayTableViewController.swift b/foray/Scenes/ForayTableViewController.swift
index 3d839a1..64ec086 100644
--- a/foray/Scenes/ForayTableViewController.swift
+++ b/foray/Scenes/ForayTableViewController.swift
@@ -80,21 +80,9 @@ class ForayTableViewController: UITableViewController, Coordinated {
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- let item = self.sections[indexPath.section].items[indexPath.row]
-
- let type: String
- let icon: UIImage
- switch item.type {
- case .item:
- type = "Item"
- icon = UIImage(named: item.id) ?? UIImage.fromAsset(.it)
- case .quest:
- type = "Quest"
- icon = UIImage.fromAsset(.spy)
- }
-
guard let cell = tableView.dequeueReusableCell(withIdentifier: "ForayTableViewCell", for: indexPath) as? ForayTableViewCell else { return ForayTableViewCell() }
- cell.setData(name: item.name, desc: type + "ID: " + item.id, img: icon)
+ let item = self.sections[indexPath.section].items[indexPath.row]
+ cell.setData(name: item.name, desc: item.typeName + "ID: " + item.id, img: item.icon)
return cell
}