Browse Source

model added

pull/1/head
gme_2 6 years ago
parent
commit
83f1b7ab52
  1. BIN
      GMERemittance.xcworkspace/xcuserdata/shishir.xcuserdatad/UserInterfaceState.xcuserstate
  2. 6
      GMERemittance/Assets.xcassets/ccr/flags/Contents.json
  3. 21
      GMERemittance/Assets.xcassets/ccr/flags/flag_australia.imageset/Contents.json
  4. BIN
      GMERemittance/Assets.xcassets/ccr/flags/flag_australia.imageset/flag_australia.png
  5. 21
      GMERemittance/Assets.xcassets/ccr/flags/flag_bangladesh.imageset/Contents.json
  6. BIN
      GMERemittance/Assets.xcassets/ccr/flags/flag_bangladesh.imageset/flag_bangladesh.png
  7. 21
      GMERemittance/Assets.xcassets/ccr/flags/flag_cambodia.imageset/Contents.json
  8. BIN
      GMERemittance/Assets.xcassets/ccr/flags/flag_cambodia.imageset/flag_cambodia.png
  9. 21
      GMERemittance/Assets.xcassets/ccr/flags/flag_china.imageset/Contents.json
  10. BIN
      GMERemittance/Assets.xcassets/ccr/flags/flag_china.imageset/flag_china.png
  11. 21
      GMERemittance/Assets.xcassets/ccr/flags/flag_india.imageset/Contents.json
  12. BIN
      GMERemittance/Assets.xcassets/ccr/flags/flag_india.imageset/flag_india.png
  13. 21
      GMERemittance/Assets.xcassets/ccr/flags/flag_indonesia.imageset/Contents.json
  14. BIN
      GMERemittance/Assets.xcassets/ccr/flags/flag_indonesia.imageset/flag_indonesia.png
  15. 21
      GMERemittance/Assets.xcassets/ccr/flags/flag_korean.imageset/Contents.json
  16. BIN
      GMERemittance/Assets.xcassets/ccr/flags/flag_korean.imageset/flag_korean.png
  17. 21
      GMERemittance/Assets.xcassets/ccr/flags/flag_malaysia.imageset/Contents.json
  18. BIN
      GMERemittance/Assets.xcassets/ccr/flags/flag_malaysia.imageset/flag_malaysia.png
  19. 21
      GMERemittance/Assets.xcassets/ccr/flags/flag_myanmar.imageset/Contents.json
  20. BIN
      GMERemittance/Assets.xcassets/ccr/flags/flag_myanmar.imageset/flag_myanmar.png
  21. 21
      GMERemittance/Assets.xcassets/ccr/flags/flag_nepal.imageset/Contents.json
  22. BIN
      GMERemittance/Assets.xcassets/ccr/flags/flag_nepal.imageset/flag_nepal.png
  23. 21
      GMERemittance/Assets.xcassets/ccr/flags/flag_pakistan.imageset/Contents.json
  24. BIN
      GMERemittance/Assets.xcassets/ccr/flags/flag_pakistan.imageset/flag_pakistan.png
  25. 21
      GMERemittance/Assets.xcassets/ccr/flags/flag_philippines.imageset/Contents.json
  26. BIN
      GMERemittance/Assets.xcassets/ccr/flags/flag_philippines.imageset/flag_philippines.png
  27. 21
      GMERemittance/Assets.xcassets/ccr/flags/flag_singapore.imageset/Contents.json
  28. BIN
      GMERemittance/Assets.xcassets/ccr/flags/flag_singapore.imageset/flag_singapore.png
  29. 21
      GMERemittance/Assets.xcassets/ccr/flags/flag_srilanka.imageset/Contents.json
  30. BIN
      GMERemittance/Assets.xcassets/ccr/flags/flag_srilanka.imageset/flag_srilanka.png
  31. 21
      GMERemittance/Assets.xcassets/ccr/flags/flag_thailand.imageset/Contents.json
  32. BIN
      GMERemittance/Assets.xcassets/ccr/flags/flag_thailand.imageset/flag_thailand.png
  33. 21
      GMERemittance/Assets.xcassets/ccr/flags/flag_vietnam.imageset/Contents.json
  34. BIN
      GMERemittance/Assets.xcassets/ccr/flags/flag_vietnam.imageset/flag_vietnam.png
  35. 21
      GMERemittance/Assets.xcassets/ccr/right.imageset/Contents.json
  36. BIN
      GMERemittance/Assets.xcassets/ccr/right.imageset/right.png
  37. 17
      GMERemittance/Library/TablePicker/TablePickerTableViewCell.swift
  38. 77
      GMERemittance/Library/TablePicker/TablePickerViewController.swift
  39. 6
      GMERemittance/Library/TablePicker/TablePickerWithImageTableViewCell.swift
  40. 16
      GMERemittance/Model/ExchangeModel.swift
  41. 51
      GMERemittance/Module/ExchangeRateViewControllerV2.swift

