VLCNetworkLoginViewController.m 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. //
  2. // VLCNetworkLoginViewController.m
  3. // VLC for iOS
  4. //
  5. // Created by Felix Paul Kühne on 11.08.13.
  6. // Copyright (c) 2013 VideoLAN. All rights reserved.
  7. //
  8. // Refer to the COPYING file of the official project for license.
  9. //
  10. #import "VLCNetworkLoginViewController.h"
  11. #import "UIBarButtonItem+Theme.h"
  12. @interface VLCNetworkLoginViewController () <UITextFieldDelegate>
  13. @end
  14. @implementation VLCNetworkLoginViewController
  15. - (void)viewDidLoad
  16. {
  17. [super viewDidLoad];
  18. self.modalPresentationStyle = UIModalPresentationFormSheet;
  19. if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
  20. UIBarButtonItem *dismissButton = [UIBarButtonItem themedBackButtonWithTarget:self andSelector:@selector(dismissWithAnimation:)];
  21. self.navigationItem.leftBarButtonItem = dismissButton;
  22. }
  23. self.title = NSLocalizedString(@"CONNECT_TO_SERVER", nil);
  24. [self.connectButton setTitle:NSLocalizedString(@"BUTTON_CONNECT",@"") forState:UIControlStateNormal];
  25. self.serverAddressHelpLabel.text = NSLocalizedString(@"ENTER_SERVER_ADDRESS_HELP",@"");
  26. self.loginHelpLabel.text = NSLocalizedString(@"ENTER_SERVER_CREDS_HELP",@"");
  27. self.usernameLabel.text = NSLocalizedString(@"USER_LABEL", @"");
  28. self.passwordLabel.text = NSLocalizedString(@"PASSWORD_LABEL", @"");
  29. self.serverAddressField.delegate = self;
  30. self.serverAddressField.returnKeyType = UIReturnKeyNext;
  31. self.serverAddressField.clearButtonMode = UITextFieldViewModeWhileEditing;
  32. self.usernameField.delegate = self;
  33. self.usernameField.returnKeyType = UIReturnKeyNext;
  34. self.usernameField.clearButtonMode = UITextFieldViewModeWhileEditing;
  35. self.passwordField.delegate = self;
  36. self.passwordField.returnKeyType = UIReturnKeyDone;
  37. self.passwordField.clearButtonMode = UITextFieldViewModeWhileEditing;
  38. }
  39. - (void)viewWillAppear:(BOOL)animated
  40. {
  41. self.navigationController.navigationBar.translucent = NO;
  42. [super viewWillAppear:animated];
  43. }
  44. - (IBAction)dismissWithAnimation:(id)sender
  45. {
  46. if (SYSTEM_RUNS_IN_THE_FUTURE)
  47. self.navigationController.navigationBar.translucent = YES;
  48. if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
  49. [self.navigationController popViewControllerAnimated:YES];
  50. else
  51. [self dismissViewControllerAnimated:YES completion:nil];
  52. }
  53. - (IBAction)dismiss:(id)sender
  54. {
  55. if (SYSTEM_RUNS_IN_THE_FUTURE)
  56. self.navigationController.navigationBar.translucent = YES;
  57. if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
  58. [self.navigationController popViewControllerAnimated:NO];
  59. else
  60. [self dismissViewControllerAnimated:NO completion:nil];
  61. }
  62. - (IBAction)connectToServer:(id)sender
  63. {
  64. [self dismiss:nil];
  65. if (self.delegate) {
  66. if ([self.delegate respondsToSelector:@selector(loginToURL:confirmedWithUsername:andPassword:)]) {
  67. NSString *string = self.serverAddressField.text;
  68. if (![string hasPrefix:@"ftp://"])
  69. string = [NSString stringWithFormat:@"ftp://%@", string];
  70. [self.delegate loginToURL:[NSURL URLWithString:string] confirmedWithUsername:self.usernameField.text andPassword:self.passwordField.text];
  71. }
  72. }
  73. }
  74. #pragma mark - text view delegate
  75. - (BOOL)textFieldShouldReturn:(UITextField *)textField {
  76. if ([self.serverAddressField isFirstResponder])
  77. {
  78. [self.serverAddressField resignFirstResponder];
  79. [self.usernameField becomeFirstResponder];
  80. }
  81. else if ([self.usernameField isFirstResponder])
  82. {
  83. [self.usernameField resignFirstResponder];
  84. [self.passwordField becomeFirstResponder];
  85. }
  86. else if ([self.passwordField isFirstResponder])
  87. {
  88. [self.passwordField resignFirstResponder];
  89. //[self connectToServer:nil];
  90. }
  91. return NO;
  92. }
  93. @end