Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(129)

Side by Side Diff: remoting/ios/app/session_reconnect_view.mm

Issue 2971903002: Adding error handling to the connection flow. (Closed)
Patch Set: Adding pin entry and reconnect auto-layout.: Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #if !defined(__has_feature) || !__has_feature(objc_arc)
6 #error "This file requires ARC support."
7 #endif
8
9 #import "remoting/ios/app/session_reconnect_view.h"
10
11 #import "ios/third_party/material_components_ios/src/components/Buttons/src/Mate rialButtons.h"
12 #import "remoting/ios/app/remoting_theme.h"
13
14 static const CGFloat kReconnectButtonWidth = 120.f;
15 static const CGFloat kReconnectButtonHeight = 30.f;
16
17 @interface SessionReconnectView () {
18 MDCRaisedButton* _reconnectButton;
19 }
20 @end
21
22 @implementation SessionReconnectView
23
24 @synthesize delegate = _delegate;
25
26 - (id)initWithFrame:(CGRect)frame {
27 self = [super initWithFrame:frame];
28 if (self) {
29 self.backgroundColor = [UIColor clearColor];
30
31 _reconnectButton = [[MDCRaisedButton alloc] init];
32 [_reconnectButton setElevation:4.0f forState:UIControlStateNormal];
33 [_reconnectButton setTitle:@"Reconnect" forState:UIControlStateNormal];
34 [_reconnectButton addTarget:self
35 action:@selector(didTapReconnect:)
36 forControlEvents:UIControlEventTouchUpInside];
37 _reconnectButton.translatesAutoresizingMaskIntoConstraints = NO;
38 [self addSubview:_reconnectButton];
39
40 [self initializeLayoutConstraintsWithViews:NSDictionaryOfVariableBindings(
41 _reconnectButton)];
42 }
43 return self;
44 }
45
46 - (void)initializeLayoutConstraintsWithViews:(NSDictionary*)views {
47 // Metrics to use in visual format strings.
48 NSDictionary* layoutMetrics = @{
49 @"reconnectButtonWidth" : @(kReconnectButtonWidth),
50 @"reconnectButtonHeight" : @(kReconnectButtonHeight),
51 };
52
53 [_reconnectButton.centerYAnchor constraintEqualToAnchor:self.centerYAnchor]
54 .active = YES;
55 [_reconnectButton.centerXAnchor constraintEqualToAnchor:self.centerXAnchor]
56 .active = YES;
57
58 [self addConstraints:[NSLayoutConstraint
Yuwei 2017/07/06 21:52:39 For simple constraints like this I would probably
nicholss 2017/07/06 22:15:06 Done.
Yuwei 2017/07/06 22:36:28 FYI you could simplify these with array literal if
59 constraintsWithVisualFormat:
60 @"H:[_reconnectButton(reconnectButtonWidth)]"
61 options:0
62 metrics:layoutMetrics
63 views:views]];
64
65 [self addConstraints:[NSLayoutConstraint
66 constraintsWithVisualFormat:
67 @"V:[_reconnectButton(reconnectButtonHeight)]"
68 options:0
69 metrics:layoutMetrics
70 views:views]];
71 [self setNeedsUpdateConstraints];
72 }
73
74 #pragma mark - Private
75
76 - (void)didTapReconnect:(id)sender {
77 if ([_delegate respondsToSelector:@selector(didTapReconnect)]) {
78 [_delegate didTapReconnect];
79 }
80 }
81
82 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698