BIN
GMERemittance.xcworkspace/xcuserdata/shishir.xcuserdatad/UserInterfaceState.xcuserstate

6
GMERemittance/Assets.xcassets/ccr/flags/Contents.json

@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}

21
GMERemittance/Assets.xcassets/ccr/flags/flag_australia.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "flag_australia.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GMERemittance/Assets.xcassets/ccr/flags/flag_australia.imageset/flag_australia.png

After

Width: 101  |  Height: 101  |  Size: 1.8 KiB

21
GMERemittance/Assets.xcassets/ccr/flags/flag_bangladesh.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "flag_bangladesh.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GMERemittance/Assets.xcassets/ccr/flags/flag_bangladesh.imageset/flag_bangladesh.png

After

Width: 100  |  Height: 100  |  Size: 954 B

21
GMERemittance/Assets.xcassets/ccr/flags/flag_cambodia.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "flag_cambodia.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GMERemittance/Assets.xcassets/ccr/flags/flag_cambodia.imageset/flag_cambodia.png

After

Width: 100  |  Height: 101  |  Size: 3.3 KiB

21
GMERemittance/Assets.xcassets/ccr/flags/flag_china.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "flag_china.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GMERemittance/Assets.xcassets/ccr/flags/flag_china.imageset/flag_china.png

After

Width: 100  |  Height: 100  |  Size: 1.3 KiB

21
GMERemittance/Assets.xcassets/ccr/flags/flag_india.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "flag_india.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GMERemittance/Assets.xcassets/ccr/flags/flag_india.imageset/flag_india.png

After

Width: 100  |  Height: 100  |  Size: 1.7 KiB

21
GMERemittance/Assets.xcassets/ccr/flags/flag_indonesia.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "flag_indonesia.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GMERemittance/Assets.xcassets/ccr/flags/flag_indonesia.imageset/flag_indonesia.png

After

Width: 100  |  Height: 100  |  Size: 248 B

21
GMERemittance/Assets.xcassets/ccr/flags/flag_korean.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "flag_korean.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GMERemittance/Assets.xcassets/ccr/flags/flag_korean.imageset/flag_korean.png

After

Width: 100  |  Height: 100  |  Size: 2.9 KiB

21
GMERemittance/Assets.xcassets/ccr/flags/flag_malaysia.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "flag_malaysia.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GMERemittance/Assets.xcassets/ccr/flags/flag_malaysia.imageset/flag_malaysia.png

After

Width: 100  |  Height: 100  |  Size: 2.6 KiB

21
GMERemittance/Assets.xcassets/ccr/flags/flag_myanmar.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "flag_myanmar.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GMERemittance/Assets.xcassets/ccr/flags/flag_myanmar.imageset/flag_myanmar.png

After

Width: 100  |  Height: 100  |  Size: 1.5 KiB

21
GMERemittance/Assets.xcassets/ccr/flags/flag_nepal.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "flag_nepal.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GMERemittance/Assets.xcassets/ccr/flags/flag_nepal.imageset/flag_nepal.png

After

Width: 100  |  Height: 100  |  Size: 2.6 KiB

21
GMERemittance/Assets.xcassets/ccr/flags/flag_pakistan.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "flag_pakistan.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GMERemittance/Assets.xcassets/ccr/flags/flag_pakistan.imageset/flag_pakistan.png

After

Width: 100  |  Height: 100  |  Size: 1.1 KiB

