[iOS] fix state preservation in search hotels params

Also adjust guests picker available values

https://jira.mail.ru/browse/MAPSME-14446
https://jira.mail.ru/browse/MAPSME-14453
This commit is contained in:
Aleksey Belousov 2020-08-18 17:33:28 +03:00 committed by Alexander Boriskov
parent 1f590ec37f
commit 11619c3e45
3 changed files with 37 additions and 6 deletions

View file

@ -18,6 +18,9 @@ import UIKit
@IBOutlet var cancelButton: UIButton!
@IBOutlet var datePickerView: DatePickerView!
@objc var initialCheckInDate: Date?
@objc var initialCheckOutDate: Date?
@objc weak var delegate: DatePickerViewControllerDelegate?
lazy var dateFormatter: DateFormatter = {
@ -29,7 +32,13 @@ import UIKit
override func viewDidLoad() {
super.viewDidLoad()
datePickerView.delegate = self
doneButton.isEnabled = false
if let checkInDate = initialCheckInDate, let checkOutDate = initialCheckOutDate, checkOutDate > checkInDate {
datePickerView.startDate = checkInDate
datePickerView.endDate = checkOutDate
doneButton.isEnabled = true
} else {
doneButton.isEnabled = false
}
}
override var transitioningDelegate: UIViewControllerTransitioningDelegate? {

View file

@ -20,17 +20,25 @@
@IBOutlet var childrenStepper: ValueStepperView!
@IBOutlet var infantsStepper: ValueStepperView!
@objc var roomsInitialCount = 1
@objc var adultsInitialCount = 2
@objc var childrenInitialCount = 0
@objc var infantsInitialCount = 0
@objc weak var delegate: GuestsPickerViewControllerDelegate?
override func viewDidLoad() {
super.viewDidLoad()
roomsStepper.minValue = 1
roomsStepper.maxValue = 10
roomsStepper.maxValue = 30
roomsStepper.value = roomsInitialCount
adultsStepper.minValue = 1
adultsStepper.maxValue = 20
adultsStepper.value = 2
childrenStepper.maxValue = 20
infantsStepper.maxValue = 20
adultsStepper.maxValue = 30
adultsStepper.value = adultsInitialCount
childrenStepper.maxValue = 10
childrenStepper.value = childrenInitialCount
infantsStepper.maxValue = 10
infantsStepper.value = infantsInitialCount
}
override func viewDidLayoutSubviews() {

View file

@ -84,6 +84,8 @@ using Observers = NSHashTable<Observer>;
if (self.state != MWMSearchManagerStateHidden)
self.state = MWMSearchManagerStateDefault;
self.searchTextField.text = @"";
[self.searchBarView resetDates];
[self.searchBarView resetGuestCount];
[MWMSearch clear];
}
@ -140,6 +142,11 @@ using Observers = NSHashTable<Observer>;
DatePickerViewController *controller = [[DatePickerViewController alloc] init];
controller.delegate = self;
MWMHotelParams *filter = [MWMSearch getFilter];
if (filter != nil && filter.checkInDate != nil && filter.checkOutDate != nil) {
controller.initialCheckInDate = filter.checkInDate;
controller.initialCheckOutDate = filter.checkOutDate;
}
controller.popoverPresentationController.sourceView = self.searchBarView;
controller.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionUp;
[[MapViewController sharedController] presentViewController:controller animated:YES completion:nil];
@ -158,6 +165,13 @@ using Observers = NSHashTable<Observer>;
GuestsPickerViewController *controller = [[GuestsPickerViewController alloc] init];
controller.delegate = self;
MWMHotelParams *filter = [MWMSearch getFilter];
if (filter != nil) {
controller.roomsInitialCount = filter.numberOfRooms;
controller.adultsInitialCount = filter.numberOfAdults;
controller.childrenInitialCount = filter.numberOfChildren;
controller.infantsInitialCount = filter.numberOfInfants;
}
controller.popoverPresentationController.sourceView = self.searchBarView;
controller.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionUp;
[[MapViewController sharedController] presentViewController:controller animated:YES completion:nil];