From 7cf2c7f5c615da25fe912dc34cf96a9329f6f3e4 Mon Sep 17 00:00:00 2001 From: Maarten Billemont Date: Sun, 14 Apr 2013 10:24:24 -0400 Subject: [PATCH] Setup and guide. [FIXED] Setup wasn't showing up on app load. [FIXED] More temporary moc fixes and main thread fixes. [IMPROVED] Guide now plays an introduction animation. [FIXED] Setup iCloud switch is now functional. --- External/Pearl | 2 +- .../ObjC/Mac/MPPasswordWindowController.m | 2 +- MasterPassword/ObjC/iOS/MPAppDelegate.m | 20 +- .../ObjC/iOS/MPElementListController.m | 13 +- .../ObjC/iOS/MPGuideViewController.h | 19 + .../ObjC/iOS/MPGuideViewController.m | 163 ++++++- .../ObjC/iOS/MPMainViewController.m | 44 +- .../ObjC/iOS/MPSetupViewController.h | 5 +- .../ObjC/iOS/MPSetupViewController.m | 21 + .../ObjC/iOS/MPTypeViewController.m | 2 +- .../ObjC/iOS/MPUnlockViewController.m | 35 +- .../ObjC/iOS/MainStoryboard_iPhone.storyboard | 454 +++++++++--------- .../project.pbxproj | 8 + MasterPassword/Resources/Media/play.png | Bin 0 -> 2962 bytes MasterPassword/Resources/Media/play@2x.png | Bin 0 -> 11710 bytes .../QuickLook/Preview.pdf | Bin 52269 -> 63735 bytes .../QuickLook/Thumbnail.jpg | Bin 17137 -> 19082 bytes .../Raw/Large Icons.vdesigner/VectorDesigner | Bin 27109 -> 29508 bytes 18 files changed, 498 insertions(+), 290 deletions(-) create mode 100644 MasterPassword/Resources/Media/play.png create mode 100644 MasterPassword/Resources/Media/play@2x.png diff --git a/External/Pearl b/External/Pearl index d8c2fa37..99c73fd3 160000 --- a/External/Pearl +++ b/External/Pearl @@ -1 +1 @@ -Subproject commit d8c2fa3755d1f440cd5eaa980adffef08a805b25 +Subproject commit 99c73fd3b37b4d2621548f5ae366c163231a346d diff --git a/MasterPassword/ObjC/Mac/MPPasswordWindowController.m b/MasterPassword/ObjC/Mac/MPPasswordWindowController.m index 0197707f..0ee06814 100644 --- a/MasterPassword/ObjC/Mac/MPPasswordWindowController.m +++ b/MasterPassword/ObjC/Mac/MPPasswordWindowController.m @@ -46,7 +46,7 @@ informativeTextWithFormat:@"Certain sites require explicit migration to get updated to the latest version of the " @"Master Password algorithm. For these sites, a migration button will appear. Migrating these sites will cause " @"their passwords to change. You'll need to update your profile for that site with the new password."]; - [activeUser saveContext]; + [moc saveToStore]; }]; } forKeyPath:@"key" options:NSKeyValueObservingOptionInitial context:nil]; [[NSNotificationCenter defaultCenter] addObserverForName:NSWindowDidBecomeKeyNotification object:self.window queue:nil diff --git a/MasterPassword/ObjC/iOS/MPAppDelegate.m b/MasterPassword/ObjC/iOS/MPAppDelegate.m index 316a11ba..bcb93102 100644 --- a/MasterPassword/ObjC/iOS/MPAppDelegate.m +++ b/MasterPassword/ObjC/iOS/MPAppDelegate.m @@ -260,8 +260,10 @@ inf(@"Started up with device identifier: %@", [PearlKeyChain deviceIdentifier]); - if ([[MPiOSConfig get].showSetup boolValue]) - [[MPAppDelegate get] showSetup]; + dispatch_async(dispatch_get_main_queue(), ^{ + if ([[MPiOSConfig get].showSetup boolValue]) + [[MPAppDelegate get] showSetup]; + }); return YES; } @@ -592,21 +594,21 @@ if (buttonIndex == [alert cancelButtonIndex]) return; - [moc performBlock:^{ + [moc performBlockAndWait:^{ inf(@"Unsetting master password for: %@.", user.userID); user.keyID = nil; [self forgetSavedKeyFor:user]; [moc saveToStore]; + }]; - [self signOutAnimated:YES]; - if (didReset) - didReset(); + [self signOutAnimated:YES]; + if (didReset) + didReset(); #ifdef TESTFLIGHT_SDK_VERSION - [TestFlight passCheckpoint:MPCheckpointChangeMP]; + [TestFlight passCheckpoint:MPCheckpointChangeMP]; #endif - [[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointChangeMP attributes:nil]; - }]; + [[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointChangeMP attributes:nil]; } cancelTitle:[PearlStrings get].commonButtonAbort otherTitles:[PearlStrings get].commonButtonContinue, nil]; diff --git a/MasterPassword/ObjC/iOS/MPElementListController.m b/MasterPassword/ObjC/iOS/MPElementListController.m index b27c90a5..c34c8648 100644 --- a/MasterPassword/ObjC/iOS/MPElementListController.m +++ b/MasterPassword/ObjC/iOS/MPElementListController.m @@ -250,20 +250,23 @@ - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { - if (editingStyle == UITableViewCellEditingStyleDelete) - [self.fetchedResultsController.managedObjectContext performBlock:^{ + if (editingStyle == UITableViewCellEditingStyleDelete) { + NSManagedObjectContext *moc = self.fetchedResultsController.managedObjectContext; + [moc performBlock:^{ MPElementEntity *element = [self.fetchedResultsController objectAtIndexPath:indexPath]; inf(@"Deleting element: %@", element.name); - [self.fetchedResultsController.managedObjectContext deleteObject:element]; + [moc deleteObject:element]; #ifdef TESTFLIGHT_SDK_VERSION [TestFlight passCheckpoint:MPCheckpointDeleteElement]; #endif [[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointDeleteElement attributes:@{ - @"type" : element.typeName, - @"version" : @(element.version)}]; + @"type" : element.typeName, + @"version" : @(element.version) + }]; }]; + } } @end diff --git a/MasterPassword/ObjC/iOS/MPGuideViewController.h b/MasterPassword/ObjC/iOS/MPGuideViewController.h index 9669ca5e..aeba3517 100644 --- a/MasterPassword/ObjC/iOS/MPGuideViewController.h +++ b/MasterPassword/ObjC/iOS/MPGuideViewController.h @@ -10,6 +10,25 @@ @interface MPGuideViewController : UIViewController +@property (weak, nonatomic) IBOutlet UIView *siteNameTip; +@property (weak, nonatomic) IBOutlet UIView *contentTip; +@property (weak, nonatomic) IBOutlet UILabel *contentTipText; +@property (weak, nonatomic) IBOutlet UIButton *usernameButton; +@property (weak, nonatomic) IBOutlet UIView *usernameTip; +@property (weak, nonatomic) IBOutlet UIButton *typeButton; +@property (weak, nonatomic) IBOutlet UIView *typeTip; +@property (weak, nonatomic) IBOutlet UIButton *toolButton; +@property (weak, nonatomic) IBOutlet UIView *toolTip; +@property (weak, nonatomic) IBOutlet UIProgressView *progress; +@property (weak, nonatomic) IBOutlet UIView *content; +@property (weak, nonatomic) IBOutlet UIButton *contentButton; +@property (weak, nonatomic) IBOutlet UITextField *contentText; +@property (weak, nonatomic) IBOutlet UIButton *volumeButton; +@property (weak, nonatomic) IBOutlet UIButton *largePlayButton; +@property (weak, nonatomic) IBOutlet UIButton *smallPlayButton; + +- (IBAction)play; - (IBAction)close; +- (IBAction)toggleVolume; @end diff --git a/MasterPassword/ObjC/iOS/MPGuideViewController.m b/MasterPassword/ObjC/iOS/MPGuideViewController.m index 119ab18e..9350f41e 100644 --- a/MasterPassword/ObjC/iOS/MPGuideViewController.m +++ b/MasterPassword/ObjC/iOS/MPGuideViewController.m @@ -8,23 +8,55 @@ #import "MPGuideViewController.h" +@interface MPGuideViewController() + +@property(nonatomic, strong) NSTimer *timer; +@property(nonatomic) int tickCount; +@property(nonatomic) int currentTick; +@property(nonatomic) int lastTick; +@property(nonatomic) BOOL muted; +@end @implementation MPGuideViewController - (BOOL)shouldAutorotate { - + return NO; } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { - + return UIInterfaceOrientationPortrait; } +- (void)viewDidLoad { + + [super viewDidLoad]; + + self.tickCount = 30; +} + - (void)viewWillAppear:(BOOL)animated { inf(@"Guide will appear."); [super viewWillAppear:animated]; + + if (self.navigationController) { + // Via setup + [self.navigationController setNavigationBarHidden:YES animated:animated]; + self.smallPlayButton.hidden = YES; + self.siteNameTip.alpha = 0; + self.content.alpha = 0; + self.content.frame = CGRectSetHeight( self.content.frame, 180 ); + self.contentTip.alpha = 0; + self.usernameTip.alpha = 0; + self.typeTip.alpha = 0; + self.toolTip.alpha = 0; + } + else { + // Via segue + self.largePlayButton.hidden = YES; + } } - (void)viewDidAppear:(BOOL)animated { @@ -37,12 +69,139 @@ - (void)viewWillDisappear:(BOOL)animated { inf(@"Guide will disappear."); + [self.navigationController setNavigationBarHidden:NO animated:animated]; [super viewWillDisappear:animated]; } +- (IBAction)play { + + if (self.timer) { + // Pause + [self.timer invalidate]; + self.timer = nil; + + self.smallPlayButton.hidden = NO; + [self.smallPlayButton setImage:[UIImage imageNamed:@"icon_play"] forState:UIControlStateNormal]; + } + + else { + // Play + self.smallPlayButton.hidden = NO; + self.largePlayButton.hidden = YES; + [self.smallPlayButton setImage:[UIImage imageNamed:@"icon_pause"] forState:UIControlStateNormal]; + + self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(tick:) + userInfo:nil repeats:YES]; + } +} + - (IBAction)close { [self.presentingViewController dismissViewControllerAnimated:YES completion:nil]; } +- (IBAction)toggleVolume { + + if ((self.muted = !self.muted)) + [self.volumeButton setImage:[UIImage imageNamed:@"icon_volume-mute"] forState:UIControlStateNormal]; + else + [self.volumeButton setImage:[UIImage imageNamed:@"icon_volume-high"] forState:UIControlStateNormal]; +} + +- (void)tick:(NSTimer *)timer { + + self.lastTick = self.currentTick; + ++self.currentTick; + [self.progress setProgress:(float)self.currentTick / self.tickCount animated:YES]; + + if (self.currentTick < 5) { + [UIView animateWithDuration:0.5 animations:^{ + self.siteNameTip.alpha = 1; + self.content.alpha = 0; + self.content.frame = CGRectSetHeight( self.content.frame, 180 ); + self.contentTip.alpha = 0; + self.usernameTip.alpha = 0; + self.typeTip.alpha = 0; + self.toolTip.alpha = 0; + }]; + } + else if (self.currentTick < 10) { + [UIView animateWithDuration:0.5 animations:^{ + self.siteNameTip.alpha = 0; + self.content.alpha = 1; + self.contentTip.alpha = 1; + self.usernameTip.alpha = 0; + self.typeTip.alpha = 0; + self.toolTip.alpha = 0; + }]; + } + else if (self.currentTick < 15) { + [UIView animateWithDuration:0.5 animations:^{ + self.siteNameTip.alpha = 0; + self.content.alpha = 1; + self.contentTip.alpha = 1; + self.contentButton.highlighted = YES; + self.contentTipText.text = @"Tap to copy"; + self.usernameTip.alpha = 0; + self.typeTip.alpha = 0; + self.toolButton.highlighted = NO; + self.toolTip.alpha = 0; + }]; + } + else if (self.currentTick < 20) { + [UIView animateWithDuration:0.5 animations:^{ + self.siteNameTip.alpha = 0; + self.content.alpha = 1; + self.content.frame = CGRectSetHeight( self.content.frame, 231 ); + self.contentTip.alpha = 0; + self.contentButton.highlighted = NO; + self.contentTipText.text = @"Use this password"; + self.usernameButton.highlighted = YES; + self.usernameTip.alpha = 1; + self.typeTip.alpha = 0; + self.toolTip.alpha = 0; + }]; + } + else if (self.currentTick < 25) { + [UIView animateWithDuration:0.5 animations:^{ + self.siteNameTip.alpha = 0; + self.content.alpha = 1; + self.contentTip.alpha = 0; + self.usernameButton.highlighted = NO; + self.usernameTip.alpha = 0; + self.typeTip.alpha = 1; + self.typeButton.highlighted = YES; + self.toolTip.alpha = 0; + }]; + } + else if (self.currentTick < 30) { + [UIView animateWithDuration:0.5 animations:^{ + self.siteNameTip.alpha = 0; + self.content.alpha = 1; + self.contentTip.alpha = 0; + self.usernameTip.alpha = 0; + self.typeTip.alpha = 0; + self.typeButton.highlighted = NO; + self.toolButton.highlighted = YES; + self.toolTip.alpha = 1; + self.contentText.text = @"XupuMajf4'Hafh"; + }]; + } + else if (self.currentTick <= self.tickCount) { + [self.timer invalidate]; + self.timer = nil; + self.currentTick = 0; + [UIView animateWithDuration:0.5 animations:^{ + [self.smallPlayButton setImage:[UIImage imageNamed:@"icon_play"] forState:UIControlStateNormal]; + self.siteNameTip.alpha = 1; + self.content.alpha = 1; + self.contentTip.alpha = 1; + self.usernameTip.alpha = 1; + self.typeTip.alpha = 1; + self.toolButton.highlighted = NO; + self.toolTip.alpha = 0; + }]; + } +} + @end diff --git a/MasterPassword/ObjC/iOS/MPMainViewController.m b/MasterPassword/ObjC/iOS/MPMainViewController.m index da800ee2..aa9949a5 100644 --- a/MasterPassword/ObjC/iOS/MPMainViewController.m +++ b/MasterPassword/ObjC/iOS/MPMainViewController.m @@ -590,34 +590,28 @@ // Update element, keeping track of the old password. [self activeElementDo:^(MPElementEntity *activeElement) { - NSManagedObjectContext *moc = activeElement.managedObjectContext; - [moc performBlock:^{ + // Perform the task. + NSString *oldPassword = [activeElement.content description]; + if (!task( activeElement )) + return; + NSString *newPassword = [activeElement.content description]; - // Perform the task. - NSString *oldPassword = [activeElement.content description]; - if (!task(activeElement)) - return; - NSString *newPassword = [activeElement.content description]; + // Save. + [activeElement.managedObjectContext saveToStore]; - // Save. - NSError *error; - if (![moc save:&error]) - err(@"While saving changes to: %@, error: %@", activeElement.name, error); + // Update the UI. + dispatch_async( dispatch_get_main_queue(), ^{ + [self updateAnimated:YES]; - // Update the UI. - dispatch_async(dispatch_get_main_queue(), ^{ - [self updateAnimated:YES]; - - // Show new and old password. - if ([oldPassword length] && ![oldPassword isEqualToString:newPassword]) - [self showAlertWithTitle:@"Password Changed!" - message:PearlString(@"The password for %@ has changed.\n\n" - @"IMPORTANT:\n" - @"Don't forget to update the site with your new password! " - @"Your old password was:\n" - @"%@", activeElement.name, oldPassword)]; - }); - }]; + // Show new and old password. + if ([oldPassword length] && ![oldPassword isEqualToString:newPassword]) + [self showAlertWithTitle:@"Password Changed!" + message:PearlString( @"The password for %@ has changed.\n\n" + @"IMPORTANT:\n" + @"Don't forget to update the site with your new password! " + @"Your old password was:\n" + @"%@", activeElement.name, oldPassword )]; + } ); }]; } diff --git a/MasterPassword/ObjC/iOS/MPSetupViewController.h b/MasterPassword/ObjC/iOS/MPSetupViewController.h index 7c8bd08e..19160c17 100644 --- a/MasterPassword/ObjC/iOS/MPSetupViewController.h +++ b/MasterPassword/ObjC/iOS/MPSetupViewController.h @@ -19,6 +19,9 @@ #import @interface MPSetupViewController : UIViewController + +@property (weak, nonatomic) IBOutlet UISwitch *cloudSwitch; + - (IBAction)close:(UIBarButtonItem *)sender; -- (IBAction)showGuide:(UIBarButtonItem *)sender; + @end diff --git a/MasterPassword/ObjC/iOS/MPSetupViewController.m b/MasterPassword/ObjC/iOS/MPSetupViewController.m index edc09c4b..2c85fc34 100644 --- a/MasterPassword/ObjC/iOS/MPSetupViewController.m +++ b/MasterPassword/ObjC/iOS/MPSetupViewController.m @@ -18,9 +18,30 @@ #import "MPSetupViewController.h" #import "MPAppDelegate.h" +#import "MPAppDelegate_Store.h" @implementation MPSetupViewController +- (void)viewDidAppear:(BOOL)animated { + + [[LocalyticsSession sharedLocalyticsSession] tagScreen:@"Setup"]; + + [super viewDidAppear:animated]; + + if (self.cloudSwitch && [[MPiOSConfig get].iCloudDecided boolValue]) + self.cloudSwitch.on = [MPAppDelegate get].storeManager.cloudEnabled; +} + +- (void)viewWillDisappear:(BOOL)animated { + + [super viewWillDisappear:animated]; + + if (self.cloudSwitch) { + [MPiOSConfig get].iCloudDecided = @YES; + [MPAppDelegate get].storeManager.cloudEnabled = self.cloudSwitch.on; + } +} + - (IBAction)close:(UIBarButtonItem *)sender { [MPiOSConfig get].showSetup = @NO; diff --git a/MasterPassword/ObjC/iOS/MPTypeViewController.m b/MasterPassword/ObjC/iOS/MPTypeViewController.m index 216673b1..85c44d46 100644 --- a/MasterPassword/ObjC/iOS/MPTypeViewController.m +++ b/MasterPassword/ObjC/iOS/MPTypeViewController.m @@ -94,8 +94,8 @@ cellElement.user = selectedElement_.user; cellElement.loginName = selectedElement_.loginName; cellElement.version = MPAlgorithmDefaultVersion; - NSString *typeContent = [cellElement.algorithm generateContentForElement:cellElement usingKey:[MPAppDelegate get].key]; + NSString *typeContent = [cellElement.algorithm generateContentForElement:cellElement usingKey:[MPAppDelegate get].key]; dispatch_async(dispatch_get_main_queue(), ^{ [(UITextField *) [[tableView cellForRowAtIndexPath:indexPath] viewWithTag:2] setText:typeContent]; }); diff --git a/MasterPassword/ObjC/iOS/MPUnlockViewController.m b/MasterPassword/ObjC/iOS/MPUnlockViewController.m index 4f2f5297..e6325c6b 100644 --- a/MasterPassword/ObjC/iOS/MPUnlockViewController.m +++ b/MasterPassword/ObjC/iOS/MPUnlockViewController.m @@ -319,7 +319,7 @@ - (void)showNewUserNameAlertFor:(MPUserEntity *)newUser inContext:(NSManagedObjectContext *)moc completion:(void (^)(BOOL finished))completion { - dispatch_async(dispatch_get_main_queue(), ^{ + PEARL_MAIN_THREAD_START [PearlAlert showAlertWithTitle:@"Enter Your Name" message:nil viewStyle:UIAlertViewStylePlainTextInput initAlert:^(UIAlertView *alert, UITextField *firstField) { @@ -334,24 +334,23 @@ completion(NO); return; } - if (![alert textFieldAtIndex:0].text.length) { + NSString *name = [alert textFieldAtIndex:0].text; + if (!name.length) { [PearlAlert showAlertWithTitle:@"Name Is Required" message:nil viewStyle:UIAlertViewStyleDefault initAlert:nil tappedButtonBlock:^(UIAlertView *alert_, NSInteger buttonIndex_) { - [moc performBlock:^{ - [self showNewUserNameAlertFor:newUser inContext:moc completion:completion]; - }]; + [self showNewUserNameAlertFor:newUser inContext:moc completion:completion]; } cancelTitle:@"Try Again" otherTitles:nil]; return; } // Save - [moc performBlock:^{ - newUser.name = [alert textFieldAtIndex:0].text; - [self showNewUserAvatarAlertFor:newUser inContext:moc completion:completion]; + [moc performBlockAndWait:^{ + newUser.name = name; }]; + [self showNewUserAvatarAlertFor:newUser inContext:moc completion:completion]; } cancelTitle:[PearlStrings get].commonButtonCancel otherTitles:[PearlStrings get].commonButtonSave, nil]; - }); + PEARL_MAIN_THREAD_END } - (void)showNewUserAvatarAlertFor:(MPUserEntity *)newUser inContext:(NSManagedObjectContext *)moc @@ -365,9 +364,7 @@ tappedButtonBlock:^(UIAlertView *_alert, NSInteger _buttonIndex) { // Okay - [moc performBlock:^{ - [self showNewUserConfirmationAlertFor:newUser inContext:moc completion:completion]; - }]; + [self showNewUserConfirmationAlertFor:newUser inContext:moc completion:completion]; } cancelTitle:nil otherTitles:[PearlStrings get].commonButtonOkay, nil]; } @@ -384,9 +381,7 @@ } tappedButtonBlock:^void(UIAlertView *__alert, NSInteger __buttonIndex) { if (__buttonIndex == [__alert cancelButtonIndex]) { - [moc performBlock:^{ - [self showNewUserNameAlertFor:newUser inContext:moc completion:completion]; - }]; + [self showNewUserNameAlertFor:newUser inContext:moc completion:completion]; return; } @@ -808,12 +803,10 @@ } if (buttonIndex == [sheet firstOtherButtonIndex]) - [moc performBlock:^{ - [[MPAppDelegate get] changeMasterPasswordFor:targetedUser inContext:moc didResetBlock:^{ - dispatch_async(dispatch_get_main_queue(), ^{ - [[self avatarForUser:targetedUser] setSelected:YES]; - }); - }]; + [[MPAppDelegate get] changeMasterPasswordFor:targetedUser inContext:moc didResetBlock:^{ + dispatch_async(dispatch_get_main_queue(), ^{ + [[self avatarForUser:targetedUser] setSelected:YES]; + }); }]; } cancelTitle:[PearlStrings get].commonButtonCancel destructiveTitle:@"Delete User" otherTitles:@"Reset Password", nil]; diff --git a/MasterPassword/ObjC/iOS/MainStoryboard_iPhone.storyboard b/MasterPassword/ObjC/iOS/MainStoryboard_iPhone.storyboard index e4afda33..f8fee226 100644 --- a/MasterPassword/ObjC/iOS/MainStoryboard_iPhone.storyboard +++ b/MasterPassword/ObjC/iOS/MainStoryboard_iPhone.storyboard @@ -1536,7 +1536,7 @@ You could use the word wall for inspiration in finding a memorable master passw - + Enabling iCloud will keep all your iPhones, iPads and Macs nicely in-sync. Any site you add on this device will automatically appear on all your others as well. @@ -1548,7 +1548,7 @@ If you set a custom password, it will be encrypted before it is saved to the clo - + @@ -1561,6 +1561,9 @@ If you set a custom password, it will be encrypted before it is saved to the clo + + + @@ -1669,7 +1672,7 @@ If you set a custom password, it will be encrypted before it is saved to the clo - + @@ -2084,7 +2087,7 @@ If you set a custom password, it will be encrypted before it is saved to the clo - + @@ -2186,163 +2189,108 @@ You can make passwords for all sorts of things, like email addresses, sites or r - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + @@ -2369,15 +2325,7 @@ You can make passwords for all sorts of things, like email addresses, sites or r Outdated - - - - - - - - - + @@ -2399,7 +2347,7 @@ You can make passwords for all sorts of things, like email addresses, sites or r - + + + - + - + - - + + - - + + + - + + + + + + + + + + + + + + + + + + + + + + + @@ -2477,70 +2494,38 @@ You can make passwords for all sorts of things, like email addresses, sites or r - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - + + @@ -2559,9 +2544,11 @@ You can make passwords for all sorts of things, like email addresses, sites or r + + @@ -2620,6 +2607,24 @@ You can make passwords for all sorts of things, like email addresses, sites or r + + + + + + + + + + + + + + + + + + @@ -2694,6 +2699,7 @@ You can make passwords for all sorts of things, like email addresses, sites or r + diff --git a/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj b/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj index 245dbdcc..7a652394 100644 --- a/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj +++ b/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj @@ -36,6 +36,8 @@ DA497C0C15E8C95700B52167 /* libGoogle+.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DA497B9715E8C90E00B52167 /* libGoogle+.a */; }; DA4DA1D91564471A00F6F596 /* libjrswizzle.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAC6326C148680650075AEA5 /* libjrswizzle.a */; }; DA4DA1DA1564471F00F6F596 /* libuicolor-utilities.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAC6325D1486805C0075AEA5 /* libuicolor-utilities.a */; }; + DA5A09DF171A70E4005284AB /* play.png in Resources */ = {isa = PBXBuildFile; fileRef = DA5A09DD171A70E4005284AB /* play.png */; }; + DA5A09E0171A70E4005284AB /* play@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA5A09DE171A70E4005284AB /* play@2x.png */; }; DA5BFA49147E415C00F98B1E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA48147E415C00F98B1E /* UIKit.framework */; }; DA5BFA4B147E415C00F98B1E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; }; DA5BFA4D147E415C00F98B1E /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4C147E415C00F98B1E /* CoreGraphics.framework */; }; @@ -1032,6 +1034,8 @@ DA3EF17A15A47744003ABF4E /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; }; DA4425CB1557BED40052177D /* libUbiquityStoreManager.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libUbiquityStoreManager.a; sourceTree = BUILT_PRODUCTS_DIR; }; DA497B9715E8C90E00B52167 /* libGoogle+.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libGoogle+.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + DA5A09DD171A70E4005284AB /* play.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = play.png; sourceTree = ""; }; + DA5A09DE171A70E4005284AB /* play@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "play@2x.png"; sourceTree = ""; }; DA5BFA44147E415C00F98B1E /* MasterPassword.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MasterPassword.app; sourceTree = BUILT_PRODUCTS_DIR; }; DA5BFA48147E415C00F98B1E /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; DA5BFA4A147E415C00F98B1E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; @@ -2202,6 +2206,8 @@ DABD360D1711E29400CF925C /* Media */ = { isa = PBXGroup; children = ( + DA5A09DD171A70E4005284AB /* play.png */, + DA5A09DE171A70E4005284AB /* play@2x.png */, DABD360E1711E29400CF925C /* Automaton */, DABD366B1711E29400CF925C /* Avatars */, DABD36921711E29400CF925C /* Background */, @@ -4588,6 +4594,8 @@ DABD3FCB1712446200CF925C /* cloud@2x.png in Resources */, DABD3FCE1714F45C00CF925C /* identity.png in Resources */, DABD3FCF1714F45C00CF925C /* identity@2x.png in Resources */, + DA5A09DF171A70E4005284AB /* play.png in Resources */, + DA5A09E0171A70E4005284AB /* play@2x.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/MasterPassword/Resources/Media/play.png b/MasterPassword/Resources/Media/play.png new file mode 100644 index 0000000000000000000000000000000000000000..87c6df81c492e4e713824aeb3b996d9c91eb89c2 GIT binary patch literal 2962 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 jLM;r{LH}CUDFIh~$|L?i)8s<3 literal 0 HcmV?d00001 diff --git a/MasterPassword/Resources/Media/play@2x.png b/MasterPassword/Resources/Media/play@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fd2341038996a4eede8151eab8ede6b4b7993baf GIT binary patch literal 11710 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 S|Ng-e@IXsnvqatc<^KU*RkWf2 literal 0 HcmV?d00001 diff --git a/MasterPassword/Resources/Raw/Large Icons.vdesigner/QuickLook/Preview.pdf b/MasterPassword/Resources/Raw/Large Icons.vdesigner/QuickLook/Preview.pdf index c9c1360cddf74d2df01e0fadafb3ccab14ff279c..14fb92935fa7a0993b779d9d60fb44b9cd95b3e6 100644 GIT binary patch delta 20660 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 diff --git a/MasterPassword/Resources/Raw/Large Icons.vdesigner/QuickLook/Thumbnail.jpg b/MasterPassword/Resources/Raw/Large Icons.vdesigner/QuickLook/Thumbnail.jpg index 0e1da73d4aaf1d57a84137320219c5c8a51c6d24..e029158a939243d893075dfe35ad413f34317a7b 100644 GIT binary patch delta 5494 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 diff --git a/MasterPassword/Resources/Raw/Large Icons.vdesigner/VectorDesigner b/MasterPassword/Resources/Raw/Large Icons.vdesigner/VectorDesigner index 39f58601254b900cc8467f20cb2b1156827c9f84..a4b9441f2a84d69e8da9ab005c563b733cfc22f7 100644 GIT binary patch delta 7331 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 delta 5144 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 jFefU