OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/passwords/passwords_ui_delegate_impl.h" | 5 #import "ios/chrome/browser/passwords/passwords_ui_delegate_impl.h" |
6 | 6 |
7 #import "ios/chrome/browser/passwords/password_generation_prompt_view.h" | 7 #import "ios/chrome/browser/passwords/password_generation_prompt_view.h" |
8 #import "ios/chrome/browser/passwords/password_generation_prompt_view_controller
.h" | 8 #import "ios/chrome/browser/passwords/password_generation_prompt_view_controller
.h" |
9 | 9 |
| 10 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 11 #error "This file requires ARC support." |
| 12 #endif |
| 13 |
10 @implementation PasswordsUiDelegateImpl | 14 @implementation PasswordsUiDelegateImpl |
11 | 15 |
12 #pragma mark - | 16 #pragma mark - |
13 #pragma mark PasswordsUiDelegate | 17 #pragma mark PasswordsUiDelegate |
14 | 18 |
15 - (void)showGenerationAlertWithPassword:(NSString*)password | 19 - (void)showGenerationAlertWithPassword:(NSString*)password |
16 andPromptDelegate: | 20 andPromptDelegate: |
17 (id<PasswordGenerationPromptDelegate>)delegate { | 21 (id<PasswordGenerationPromptDelegate>)delegate { |
18 UIViewController* topViewController = | 22 UIViewController* topViewController = |
19 [[[UIApplication sharedApplication] keyWindow] rootViewController]; | 23 [[[UIApplication sharedApplication] keyWindow] rootViewController]; |
20 | 24 |
21 // Look for the top-most presented ViewController. | 25 // Look for the top-most presented ViewController. |
22 for (UIViewController* controller = topViewController.presentedViewController; | 26 for (UIViewController* controller = topViewController.presentedViewController; |
23 controller && ![controller isBeingDismissed]; | 27 controller && ![controller isBeingDismissed]; |
24 controller = controller.presentedViewController) { | 28 controller = controller.presentedViewController) { |
25 // Return if a PasswordGenerationPromptViewController is already presented. | 29 // Return if a PasswordGenerationPromptViewController is already presented. |
26 if ([controller | 30 if ([controller |
27 isKindOfClass:[PasswordGenerationPromptViewController class]]) | 31 isKindOfClass:[PasswordGenerationPromptViewController class]]) |
28 return; | 32 return; |
29 | 33 |
30 topViewController = controller; | 34 topViewController = controller; |
31 } | 35 } |
32 | 36 |
33 PasswordGenerationPromptDialog* contentView = | 37 PasswordGenerationPromptDialog* contentView = |
34 [[[PasswordGenerationPromptDialog alloc] | 38 [[PasswordGenerationPromptDialog alloc] |
35 initWithDelegate:delegate | 39 initWithDelegate:delegate |
36 viewController:topViewController] autorelease]; | 40 viewController:topViewController]; |
37 | 41 |
38 UIViewController* viewController = | 42 UIViewController* viewController = |
39 [[[PasswordGenerationPromptViewController alloc] | 43 [[PasswordGenerationPromptViewController alloc] |
40 initWithPassword:password | 44 initWithPassword:password |
41 contentView:contentView | 45 contentView:contentView |
42 viewController:topViewController] autorelease]; | 46 viewController:topViewController]; |
43 | 47 |
44 [topViewController presentViewController:viewController | 48 [topViewController presentViewController:viewController |
45 animated:YES | 49 animated:YES |
46 completion:nil]; | 50 completion:nil]; |
47 } | 51 } |
48 | 52 |
49 - (void)hideGenerationAlert { | 53 - (void)hideGenerationAlert { |
50 UIViewController* rootViewController = | 54 UIViewController* rootViewController = |
51 [[[UIApplication sharedApplication] keyWindow] rootViewController]; | 55 [[[UIApplication sharedApplication] keyWindow] rootViewController]; |
52 | 56 |
53 // Check every presented ViewController for a password generation prompt. | 57 // Check every presented ViewController for a password generation prompt. |
54 for (UIViewController* controller = rootViewController; | 58 for (UIViewController* controller = rootViewController; |
55 controller && ![controller isBeingDismissed]; | 59 controller && ![controller isBeingDismissed]; |
56 controller = controller.presentedViewController) { | 60 controller = controller.presentedViewController) { |
57 if ([controller.presentedViewController | 61 if ([controller.presentedViewController |
58 isKindOfClass:[PasswordGenerationPromptViewController class]]) { | 62 isKindOfClass:[PasswordGenerationPromptViewController class]]) { |
59 // Dismiss the password prompt. | 63 // Dismiss the password prompt. |
60 [controller dismissViewControllerAnimated:NO completion:nil]; | 64 [controller dismissViewControllerAnimated:NO completion:nil]; |
61 return; | 65 return; |
62 } | 66 } |
63 } | 67 } |
64 } | 68 } |
65 | 69 |
66 @end | 70 @end |
OLD | NEW |