Skip to content
This repository has been archived by the owner on May 6, 2024. It is now read-only.

Commit

Permalink
ORA submissions not reflecting on Dates tab (#1452)
Browse files Browse the repository at this point in the history
* added pull to refresh support on full page dates view
  • Loading branch information
mumer92 committed Jan 7, 2021
1 parent 241b73d commit 55ecb58
Showing 1 changed file with 17 additions and 9 deletions.
26 changes: 17 additions & 9 deletions Source/CourseDatesViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,12 @@ class CourseDatesViewController: UIViewController, InterfaceOrientationOverridin
return tableView
}()

private lazy var refreshController: PullRefreshController = {
let refreshController = PullRefreshController()
refreshController.delegate = self
return refreshController
}()

private lazy var loadController = LoadStateViewController()
private lazy var courseDateBannerView = CourseDateBannerView(frame: .zero)

Expand Down Expand Up @@ -80,8 +86,10 @@ class CourseDatesViewController: UIViewController, InterfaceOrientationOverridin
tableView.setAndLayoutTableHeaderView(header: courseDateBannerView)
}

private func loadStreams() {
loadController.state = .Initial
private func loadStreams(fromPullToRefresh: Bool = false) {
if !fromPullToRefresh {
loadController.state = .Initial
}
loadCourseDates()
loadCourseBannerStream()
}
Expand All @@ -97,6 +105,7 @@ class CourseDatesViewController: UIViewController, InterfaceOrientationOverridin
view.addSubview(tableView)
navigationItem.title = Strings.Coursedates.courseImportantDatesTitle
loadController.setupInController(controller: self, contentView: tableView)
refreshController.setupInScrollView(scrollView: tableView)
}

private func loadCourseDates() {
Expand Down Expand Up @@ -134,7 +143,6 @@ class CourseDatesViewController: UIViewController, InterfaceOrientationOverridin
switch result {
case .success(let courseBanner):
self?.loadCourseDateBannerView(bannerModel: courseBanner)
self?.setTableViewScrolling()
break

case .failure(let error):
Expand Down Expand Up @@ -204,7 +212,6 @@ class CourseDatesViewController: UIViewController, InterfaceOrientationOverridin

dateBlocksMapSortedKeys = dateBlocksMap.keys.sorted()
tableView.reloadData()
setTableViewScrolling()
}

override func didReceiveMemoryWarning() {
Expand All @@ -230,11 +237,6 @@ class CourseDatesViewController: UIViewController, InterfaceOrientationOverridin
}
}

private func setTableViewScrolling() {
let contentHeight = (CGFloat(dateBlocksMapSortedKeys.count) * tableView.rowHeight) + courseDateBannerView.frame.size.height
tableView.alwaysBounceVertical = contentHeight > tableView.frame.size.height
}

private func resetCourseDate() {
trackDatesShiftTapped()

Expand Down Expand Up @@ -321,6 +323,12 @@ extension CourseDatesViewController: UITableViewDataSource {

extension CourseDatesViewController: UITableViewDelegate { }

extension CourseDatesViewController: PullRefreshControllerDelegate {
func refreshControllerActivated(controller: PullRefreshController) {
loadStreams(fromPullToRefresh: true)
}
}

extension CourseDatesViewController: CourseDateViewCellDelegate {
func didSelectLink(with url: URL) {
if UIApplication.shared.canOpenURL(url) {
Expand Down

0 comments on commit 55ecb58

Please sign in to comment.