21
GMERemittance/Assets.xcassets/ccr/flags/flag_philippines.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "flag_philippines.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GMERemittance/Assets.xcassets/ccr/flags/flag_philippines.imageset/flag_philippines.png

After

Width: 100  |  Height: 100  |  Size: 2.7 KiB

21
GMERemittance/Assets.xcassets/ccr/flags/flag_singapore.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "flag_singapore.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GMERemittance/Assets.xcassets/ccr/flags/flag_singapore.imageset/flag_singapore.png

After

Width: 100  |  Height: 100  |  Size: 1.3 KiB

21
GMERemittance/Assets.xcassets/ccr/flags/flag_srilanka.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "flag_srilanka.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GMERemittance/Assets.xcassets/ccr/flags/flag_srilanka.imageset/flag_srilanka.png

After

Width: 100  |  Height: 100  |  Size: 2.8 KiB

21
GMERemittance/Assets.xcassets/ccr/flags/flag_thailand.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "flag_thailand.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GMERemittance/Assets.xcassets/ccr/flags/flag_thailand.imageset/flag_thailand.png

After

Width: 100  |  Height: 100  |  Size: 286 B

21
GMERemittance/Assets.xcassets/ccr/flags/flag_vietnam.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "flag_vietnam.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GMERemittance/Assets.xcassets/ccr/flags/flag_vietnam.imageset/flag_vietnam.png

After

Width: 100  |  Height: 100  |  Size: 836 B

21
GMERemittance/Assets.xcassets/ccr/right.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "right.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GMERemittance/Assets.xcassets/ccr/right.imageset/right.png

After

Width: 44  |  Height: 44  |  Size: 671 B

17
GMERemittance/Library/TablePicker/TablePickerTableViewCell.swift

@ -14,18 +14,21 @@ class TablePickerTableViewCell: UITableViewCell {
@IBOutlet weak var avatarButton: UIButton! @IBOutlet weak var avatarButton: UIButton!
@IBOutlet weak var checkImageView: UIImageView! @IBOutlet weak var checkImageView: UIImageView!
var selectedPlace: String?
var title: String?
var selectedPlace: ExchangeRateModel?
var place: ExchangeRateModel?
@IBOutlet weak var backgroundview: UIView! @IBOutlet weak var backgroundview: UIView!
func setup() { func setup() {
self.avatarButton.rounded()
self.backgroundview.layer.cornerRadius = 8.0 self.backgroundview.layer.cornerRadius = 8.0
self.titleLabel.text = title
if let character = title?.first {
self.avatarButton.setTitle("\(character)", for: .normal)
self.titleLabel.text = place?.country
if let image = UIImage.init(named: self.place?.countryCode ?? "") {
self.avatarButton.setImage(image, for: .normal)
} }
selectedPlace?.lowercased() == title?.lowercased() ? (self.checkImageView.isHidden = false) : (self.checkImageView.isHidden = true)
// let isselected = (selectedPlace?.country ?? "") == (place?.country ?? "")
let isselected = false // dont show tick at this time. not implement for country picker this time
self.checkImageView.isHidden = !isselected
} }
} }

77
GMERemittance/Library/TablePicker/TablePickerViewController.swift

