OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #import "ios/chrome/browser/ui/browser_view_controller.h" | 5 #import "ios/chrome/browser/ui/browser_view_controller.h" |
6 | 6 |
7 #import <AssetsLibrary/AssetsLibrary.h> | 7 #import <AssetsLibrary/AssetsLibrary.h> |
8 #import <MobileCoreServices/MobileCoreServices.h> | 8 #import <MobileCoreServices/MobileCoreServices.h> |
9 #import <PassKit/PassKit.h> | 9 #import <PassKit/PassKit.h> |
10 #import <Photos/Photos.h> | 10 #import <Photos/Photos.h> |
(...skipping 3388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3399 [[_model currentTab] goToItem:selectedCell.entry.navigationItem]; | 3399 [[_model currentTab] goToItem:selectedCell.entry.navigationItem]; |
3400 [_toolbarController dismissTabHistoryPopup]; | 3400 [_toolbarController dismissTabHistoryPopup]; |
3401 } | 3401 } |
3402 | 3402 |
3403 - (void)print { | 3403 - (void)print { |
3404 Tab* currentTab = [_model currentTab]; | 3404 Tab* currentTab = [_model currentTab]; |
3405 // The UI should prevent users from printing non-printable pages. However, a | 3405 // The UI should prevent users from printing non-printable pages. However, a |
3406 // redirection to an un-printable page can happen before it is reflected in | 3406 // redirection to an un-printable page can happen before it is reflected in |
3407 // the UI. | 3407 // the UI. |
3408 if (![currentTab viewForPrinting]) { | 3408 if (![currentTab viewForPrinting]) { |
| 3409 TriggerHapticFeedbackForNotification(UINotificationFeedbackTypeError); |
3409 [self showSnackbar:l10n_util::GetNSString(IDS_IOS_CANNOT_PRINT_PAGE_ERROR)]; | 3410 [self showSnackbar:l10n_util::GetNSString(IDS_IOS_CANNOT_PRINT_PAGE_ERROR)]; |
3410 return; | 3411 return; |
3411 } | 3412 } |
3412 DCHECK(_browserState); | 3413 DCHECK(_browserState); |
3413 if (!_printController.get()) { | 3414 if (!_printController.get()) { |
3414 _printController.reset([[PrintController alloc] | 3415 _printController.reset([[PrintController alloc] |
3415 initWithContextGetter:_browserState->GetRequestContext()]); | 3416 initWithContextGetter:_browserState->GetRequestContext()]); |
3416 } | 3417 } |
3417 [_printController printView:[currentTab viewForPrinting] | 3418 [_printController printView:[currentTab viewForPrinting] |
3418 withTitle:[currentTab title] | 3419 withTitle:[currentTab title] |
3419 viewController:self]; | 3420 viewController:self]; |
3420 } | 3421 } |
3421 | 3422 |
3422 - (void)addToReadingListURL:(const GURL&)URL title:(NSString*)title { | 3423 - (void)addToReadingListURL:(const GURL&)URL title:(NSString*)title { |
3423 if (!reading_list::switches::IsReadingListEnabled()) { | 3424 if (!reading_list::switches::IsReadingListEnabled()) { |
3424 return; | 3425 return; |
3425 } | 3426 } |
3426 base::RecordAction(UserMetricsAction("MobileReadingListAdd")); | 3427 base::RecordAction(UserMetricsAction("MobileReadingListAdd")); |
3427 | 3428 |
3428 ReadingListModel* readingModel = | 3429 ReadingListModel* readingModel = |
3429 ReadingListModelFactory::GetForBrowserState(_browserState); | 3430 ReadingListModelFactory::GetForBrowserState(_browserState); |
3430 readingModel->AddEntry(URL, base::SysNSStringToUTF8(title), | 3431 readingModel->AddEntry(URL, base::SysNSStringToUTF8(title), |
3431 reading_list::ADDED_VIA_CURRENT_APP); | 3432 reading_list::ADDED_VIA_CURRENT_APP); |
3432 | 3433 |
| 3434 TriggerHapticFeedbackForNotification(UINotificationFeedbackTypeSuccess); |
3433 [self showSnackbar:l10n_util::GetNSString( | 3435 [self showSnackbar:l10n_util::GetNSString( |
3434 IDS_IOS_READING_LIST_SNACKBAR_MESSAGE)]; | 3436 IDS_IOS_READING_LIST_SNACKBAR_MESSAGE)]; |
3435 } | 3437 } |
3436 | 3438 |
3437 #pragma mark - Keyboard commands management | 3439 #pragma mark - Keyboard commands management |
3438 | 3440 |
3439 - (BOOL)shouldRegisterKeyboardCommands { | 3441 - (BOOL)shouldRegisterKeyboardCommands { |
3440 if ([self presentedViewController]) | 3442 if ([self presentedViewController]) |
3441 return NO; | 3443 return NO; |
3442 | 3444 |
(...skipping 1401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4844 - (void)shareDidComplete:(ShareTo::ShareResult)shareStatus | 4846 - (void)shareDidComplete:(ShareTo::ShareResult)shareStatus |
4845 successMessage:(NSString*)message { | 4847 successMessage:(NSString*)message { |
4846 // The shareTo dialog dismisses itself instead of through | 4848 // The shareTo dialog dismisses itself instead of through |
4847 // |-dismissViewControllerAnimated:completion:| so we must reset the | 4849 // |-dismissViewControllerAnimated:completion:| so we must reset the |
4848 // presenting state here. | 4850 // presenting state here. |
4849 self.presenting = NO; | 4851 self.presenting = NO; |
4850 [self.dialogPresenter tryToPresent]; | 4852 [self.dialogPresenter tryToPresent]; |
4851 | 4853 |
4852 switch (shareStatus) { | 4854 switch (shareStatus) { |
4853 case ShareTo::SHARE_SUCCESS: | 4855 case ShareTo::SHARE_SUCCESS: |
4854 if ([message length]) | 4856 if ([message length]) { |
| 4857 TriggerHapticFeedbackForNotification(UINotificationFeedbackTypeSuccess); |
4855 [self showSnackbar:message]; | 4858 [self showSnackbar:message]; |
| 4859 } |
4856 break; | 4860 break; |
4857 case ShareTo::SHARE_ERROR: | 4861 case ShareTo::SHARE_ERROR: |
4858 [self showErrorAlert:IDS_IOS_SHARE_TO_ERROR_ALERT_TITLE | 4862 [self showErrorAlert:IDS_IOS_SHARE_TO_ERROR_ALERT_TITLE |
4859 message:IDS_IOS_SHARE_TO_ERROR_ALERT]; | 4863 message:IDS_IOS_SHARE_TO_ERROR_ALERT]; |
4860 break; | 4864 break; |
4861 case ShareTo::SHARE_NETWORK_FAILURE: | 4865 case ShareTo::SHARE_NETWORK_FAILURE: |
4862 [self showErrorAlert:IDS_IOS_SHARE_TO_NETWORK_ERROR_ALERT_TITLE | 4866 [self showErrorAlert:IDS_IOS_SHARE_TO_NETWORK_ERROR_ALERT_TITLE |
4863 message:IDS_IOS_SHARE_TO_NETWORK_ERROR_ALERT]; | 4867 message:IDS_IOS_SHARE_TO_NETWORK_ERROR_ALERT]; |
4864 break; | 4868 break; |
4865 case ShareTo::SHARE_SIGN_IN_FAILURE: | 4869 case ShareTo::SHARE_SIGN_IN_FAILURE: |
(...skipping 13 matching lines...) Expand all Loading... |
4879 switch (shareStatus) { | 4883 switch (shareStatus) { |
4880 case ShareTo::SHARE_SUCCESS: { | 4884 case ShareTo::SHARE_SUCCESS: { |
4881 PasswordController* passwordController = | 4885 PasswordController* passwordController = |
4882 [[_model currentTab] passwordController]; | 4886 [[_model currentTab] passwordController]; |
4883 __block BOOL shown = NO; | 4887 __block BOOL shown = NO; |
4884 [passwordController findAndFillPasswordForms:username | 4888 [passwordController findAndFillPasswordForms:username |
4885 password:password | 4889 password:password |
4886 completionHandler:^(BOOL completed) { | 4890 completionHandler:^(BOOL completed) { |
4887 if (shown || !completed || ![message length]) | 4891 if (shown || !completed || ![message length]) |
4888 return; | 4892 return; |
| 4893 TriggerHapticFeedbackForNotification( |
| 4894 UINotificationFeedbackTypeSuccess); |
4889 [self showSnackbar:message]; | 4895 [self showSnackbar:message]; |
4890 shown = YES; | 4896 shown = YES; |
4891 }]; | 4897 }]; |
4892 break; | 4898 break; |
4893 } | 4899 } |
4894 default: | 4900 default: |
4895 break; | 4901 break; |
4896 } | 4902 } |
4897 } | 4903 } |
4898 | 4904 |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5025 | 5031 |
5026 - (UIView*)voiceSearchButton { | 5032 - (UIView*)voiceSearchButton { |
5027 return _voiceSearchButton; | 5033 return _voiceSearchButton; |
5028 } | 5034 } |
5029 | 5035 |
5030 - (id<LogoAnimationControllerOwner>)logoAnimationControllerOwner { | 5036 - (id<LogoAnimationControllerOwner>)logoAnimationControllerOwner { |
5031 return [self currentLogoAnimationControllerOwner]; | 5037 return [self currentLogoAnimationControllerOwner]; |
5032 } | 5038 } |
5033 | 5039 |
5034 @end | 5040 @end |
OLD | NEW |