// // LoginViewController.m // Juick // // Created by Vitaly on 30.01.14. // Copyright (c) 2014 com.juick. All rights reserved. // #import "LoginViewController.h" #import "User.h" #import "ColorScheme.h" @implementation LoginViewController - (void) awakeFromNib { [super awakeFromNib]; [self initializeForm]; } - (void)initializeForm { self.title = @"Sign in"; [self.view setBackgroundColor:[ColorScheme mainBackground]]; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelSignIn)]; self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(doneSignIn)]; XLFormDescriptor *form = [XLFormDescriptor formDescriptorWithTitle:@"Sign in"]; form.rowNavigationOptions = XLFormRowNavigationOptionEnabled; XLFormSectionDescriptor *section = [XLFormSectionDescriptor formSection]; [form addFormSection:section]; XLFormRowDescriptor * usernameRow = [XLFormRowDescriptor formRowDescriptorWithTag:@"com.juick.username" rowType:XLFormRowDescriptorTypeText title:@"Username"]; usernameRow.value = [[PDKeychainBindings sharedKeychainBindings] stringForKey:@"com.juick.username"]; [section addFormRow:usernameRow]; XLFormRowDescriptor * passwordRow = [XLFormRowDescriptor formRowDescriptorWithTag:@"com.juick.password" rowType:XLFormRowDescriptorTypePassword title:@"Password"]; passwordRow.value = [[PDKeychainBindings sharedKeychainBindings] stringForKey:@"com.juick.password"]; [section addFormRow:passwordRow]; self.form = form; } - (void) cancelSignIn { CATransition* transition = [CATransition animation]; transition.duration = 0.3; transition.type = kCATransitionFade; transition.subtype = kCATransitionFromTop; [self.navigationController.view.layer addAnimation:transition forKey:kCATransition]; [self.navigationController popViewControllerAnimated:NO]; } - (void) doneSignIn { [User checkIsValid:^(BOOL success) { if (success) { CATransition* transition = [CATransition animation]; transition.duration = 0.3; transition.type = kCATransitionFade; transition.subtype = kCATransitionFromTop; [self.navigationController.view.layer addAnimation:transition forKey:kCATransition]; [self.navigationController popToRootViewControllerAnimated:NO]; } else { [User throwUnableToLogin]; } }]; } -(void) formRowDescriptorValueHasChanged:(XLFormRowDescriptor *)formRow oldValue:(id)oldValue newValue:(id)newValue { [super formRowDescriptorValueHasChanged:formRow oldValue:oldValue newValue:newValue]; if ([newValue isKindOfClass:[NSString class]]) { [[PDKeychainBindings sharedKeychainBindings] setObject:newValue forKey:formRow.tag]; } } @end