Browse Source

pull to refresh added

pull/1/head
gme_2 6 years ago
parent
commit
41d66cecd2
  1. 1
      GMERemittance/Module/Home/Application Logic/Interactor/HomeInteractor.swift
  2. 14
      GMERemittance/Module/Home/Application Logic/Service/HomeServiceType.swift
  3. 4
      GMERemittance/Module/Home/User Interface/Presenter/HomePresenter.swift
  4. 13
      GMERemittance/Module/Home/User Interface/View/HomeViewController.swift
  5. 1
      GMERemittance/Module/Home/User Interface/View/HomeViewInterface.swift

1
GMERemittance/Module/Home/Application Logic/Interactor/HomeInteractor.swift

@ -30,6 +30,7 @@ extension HomeInteractor: HomeInteractorInput {
func fetchUserInfo() { func fetchUserInfo() {
self.service.fetchUserInfo(success: { user in self.service.fetchUserInfo(success: { user in
self.output?.show(model: user) self.output?.show(model: user)
}) { error in }) { error in
self.output?.show(error: error) self.output?.show(error: error)
} }

14
GMERemittance/Module/Home/Application Logic/Service/HomeServiceType.swift

@ -14,11 +14,11 @@ protocol HomeServiceType: class, UserInfoService {
protocol UserInfoService: ApiServiceType { protocol UserInfoService: ApiServiceType {
func fetchUserInfo(success: @escaping (User?) -> (), failure: @escaping (Error) -> ())
func fetchUserInfo(success: @escaping (User) -> (), failure: @escaping (Error) -> ())
} }
extension UserInfoService { extension UserInfoService {
func fetchUserInfo(success: @escaping (User?) -> (), failure: @escaping (Error) -> ()) {
func fetchUserInfo(success: @escaping (User) -> (), failure: @escaping (Error) -> ()) {
// let params = [ "userId": userId, "password": password ] // let params = [ "userId": userId, "password": password ]
let url = baseUrl + "" let url = baseUrl + ""
auth.request(method: .post, url: url, params: nil, success: { (response: UserContainer ) in auth.request(method: .post, url: url, params: nil, success: { (response: UserContainer ) in
@ -26,8 +26,14 @@ extension UserInfoService {
let error = NSError.init(domain: "Network", code: 0, userInfo: [NSLocalizedDescriptionKey : response.message ?? ""]) let error = NSError.init(domain: "Network", code: 0, userInfo: [NSLocalizedDescriptionKey : response.message ?? ""])
failure(error) failure(error)
}else { }else {
let model = response.data
success(model)
if let model = response.data {
success(model)
}else {
let error = NSError.init(domain: "UserInfoService", code: 0, userInfo: [NSLocalizedDescriptionKey : "Failed to map info from server"])
failure(error)
}
} }
}) { (error) in }) { (error) in
failure(error) failure(error)

4
GMERemittance/Module/Home/User Interface/Presenter/HomePresenter.swift

@ -51,12 +51,12 @@ extension HomePresenter: HomeModuleInterface {
extension HomePresenter: HomeInteractorOutput { extension HomePresenter: HomeInteractorOutput {
func show(model: User) { func show(model: User) {
self.view?.showLoading()
self.view?.endRefreshing()
self.view?.show(model: model) self.view?.show(model: model)
} }
func show(error: Error) { func show(error: Error) {
self.view?.hideLoading()
self.view?.endRefreshing()
self.view?.show(error: error.localizedDescription) self.view?.show(error: error.localizedDescription)
} }
} }

13
GMERemittance/Module/Home/User Interface/View/HomeViewController.swift

@ -135,12 +135,6 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout {
presenter?.refreshData() presenter?.refreshData()
} }
func endRefreshing() {
if self.tableView.refreshControl?.isRefreshing == true {
self.tableView.refreshControl?.endRefreshing()
self.tableView.contentOffset.y = 0
}
}
@objc func showNotification(){ @objc func showNotification(){
performSegue(withIdentifier: "notification", sender: nil) performSegue(withIdentifier: "notification", sender: nil)
@ -323,6 +317,13 @@ extension HomeViewController: HomeViewInterface {
func hideLoading() { func hideLoading() {
self.hideProgressHud() self.hideProgressHud()
} }
func endRefreshing() {
if self.tableView.refreshControl?.isRefreshing == true {
self.tableView.refreshControl?.endRefreshing()
self.tableView.contentOffset.y = 0
}
}
} }

1
GMERemittance/Module/Home/User Interface/View/HomeViewInterface.swift

@ -11,4 +11,5 @@ protocol HomeViewInterface: class {
func show(error: String) func show(error: String)
func showLoading() func showLoading()
func hideLoading() func hideLoading()
func endRefreshing()
} }
Loading…
Cancel
Save