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

Unified Diff: remoting/ios/app/client_connection_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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/ios/app/client_connection_view_controller.h ('k') | remoting/ios/app/host_view_controller.mm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/ios/app/client_connection_view_controller.mm
diff --git a/remoting/ios/app/client_connection_view_controller.mm b/remoting/ios/app/client_connection_view_controller.mm
index 8e4c8a57a73bdf2a44f47a123ca6a47c1cfbbe79..272fc2f2cb183e361cbf41f8b4cc4bb112d4b1ea 100644
--- a/remoting/ios/app/client_connection_view_controller.mm
+++ b/remoting/ios/app/client_connection_view_controller.mm
@@ -109,6 +109,10 @@ static const CGFloat kKeyboardAnimationTime = 0.3;
return self;
}
+- (void)dealloc {
+ [[NSNotificationCenter defaultCenter] removeObserver:self];
+}
+
#pragma mark - UIViewController
- (void)viewDidLoad {
@@ -153,11 +157,19 @@ static const CGFloat kKeyboardAnimationTime = 0.3;
[self.view addSubview:_pinEntryView];
_pinEntryView.delegate = self;
+ _reconnectView.hidden = YES;
+
[self
initializeLayoutConstraintsWithViews:NSDictionaryOfVariableBindings(
_activityIndicator, _statusLabel,
_iconView, _reconnectView,
_pinEntryView)];
+
+ [[NSNotificationCenter defaultCenter]
+ addObserver:self
+ selector:@selector(hostSessionStatusChanged:)
+ name:kHostSessionStatusChanged
+ object:nil];
}
- (void)initializeLayoutConstraintsWithViews:(NSDictionary*)views {
@@ -176,7 +188,6 @@ static const CGFloat kKeyboardAnimationTime = 0.3;
NSString* f;
// Horizontal constraints:
-
[self.view addConstraints:
[NSLayoutConstraint
constraintsWithVisualFormat:@"H:[_iconView(iconDiameter)]"
@@ -206,7 +217,6 @@ static const CGFloat kKeyboardAnimationTime = 0.3;
views:views]];
// Anchors:
-
_activityIndicatorTopConstraintFull =
[_activityIndicator.topAnchor constraintEqualToAnchor:self.view.topAnchor
constant:kTopPadding];
@@ -217,7 +227,6 @@ static const CGFloat kKeyboardAnimationTime = 0.3;
.active = YES;
// Vertical constraints:
-
[self.view addConstraints:
[NSLayoutConstraint
constraintsWithVisualFormat:@"V:[_iconView(iconDiameter)]"
@@ -263,12 +272,6 @@ static const CGFloat kKeyboardAnimationTime = 0.3;
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];
-
- [[NSNotificationCenter defaultCenter]
- addObserver:self
- selector:@selector(hostSessionStatusChanged:)
- name:kHostSessionStatusChanged
- object:nil];
}
- (void)viewDidAppear:(BOOL)animated {
@@ -291,7 +294,6 @@ static const CGFloat kKeyboardAnimationTime = 0.3;
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[_activityIndicator stopAnimating];
- [[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (BOOL)prefersStatusBarHidden {
@@ -300,6 +302,9 @@ static const CGFloat kKeyboardAnimationTime = 0.3;
#pragma mark - Keyboard
+// TODO(nicholss): We need to listen to screen rotation and re-adjust the
+// topAnchor.
+
- (void)keyboardWillShow:(NSNotification*)notification {
CGSize keyboardSize =
[[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey]
@@ -347,6 +352,9 @@ static const CGFloat kKeyboardAnimationTime = 0.3;
case ClientViewConnected:
[self showConnectedState];
break;
+ case ClientViewReconnect:
+ [self showReconnect];
+ break;
case ClientViewClosed:
[self.navigationController popToRootViewControllerAnimated:YES];
break;
@@ -382,12 +390,15 @@ static const CGFloat kKeyboardAnimationTime = 0.3;
[_pinEntryView endEditing:YES];
_statusLabel.text =
[NSString stringWithFormat:@"Connecting to %@", _remoteHostName];
+
+ _pinEntryView.hidden = YES;
+
+ _reconnectView.hidden = YES;
+
[_activityIndicator stopAnimating];
_activityIndicator.cycleColors = @[ [UIColor whiteColor] ];
_activityIndicator.indicatorMode = MDCActivityIndicatorModeIndeterminate;
_activityIndicator.hidden = NO;
- _pinEntryView.hidden = YES;
- _reconnectView.hidden = YES;
[_activityIndicator startAnimating];
}
@@ -395,9 +406,12 @@ static const CGFloat kKeyboardAnimationTime = 0.3;
_statusLabel.text = [NSString stringWithFormat:@"%@", _remoteHostName];
[_activityIndicator stopAnimating];
_activityIndicator.hidden = YES;
+
_pinEntryView.hidden = NO;
_reconnectView.hidden = YES;
+ _reconnectView.hidden = YES;
+
// TODO(yuweih): This may be called before viewDidAppear and miss the keyboard
// callback.
[_pinEntryView becomeFirstResponder];
@@ -407,8 +421,11 @@ static const CGFloat kKeyboardAnimationTime = 0.3;
[_pinEntryView endEditing:YES];
_statusLabel.text =
[NSString stringWithFormat:@"Connected to %@", _remoteHostName];
- _activityIndicator.progress = 0.0;
+
_pinEntryView.hidden = YES;
+ [_pinEntryView clearPinEntry];
+
+ _activityIndicator.progress = 0.0;
_activityIndicator.hidden = NO;
_activityIndicator.indicatorMode = MDCActivityIndicatorModeDeterminate;
_activityIndicator.cycleColors = @[ [UIColor greenColor] ];
@@ -416,28 +433,42 @@ static const CGFloat kKeyboardAnimationTime = 0.3;
_activityIndicator.progress = 1.0;
_reconnectView.hidden = YES;
+ _reconnectView.hidden = YES;
+
HostViewController* hostViewController =
[[HostViewController alloc] initWithClient:_client];
_client = nil;
- // Replaces current (topmost) view controller with |hostViewController|.
- NSMutableArray* controllers =
- [self.navigationController.viewControllers mutableCopy];
- [controllers removeLastObject];
- [controllers addObject:hostViewController];
- [self.navigationController setViewControllers:controllers animated:NO];
+ [self.navigationController pushViewController:hostViewController animated:NO];
+}
+
+- (void)showReconnect {
+ _statusLabel.text =
+ [NSString stringWithFormat:@"Connection closed for %@", _remoteHostName];
+ [_activityIndicator stopAnimating];
+ _activityIndicator.hidden = YES;
+
+ _pinEntryView.hidden = YES;
+
+ _reconnectView.hidden = NO;
+
+ [self.navigationController popToViewController:self animated:YES];
+ [MDCSnackbarManager
+ showMessage:[MDCSnackbarMessage messageWithText:@"Connection Closed."]];
}
- (void)showError {
_statusLabel.text =
[NSString stringWithFormat:@"Error connecting to %@", _remoteHostName];
- _activityIndicator.progress = 0.0;
+
_pinEntryView.hidden = YES;
- _activityIndicator.hidden = NO;
+
_activityIndicator.indicatorMode = MDCActivityIndicatorModeDeterminate;
_activityIndicator.cycleColors = @[ [UIColor redColor] ];
- [_activityIndicator startAnimating];
_activityIndicator.progress = 1.0;
+ _activityIndicator.hidden = NO;
+ [_activityIndicator startAnimating];
+
_reconnectView.hidden = NO;
MDCSnackbarMessage* message = nil;
@@ -537,7 +568,8 @@ static const CGFloat kKeyboardAnimationTime = 0.3;
state = ClientViewError;
break;
case SessionClosed:
- state = ClientViewClosed;
+ // If the session closes, offer the user to reconnect.
+ state = ClientViewReconnect;
break;
default:
LOG(ERROR) << "Unknown State for Session, " << sessionDetails.state;
« no previous file with comments | « remoting/ios/app/client_connection_view_controller.h ('k') | remoting/ios/app/host_view_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698