You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
3.5 KiB
95 lines
3.5 KiB
/* |
|
* Copyright 2016 Google LLC. All rights reserved. |
|
* |
|
* |
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this |
|
* file except in compliance with the License. You may obtain a copy of the License at |
|
* |
|
* http://www.apache.org/licenses/LICENSE-2.0 |
|
* |
|
* Unless required by applicable law or agreed to in writing, software distributed under |
|
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF |
|
* ANY KIND, either express or implied. See the License for the specific language governing |
|
* permissions and limitations under the License. |
|
*/ |
|
|
|
#import "GooglePlacesDemos/Samples/Autocomplete/AutocompletePushViewController.h" |
|
|
|
#import <GooglePlaces/GooglePlaces.h> |
|
|
|
@interface AutocompletePushViewController () <GMSAutocompleteViewControllerDelegate> |
|
@end |
|
|
|
@implementation AutocompletePushViewController { |
|
UIButton *_showAutocompleteWidgetButton; |
|
} |
|
|
|
+ (NSString *)demoTitle { |
|
return NSLocalizedString( |
|
@"Demo.Title.Autocomplete.Push", |
|
@"Title of the pushed autocomplete demo for display in a list or nav header"); |
|
} |
|
|
|
#pragma mark - View Lifecycle |
|
|
|
- (void)viewDidLoad { |
|
[super viewDidLoad]; |
|
|
|
// Configure the UI. Tell our superclass we want a button and a result view below that. |
|
_showAutocompleteWidgetButton = |
|
[self createShowAutocompleteButton:@selector(showAutocompleteWidgetButtonTapped)]; |
|
} |
|
|
|
#pragma mark - Creation of |GMSAutocompleteViewController| instance. |
|
|
|
- (GMSAutocompleteViewController *)autocompleteViewControllerInstance { |
|
GMSAutocompleteViewController *autocompleteViewController = |
|
[[GMSAutocompleteViewController alloc] init]; |
|
autocompleteViewController.delegate = self; |
|
autocompleteViewController.autocompleteFilter = self.autocompleteFilter; |
|
autocompleteViewController.placeFields = self.placeFields; |
|
|
|
// Returns new GMSAutocompleteViewController instance. |
|
return autocompleteViewController; |
|
} |
|
|
|
#pragma mark - Actions |
|
|
|
- (IBAction)showAutocompleteWidgetButtonTapped { |
|
// When the button is tapped just push a new autocomplete view controller onto the stack. |
|
[self.navigationController pushViewController:[self autocompleteViewControllerInstance] |
|
animated:YES]; |
|
[_showAutocompleteWidgetButton setHidden:YES]; |
|
} |
|
|
|
#pragma mark - GMSAutocompleteViewControllerDelegate |
|
|
|
- (void)viewController:(GMSAutocompleteViewController *)viewController |
|
didAutocompleteWithPlace:(GMSPlace *)place { |
|
// Dismiss the view controller and tell our superclass to populate the result view. |
|
[self.navigationController popToViewController:self animated:YES]; |
|
[self autocompleteDidSelectPlace:place]; |
|
} |
|
|
|
- (void)viewController:(GMSAutocompleteViewController *)viewController |
|
didFailAutocompleteWithError:(NSError *)error { |
|
// Dismiss the view controller and notify our superclass of the failure. |
|
[self.navigationController popToViewController:self animated:YES]; |
|
[self autocompleteDidFail:error]; |
|
} |
|
|
|
- (void)wasCancelled:(GMSAutocompleteViewController *)viewController { |
|
// Dismiss the controller and show a message that it was canceled. |
|
[self.navigationController popToViewController:self animated:YES]; |
|
[self autocompleteDidCancel]; |
|
} |
|
|
|
- (void)didRequestAutocompletePredictions:(GMSAutocompleteViewController *)viewController { |
|
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES; |
|
} |
|
|
|
- (void)didUpdateAutocompletePredictions:(GMSAutocompleteViewController *)viewController { |
|
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO; |
|
} |
|
|
|
@end
|
|
|