From 7abe36a481f7f451aaa6685f1ac26cc37c51acf6 Mon Sep 17 00:00:00 2001 From: cindy-x-liang <67083541+cindy-x-liang@users.noreply.github.com> Date: Sat, 1 Jun 2024 19:23:15 -0600 Subject: [PATCH 1/2] Fixed small bug with date picker --- Podfile | 2 +- Podfile.lock | 6 ++--- TCAT/Views/DatePickerView.swift | 47 +++++++++------------------------ 3 files changed, 16 insertions(+), 39 deletions(-) diff --git a/Podfile b/Podfile index b2049e0c..7c2b6f10 100644 --- a/Podfile +++ b/Podfile @@ -13,7 +13,7 @@ target 'TCAT' do pod 'GoogleMaps' # Networking + Data - pod 'Apollo' + pod 'Apollo', '~> 1.9.3' pod 'SwiftyJSON', '~> 5.0' pod 'FutureNova', :git => 'https://github.com/cuappdev/ios-networking.git' pod 'Wormholy', :configurations => ['Debug'] diff --git a/Podfile.lock b/Podfile.lock index b667f830..f5a62843 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -139,7 +139,7 @@ PODS: - Zip (1.1.0) DEPENDENCIES: - - Apollo + - Apollo (~> 1.9.3) - DZNEmptyDataSet (from `https://github.com/cuappdev/DZNEmptyDataSet.git`) - Firebase - FirebaseCrashlytics @@ -234,6 +234,6 @@ SPEC CHECKSUMS: Wormholy: ab1c8c2f02f58587a0941deb0088555ffbf039a1 Zip: 8877eede3dda76bcac281225c20e71c25270774c -PODFILE CHECKSUM: 2bc2917c9852873acd565e06b273a1884fa7d20b +PODFILE CHECKSUM: a3b80dd04ea30998a17c032f2730e21ee8517238 -COCOAPODS: 1.12.1 +COCOAPODS: 1.15.2 diff --git a/TCAT/Views/DatePickerView.swift b/TCAT/Views/DatePickerView.swift index 1449a819..103c9ac6 100755 --- a/TCAT/Views/DatePickerView.swift +++ b/TCAT/Views/DatePickerView.swift @@ -24,15 +24,14 @@ class DatePickerView: UIView { private weak var delegate: DatePickerViewDelegate? private let leaveNowElement = SegmentControlElement(title: Constants.General.datepickerLeaveNow, index: 0) - private let leaveAtElement = SegmentControlElement(title: Constants.General.datepickerLeaveAt, index: 0) - private let arriveByElement = SegmentControlElement(title: Constants.General.datepickerArriveBy, index: 1) + private let leaveAtElement = SegmentControlElement(title: Constants.General.datepickerLeaveAt, index: 1) + private let arriveByElement = SegmentControlElement(title: Constants.General.datepickerArriveBy, index: 2) // MARK: - View vars private var cancelButton: UIButton = UIButton() private var datepicker: UIDatePicker = UIDatePicker() private var doneButton: UIButton = UIButton() - private var leaveNowSegmentedControl: UISegmentedControl = UISegmentedControl() private var timeTypeSegmentedControl: UISegmentedControl = UISegmentedControl() // MARK: - Init @@ -47,7 +46,6 @@ class DatePickerView: UIView { setupDatePicker() setupTimeTypeSegmentedControl() - setupLeaveNowSegmentedControl() setupCancelButton() setupDoneButton() @@ -84,8 +82,8 @@ class DatePickerView: UIView { private func setupTimeTypeSegmentedControl() { styleSegmentedControl(timeTypeSegmentedControl) - setSegmentedControlOptions(timeTypeSegmentedControl, options: [leaveAtElement.title, arriveByElement.title]) - timeTypeSegmentedControl.selectedSegmentIndex = leaveAtElement.index + setSegmentedControlOptions(timeTypeSegmentedControl, options: [leaveNowElement.title,leaveAtElement.title, arriveByElement.title]) + timeTypeSegmentedControl.selectedSegmentIndex = leaveNowElement.index timeTypeSegmentedControl.addTarget( self, action: #selector(timeTypeSegmentedControlValueChanged(segmentControl:)), @@ -95,18 +93,6 @@ class DatePickerView: UIView { addSubview(timeTypeSegmentedControl) } - private func setupLeaveNowSegmentedControl() { - styleSegmentedControl(leaveNowSegmentedControl) - setSegmentedControlOptions(leaveNowSegmentedControl, options: [leaveNowElement.title]) - leaveNowSegmentedControl.addTarget( - self, - action: #selector(leaveNowSegmentedControlValueChanged(segmentControl:)), - for: .valueChanged - ) - - addSubview(leaveNowSegmentedControl) - } - private func setupCancelButton() { cancelButton.titleLabel?.font = .getFont(.regular, size: 17.0) cancelButton.setTitleColor(Colors.metadataIcon, for: .normal) @@ -154,19 +140,12 @@ class DatePickerView: UIView { make.trailing.equalTo(doneButton) make.top.equalTo(doneButton.snp.bottom).offset(spaceBtButtonAndSegmentedControl) make.height.equalTo(segmentedControlHeight) - make.leading.equalTo(leaveNowSegmentedControl.snp.trailing).offset(spaceBtSegmentControls) - } - - leaveNowSegmentedControl.snp.makeConstraints { make in make.leading.equalTo(cancelButton) - make.top.equalTo(timeTypeSegmentedControl) - make.height.equalTo(segmentedControlHeight) - make.width.equalTo(timeTypeSegmentedControl.snp.width).multipliedBy(segmentedControlSizeRatio) } datepicker.snp.makeConstraints { make in - make.leading.trailing.equalToSuperview() - make.top.equalTo(leaveNowSegmentedControl.snp.bottom).offset(spaceBtSegmentControlAndDatePicker) + make.leading.equalToSuperview().inset(90) + make.top.equalTo(timeTypeSegmentedControl.snp.bottom).offset(spaceBtSegmentControlAndDatePicker) make.height.equalTo(datePickerHeight) make.bottom.equalTo(safeAreaLayoutGuide) } @@ -192,7 +171,7 @@ class DatePickerView: UIView { @objc private func doneButtonPressed() { var searchTimeType: SearchType = .leaveNow - if leaveNowSegmentedControl.selectedSegmentIndex != leaveNowElement.index { + if timeTypeSegmentedControl.selectedSegmentIndex != leaveNowElement.index { switch timeTypeSegmentedControl.selectedSegmentIndex { case arriveByElement.index: searchTimeType = .arriveBy @@ -201,6 +180,10 @@ class DatePickerView: UIView { default: break } + }else { + //If the user for some reason changes the date/time on datepicker, but selects leaveNow + //we change the date/time on datepicker to be the current date/time + datepicker.date = Date() } delegate?.saveDatePickerDate(for: datepicker.date, searchType: searchTimeType) @@ -213,9 +196,6 @@ class DatePickerView: UIView { // MARK: - Segment Controls @objc private func timeTypeSegmentedControlValueChanged(segmentControl: UISegmentedControl) { - if timeTypeSegmentedControl.selectedSegmentIndex == arriveByElement.index { - leaveNowSegmentedControl.selectedSegmentIndex = UISegmentedControl.noSegment - } } @objc private func leaveNowSegmentedControlValueChanged(segmentControl: UISegmentedControl) { @@ -226,10 +206,7 @@ class DatePickerView: UIView { @objc private func datepickerValueChanged(datepicker: UIDatePicker) { if Time.compare(date1: datepicker.date, date2: Date()) == ComparisonResult.orderedSame { - leaveNowSegmentedControl.selectedSegmentIndex = leaveNowElement.index - timeTypeSegmentedControl.selectedSegmentIndex = leaveAtElement.index - } else { - leaveNowSegmentedControl.selectedSegmentIndex = UISegmentedControl.noSegment + timeTypeSegmentedControl.selectedSegmentIndex = leaveNowElement.index } } From acb43b46c2c18b1e741fafd798b076013ad6f76e Mon Sep 17 00:00:00 2001 From: cindy-x-liang <67083541+cindy-x-liang@users.noreply.github.com> Date: Sun, 2 Jun 2024 15:23:37 -0600 Subject: [PATCH 2/2] fixed comments --- TCAT/Views/DatePickerView.swift | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/TCAT/Views/DatePickerView.swift b/TCAT/Views/DatePickerView.swift index 103c9ac6..1b0bafe2 100755 --- a/TCAT/Views/DatePickerView.swift +++ b/TCAT/Views/DatePickerView.swift @@ -84,11 +84,6 @@ class DatePickerView: UIView { styleSegmentedControl(timeTypeSegmentedControl) setSegmentedControlOptions(timeTypeSegmentedControl, options: [leaveNowElement.title,leaveAtElement.title, arriveByElement.title]) timeTypeSegmentedControl.selectedSegmentIndex = leaveNowElement.index - timeTypeSegmentedControl.addTarget( - self, - action: #selector(timeTypeSegmentedControlValueChanged(segmentControl:)), - for: .valueChanged - ) addSubview(timeTypeSegmentedControl) } @@ -180,7 +175,7 @@ class DatePickerView: UIView { default: break } - }else { + } else { //If the user for some reason changes the date/time on datepicker, but selects leaveNow //we change the date/time on datepicker to be the current date/time datepicker.date = Date() @@ -195,9 +190,6 @@ class DatePickerView: UIView { // MARK: - Segment Controls - @objc private func timeTypeSegmentedControlValueChanged(segmentControl: UISegmentedControl) { - } - @objc private func leaveNowSegmentedControlValueChanged(segmentControl: UISegmentedControl) { datepicker.date = Date() }