github.com/slspeek/camlistore_namedsearch@v0.0.0-20140519202248-ed6f70f7721a/clients/ios-objc/photobackup/SettingsViewController.m (about)

     1  //
     2  //  SettingsViewController.m
     3  //  photobackup
     4  //
     5  //  Created by Nick O'Neill on 12/16/13.
     6  //  Copyright (c) 2013 The Camlistore Authors. All rights reserved.
     7  //
     8  
     9  #import "SettingsViewController.h"
    10  #import "LAViewController.h"
    11  #import "LACamliUtil.h"
    12  #import "LAAppDelegate.h"
    13  
    14  @interface SettingsViewController ()
    15  
    16  @end
    17  
    18  @implementation SettingsViewController
    19  
    20  - (id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle*)nibBundleOrNil
    21  {
    22      self = [super initWithNibName:nibNameOrNil
    23                             bundle:nibBundleOrNil];
    24      if (self) {
    25          // Custom initialization
    26      }
    27      return self;
    28  }
    29  
    30  - (void)viewDidLoad
    31  {
    32      [super viewDidLoad];
    33  
    34      NSString* serverUrl = [[NSUserDefaults standardUserDefaults] stringForKey:CamliServerKey];
    35      if (serverUrl) {
    36          self.server.text = serverUrl;
    37      }
    38  
    39      NSString* username = [[NSUserDefaults standardUserDefaults] stringForKey:CamliUsernameKey];
    40      if (username) {
    41          self.username.text = username;
    42  
    43          NSString* password = [LACamliUtil passwordForUsername:username];
    44          if (password) {
    45              self.password.text = password;
    46          }
    47      }
    48  }
    49  
    50  #pragma mark - uitextfield delegate
    51  
    52  - (BOOL)textFieldShouldReturn:(UITextField*)textField
    53  {
    54      LALog(@"text field return %@", textField);
    55  
    56      [self.server resignFirstResponder];
    57      [self.username resignFirstResponder];
    58      [self.password resignFirstResponder];
    59  
    60      if (textField == self.server) {
    61          [self.username becomeFirstResponder];
    62      } else if (textField == self.username) {
    63          [self.password becomeFirstResponder];
    64      }
    65  
    66      return YES;
    67  }
    68  
    69  #pragma mark - done
    70  
    71  - (IBAction)validate
    72  {
    73      self.errors.text = @"";
    74  
    75      BOOL hasErrors = NO;
    76  
    77      NSURL* serverUrl = [NSURL URLWithString:self.server.text];
    78  
    79      if (!serverUrl || !serverUrl.scheme || !serverUrl.host) {
    80          hasErrors = YES;
    81          self.errors.text = @"bad url :(";
    82      }
    83  
    84      if (!self.username.text || [self.username.text isEqualToString:@""]) {
    85          hasErrors = YES;
    86          self.errors.text = [self.errors.text stringByAppendingString:@"type a username :("];
    87      }
    88  
    89      if (!self.password.text || [self.password.text isEqualToString:@""]) {
    90          hasErrors = YES;
    91          self.errors.text = [self.errors.text stringByAppendingString:@"type a password :("];
    92      }
    93  
    94      if (!hasErrors) {
    95          [self saveValues];
    96      }
    97  }
    98  
    99  - (void)saveValues
   100  {
   101      [LACamliUtil savePassword:self.password.text forUsername:self.username.text];
   102  
   103      [[NSUserDefaults standardUserDefaults] setObject:self.username.text
   104                                                forKey:CamliUsernameKey];
   105      [[NSUserDefaults standardUserDefaults] setObject:self.server.text
   106                                                forKey:CamliServerKey];
   107      [[NSUserDefaults standardUserDefaults] synchronize];
   108  
   109      [LACamliUtil errorText:@[
   110                                 @""
   111                             ]];
   112  
   113      [self.parent dismissSettings];
   114  }
   115  
   116  - (void)didReceiveMemoryWarning
   117  {
   118      [super didReceiveMemoryWarning];
   119      // Dispose of any resources that can be recreated.
   120  }
   121  
   122  @end