aboutsummaryrefslogtreecommitdiff
path: root/foray/ForayTableViewController.swift
diff options
context:
space:
mode:
Diffstat (limited to 'foray/ForayTableViewController.swift')
-rw-r--r--foray/ForayTableViewController.swift107
1 files changed, 0 insertions, 107 deletions
diff --git a/foray/ForayTableViewController.swift b/foray/ForayTableViewController.swift
deleted file mode 100644
index 37ac2e5..0000000
--- a/foray/ForayTableViewController.swift
+++ /dev/null
@@ -1,107 +0,0 @@
-//
-// ForayTableViewController.swift
-// foray
-//
-// Created by Nicholas Tay on 14/3/2022.
-//
-
-import UIKit
-
-class ForayTableViewController: UITableViewController, ForayCoordinated {
-
- var coordinator: ForayCoordinator?
-
- // MARK: - Static data TEMP
-
- var sections = [YearSection]()
-
- // MARK: - On load
-
- override func viewDidLoad() {
- super.viewDidLoad()
- self.title = "Foray"
-
- tableView.rowHeight = UITableView.automaticDimension
-
- // Register our custom cell
- tableView.register(ForayNewTableViewCell.self, forCellReuseIdentifier: "ForayNewTableViewCell")
-
- // Not sure if this is the right way to go about this...
- coordinator?.showLoading()
- reloadApiData()
-
- self.refreshControl = UIRefreshControl()
- self.refreshControl?.addTarget(self, action: #selector(doRefresh), for: UIControl.Event.valueChanged)
- }
-
- @objc func doRefresh(sender: AnyObject) {
- reloadApiData()
- }
-
- func reloadApiData() {
- ForayNetworkManager.shared.get(
- url: "https://users.windblume.net/~nick/upload/dummy.json",
- onComplete: { (apiItems: [PenguinItem]) in
- var items = apiItems
-
- // Show items in chronological order within sections
- items.sort { (lhs, rhs) in lhs.releaseDate < rhs.releaseDate }
-
- // Group by year sections
- let groups = Dictionary(grouping: apiItems) { (item) in
- return Calendar.current.component(.year, from: item.releaseDate)
- }
- self.sections = groups.map { (key, values) in
- return YearSection(year: key, items: values)
- }
- // Sort the sections from oldest year to newest
- self.sections.sort { (lhs, rhs) in lhs.year < rhs.year }
-
- self.tableView.reloadData()
- self.refreshControl?.endRefreshing()
- self.coordinator?.hideLoading()
- })
- }
-
- // MARK: - Table view data source
-
- override func numberOfSections(in tableView: UITableView) -> Int {
- // Returns number of sections for table
- return self.sections.count
- }
-
- override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- // Returns number of rows for table's section
- return self.sections[section].items.count
- }
-
- 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)!
- case .quest:
- type = "Quest"
- icon = UIImage(named: "spy")!
- }
-
- let cell: ForayNewTableViewCell = tableView.dequeueReusableCell(withIdentifier: "ForayNewTableViewCell", for: indexPath) as! ForayNewTableViewCell
- cell.setData(name: item.name, desc: type + "ID: " + item.id, img: icon)
- return cell
- }
-
- override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
- return "Released in \(self.sections[section].year)"
- }
-
- override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
- tableView.deselectRow(at: indexPath, animated: true)
-
- let item = self.sections[indexPath.section].items[indexPath.row]
- self.coordinator?.showDetails(item: item)
- }
-}