@ -33,8 +33,8 @@ class TablePickerViewController: UIViewController {
@IBOutlet weak var mainview: UIView! @IBOutlet weak var mainview: UIView!
var data: [String] = []
var filteredPlaces: [String] = [] {
var data: [ExchangeRateModel] = []
var filteredPlaces: [ExchangeRateModel] = [] {
didSet { didSet {
self.tableVIew.reloadData() self.tableVIew.reloadData()
self.setNoResultText() self.setNoResultText()
@ -43,9 +43,9 @@ class TablePickerViewController: UIViewController {
} }
var allowMultipleSelection = false var allowMultipleSelection = false
var allowSelection = true var allowSelection = true
var doneAction: (([String]) -> ())?
var defaultSelectedData: [String] = []
var showFlag = false
var doneAction: (([ExchangeRateModel]) -> ())?
var defaultSelectedData: [ExchangeRateModel] = []
var searchText = "" var searchText = ""
var type: TablePickerViewTitle? var type: TablePickerViewTitle?
@ -104,13 +104,7 @@ class TablePickerViewController: UIViewController {
} }
private func addGradientView() { private func addGradientView() {
// let gradientview = GradientView()
// gradientview.leftColor = Constants.gradientviewLeftColor
// gradientview.rightColor = Constants.gradientviewRightColor
// if let navbarFrame = self.navigationController?.navigationBar.frame {
// gradientview.frame = navbarFrame
// }
// self.navigationController?.navigationBar.addSubview(gradientview)
} }
@objc private func search(sender: UITextField) { @objc private func search(sender: UITextField) {
@ -122,21 +116,17 @@ class TablePickerViewController: UIViewController {
} }
self.filteredPlaces = self.data.filter({ self.filteredPlaces = self.data.filter({
return searchString.isEmpty || return searchString.isEmpty ||
$0.lowercased().contains(searchString.lowercased())
($0.country ?? "").lowercased().contains(searchString.lowercased())
}).sorted(by: { (a, _) -> Bool in }).sorted(by: { (a, _) -> Bool in
return a.lowercased().hasPrefix(searchString.lowercased())
return (a.country?.lowercased() ?? "").hasPrefix(searchString.lowercased())
}) })
} }
// private func getNotificationName() -> Notification.Name {
//// return Notification.Name.init(NotificationNames.from)
// }
// MARK: IBActions // MARK: IBActions
@IBAction func close(_ sender: Any?) { @IBAction func close(_ sender: Any?) {
let selectedIndexPaths = self.tableVIew.indexPathsForSelectedRows ?? self.tableVIew.indexPathForSelectedRow.map({[$0]}) let selectedIndexPaths = self.tableVIew.indexPathsForSelectedRows ?? self.tableVIew.indexPathForSelectedRow.map({[$0]})
let selectedData = selectedIndexPaths?.flatMap { indexPath -> String? in
let selectedData = selectedIndexPaths?.compactMap { indexPath -> ExchangeRateModel? in
let value = filteredPlaces.elementAt(index: indexPath.row) let value = filteredPlaces.elementAt(index: indexPath.row)
return value return value
} }
@ -159,29 +149,13 @@ class TablePickerViewController: UIViewController {
extension TablePickerViewController: UITableViewDelegate { extension TablePickerViewController: UITableViewDelegate {
func getImageCell(tableView: UITableView, indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.cellForRow(at: indexPath) as! TablePickerTableViewCell
cell.selectedPlace = self.filteredPlaces.elementAt(index: indexPath.row)
cell.setup()
if !self.allowMultipleSelection {
self.close(nil)
}
return cell
}
func getTextCell(tableView: UITableView, indexPath: IndexPath) -> UITableViewCell {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath) as! TablePickerTableViewCell let cell = tableView.cellForRow(at: indexPath) as! TablePickerTableViewCell
cell.selectedPlace = self.filteredPlaces.elementAt(index: indexPath.row) cell.selectedPlace = self.filteredPlaces.elementAt(index: indexPath.row)
cell.setup() cell.setup()
if !self.allowMultipleSelection { if !self.allowMultipleSelection {
self.close(nil) self.close(nil)
} }
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.showFlag ? getImageCell(tableView: tableView, indexPath: indexPath) :
getTextCell(tableView: tableView, indexPath: indexPath)
} }
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
@ -189,16 +163,18 @@ extension TablePickerViewController: UITableViewDelegate {
cell.selectedPlace = nil cell.selectedPlace = nil
cell.setup() cell.setup()
} else { } else {
print("wtf happened here??")
print("something happened here??")
} }
// cell?.accessoryType = .none
} }
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
let onlyIndex = (filteredPlaces.elementAt(index: indexPath.row) ?? "").components(separatedBy: " ").first ?? ""
if defaultSelectedData.contains(onlyIndex) {
let onlyIndex = (filteredPlaces.elementAt(index: indexPath.row)?.countryCode ?? "")
if onlyIndex == defaultSelectedData.first?.country ?? "" {
tableView.selectRow(at: indexPath, animated: false, scrollPosition: .none) tableView.selectRow(at: indexPath, animated: false, scrollPosition: .none)
} }
// if defaultSelectedData.contains(onlyIndex) {
// tableView.selectRow(at: indexPath, animated: false, scrollPosition: .none)
// }
} }
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
@ -218,25 +194,18 @@ extension TablePickerViewController: UITableViewDataSource {
} }
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
return self.showFlag ? self.configureImageCel(tableView: tableView, indexPath: indexPath) : configureTextCell(tableView: tableView,indexPath: indexPath)
return self.configureImageCell(tableView: tableView, indexPath: indexPath)
} }
func configureImageCel(tableView: UITableView, indexPath: IndexPath) -> UITableViewCell {
let cell = tableVIew.dequeueReusableCell(withIdentifier: "TablePickerWithImageTableViewCell", for: indexPath) as! TablePickerWithImageTableViewCell
cell.title = filteredPlaces.elementAt(index: indexPath.row)
let onlyIndex = filteredPlaces[indexPath.row].components(separatedBy: " ").first ?? ""
cell.selectedPlace = self.defaultSelectedData.first
cell.selectedPlaceShortCode = "korea"
cell.setup()
return cell
}
func configureTextCell(tableView: UITableView, indexPath: IndexPath) -> UITableViewCell {
func configureImageCell(tableView: UITableView, indexPath: IndexPath) -> UITableViewCell {
let cell = tableVIew.dequeueReusableCell(withIdentifier: "TablePickerTableViewCell", for: indexPath) as! TablePickerTableViewCell let cell = tableVIew.dequeueReusableCell(withIdentifier: "TablePickerTableViewCell", for: indexPath) as! TablePickerTableViewCell
cell.title = filteredPlaces.elementAt(index: indexPath.row)
let onlyIndex = filteredPlaces[indexPath.row].components(separatedBy: " ").first ?? ""
cell.selectedPlace = self.defaultSelectedData.first cell.selectedPlace = self.defaultSelectedData.first
cell.place = self.filteredPlaces.elementAt(index: indexPath.row)
cell.setup() cell.setup()
return cell return cell
// cell.title = filteredPlaces.elementAt(index: indexPath.row)?.country
// let onlyIndex = filteredPlaces[indexPath.row]
// cell.selectedPlaceShortCode = "korea"
} }
} }

