]> git.saurik.com Git - apple/security.git/blobdiff - Keychain/EditItemViewController.m
Security-57031.1.35.tar.gz
[apple/security.git] / Keychain / EditItemViewController.m
diff --git a/Keychain/EditItemViewController.m b/Keychain/EditItemViewController.m
new file mode 100644 (file)
index 0000000..6b743d1
--- /dev/null
@@ -0,0 +1,94 @@
+//
+//  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