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

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

Issue 2966243003: Fixing signed in message and disconnect/reconnect case. (Closed)
Patch Set: Merged. 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
« no previous file with comments | « remoting/ios/app/pin_entry_view.mm ('k') | remoting/ios/session/remoting_client.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 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 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 #if !defined(__has_feature) || !__has_feature(objc_arc) 5 #if !defined(__has_feature) || !__has_feature(objc_arc)
6 #error "This file requires ARC support." 6 #error "This file requires ARC support."
7 #endif 7 #endif
8 8
9 #import "remoting/ios/app/remoting_view_controller.h" 9 #import "remoting/ios/app/remoting_view_controller.h"
10 10
(...skipping 18 matching lines...) Expand all
29 29
30 #include "base/strings/sys_string_conversions.h" 30 #include "base/strings/sys_string_conversions.h"
31 #include "remoting/base/oauth_token_getter.h" 31 #include "remoting/base/oauth_token_getter.h"
32 #include "remoting/client/connect_to_host_info.h" 32 #include "remoting/client/connect_to_host_info.h"
33 33
34 static CGFloat kHostInset = 5.f; 34 static CGFloat kHostInset = 5.f;
35 35
36 @interface RemotingViewController ()<HostCollectionViewControllerDelegate, 36 @interface RemotingViewController ()<HostCollectionViewControllerDelegate,
37 UIViewControllerAnimatedTransitioning, 37 UIViewControllerAnimatedTransitioning,
38 UIViewControllerTransitioningDelegate> { 38 UIViewControllerTransitioningDelegate> {
39 bool _isAuthenticated; 39 BOOL _isAuthenticated;
40 BOOL _showSignedInAccount;
40 MDCDialogTransitionController* _dialogTransitionController; 41 MDCDialogTransitionController* _dialogTransitionController;
41 MDCAppBar* _appBar; 42 MDCAppBar* _appBar;
42 HostCollectionViewController* _collectionViewController; 43 HostCollectionViewController* _collectionViewController;
43 HostFetchingViewController* _fetchingViewController; 44 HostFetchingViewController* _fetchingViewController;
44 HostSetupViewController* _setupViewController; 45 HostSetupViewController* _setupViewController;
45 RemotingService* _remotingService; 46 RemotingService* _remotingService;
46 } 47 }
47 @end 48 @end
48 49
49 // TODO(nicholss): Localize this file. 50 // TODO(nicholss): Localize this file.
50 // TODO(nicholss): This file is not finished with integration, the app flow is 51 // TODO(nicholss): This file is not finished with integration, the app flow is
51 // still pending development. 52 // still pending development.
52 53
53 @implementation RemotingViewController 54 @implementation RemotingViewController
54 55
55 - (instancetype)init { 56 - (instancetype)init {
56 _isAuthenticated = NO; 57 _isAuthenticated = NO;
58 _showSignedInAccount = YES;
57 UICollectionViewFlowLayout* layout = 59 UICollectionViewFlowLayout* layout =
58 [[MDCCollectionViewFlowLayout alloc] init]; 60 [[MDCCollectionViewFlowLayout alloc] init];
59 layout.minimumInteritemSpacing = 0; 61 layout.minimumInteritemSpacing = 0;
60 CGFloat sectionInset = kHostInset * 2.f; 62 CGFloat sectionInset = kHostInset * 2.f;
61 [layout setSectionInset:UIEdgeInsetsMake(sectionInset, sectionInset, 63 [layout setSectionInset:UIEdgeInsetsMake(sectionInset, sectionInset,
62 sectionInset, sectionInset)]; 64 sectionInset, sectionInset)];
63 self = [super init]; 65 self = [super init];
64 if (self) { 66 if (self) {
65 _remotingService = RemotingService.instance; 67 _remotingService = RemotingService.instance;
66 68
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 selector:@selector(hostListStateDidChangeNotification:) 142 selector:@selector(hostListStateDidChangeNotification:)
141 name:kHostListStateDidChange 143 name:kHostListStateDidChange
142 object:nil]; 144 object:nil];
143 [[NSNotificationCenter defaultCenter] 145 [[NSNotificationCenter defaultCenter]
144 addObserver:self 146 addObserver:self
145 selector:@selector(userDidUpdateNotification:) 147 selector:@selector(userDidUpdateNotification:)
146 name:kUserDidUpdate 148 name:kUserDidUpdate
147 object:nil]; 149 object:nil];
148 } 150 }
149 151
150 - (void)viewWillAppear:(BOOL)animated {
151 [super viewWillAppear:animated];
152
153 [self nowAuthenticated:_remotingService.authentication.user.isAuthenticated];
154 if (_isAuthenticated) {
155 [_remotingService requestHostListFetch];
156 }
157 [self presentStatus];
158 }
159
160 - (void)viewDidAppear:(BOOL)animated { 152 - (void)viewDidAppear:(BOOL)animated {
161 [super viewDidAppear:animated]; 153 [super viewDidAppear:animated];
162 if (!_isAuthenticated) { 154 if (!_remotingService.authentication.user.isAuthenticated) {
163 [AppDelegate.instance presentSignInFlow]; 155 [AppDelegate.instance presentSignInFlow];
164 MDCSnackbarMessage* message = [[MDCSnackbarMessage alloc] init]; 156 MDCSnackbarMessage* message = [[MDCSnackbarMessage alloc] init];
165 message.text = @"Please login."; 157 message.text = @"Please login.";
166 [MDCSnackbarManager showMessage:message]; 158 [MDCSnackbarManager showMessage:message];
167 } 159 }
168 } 160 }
169 161
170 - (UIStatusBarStyle)preferredStatusBarStyle { 162 - (UIStatusBarStyle)preferredStatusBarStyle {
171 return UIStatusBarStyleLightContent; 163 return UIStatusBarStyleLightContent;
172 } 164 }
173 165
174 #pragma mark - Remoting Service Notifications 166 #pragma mark - Remoting Service Notifications
175 167
176 - (void)hostListStateDidChangeNotification:(NSNotification*)notification { 168 - (void)hostListStateDidChangeNotification:(NSNotification*)notification {
177 [self refreshContent]; 169 [self refreshContent];
178 } 170 }
179 171
180 - (void)userDidUpdateNotification:(NSNotification*)notification { 172 - (void)userDidUpdateNotification:(NSNotification*)notification {
181 [self nowAuthenticated:_remotingService.authentication.user.isAuthenticated]; 173 [[NSOperationQueue mainQueue] addOperationWithBlock:^{
174 [self
175 nowAuthenticated:_remotingService.authentication.user.isAuthenticated];
176 }];
182 } 177 }
183 178
184 #pragma mark - RemotingAuthenticationDelegate 179 #pragma mark - RemotingAuthenticationDelegate
185 180
186 - (void)nowAuthenticated:(BOOL)authenticated { 181 - (void)nowAuthenticated:(BOOL)authenticated {
182 _isAuthenticated = authenticated;
187 if (authenticated) { 183 if (authenticated) {
188 MDCSnackbarMessage* message = [[MDCSnackbarMessage alloc] init]; 184 _showSignedInAccount = YES;
189 message.text = @"Logged In!"; 185 [self presentStatus];
190 [MDCSnackbarManager showMessage:message];
191 } else { 186 } else {
192 MDCSnackbarMessage* message = [[MDCSnackbarMessage alloc] init]; 187 MDCSnackbarMessage* message = [[MDCSnackbarMessage alloc] init];
193 message.text = @"Not logged in."; 188 message.text = @"Please sign-in.";
194 [MDCSnackbarManager showMessage:message]; 189 [MDCSnackbarManager showMessage:message];
195 } 190 }
196 _isAuthenticated = authenticated;
197 [self refreshContent]; 191 [self refreshContent];
198 } 192 }
199 193
200 #pragma mark - HostCollectionViewControllerDelegate 194 #pragma mark - HostCollectionViewControllerDelegate
201 195
202 - (void)didSelectCell:(HostCollectionViewCell*)cell 196 - (void)didSelectCell:(HostCollectionViewCell*)cell
203 completion:(void (^)())completionBlock { 197 completion:(void (^)())completionBlock {
204 if (![cell.hostInfo isOnline]) { 198 if (![cell.hostInfo isOnline]) {
205 MDCSnackbarMessage* message = [[MDCSnackbarMessage alloc] init]; 199 MDCSnackbarMessage* message = [[MDCSnackbarMessage alloc] init];
206 message.text = @"Host is offline."; 200 message.text = @"Host is offline.";
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 // controls that. 255 // controls that.
262 [_remotingService requestHostListFetch]; 256 [_remotingService requestHostListFetch];
263 } 257 }
264 258
265 - (void)didSelectMenu { 259 - (void)didSelectMenu {
266 [AppDelegate.instance showMenuAnimated:YES]; 260 [AppDelegate.instance showMenuAnimated:YES];
267 } 261 }
268 262
269 - (void)presentStatus { 263 - (void)presentStatus {
270 MDCSnackbarMessage* message = [[MDCSnackbarMessage alloc] init]; 264 MDCSnackbarMessage* message = [[MDCSnackbarMessage alloc] init];
271 if (_isAuthenticated) { 265 if (_isAuthenticated && _showSignedInAccount) {
266 _showSignedInAccount = NO;
272 message.text = [NSString 267 message.text = [NSString
273 stringWithFormat:@"Currently signed in as %@.", 268 stringWithFormat:@"Currently signed in as %@.",
274 _remotingService.authentication.user.userEmail]; 269 _remotingService.authentication.user.userEmail];
275 [MDCSnackbarManager showMessage:message]; 270 [MDCSnackbarManager showMessage:message];
276 } 271 }
277 } 272 }
278 273
279 - (void)refreshContent { 274 - (void)refreshContent {
280 if (_remotingService.hostListState == HostListStateNotFetched) { 275 if (_remotingService.hostListState == HostListStateNotFetched) {
281 self.contentViewController = nil; 276 self.contentViewController = nil;
(...skipping 15 matching lines...) Expand all
297 self.contentViewController = _collectionViewController; 292 self.contentViewController = _collectionViewController;
298 } else { 293 } else {
299 self.contentViewController = _setupViewController; 294 self.contentViewController = _setupViewController;
300 self.headerViewController.headerView.trackingScrollView = 295 self.headerViewController.headerView.trackingScrollView =
301 _setupViewController.collectionView; 296 _setupViewController.collectionView;
302 } 297 }
303 self.contentViewController.view.frame = self.view.bounds; 298 self.contentViewController.view.frame = self.view.bounds;
304 } 299 }
305 300
306 @end 301 @end
OLDNEW
« no previous file with comments | « remoting/ios/app/pin_entry_view.mm ('k') | remoting/ios/session/remoting_client.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698