6
GMERemittance/Library/TablePicker/TablePickerWithImageTableViewCell.swift

@ -15,8 +15,8 @@ class TablePickerWithImageTableViewCell: UITableViewCell {
@IBOutlet weak var checkImageView: UIImageView! @IBOutlet weak var checkImageView: UIImageView!
var title: String? var title: String?
var selectedPlace: String?
var selectedPlaceShortCode: String?
var selectedPlace: ExchangeRateModel?
override func awakeFromNib() { override func awakeFromNib() {
super.awakeFromNib() super.awakeFromNib()
@ -26,7 +26,7 @@ class TablePickerWithImageTableViewCell: UITableViewCell {
func setup() { func setup() {
self.titleLabel.text = title self.titleLabel.text = title
if let image = UIImage.init(named: self.selectedPlaceShortCode ?? "") {
if let image = UIImage.init(named: self.selectedPlace?.countryCode ?? "") {
self.imageview.image = image self.imageview.image = image
} }
} }

16
GMERemittance/Model/ExchangeModel.swift

@ -10,11 +10,11 @@ import Foundation
import ObjectMapper import ObjectMapper
class ExchangeModel: Mappable {
class ExchangeRateModel: Mappable {
var country: String? var country: String?
var countryCode: String? var countryCode: String?
var currency: String? var currency: String?
var serviceAvailable: [ServiceAvailable]?
var availableServices: [PaymentServiceType]?
required init?(map: Map) { required init?(map: Map) {
@ -24,16 +24,16 @@ class ExchangeModel: Mappable {
country <- map["country"] country <- map["country"]
countryCode <- map["countryCode"] countryCode <- map["countryCode"]
currency <- map["currency"] currency <- map["currency"]
serviceAvailable <- map["serviceAvailable"]
availableServices <- map["serviceAvailable"]
} }
} }
class ServiceAvailable: Mappable {
class PaymentServiceType: Mappable {
var id: String? var id: String?
var text: String?
var description: String?
var type: String?
var subtitle: String?
required init?(map: Map) { required init?(map: Map) {
@ -41,7 +41,7 @@ class ServiceAvailable: Mappable {
func mapping(map: Map) { func mapping(map: Map) {
id <- map["id"] id <- map["id"]
text <- map["text"]
description <- map["DESCRIPTION"]
type <- map["text"]
subtitle <- map["DESCRIPTION"]
} }
} }

51
GMERemittance/Module/ExchangeRateViewControllerV2.swift

@ -26,12 +26,18 @@ class ExchangeRateViewControllerV2: UIViewController {
@IBOutlet weak var backgroundViewCountryLabel2: UIView! @IBOutlet weak var backgroundViewCountryLabel2: UIView!
@IBOutlet weak var countryListStackView: UIStackView! @IBOutlet weak var countryListStackView: UIStackView!
var countryListTapGuesture: UITapGestureRecognizer? var countryListTapGuesture: UITapGestureRecognizer?
var exchangeModels: [ExchangeModel] = [] var exchangeModels: [ExchangeModel] = []
var selectedPaymentIndex: IndexPath = IndexPath.init(row: 0, section: 0) var selectedPaymentIndex: IndexPath = IndexPath.init(row: 0, section: 0)
var exchangeRateModels: [ExchangeRateModel] = []
var selectedExchageRateModel: ExchangeRateModel?
// Life Cycle // Life Cycle
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
@ -39,9 +45,11 @@ class ExchangeRateViewControllerV2: UIViewController {
setupDelegates() setupDelegates()
setupTargets() setupTargets()
setupNavigation() setupNavigation()
createTestModel()
// Do any additional setup after loading the view. // Do any additional setup after loading the view.
} }
override func viewWillAppear(_ animated: Bool) { override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated) super.viewWillAppear(animated)
self.title = "Today's Rate" self.title = "Today's Rate"
@ -53,16 +61,17 @@ class ExchangeRateViewControllerV2: UIViewController {
@objc func showCountryList(_ sender: UITapGestureRecognizer) { @objc func showCountryList(_ sender: UITapGestureRecognizer) {
print("show Country List") print("show Country List")
let viewcontroller = UIStoryboard.init(name: "TableViewPicker", bundle: nil).instantiateViewController(withIdentifier: "TablePickerViewController") as! TablePickerViewController let viewcontroller = UIStoryboard.init(name: "TableViewPicker", bundle: nil).instantiateViewController(withIdentifier: "TablePickerViewController") as! TablePickerViewController
viewcontroller.data = ["Nepal", "Japan", "Korea", "Nepal", "Japan", "Korea", "Nepal", "Japan", "Korea", "Nepal", "Japan", "Korea"]
viewcontroller.showFlag = true
viewcontroller.data = self.exchangeRateModels
viewcontroller.type = TablePickerViewTitle.country viewcontroller.type = TablePickerViewTitle.country
viewcontroller.doneAction = self.countrySelected
// viewcontroller.defaultSelectedData = [self.selectedExchageRateModel]
self.present(viewcontroller, animated: true, completion: nil) self.present(viewcontroller, animated: true, completion: nil)
} }
// private function
private func showCountrylist() {
// function
func countrySelected(model: [ExchangeRateModel]) {
print(model.first?.country)
} }
@ -147,3 +156,35 @@ extension ExchangeRateViewControllerV2: UICollectionViewDataSource {
return cell return cell
} }
} }
extension ExchangeRateViewControllerV2 {
func createTestModel() {
let model = ExchangeRateModel()
model.country = "Nepal"
model.countryCode = "Np"
model.currency = "NRS"
let model1 = ExchangeRateModel()
model1.country = "Kore"
model1.countryCode = "Np"
model1.currency = "NRS"
let model2 = ExchangeRateModel()
model2.country = "India"
model2.countryCode = "Np"
model2.currency = "NRS"
let model3 = ExchangeRateModel()
model3.country = "Japan"
model3.countryCode = "Np"
model3.currency = "NRS"
let model4 = ExchangeRateModel()
model4.country = "Afganistan"
model4.countryCode = "Np"
model4.currency = "NRS"
self.exchangeRateModels = [model, model1, model2, model3, model4]
}
}
Loading…
Cancel
Save