EditItemViewController.m   [plain text]


//
//  EditItemViewController.m
//  Security
//
//  Created by john on 10/24/12.
//
//

#import "EditItemViewController.h"
#import "MyKeychain.h"
//#import <regressions/SOSRegressionUtilities.h>
//#import <SOSCircle/Regressions/SOSRegressionUtilities.h>
#import <CKBridge/SOSCloudKeychainClient.h>
#import <CKBridge/SOSCloudKeychainConstants.h>
#include "utilities.h"

static const CFStringRef kAddItemKeyY = CFSTR("AddItem");


@interface EditItemViewController ()

@end

@implementation EditItemViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view.
    NSLog(@"_itemDetailModel: %@", _itemDetailModel);

    dgroup = dispatch_group_create();
    xpc_queue = dispatch_queue_create("EditItemViewController", DISPATCH_QUEUE_CONCURRENT);
    _itemName.text = [_itemDetailModel objectForKey:(__bridge id)(kSecAttrService)];
    _itemAccount.text = [_itemDetailModel objectForKey:(__bridge id)(kSecAttrAccount)];
//    _itemPassword.text = @"TODO";//[_itemDetailModel objectForKey:(__bridge id)(kSecValueData)];
    NSData *pwdData = [_itemDetailModel objectForKey:(__bridge id)(kSecValueData)];
    if (pwdData)
    {
        NSString *pwd = [[NSString alloc] initWithData:pwdData encoding:NSUTF8StringEncoding];
        _itemPassword.text = pwd;
    }
    else
        _itemPassword.text = @"";

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)postToCloud:(NSDictionary *)kcitem
{
    CFErrorRef error = NULL;
    testPutObjectInCloud(kAddItemKeyY, (__bridge CFTypeRef)(kcitem), &error, dgroup, xpc_queue);
    NSLog(@"NOT IMPLEMENTED: Sent new item to cloud: %@", kcitem);
}

- (IBAction)handlePasswordEditDone:(id)sender
{
    NSLog(@"handlePasswordEditDone");

    NSMutableDictionary *newItem = [NSMutableDictionary dictionaryWithCapacity:0];
    [newItem setObject:[_itemPassword text] forKey:kItemPasswordKey];
    [newItem setObject:[_itemAccount text] forKey:kItemAccountKey];
    [newItem setObject:[_itemName text] forKey:kItemNameKey];

    [[MyKeychain sharedInstance] setItem:newItem];
    [self postToCloud:newItem];
}


- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
        NSLog(@"prepareForSegue EditDone");
    if ([[segue identifier] isEqualToString:@"EditDone"])
    {
        NSLog(@"seque EditDone");
        [self handlePasswordEditDone:NULL];
    }
}

@end