From 318aca4d8fb24696bcc02e4061f60a5e00a02af9 Mon Sep 17 00:00:00 2001 From: Maarten Billemont Date: Sat, 15 Mar 2014 20:38:14 -0400 Subject: [PATCH 01/32] WIP - new UI for Master Password. --- .idea/inspectionProfiles/Project_Default.xml | 1 + External/Pearl | 2 +- .../project.pbxproj | 24 + MasterPassword/ObjC/iOS/MPAvatarCell.h | 40 + MasterPassword/ObjC/iOS/MPAvatarCell.m | 140 +++ .../ObjC/iOS/MPCombinedViewController.h | 49 + .../ObjC/iOS/MPCombinedViewController.m | 661 +++++++++++++ .../ObjC/iOS/MPPreferencesViewController.m | 4 +- .../ObjC/iOS/MPUnlockViewController.m | 10 +- MasterPassword/ObjC/iOS/MPiOSAppDelegate.m | 8 +- .../ObjC/iOS/MainStoryboard_iPhone.storyboard | 125 ++- .../ObjC/iOS/MasterPassword-Info.plist | 2 +- .../project.pbxproj | 60 +- MasterPassword/ObjC/iOS/Storyboard.storyboard | 923 ++++++++++++++++++ .../Resources/Media/Avatars/avatar-add.png | Bin 0 -> 7770 bytes .../Resources/Media/Avatars/avatar-add@2x.png | Bin 0 -> 16583 bytes 16 files changed, 2021 insertions(+), 28 deletions(-) create mode 100644 MasterPassword/ObjC/iOS/MPAvatarCell.h create mode 100644 MasterPassword/ObjC/iOS/MPAvatarCell.m create mode 100644 MasterPassword/ObjC/iOS/MPCombinedViewController.h create mode 100644 MasterPassword/ObjC/iOS/MPCombinedViewController.m create mode 100644 MasterPassword/ObjC/iOS/Storyboard.storyboard create mode 100644 MasterPassword/Resources/Media/Avatars/avatar-add.png create mode 100644 MasterPassword/Resources/Media/Avatars/avatar-add@2x.png diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index 87f2daf9..a84efcb2 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -9,6 +9,7 @@ + diff --git a/External/Pearl b/External/Pearl index 9e41cebe..575b409c 160000 --- a/External/Pearl +++ b/External/Pearl @@ -1 +1 @@ -Subproject commit 9e41cebeba085fce2bbae2592d52bbfd740f9ffb +Subproject commit 575b409cca36eabfaacf0a963ed259454cb8ec66 diff --git a/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj b/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj index 71e50721..c092d5e1 100644 --- a/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj +++ b/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj @@ -21,6 +21,12 @@ DA16B344170661EE000A0EAB /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA16B343170661EE000A0EAB /* Cocoa.framework */; }; DA16B345170661F2000A0EAB /* libPearl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAC77CAD148291A600BCF976 /* libPearl.a */; }; DA1E4D50176E0E280065E0EF /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DA1E4D4F176E0E280065E0EF /* Media.xcassets */; }; + DA2CA4ED18D323D3007798F8 /* NSError+PearlFullDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = DA2CA4E718D323D3007798F8 /* NSError+PearlFullDescription.m */; }; + DA2CA4EE18D323D3007798F8 /* NSError+PearlFullDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = DA2CA4E818D323D3007798F8 /* NSError+PearlFullDescription.h */; }; + DA2CA4EF18D323D3007798F8 /* NSArray+Pearl.m in Sources */ = {isa = PBXBuildFile; fileRef = DA2CA4E918D323D3007798F8 /* NSArray+Pearl.m */; }; + DA2CA4F018D323D3007798F8 /* NSArray+Pearl.h in Headers */ = {isa = PBXBuildFile; fileRef = DA2CA4EA18D323D3007798F8 /* NSArray+Pearl.h */; }; + DA2CA4F118D323D3007798F8 /* NSTimer+PearlBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = DA2CA4EB18D323D3007798F8 /* NSTimer+PearlBlock.m */; }; + DA2CA4F218D323D3007798F8 /* NSTimer+PearlBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = DA2CA4EC18D323D3007798F8 /* NSTimer+PearlBlock.h */; }; DA30E9CE15722ECA00A68B4C /* NSBundle+PearlMutableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = DA30E9CB15722ECA00A68B4C /* NSBundle+PearlMutableInfo.h */; }; DA30E9CF15722ECA00A68B4C /* NSBundle+PearlMutableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = DA30E9CC15722ECA00A68B4C /* NSBundle+PearlMutableInfo.m */; }; DA30E9D015722ECA00A68B4C /* Pearl.m in Sources */ = {isa = PBXBuildFile; fileRef = DA30E9CD15722ECA00A68B4C /* Pearl.m */; }; @@ -308,6 +314,12 @@ DA16B340170661DB000A0EAB /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; DA16B343170661EE000A0EAB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; DA1E4D4F176E0E280065E0EF /* Media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Media.xcassets; path = MasterPassword/Media.xcassets; sourceTree = ""; }; + DA2CA4E718D323D3007798F8 /* NSError+PearlFullDescription.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSError+PearlFullDescription.m"; sourceTree = ""; }; + DA2CA4E818D323D3007798F8 /* NSError+PearlFullDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSError+PearlFullDescription.h"; sourceTree = ""; }; + DA2CA4E918D323D3007798F8 /* NSArray+Pearl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSArray+Pearl.m"; sourceTree = ""; }; + DA2CA4EA18D323D3007798F8 /* NSArray+Pearl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSArray+Pearl.h"; sourceTree = ""; }; + DA2CA4EB18D323D3007798F8 /* NSTimer+PearlBlock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSTimer+PearlBlock.m"; sourceTree = ""; }; + DA2CA4EC18D323D3007798F8 /* NSTimer+PearlBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSTimer+PearlBlock.h"; sourceTree = ""; }; DA30E9CB15722ECA00A68B4C /* NSBundle+PearlMutableInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSBundle+PearlMutableInfo.h"; sourceTree = ""; }; DA30E9CC15722ECA00A68B4C /* NSBundle+PearlMutableInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSBundle+PearlMutableInfo.m"; sourceTree = ""; }; DA30E9CD15722ECA00A68B4C /* Pearl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Pearl.m; sourceTree = ""; }; @@ -1038,6 +1050,12 @@ DAFE45D715039823003ABA7C /* Pearl */ = { isa = PBXGroup; children = ( + DA2CA4E718D323D3007798F8 /* NSError+PearlFullDescription.m */, + DA2CA4E818D323D3007798F8 /* NSError+PearlFullDescription.h */, + DA2CA4E918D323D3007798F8 /* NSArray+Pearl.m */, + DA2CA4EA18D323D3007798F8 /* NSArray+Pearl.h */, + DA2CA4EB18D323D3007798F8 /* NSTimer+PearlBlock.m */, + DA2CA4EC18D323D3007798F8 /* NSTimer+PearlBlock.h */, DA3509FC15F101A500C14A8E /* PearlQueue.h */, DA3509FD15F101A500C14A8E /* PearlQueue.m */, 93D393B97158D7BE9332EA53 /* NSDictionary+Indexing.h */, @@ -1145,6 +1163,7 @@ DAEB93FD18AB0FFD000490CC /* mdc2.h in Headers */, DAEB942718AB0FFD000490CC /* sha256.h in Headers */, DAEB940818AB0FFD000490CC /* pkcs7.h in Headers */, + DA2CA4F218D323D3007798F8 /* NSTimer+PearlBlock.h in Headers */, DAEB93DF18AB0FFD000490CC /* bn.h in Headers */, DAEB940718AB0FFD000490CC /* pkcs12.h in Headers */, DAEB941A18AB0FFD000490CC /* txt_db.h in Headers */, @@ -1172,6 +1191,7 @@ DAFE4A2415039824003ABA7C /* PearlInfoPlist.h in Headers */, DAEB940618AB0FFD000490CC /* pem2.h in Headers */, DAFE4A2615039824003ABA7C /* PearlLogger.h in Headers */, + DA2CA4F018D323D3007798F8 /* NSArray+Pearl.h in Headers */, DAEB93FC18AB0FFD000490CC /* md5.h in Headers */, DAFE4A2815039824003ABA7C /* PearlMathUtils.h in Headers */, DAFE4A2A15039824003ABA7C /* PearlObjectUtils.h in Headers */, @@ -1242,6 +1262,7 @@ DAEB93DB18AB0FFD000490CC /* asn1_mac.h in Headers */, DAEB940518AB0FFD000490CC /* pem.h in Headers */, DAEB942818AB0FFD000490CC /* sysendian.h in Headers */, + DA2CA4EE18D323D3007798F8 /* NSError+PearlFullDescription.h in Headers */, DAEB93FF18AB0FFD000490CC /* obj_mac.h in Headers */, DAEB93E718AB0FFD000490CC /* crypto.h in Headers */, DAEB941318AB0FFD000490CC /* ssl2.h in Headers */, @@ -1607,6 +1628,7 @@ DAFE4A1415039824003ABA7C /* NSObject+PearlExport.m in Sources */, DAFE4A1615039824003ABA7C /* NSString+PearlNSArrayFormat.m in Sources */, DAFE4A1815039824003ABA7C /* NSString+PearlSEL.m in Sources */, + DA2CA4ED18D323D3007798F8 /* NSError+PearlFullDescription.m in Sources */, DAFE4A1B15039824003ABA7C /* PearlAbstractStrings.m in Sources */, DAFE4A1F15039824003ABA7C /* PearlCodeUtils.m in Sources */, DAFE4A2115039824003ABA7C /* PearlConfig.m in Sources */, @@ -1622,8 +1644,10 @@ DAFE4A3915039824003ABA7C /* PearlRSAKey.m in Sources */, DAFE4A3B15039824003ABA7C /* PearlSCrypt.m in Sources */, DA30E9CF15722ECA00A68B4C /* NSBundle+PearlMutableInfo.m in Sources */, + DA2CA4F118D323D3007798F8 /* NSTimer+PearlBlock.m in Sources */, DA30E9D015722ECA00A68B4C /* Pearl.m in Sources */, DA30E9D215722EE500A68B4C /* Pearl-Crypto.m in Sources */, + DA2CA4EF18D323D3007798F8 /* NSArray+Pearl.m in Sources */, DA30E9D815723E6900A68B4C /* PearlLazy.m in Sources */, DAFE4A63150399FF003ABA86 /* NSObject+PearlKVO.m in Sources */, DAFE4A63150399FF003ABA92 /* NSDateFormatter+RFC3339.m in Sources */, diff --git a/MasterPassword/ObjC/iOS/MPAvatarCell.h b/MasterPassword/ObjC/iOS/MPAvatarCell.h new file mode 100644 index 00000000..a3ff62cb --- /dev/null +++ b/MasterPassword/ObjC/iOS/MPAvatarCell.h @@ -0,0 +1,40 @@ +/** + * Copyright Maarten Billemont (http://www.lhunath.com, lhunath@lyndir.com) + * + * See the enclosed file LICENSE for license information (LGPLv3). If you did + * not receive this file, see http://www.gnu.org/licenses/lgpl-3.0.txt + * + * @author Maarten Billemont + * @license http://www.gnu.org/licenses/lgpl-3.0.txt + */ + +// +// MPAvatarCell.h +// MPAvatarCell +// +// Created by lhunath on 2014-03-11. +// Copyright, lhunath (Maarten Billemont) 2014. All rights reserved. +// + +#import +#import "MPEntities.h" +@class MPAvatarCell; + +/* Avatar with a "+" symbol. */ +extern const long MPAvatarAdd; + +typedef NS_ENUM(NSUInteger, MPAvatarMode) { + MPAvatarModeLowered, + MPAvatarModeRaisedButInactive, + MPAvatarModeRaisedAndActive +}; + +@interface MPAvatarCell : UICollectionViewCell +@property (copy, nonatomic) NSString *name; +@property (assign, nonatomic) long avatar; +@property (assign, nonatomic) MPAvatarMode mode; +@property (assign, nonatomic) float visibility; + ++ (NSString *)reuseIdentifier; + +@end diff --git a/MasterPassword/ObjC/iOS/MPAvatarCell.m b/MasterPassword/ObjC/iOS/MPAvatarCell.m new file mode 100644 index 00000000..523862b6 --- /dev/null +++ b/MasterPassword/ObjC/iOS/MPAvatarCell.m @@ -0,0 +1,140 @@ +/** + * Copyright Maarten Billemont (http://www.lhunath.com, lhunath@lyndir.com) + * + * See the enclosed file LICENSE for license information (LGPLv3). If you did + * not receive this file, see http://www.gnu.org/licenses/lgpl-3.0.txt + * + * @author Maarten Billemont + * @license http://www.gnu.org/licenses/lgpl-3.0.txt + */ + +// +// MPAvatarCell.h +// MPAvatarCell +// +// Created by lhunath on 2014-03-11. +// Copyright, lhunath (Maarten Billemont) 2014. All rights reserved. +// + +#import "MPAvatarCell.h" + +const long MPAvatarAdd = 10000; + +@interface MPAvatarCell() + +@property(strong, nonatomic) IBOutlet UIImageView *avatarImageView; +@property(strong, nonatomic) IBOutlet UILabel *nameLabel; +@property(strong, nonatomic) IBOutlet UIView *nameContainer; +@property(strong, nonatomic) IBOutlet NSLayoutConstraint *nameCenterConstraint; + +@end + +@implementation MPAvatarCell { +} + ++ (NSString *)reuseIdentifier { + + return @"MPAvatarCell"; +} + +- (void)awakeFromNib { + + [super awakeFromNib]; + + self.nameContainer.layer.cornerRadius = 5; + + self.avatarImageView.hidden = NO; + self.avatarImageView.layer.cornerRadius = self.avatarImageView.bounds.size.height / 2; + self.avatarImageView.layer.shadowColor = [UIColor blackColor].CGColor; + self.avatarImageView.layer.shadowOpacity = 1; + self.avatarImageView.layer.shadowRadius = 15; + self.avatarImageView.layer.masksToBounds = NO; + self.avatarImageView.backgroundColor = [UIColor clearColor]; + + [self observeKeyPath:@"selected" withBlock:^(id from, id to, NSKeyValueChange cause, id _self) { + [_self onSelectedOrHighlighted]; + }]; + [self observeKeyPath:@"highlighted" withBlock:^(id from, id to, NSKeyValueChange cause, id _self) { + [_self onSelectedOrHighlighted]; + }]; + + self.visibility = 0; + self.mode = MPAvatarModeLowered; +} + +- (void)onSelectedOrHighlighted { + + self.avatarImageView.backgroundColor = self.selected || self.highlighted? self.avatarImageView.tintColor: [UIColor clearColor]; +} + +- (void)setAvatar:(long)avatar { + + _avatar = avatar; + + if (avatar == MPAvatarAdd) + self.avatarImageView.image = [UIImage imageNamed:@"avatar-add"]; + else + self.avatarImageView.image = [UIImage imageNamed:strf( @"avatar-%ld", avatar )]; +} + +- (NSString *)name { + + return self.nameLabel.text; +} + +- (void)setName:(NSString *)name { + + self.nameLabel.text = name; +} + +- (void)setVisibility:(float)visibility { + + _visibility = visibility; + + self.nameContainer.alpha = visibility; +} + +- (void)setHighlighted:(BOOL)highlighted { + + super.highlighted = highlighted; + + [UIView animateWithDuration:0.1f animations:^{ + self.avatarImageView.transform = highlighted? CGAffineTransformMakeScale( 1.1f, 1.1f ): CGAffineTransformIdentity; + }]; +} + +- (void)setMode:(MPAvatarMode)mode { + + _mode = mode; + + [UIView animateWithDuration:0.2f animations:^{ + self.avatarImageView.transform = CGAffineTransformIdentity; + }]; + [UIView animateWithDuration:0.3f animations:^{ + switch (mode) { + + case MPAvatarModeLowered: { + self.nameCenterConstraint.priority = UILayoutPriorityDefaultLow; + self.nameContainer.backgroundColor = [UIColor clearColor]; + self.avatarImageView.alpha = 1; + break; + } + case MPAvatarModeRaisedButInactive: { + self.nameCenterConstraint.priority = UILayoutPriorityDefaultLow; + self.nameContainer.backgroundColor = [UIColor clearColor]; + self.avatarImageView.alpha = 0.3f; + break; + } + case MPAvatarModeRaisedAndActive: { + self.nameCenterConstraint.priority = UILayoutPriorityDefaultHigh; + self.nameContainer.backgroundColor = [UIColor blackColor]; + self.avatarImageView.alpha = 1; + break; + } + } + + [self.nameCenterConstraint apply]; + }]; +} + +@end diff --git a/MasterPassword/ObjC/iOS/MPCombinedViewController.h b/MasterPassword/ObjC/iOS/MPCombinedViewController.h new file mode 100644 index 00000000..00363762 --- /dev/null +++ b/MasterPassword/ObjC/iOS/MPCombinedViewController.h @@ -0,0 +1,49 @@ +/** + * Copyright Maarten Billemont (http://www.lhunath.com, lhunath@lyndir.com) + * + * See the enclosed file LICENSE for license information (LGPLv3). If you did + * not receive this file, see http://www.gnu.org/licenses/lgpl-3.0.txt + * + * @author Maarten Billemont + * @license http://www.gnu.org/licenses/lgpl-3.0.txt + */ + +// +// MPCombinedViewController.h +// MPCombinedViewController +// +// Created by lhunath on 2014-03-08. +// Copyright, lhunath (Maarten Billemont) 2014. All rights reserved. +// + +#import "LLGitTip.h" + +typedef NS_ENUM(NSUInteger, MPCombinedMode) { + MPCombinedModeUserSelection, + MPCombinedModePasswordSelection, +}; + +@interface MPCombinedViewController : UIViewController + +@property(assign, nonatomic) MPCombinedMode mode; + +#pragma mark - UserSelection + +@property(strong, nonatomic) IBOutlet UIView *userSelectionContainer; +@property(weak, nonatomic) IBOutlet UILabel *hintLabel; +@property(weak, nonatomic) IBOutlet UIView *gitTipTip; +@property(weak, nonatomic) IBOutlet LLGitTip *gitTipButton; +@property(weak, nonatomic) IBOutlet UITextField *entryField; +@property(weak, nonatomic) IBOutlet UILabel *entryLabel; +@property(weak, nonatomic) IBOutlet UIView *entryContainer; +@property(weak, nonatomic) IBOutlet UICollectionView *avatarCollectionView; +@property (strong, nonatomic) IBOutlet NSLayoutConstraint *avatarCollectionCenterConstraint; + +#pragma mark - PasswordSelection + +@property(strong, nonatomic) IBOutlet UIView *passwordSelectionContainer; +@property(strong, nonatomic) IBOutlet UICollectionView *passwordCollectionView; + +- (IBAction)doSignOut:(UIBarButtonItem *)sender; + +@end diff --git a/MasterPassword/ObjC/iOS/MPCombinedViewController.m b/MasterPassword/ObjC/iOS/MPCombinedViewController.m new file mode 100644 index 00000000..3b77a746 --- /dev/null +++ b/MasterPassword/ObjC/iOS/MPCombinedViewController.m @@ -0,0 +1,661 @@ +/** + * Copyright Maarten Billemont (http://www.lhunath.com, lhunath@lyndir.com) + * + * See the enclosed file LICENSE for license information (LGPLv3). If you did + * not receive this file, see http://www.gnu.org/licenses/lgpl-3.0.txt + * + * @author Maarten Billemont + * @license http://www.gnu.org/licenses/lgpl-3.0.txt + */ + +// +// MPCombinedViewController.h +// MPCombinedViewController +// +// Created by lhunath on 2014-03-08. +// Copyright, lhunath (Maarten Billemont) 2014. All rights reserved. +// + +#import "MPCombinedViewController.h" +#import "MPEntities.h" +#import "MPAvatarCell.h" +#import "MPiOSAppDelegate.h" +#import "MPAppDelegate_Store.h" +#import "MPAppDelegate_Key.h" + +typedef NS_ENUM(NSUInteger, MPActiveUserState) { + MPActiveUserStateNone, + MPActiveUserStateLogin, + MPActiveUserStateUserName, + MPActiveUserStateMasterPasswordChoice, + MPActiveUserStateMasterPasswordConfirmation, +}; + +@interface MPCombinedViewController() + +@property(nonatomic) MPActiveUserState activeUserState; +@property(nonatomic, strong) NSArray *userIDs; +@end + +@implementation MPCombinedViewController { + __weak id _storeObserver; + __weak id _mocObserver; + NSArray *_notificationObservers; + NSString *_masterPasswordChoice; +} + +- (void)viewDidLoad { + + [super viewDidLoad]; + + self.avatarCollectionView.allowsMultipleSelection = YES; + + [self observeKeyPath:@"avatarCollectionView.contentOffset" withBlock: + ^(id from, id to, NSKeyValueChange cause, MPCombinedViewController *_self) { + [_self updateAvatars]; + }]; + + self.mode = MPCombinedModeUserSelection; +} + +- (void)viewDidAppear:(BOOL)animated { + + [super viewDidAppear:animated]; + + [self registerObservers]; + [self updateMode]; +} + +- (void)viewWillDisappear:(BOOL)animated { + + [super viewWillDisappear:animated]; + + [self removeObservers]; + [self needStoreObserved:NO]; +} + +#pragma mark - UITextFieldDelegate + +- (void)textFieldDidEndEditing:(UITextField *)textField { +} + +- (BOOL)textFieldShouldReturn:(UITextField *)textField { + + if (textField == self.entryField) { + switch (self.activeUserState) { + case MPActiveUserStateNone: { + [textField resignFirstResponder]; + break; + } + case MPActiveUserStateLogin: { + [MPiOSAppDelegate managedObjectContextPerformBlock:^(NSManagedObjectContext *context) { + BOOL signedIn = NO, isNew = NO; + MPUserEntity *user = [self selectedUserInContext:context isNew:&isNew]; + if (!isNew && user) + signedIn = [[MPiOSAppDelegate get] signInAsUser:user saveInContext:context + usingMasterPassword:self.entryField.text]; + + [[NSOperationQueue mainQueue] addOperationWithBlock:^{ + if (!signedIn) { + // Sign in failed. + // TODO: warn user + return; + } + }]; + }]; + break; + } + case MPActiveUserStateUserName: { + NSString *userName = self.entryField.text; + if (![userName length]) { + // No name entered. + // TODO: warn user + return NO; + } + + [self selectedAvatar].name = userName; + self.activeUserState = MPActiveUserStateMasterPasswordChoice; + break; + } + case MPActiveUserStateMasterPasswordChoice: { + NSString *masterPassword = self.entryField.text; + if (![masterPassword length]) { + // No password entered. + // TODO: warn user + return NO; + } + + self.activeUserState = MPActiveUserStateMasterPasswordConfirmation; + break; + } + case MPActiveUserStateMasterPasswordConfirmation: { + NSString *masterPassword = self.entryField.text; + if (![masterPassword length]) { + // No password entered. + // TODO: warn user + return NO; + } + + if (![masterPassword isEqualToString:_masterPasswordChoice]) { + // Master password confirmation failed. + // TODO: warn user + self.activeUserState = MPActiveUserStateMasterPasswordChoice; + return NO; + } + + [MPiOSAppDelegate managedObjectContextPerformBlock:^(NSManagedObjectContext *context) { + BOOL isNew = NO; + MPUserEntity *user = [self selectedUserInContext:context isNew:&isNew]; + if (isNew) { + user = [NSEntityDescription insertNewObjectForEntityForName:NSStringFromClass( [MPUserEntity class] ) + inManagedObjectContext:context]; + MPAvatarCell *avatarCell = [self selectedAvatar]; + user.avatar = avatarCell.avatar; + user.name = avatarCell.name; + } + + BOOL signedIn = [[MPiOSAppDelegate get] signInAsUser:user saveInContext:context usingMasterPassword:masterPassword]; + [[NSOperationQueue mainQueue] addOperationWithBlock:^{ + if (!signedIn) { + // Sign in failed, shouldn't happen for a new user. + // TODO: warn user + self.activeUserState = MPActiveUserStateNone; + return; + } + }]; + }]; + + break; + } + } + } + + return NO; +} + +// This isn't really in UITextFieldDelegate. We fake it from UITextFieldTextDidChangeNotification. +- (void)textFieldDidChange:(UITextField *)textField { + + if (textField == self.entryField) { + switch (self.activeUserState) { + case MPActiveUserStateNone: + break; + case MPActiveUserStateLogin: + break; + case MPActiveUserStateUserName: { + NSString *userName = self.entryField.text; + [self selectedAvatar].name = [userName length]? userName: strl( @"New User" ); + break; + } + case MPActiveUserStateMasterPasswordChoice: + break; + case MPActiveUserStateMasterPasswordConfirmation: + break; + } + } +} + +#pragma mark - UICollectionViewDataSource + +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + + if (collectionView == self.avatarCollectionView) + return [self.userIDs count] + 1; + + else if (collectionView == self.passwordCollectionView) + return 0; + + Throw(@"unexpected collection view: %@", collectionView); +} + +- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + + if (collectionView == self.avatarCollectionView) { + MPAvatarCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:[MPAvatarCell reuseIdentifier] forIndexPath:indexPath]; + [cell addGestureRecognizer:[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(didLongPress:)]]; + [self updateAvatar:cell atIndexPath:indexPath]; + + BOOL isNew = NO; + MPUserEntity *user = [self userForIndexPath:indexPath inContext:[MPiOSAppDelegate managedObjectContextForMainThreadIfReady] + isNew:&isNew]; + if (isNew) { + // New User + cell.avatar = MPAvatarAdd; + cell.name = strl( @"New User" ); + } + else { + // Existing User + cell.avatar = user.avatar; + cell.name = user.name; + } + + NSArray *selectedIndexPaths = [self.avatarCollectionView indexPathsForSelectedItems]; + if (![selectedIndexPaths count]) + cell.mode = MPAvatarModeLowered; + else if ([selectedIndexPaths containsObject:indexPath]) + cell.mode = MPAvatarModeRaisedAndActive; + else + cell.mode = MPAvatarModeRaisedButInactive; + + return cell; + } + + else if (collectionView == self.passwordCollectionView) + return nil; + + Throw(@"unexpected collection view: %@", collectionView); +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + + if (collectionView == self.avatarCollectionView) { + [self.avatarCollectionView scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally + animated:YES]; + + [UIView animateWithDuration:0.3f animations:^{ + for (NSUInteger otherItem = 0; otherItem < [collectionView numberOfItemsInSection:indexPath.section]; ++otherItem) + if (otherItem != indexPath.item) { + NSIndexPath *otherIndexPath = [NSIndexPath indexPathForItem:otherItem inSection:indexPath.section]; + [collectionView deselectItemAtIndexPath:otherIndexPath animated:YES]; + + MPAvatarCell *otherCell = (MPAvatarCell *)[self.avatarCollectionView cellForItemAtIndexPath:otherIndexPath]; + otherCell.mode = MPAvatarModeRaisedButInactive; + } + + MPAvatarCell *cell = (MPAvatarCell *)[self.avatarCollectionView cellForItemAtIndexPath:indexPath]; + cell.mode = MPAvatarModeRaisedAndActive; + }]; + + BOOL isNew = NO; + MPUserEntity *user = [self userForIndexPath:indexPath inContext:[MPiOSAppDelegate managedObjectContextForMainThreadIfReady] + isNew:&isNew]; + if (isNew) + self.activeUserState = MPActiveUserStateUserName; + else if (!user.keyID) + self.activeUserState = MPActiveUserStateMasterPasswordChoice; + else + self.activeUserState = MPActiveUserStateLogin; + } +} + +- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath { + + if (collectionView == self.avatarCollectionView) { + self.activeUserState = MPActiveUserStateNone; + } +} + +#pragma mark - UILongPressGestureRecognizer + +- (void)didLongPress:(UILongPressGestureRecognizer *)recognizer { + + if ([recognizer.view isKindOfClass:[MPAvatarCell class]]) { + if (recognizer.state != UIGestureRecognizerStateBegan) + // Don't show the action menu unless the state is Began. + return; + + MPAvatarCell *avatarCell = (MPAvatarCell *)recognizer.view; + NSManagedObjectContext *mainContext = [MPiOSAppDelegate managedObjectContextForMainThreadIfReady]; + + BOOL isNew = NO; + MPUserEntity *user = [self userForAvatar:avatarCell inContext:mainContext isNew:&isNew]; + NSManagedObjectID *userID = user.objectID; + if (isNew || !user) + return; + + [PearlSheet showSheetWithTitle:user.name + viewStyle:UIActionSheetStyleBlackTranslucent + initSheet:nil tappedButtonBlock:^(UIActionSheet *sheet, NSInteger buttonIndex) { + if (buttonIndex == [sheet cancelButtonIndex]) + return; + + if (buttonIndex == [sheet destructiveButtonIndex]) { + // Delete User + [MPiOSAppDelegate managedObjectContextPerformBlock:^(NSManagedObjectContext *context) { + NSManagedObject *user_ = [context existingObjectWithID:userID error:NULL]; + if (user_) { + [context deleteObject:user_]; + [context saveToStore]; + } + }]; + return; + } + + if (buttonIndex == [sheet firstOtherButtonIndex]) + // Reset Password + [MPiOSAppDelegate managedObjectContextPerformBlock:^(NSManagedObjectContext *context) { + MPUserEntity *user_ = (MPUserEntity *)[context existingObjectWithID:userID error:NULL]; + if (user_) + [[MPiOSAppDelegate get] changeMasterPasswordFor:user_ saveInContext:context didResetBlock:^{ + dbg(@"changing mp for user: %@, keyID: %@", user_.name, user_.keyID); + [[NSOperationQueue mainQueue] addOperationWithBlock:^{ + NSIndexPath *avatarIndexPath = [self.avatarCollectionView indexPathForCell:avatarCell]; + [self.avatarCollectionView selectItemAtIndexPath:avatarIndexPath animated:NO + scrollPosition:UICollectionViewScrollPositionNone]; + [self collectionView:self.avatarCollectionView didSelectItemAtIndexPath:avatarIndexPath]; + }]; + }]; + }]; + } cancelTitle:[PearlStrings get].commonButtonCancel + destructiveTitle:@"Delete User" otherTitles:@"Reset Password", nil]; + } +} + +#pragma mark - UIScrollViewDelegate + +- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity + targetContentOffset:(inout CGPoint *)targetContentOffset { + + if (scrollView == self.avatarCollectionView) { + CGPoint offsetToCenter = CGPointMake( + self.avatarCollectionView.bounds.size.width / 2, + self.avatarCollectionView.bounds.size.height / 2 ); + NSIndexPath *avatarIndexPath = [self.avatarCollectionView indexPathForItemAtPoint: + CGPointPlusCGPoint( *targetContentOffset, offsetToCenter )]; + CGPoint targetCenter = [self.avatarCollectionView layoutAttributesForItemAtIndexPath:avatarIndexPath].center; + *targetContentOffset = CGPointMinusCGPoint( targetCenter, offsetToCenter ); + NSAssert([self.avatarCollectionView indexPathForItemAtPoint:targetCenter].item == avatarIndexPath.item, @"should be same item"); + } +} + +- (MPAvatarCell *)selectedAvatar { + + NSArray *selectedIndexPaths = self.avatarCollectionView.indexPathsForSelectedItems; + if (![selectedIndexPaths count]) { + // No selected user. + return nil; + } + + return (MPAvatarCell *)[self.avatarCollectionView cellForItemAtIndexPath:selectedIndexPaths.firstObject]; +} + +- (MPUserEntity *)selectedUserInContext:(NSManagedObjectContext *)context isNew:(BOOL *)isNew { + + MPAvatarCell *selectedAvatar = [self selectedAvatar]; + if (!selectedAvatar) { + // No selected user. + *isNew = NO; + return nil; + } + + return [self userForAvatar:selectedAvatar inContext:context isNew:isNew]; +} + +- (MPUserEntity *)userForAvatar:(MPAvatarCell *)cell inContext:(NSManagedObjectContext *)context isNew:(BOOL *)isNew { + + return [self userForIndexPath:[self.avatarCollectionView indexPathForCell:cell] inContext:context isNew:isNew]; +} + +- (MPUserEntity *)userForIndexPath:(NSIndexPath *)indexPath inContext:(NSManagedObjectContext *)context isNew:(BOOL *)isNew { + + if ((*isNew = indexPath.item >= [self.userIDs count])) + return nil; + + NSError *error = nil; + MPUserEntity *user = (MPUserEntity *)[context existingObjectWithID:self.userIDs[indexPath.item] error:&error]; + if (error) + wrn(@"Failed to load user into context: %@", error); + + return user; +} + +- (void)updateAvatars { + + for (NSIndexPath *indexPath in self.avatarCollectionView.indexPathsForVisibleItems) + [self updateAvatarAtIndexPath:indexPath]; +} + +- (void)updateAvatarAtIndexPath:(NSIndexPath *)indexPath { + + MPAvatarCell *cell = (MPAvatarCell *)[self.avatarCollectionView cellForItemAtIndexPath:indexPath]; + [self updateAvatar:cell atIndexPath:indexPath]; +} + +- (void)updateAvatar:(MPAvatarCell *)cell atIndexPath:(NSIndexPath *)indexPath { + + CGFloat current = [self.avatarCollectionView layoutAttributesForItemAtIndexPath:indexPath].center.x - + self.avatarCollectionView.contentOffset.x; + CGFloat max = self.avatarCollectionView.bounds.size.width; + cell.visibility = MAX(0, MIN( 1, 1 - ABS( current / (max / 2) - 1 ) )); +} + +- (void)registerObservers { + + if ([_notificationObservers count]) + return; + + Weakify(self); + _notificationObservers = @[ + [[NSNotificationCenter defaultCenter] + addObserverForName:UIApplicationWillResignActiveNotification object:nil + queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) { + Strongify(self); + +// [self emergencyCloseAnimated:NO]; + self.userSelectionContainer.alpha = 0; + self.passwordSelectionContainer.alpha = 0; + }], + [[NSNotificationCenter defaultCenter] + addObserverForName:UIApplicationDidBecomeActiveNotification object:nil + queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) { + Strongify(self); + + [self updateMode]; + [UIView animateWithDuration:1 animations:^{ + self.userSelectionContainer.alpha = 1; + self.passwordSelectionContainer.alpha = 1; + }]; + }], + [[NSNotificationCenter defaultCenter] + addObserverForName:MPSignedInNotification object:nil + queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) { + Strongify(self); + + self.mode = MPCombinedModePasswordSelection; + }], + [[NSNotificationCenter defaultCenter] + addObserverForName:MPSignedOutNotification object:nil + queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) { + Strongify(self); + + self.mode = MPCombinedModeUserSelection; + }], + [[NSNotificationCenter defaultCenter] + addObserverForName:UITextFieldTextDidChangeNotification object:self.entryField + queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) { + Strongify(self); + + [self textFieldDidChange:note.object]; + }], + ]; +} + +- (void)removeObservers { + + for (id observer in _notificationObservers) + [[NSNotificationCenter defaultCenter] removeObserver:observer]; + _notificationObservers = nil; +} + +- (void)needStoreObserved:(BOOL)observeStore { + + if (observeStore) { + Weakify(self); + + NSManagedObjectContext *mainContext = [MPiOSAppDelegate managedObjectContextForMainThreadIfReady]; + if (!_mocObserver && mainContext) + _mocObserver = [[NSNotificationCenter defaultCenter] + addObserverForName:NSManagedObjectContextObjectsDidChangeNotification object:mainContext + queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) { + Strongify(self); + [self updateMode]; + }]; + if (!_storeObserver) + _storeObserver = [[NSNotificationCenter defaultCenter] + addObserverForName:USMStoreDidChangeNotification object:nil + queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) { + Strongify(self); + [self updateMode]; + }]; + } + if (!observeStore) { + if (_mocObserver) + [[NSNotificationCenter defaultCenter] removeObserver:_mocObserver]; + if (_storeObserver) + [[NSNotificationCenter defaultCenter] removeObserver:_storeObserver]; + } +} + +- (void)setUserIDs:(NSArray *)userIDs { + + _userIDs = userIDs; + + [[NSOperationQueue mainQueue] addOperationWithBlock:^{ + [self.avatarCollectionView reloadData]; + }]; +} + +- (void)setMode:(MPCombinedMode)mode { + + _mode = mode; + + [self updateMode]; +} + +- (void)updateMode { + + // Ensure we're on the main thread. + if (![NSThread isMainThread]) { + [[NSOperationQueue mainQueue] addOperationWithBlock:^{ + [self updateMode]; + }]; + return; + } + + self.userSelectionContainer.hidden = YES; + self.passwordSelectionContainer.hidden = YES; + + [self becomeFirstResponder]; + + switch (self.mode) { + case MPCombinedModeUserSelection: { + [[self navigationController] setNavigationBarHidden:YES animated:YES]; + self.userSelectionContainer.hidden = NO; + [self needStoreObserved:YES]; + + [self setActiveUserState:MPActiveUserStateNone animated:NO]; + [MPiOSAppDelegate managedObjectContextPerformBlock:^(NSManagedObjectContext *context) { + NSError *error = nil; + NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:NSStringFromClass( [MPUserEntity class] )]; + fetchRequest.sortDescriptors = @[ [NSSortDescriptor sortDescriptorWithKey:@"lastUsed" ascending:NO] ]; + NSArray *users = [context executeFetchRequest:fetchRequest error:&error]; + if (!users) { + err(@"Failed to load users: %@", error); + self.userIDs = nil; + } + + NSMutableArray *userIDs = [NSMutableArray arrayWithCapacity:[users count]]; + for (MPUserEntity *user in users) + [userIDs addObject:user.objectID]; + self.userIDs = userIDs; + }]; + + break; + } + case MPCombinedModePasswordSelection: { + [[self navigationController] setNavigationBarHidden:NO animated:YES]; + self.passwordSelectionContainer.hidden = NO; + [self needStoreObserved:NO]; + break; + } + } +} + +- (void)setActiveUserState:(MPActiveUserState)activeUserState { + + [self setActiveUserState:activeUserState animated:YES]; +} + +- (void)setActiveUserState:(MPActiveUserState)activeUserState animated:(BOOL)animated { + + _activeUserState = activeUserState; + _masterPasswordChoice = nil; + + [UIView animateWithDuration:animated? 0.3f: 0 animations:^{ + // Set the entry container's contents. + switch (activeUserState) { + case MPActiveUserStateNone: { + for (NSUInteger item = 0; item < [self.avatarCollectionView numberOfItemsInSection:0]; ++item) { + NSIndexPath *indexPath = [NSIndexPath indexPathForItem:item inSection:0]; + [self.avatarCollectionView deselectItemAtIndexPath:indexPath animated:YES]; + + MPAvatarCell *avatarCell = (MPAvatarCell *)[self.avatarCollectionView cellForItemAtIndexPath:indexPath]; + avatarCell.mode = MPAvatarModeLowered; + } + break; + } + case MPActiveUserStateLogin: { + self.entryField.text = strl( @"Enter your master password:" ); + self.entryField.text = nil; + self.entryField.secureTextEntry = YES; + break; + } + case MPActiveUserStateUserName: { + self.entryLabel.text = strl( @"Enter your full name:" ); + self.entryField.text = nil; + self.entryField.secureTextEntry = NO; + break; + } + case MPActiveUserStateMasterPasswordChoice: { + self.entryLabel.text = strl( @"Choose your master password:" ); + self.entryField.text = nil; + self.entryField.secureTextEntry = YES; + break; + } + case MPActiveUserStateMasterPasswordConfirmation: { + _masterPasswordChoice = self.entryField.text; + self.entryLabel.text = strl( @"Confirm your master password:" ); + self.entryField.text = nil; + self.entryField.secureTextEntry = YES; + break; + } + } + + // Manage the random avatar for the new user if selected. + MPAvatarCell *selectedAvatar = [self selectedAvatar]; + if (selectedAvatar.avatar == MPAvatarAdd) { + selectedAvatar.avatar = arc4random() % MPAvatarCount; + } + else { + NSIndexPath *newUserIndexPath = [NSIndexPath indexPathForItem:[_userIDs count] inSection:0]; + MPAvatarCell *newUserAvatar = (MPAvatarCell *)[[self avatarCollectionView] cellForItemAtIndexPath:newUserIndexPath]; + newUserAvatar.avatar = MPAvatarAdd; + newUserAvatar.name = strl( @"New User" ); + } + + // Manage the entry container depending on whether a user is activate or not. + if (activeUserState == MPActiveUserStateNone) { + self.avatarCollectionCenterConstraint.priority = UILayoutPriorityDefaultHigh; + self.entryContainer.alpha = 0; + } + else { + self.avatarCollectionCenterConstraint.priority = UILayoutPriorityDefaultLow; + self.entryContainer.alpha = 1; + } + [self.avatarCollectionCenterConstraint apply]; + + // Toggle the keyboard. + if (activeUserState == MPActiveUserStateNone) + [self.entryField resignFirstResponder]; + } completion:^(BOOL finished) { + if (activeUserState != MPActiveUserStateNone) + [self.entryField becomeFirstResponder]; + }]; +} + +- (IBAction)doSignOut:(UIBarButtonItem *)sender { + + [[MPiOSAppDelegate get] signOutAnimated:YES]; +} + +@end diff --git a/MasterPassword/ObjC/iOS/MPPreferencesViewController.m b/MasterPassword/ObjC/iOS/MPPreferencesViewController.m index f9144b4e..39308bca 100644 --- a/MasterPassword/ObjC/iOS/MPPreferencesViewController.m +++ b/MasterPassword/ObjC/iOS/MPPreferencesViewController.m @@ -23,9 +23,9 @@ self.avatarTemplate.hidden = YES; - for (int a = 0; a < MPAvatarCount; ++a) { + for (NSUInteger a = 0; a < MPAvatarCount; ++a) { UIButton *avatar = [self.avatarTemplate clone]; - avatar.tag = a; + avatar.tag = (NSInteger)a; avatar.hidden = NO; avatar.center = CGPointMake( self.avatarTemplate.center.x * (a + 1) + self.avatarTemplate.bounds.size.width / 2 * a, diff --git a/MasterPassword/ObjC/iOS/MPUnlockViewController.m b/MasterPassword/ObjC/iOS/MPUnlockViewController.m index 58143131..733f2269 100644 --- a/MasterPassword/ObjC/iOS/MPUnlockViewController.m +++ b/MasterPassword/ObjC/iOS/MPUnlockViewController.m @@ -46,10 +46,10 @@ [alert addSubview:alertAvatarScrollView]; CGPoint selectedOffset = CGPointZero; - for (int a = 0; a < MPAvatarCount; ++a) { + for (NSUInteger a = 0; a < MPAvatarCount; ++a) { UIButton *avatar = [self.avatarTemplate cloneAddedTo:alertAvatarScrollView]; - avatar.tag = a; + avatar.tag = (NSInteger)a; avatar.hidden = NO; avatar.center = CGPointMake( (20 + self.avatarTemplate.bounds.size.width / 2) * (a + 1) + self.avatarTemplate.bounds.size.width / 2 * a, @@ -368,7 +368,7 @@ avatar.layer.shadowRadius = 20; avatar.layer.masksToBounds = NO; avatar.backgroundColor = [UIColor clearColor]; - avatar.tag = user.avatar; + avatar.tag = (NSInteger)user.avatar; [avatar setBackgroundImage:[UIImage imageNamed:PearlString( @"avatar-%lu", (unsigned long)user.avatar )] forState:UIControlStateNormal]; @@ -599,7 +599,7 @@ BOOL isTargeted = avatar == targetedAvatar; avatar.userInteractionEnabled = isTargeted; - avatar.alpha = isTargeted? 1: [self selectedUserForThread]? 0.1: 0.4; + avatar.alpha = isTargeted? 1: [self selectedUserForThread]? 0.1F: 0.4F; [self updateAvatarShadowColor:avatar isTargeted:isTargeted]; } recurse:NO]; @@ -649,7 +649,7 @@ - (void)initializeWordLabel:(UILabel *)wordLabel { - wordLabel.alpha = 0.05 + (random() % 35) / 100.0F; + wordLabel.alpha = 0.05F + (random() % 35) / 100.0F; wordLabel.text = (self.wordList)[(NSUInteger)random() % [self.wordList count]]; } diff --git a/MasterPassword/ObjC/iOS/MPiOSAppDelegate.m b/MasterPassword/ObjC/iOS/MPiOSAppDelegate.m index 51dfe31a..2a7195b0 100644 --- a/MasterPassword/ObjC/iOS/MPiOSAppDelegate.m +++ b/MasterPassword/ObjC/iOS/MPiOSAppDelegate.m @@ -404,23 +404,23 @@ - (void)showGuide { - [self.navigationController performSegueWithIdentifier:@"MP_Guide" sender:self]; + //TODO [self.navigationController performSegueWithIdentifier:@"MP_Guide" sender:self]; MPCheckpoint( MPCheckpointShowGuide, nil ); } - (void)showSetup { - [self.navigationController performSegueWithIdentifier:@"MP_Setup" sender:self]; + //TODO [self.navigationController performSegueWithIdentifier:@"MP_Setup" sender:self]; MPCheckpoint( MPCheckpointShowSetup, nil ); } - (void)showReview { - MPCheckpoint( MPCheckpointReview, nil ); - [super showReview]; + + MPCheckpoint( MPCheckpointReview, nil ); } - (void)showFeedbackWithLogs:(BOOL)logs forVC:(UIViewController *)viewController { diff --git a/MasterPassword/ObjC/iOS/MainStoryboard_iPhone.storyboard b/MasterPassword/ObjC/iOS/MainStoryboard_iPhone.storyboard index f34dfcd0..2ebbf993 100644 --- a/MasterPassword/ObjC/iOS/MainStoryboard_iPhone.storyboard +++ b/MasterPassword/ObjC/iOS/MainStoryboard_iPhone.storyboard @@ -470,15 +470,15 @@ Your passwords will be AES-encrypted with your master password. - + - + - + 119-20:51:52 MPiOSAppDelegate.m:36 | INFO : Initializing TestFlight @@ -508,7 +508,7 @@ Your passwords will be AES-encrypted with your master password. - + @@ -1640,6 +1640,7 @@ You can use the words in the background for inspiration in finding a memorable m + @@ -1823,6 +1824,112 @@ You can use the words in the background for inspiration in finding a memorable m + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1873,11 +1980,11 @@ You can use the words in the background for inspiration in finding a memorable m - 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. + 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. Note that even without iCloud syncing, you can make your passwords available from any device by simply creating the same user on all your devices. Enabling iCloud is mainly benefitial to keep the list of sites you use in sync on all your devices. -Only site names and custom passwords are sent to iCloud. Passwords are encrypted with your master password and illegible by Apple or any interceptor. +Only site names and custom passwords are sent to iCloud. Passwords are encrypted with your master password and illegible by Apple or any interceptor. @@ -2359,7 +2466,7 @@ Only site names and custom passwords are sent to iCloud. Passwords are encrypte - + @@ -3062,8 +3169,8 @@ However, it means that anyone who finds your device unlocked can do the same. - - + + \ No newline at end of file diff --git a/MasterPassword/ObjC/iOS/MasterPassword-Info.plist b/MasterPassword/ObjC/iOS/MasterPassword-Info.plist index 1e2ee930..20246c83 100644 --- a/MasterPassword/ObjC/iOS/MasterPassword-Info.plist +++ b/MasterPassword/ObjC/iOS/MasterPassword-Info.plist @@ -78,7 +78,7 @@ SourceCodePro-ExtraLight.otf UIMainStoryboardFile - MainStoryboard_iPhone + Storyboard UIStatusBarHidden UIStatusBarStyle diff --git a/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj b/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj index 2fabec83..f6171fbc 100644 --- a/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj +++ b/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj @@ -12,6 +12,7 @@ 93D39262A8A97DB748213309 /* PearlEMail.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D393BB973253D4BAAC84AA /* PearlEMail.m */; }; 93D392EC39DA43C46C692C12 /* NSDictionary+Indexing.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D393B97158D7BE9332EA53 /* NSDictionary+Indexing.h */; }; 93D3932889B6B4206E66A6D6 /* PearlEMail.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D39F7C9F47BF6387FBC5C3 /* PearlEMail.h */; }; + 93D3957237D303DE2D38C267 /* MPAvatarCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39B381350802A194BF332 /* MPAvatarCell.m */; }; 93D395F08A087F8A24689347 /* NSArray+Indexing.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39067C0AFDC581794E2B8 /* NSArray+Indexing.m */; }; 93D396AA30690B256F30378A /* PearlNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D3956915634581E737B38C /* PearlNavigationController.m */; }; 93D396BA1C74C4A06FD86437 /* PearlOverlay.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D3942A356B639724157982 /* PearlOverlay.h */; }; @@ -22,10 +23,17 @@ 93D39B842AB9A5D072810D76 /* NSError+PearlFullDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D398C95847261903D781D3 /* NSError+PearlFullDescription.h */; }; 93D39C34FE35830EF5BE1D2A /* NSArray+Indexing.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D396D04E57792A54D437AC /* NSArray+Indexing.h */; }; 93D39C8AD8EAB747856B3A8C /* LLModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D3923B42DA2DA18F287092 /* LLModel.m */; }; + 93D39D596A2E376D6F6F5DA1 /* MPCombinedViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D393310223DDB35218467A /* MPCombinedViewController.m */; }; 93D39E281E3658B30550CB55 /* NSDictionary+Indexing.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39AA1EE2E1E7B81372240 /* NSDictionary+Indexing.m */; }; 93D39F8A9254177891F38705 /* MPSetupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39A28369954D147E239BA /* MPSetupViewController.m */; }; DA04E33E14B1E70400ECA4F3 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA04E33D14B1E70400ECA4F3 /* MobileCoreServices.framework */; }; DA095E75172F4CD8001C948B /* MPLogsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D3979190DACEBD1F6AE9F4 /* MPLogsViewController.m */; }; + DA2CA4DD18D28859007798F8 /* NSArray+Pearl.m in Sources */ = {isa = PBXBuildFile; fileRef = DA2CA4D918D28859007798F8 /* NSArray+Pearl.m */; }; + DA2CA4DE18D28859007798F8 /* NSArray+Pearl.h in Headers */ = {isa = PBXBuildFile; fileRef = DA2CA4DA18D28859007798F8 /* NSArray+Pearl.h */; }; + DA2CA4DF18D28859007798F8 /* NSTimer+PearlBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = DA2CA4DB18D28859007798F8 /* NSTimer+PearlBlock.m */; }; + DA2CA4E018D28859007798F8 /* NSTimer+PearlBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = DA2CA4DC18D28859007798F8 /* NSTimer+PearlBlock.h */; }; + DA2CA4E418D28866007798F8 /* NSLayoutConstraint+PearlUIKit.h in Headers */ = {isa = PBXBuildFile; fileRef = DA2CA4E218D28866007798F8 /* NSLayoutConstraint+PearlUIKit.h */; }; + DA2CA4E618D2AC10007798F8 /* NSLayoutConstraint+PearlUIKit.m in Sources */ = {isa = PBXBuildFile; fileRef = DA2CA4E518D2AC10007798F8 /* NSLayoutConstraint+PearlUIKit.m */; }; DA30E9CE15722ECA00A68B4C /* NSBundle+PearlMutableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = DA30E9CB15722ECA00A68B4C /* NSBundle+PearlMutableInfo.h */; }; DA30E9CF15722ECA00A68B4C /* NSBundle+PearlMutableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = DA30E9CC15722ECA00A68B4C /* NSBundle+PearlMutableInfo.m */; }; DA30E9D015722ECA00A68B4C /* Pearl.m in Sources */ = {isa = PBXBuildFile; fileRef = DA30E9CD15722ECA00A68B4C /* Pearl.m */; }; @@ -35,6 +43,7 @@ DA30E9D815723E6900A68B4C /* PearlLazy.m in Sources */ = {isa = PBXBuildFile; fileRef = DA30E9D615723E6900A68B4C /* PearlLazy.m */; }; DA3509FE15F101A500C14A8E /* PearlQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = DA3509FC15F101A500C14A8E /* PearlQueue.h */; }; DA3509FF15F101A500C14A8E /* PearlQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = DA3509FD15F101A500C14A8E /* PearlQueue.m */; }; + DA38D6A318CCB5BF009AEB3E /* Storyboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DA38D6A218CCB5BF009AEB3E /* Storyboard.storyboard */; }; DA4425CC1557BED40052177D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; }; DA44260A1557D9E40052177D /* libUbiquityStoreManager.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DA4425CB1557BED40052177D /* libUbiquityStoreManager.a */; }; DA4DA1D91564471A00F6F596 /* libjrswizzle.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAC6326C148680650075AEA5 /* libjrswizzle.a */; }; @@ -58,6 +67,8 @@ DA70EC801811B13C00F65DB2 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA70EC7F1811B13C00F65DB2 /* StoreKit.framework */; }; DA829E52159847E0002417D3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; }; DA829E6215984832002417D3 /* libFontReplacer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DA829E51159847E0002417D3 /* libFontReplacer.a */; }; + DA854C8318D4CFBF00106317 /* avatar-add@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA854C8118D4CFBF00106317 /* avatar-add@2x.png */; }; + DA854C8418D4CFBF00106317 /* avatar-add.png in Resources */ = {isa = PBXBuildFile; fileRef = DA854C8218D4CFBF00106317 /* avatar-add.png */; }; DA945C8717E3F3FD0053236B /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DA945C8617E3F3FD0053236B /* Images.xcassets */; }; DA95D5F214DF0B2C008D1B94 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA95D5F014DF0B1E008D1B94 /* MessageUI.framework */; }; DA9B51551895D79E009D2A0B /* gittip.png in Resources */ = {isa = PBXBuildFile; fileRef = DA9B51541895D79E009D2A0B /* gittip.png */; }; @@ -489,6 +500,7 @@ 93D390FADEB325D8D54A957D /* PearlOverlay.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PearlOverlay.m; sourceTree = ""; }; 93D391943675426839501BB8 /* MPLogsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPLogsViewController.h; sourceTree = ""; }; 93D3923B42DA2DA18F287092 /* LLModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLModel.m; sourceTree = ""; }; + 93D393310223DDB35218467A /* MPCombinedViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPCombinedViewController.m; sourceTree = ""; }; 93D393B97158D7BE9332EA53 /* NSDictionary+Indexing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+Indexing.h"; sourceTree = ""; }; 93D393BB973253D4BAAC84AA /* PearlEMail.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PearlEMail.m; sourceTree = ""; }; 93D394077F8FAB8167647187 /* Twitter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Twitter.framework; path = System/Library/Frameworks/Twitter.framework; sourceTree = SDKROOT; }; @@ -503,12 +515,21 @@ 93D39A28369954D147E239BA /* MPSetupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPSetupViewController.m; sourceTree = ""; }; 93D39A3CC4D8330831FC8CB4 /* LLToggleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLToggleViewController.h; sourceTree = ""; }; 93D39AA1EE2E1E7B81372240 /* NSDictionary+Indexing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+Indexing.m"; sourceTree = ""; }; + 93D39B381350802A194BF332 /* MPAvatarCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPAvatarCell.m; sourceTree = ""; }; 93D39BA6C5CB452973918B7D /* LLButtonView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLButtonView.h; sourceTree = ""; }; 93D39BF6BCBDFFE844E7D34C /* LLButtonView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLButtonView.m; sourceTree = ""; }; 93D39C8E26B06F01566785B7 /* LLToggleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLToggleViewController.m; sourceTree = ""; }; + 93D39CF8ADF4542CDC4CD385 /* MPCombinedViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPCombinedViewController.h; sourceTree = ""; }; + 93D39DA27D768B53C8B1330C /* MPAvatarCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPAvatarCell.h; sourceTree = ""; }; 93D39F7C9F47BF6387FBC5C3 /* PearlEMail.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PearlEMail.h; sourceTree = ""; }; 93D39F9106F2CCFB94283188 /* NSError+PearlFullDescription.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSError+PearlFullDescription.m"; sourceTree = ""; }; DA04E33D14B1E70400ECA4F3 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; }; + DA2CA4D918D28859007798F8 /* NSArray+Pearl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSArray+Pearl.m"; sourceTree = ""; }; + DA2CA4DA18D28859007798F8 /* NSArray+Pearl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSArray+Pearl.h"; sourceTree = ""; }; + DA2CA4DB18D28859007798F8 /* NSTimer+PearlBlock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSTimer+PearlBlock.m"; sourceTree = ""; }; + DA2CA4DC18D28859007798F8 /* NSTimer+PearlBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSTimer+PearlBlock.h"; sourceTree = ""; }; + DA2CA4E218D28866007798F8 /* NSLayoutConstraint+PearlUIKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSLayoutConstraint+PearlUIKit.h"; sourceTree = ""; }; + DA2CA4E518D2AC10007798F8 /* NSLayoutConstraint+PearlUIKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSLayoutConstraint+PearlUIKit.m"; sourceTree = ""; }; DA30E9CB15722ECA00A68B4C /* NSBundle+PearlMutableInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSBundle+PearlMutableInfo.h"; sourceTree = ""; }; DA30E9CC15722ECA00A68B4C /* NSBundle+PearlMutableInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSBundle+PearlMutableInfo.m"; sourceTree = ""; }; DA30E9CD15722ECA00A68B4C /* Pearl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Pearl.m; sourceTree = ""; }; @@ -520,6 +541,7 @@ DA340E9F17CD830E00712B77 /* TestFlight+ManualSessions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TestFlight+ManualSessions.h"; sourceTree = ""; }; DA3509FC15F101A500C14A8E /* PearlQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PearlQueue.h; sourceTree = ""; }; DA3509FD15F101A500C14A8E /* PearlQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PearlQueue.m; sourceTree = ""; }; + DA38D6A218CCB5BF009AEB3E /* Storyboard.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Storyboard.storyboard; sourceTree = ""; }; 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; }; DA5A09DD171A70E4005284AB /* play.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = play.png; sourceTree = ""; }; @@ -538,6 +560,8 @@ DA672D2E14F92C6B004A189C /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; DA70EC7F1811B13C00F65DB2 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; }; DA829E51159847E0002417D3 /* libFontReplacer.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libFontReplacer.a; sourceTree = BUILT_PRODUCTS_DIR; }; + DA854C8118D4CFBF00106317 /* avatar-add@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "avatar-add@2x.png"; sourceTree = ""; }; + DA854C8218D4CFBF00106317 /* avatar-add.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "avatar-add.png"; sourceTree = ""; }; DA945C8617E3F3FD0053236B /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; DA95D5F014DF0B1E008D1B94 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; }; DA9B51541895D79E009D2A0B /* gittip.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = gittip.png; sourceTree = ""; }; @@ -1854,6 +1878,8 @@ DABD366B1711E29400CF925C /* Avatars */ = { isa = PBXGroup; children = ( + DA854C8118D4CFBF00106317 /* avatar-add@2x.png */, + DA854C8218D4CFBF00106317 /* avatar-add.png */, DABD366C1711E29400CF925C /* avatar-0.png */, DABD366D1711E29400CF925C /* avatar-0@2x.png */, DABD366E1711E29400CF925C /* avatar-1.png */, @@ -2488,6 +2514,11 @@ 93D39730673227EFF6DEFF19 /* MPSetupViewController.h */, 93D3979190DACEBD1F6AE9F4 /* MPLogsViewController.m */, 93D391943675426839501BB8 /* MPLogsViewController.h */, + 93D393310223DDB35218467A /* MPCombinedViewController.m */, + 93D39CF8ADF4542CDC4CD385 /* MPCombinedViewController.h */, + DA38D6A218CCB5BF009AEB3E /* Storyboard.storyboard */, + 93D39B381350802A194BF332 /* MPAvatarCell.m */, + 93D39DA27D768B53C8B1330C /* MPAvatarCell.h */, ); path = iOS; sourceTree = ""; @@ -2892,6 +2923,10 @@ DAFE45D715039823003ABA7C /* Pearl */ = { isa = PBXGroup; children = ( + DA2CA4D918D28859007798F8 /* NSArray+Pearl.m */, + DA2CA4DA18D28859007798F8 /* NSArray+Pearl.h */, + DA2CA4DB18D28859007798F8 /* NSTimer+PearlBlock.m */, + DA2CA4DC18D28859007798F8 /* NSTimer+PearlBlock.h */, DA3509FC15F101A500C14A8E /* PearlQueue.h */, DA3509FD15F101A500C14A8E /* PearlQueue.m */, 93D393B97158D7BE9332EA53 /* NSDictionary+Indexing.h */, @@ -2973,6 +3008,8 @@ DAFE460715039823003ABA7C /* Pearl-UIKit */ = { isa = PBXGroup; children = ( + DA2CA4E518D2AC10007798F8 /* NSLayoutConstraint+PearlUIKit.m */, + DA2CA4E218D28866007798F8 /* NSLayoutConstraint+PearlUIKit.h */, 93D39F7C9F47BF6387FBC5C3 /* PearlEMail.h */, 93D393BB973253D4BAAC84AA /* PearlEMail.m */, DAFE4A63150399FF003ABA8F /* UIScrollView+PearlFlashingIndicators.h */, @@ -3102,6 +3139,7 @@ DAEB935A18AA537D000490CC /* idea.h in Headers */, DAEB933A18AA537D000490CC /* sysendian.h in Headers */, DAFE4A2415039824003ABA7C /* PearlInfoPlist.h in Headers */, + DA2CA4E418D28866007798F8 /* NSLayoutConstraint+PearlUIKit.h in Headers */, DAFE4A2615039824003ABA7C /* PearlLogger.h in Headers */, DAFE4A2815039824003ABA7C /* PearlMathUtils.h in Headers */, DAEB934418AA537D000490CC /* camellia.h in Headers */, @@ -3113,6 +3151,7 @@ DAEB935318AA537D000490CC /* ec.h in Headers */, DAEB937818AA537D000490CC /* ssl3.h in Headers */, DAEB935E18AA537D000490CC /* md4.h in Headers */, + DA2CA4E018D28859007798F8 /* NSTimer+PearlBlock.h in Headers */, DAEB933518AA537D000490CC /* memlimit.h in Headers */, DAFE4A3315039824003ABA7C /* Pearl-Crypto.h in Headers */, DAEB937318AA537D000490CC /* seed.h in Headers */, @@ -3189,6 +3228,7 @@ DAEB936C18AA537D000490CC /* pqueue.h in Headers */, DAEB937B18AA537D000490CC /* tls1.h in Headers */, DAEB933818AA537D000490CC /* scryptenc_cpuperf.h in Headers */, + DA2CA4DE18D28859007798F8 /* NSArray+Pearl.h in Headers */, 93D392EC39DA43C46C692C12 /* NSDictionary+Indexing.h in Headers */, DAEB935418AA537D000490CC /* ecdh.h in Headers */, DAEB937D18AA537D000490CC /* txt_db.h in Headers */, @@ -3558,6 +3598,7 @@ DABD38FF1711E29700CF925C /* ui_navbar_container.png in Resources */, DABD39001711E29700CF925C /* ui_navbar_container@2x.png in Resources */, DABD39011711E29700CF925C /* ui_panel_container.png in Resources */, + DA854C8318D4CFBF00106317 /* avatar-add@2x.png in Resources */, DABD39021711E29700CF925C /* ui_panel_container@2x.png in Resources */, DABD39031711E29700CF925C /* ui_panel_display.png in Resources */, DABD39041711E29700CF925C /* ui_panel_display@2x.png in Resources */, @@ -3678,6 +3719,7 @@ DABD3B9D1711E29800CF925C /* social-twitter.png in Resources */, DABD3B9E1711E29800CF925C /* social-twitter@2x.png in Resources */, DABD3C191711E2DC00CF925C /* MPElementListCellView.xib in Resources */, + DA854C8418D4CFBF00106317 /* avatar-add.png in Resources */, DABD3C221711E2DC00CF925C /* MainStoryboard_iPhone.storyboard in Resources */, DABD3C241711E2DC00CF925C /* MasterPassword.entitlements in Resources */, DABD3C251711E2DC00CF925C /* Settings.bundle in Resources */, @@ -3688,6 +3730,7 @@ DABD3FCF1714F45C00CF925C /* identity@2x.png in Resources */, DADEF4151810D2940052CA3E /* love-lyndir.button.grey@2x.png in Resources */, DAE1EF2217E942DE00BC0086 /* Localizable.strings in Resources */, + DA38D6A318CCB5BF009AEB3E /* Storyboard.storyboard in Resources */, DA5A09DF171A70E4005284AB /* play.png in Resources */, DA5A09E0171A70E4005284AB /* play@2x.png in Resources */, DA5A09EA171BB0F7005284AB /* unlocked.png in Resources */, @@ -3774,6 +3817,8 @@ DABD3C271711E2DC00CF925C /* main.m in Sources */, 93D39F8A9254177891F38705 /* MPSetupViewController.m in Sources */, DA095E75172F4CD8001C948B /* MPLogsViewController.m in Sources */, + 93D39D596A2E376D6F6F5DA1 /* MPCombinedViewController.m in Sources */, + 93D3957237D303DE2D38C267 /* MPAvatarCell.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3845,9 +3890,11 @@ DA30E9D815723E6900A68B4C /* PearlLazy.m in Sources */, DAFE4A63150399FF003ABA82 /* UIControl+PearlBlocks.m in Sources */, DAFE4A63150399FF003ABA86 /* NSObject+PearlKVO.m in Sources */, + DA2CA4DD18D28859007798F8 /* NSArray+Pearl.m in Sources */, DAFE4A63150399FF003ABA8A /* UIControl+PearlSelect.m in Sources */, DAFE4A63150399FF003ABA8E /* UIScrollView+PearlFlashingIndicators.m in Sources */, DAFE4A63150399FF003ABA92 /* NSDateFormatter+RFC3339.m in Sources */, + DA2CA4E618D2AC10007798F8 /* NSLayoutConstraint+PearlUIKit.m in Sources */, 93D395F08A087F8A24689347 /* NSArray+Indexing.m in Sources */, 93D39E281E3658B30550CB55 /* NSDictionary+Indexing.m in Sources */, 93D39262A8A97DB748213309 /* PearlEMail.m in Sources */, @@ -3855,6 +3902,7 @@ 93D3922A53E41A54832E90D9 /* PearlOverlay.m in Sources */, 93D396AA30690B256F30378A /* PearlNavigationController.m in Sources */, 93D397952F5635C793C24DF1 /* NSError+PearlFullDescription.m in Sources */, + DA2CA4DF18D28859007798F8 /* NSTimer+PearlBlock.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3980,7 +4028,7 @@ CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES; + CLANG_WARN_IMPLICIT_SIGN_CONVERSION = NO; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; CLANG_WARN_OBJC_RECEIVER_WEAK = NO; @@ -4025,7 +4073,7 @@ GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; GCC_WARN_MISSING_PARENTHESES = YES; GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; - GCC_WARN_SIGN_COMPARE = YES; + GCC_WARN_SIGN_COMPARE = NO; GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = NO; @@ -4067,7 +4115,7 @@ CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES; + CLANG_WARN_IMPLICIT_SIGN_CONVERSION = NO; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; CLANG_WARN_OBJC_RECEIVER_WEAK = NO; @@ -4116,7 +4164,7 @@ GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; GCC_WARN_MISSING_PARENTHESES = YES; GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; - GCC_WARN_SIGN_COMPARE = YES; + GCC_WARN_SIGN_COMPARE = NO; GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; @@ -4225,7 +4273,7 @@ CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES; + CLANG_WARN_IMPLICIT_SIGN_CONVERSION = NO; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; CLANG_WARN_OBJC_RECEIVER_WEAK = NO; @@ -4273,7 +4321,7 @@ GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; GCC_WARN_MISSING_PARENTHESES = YES; GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; - GCC_WARN_SIGN_COMPARE = YES; + GCC_WARN_SIGN_COMPARE = NO; GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; diff --git a/MasterPassword/ObjC/iOS/Storyboard.storyboard b/MasterPassword/ObjC/iOS/Storyboard.storyboard new file mode 100644 index 00000000..3c786956 --- /dev/null +++ b/MasterPassword/ObjC/iOS/Storyboard.storyboard @@ -0,0 +1,923 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Title + Title + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MasterPassword/Resources/Media/Avatars/avatar-add.png b/MasterPassword/Resources/Media/Avatars/avatar-add.png new file mode 100644 index 0000000000000000000000000000000000000000..be68d16ec5b63f08d3514742f8549df179dee8fe GIT binary patch literal 7770 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 literal 0 HcmV?d00001 diff --git a/MasterPassword/Resources/Media/Avatars/avatar-add@2x.png b/MasterPassword/Resources/Media/Avatars/avatar-add@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3e91b6dc34bb7c2852d044a2ec508639c3695b32 GIT binary patch literal 16583 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 Date: Wed, 19 Mar 2014 20:09:25 -0400 Subject: [PATCH 02/32] Updated animations for activation of the passwords VC and fancier focussed user. --- External/LoveLyndir | 2 +- External/Pearl | 2 +- .../Versions/A/Headers/IBARevealLogger.h | 2 +- External/Reveal.framework/Versions/A/Reveal | Bin 13968316 -> 19933340 bytes .../xcshareddata/MasterPassword.xccheckout | 20 +- MasterPassword/ObjC/iOS/MPAvatarCell.h | 10 +- MasterPassword/ObjC/iOS/MPAvatarCell.m | 144 +- .../ObjC/iOS/MPCombinedViewController.h | 24 +- .../ObjC/iOS/MPCombinedViewController.m | 612 +------ .../ObjC/iOS/MPPasswordsViewController.h | 33 + .../ObjC/iOS/MPPasswordsViewController.m | 218 +++ .../ObjC/iOS/MPPreferencesViewController.m | 4 +- .../ObjC/iOS/MPUnlockViewController.m | 14 +- .../ObjC/iOS/MPUsersViewController.h | 40 + .../ObjC/iOS/MPUsersViewController.m | 742 ++++++++ .../ObjC/iOS/MainStoryboard_iPhone.storyboard | 8 +- .../project.pbxproj | 24 + .../ObjC/iOS/PearlUINavigationBar.h | 26 + .../ObjC/iOS/PearlUINavigationBar.m | 43 + MasterPassword/ObjC/iOS/PearlUIView.h | 25 + MasterPassword/ObjC/iOS/PearlUIView.m | 32 + MasterPassword/ObjC/iOS/Storyboard.storyboard | 1564 +++++++++-------- 22 files changed, 2261 insertions(+), 1328 deletions(-) create mode 100644 MasterPassword/ObjC/iOS/MPPasswordsViewController.h create mode 100644 MasterPassword/ObjC/iOS/MPPasswordsViewController.m create mode 100644 MasterPassword/ObjC/iOS/MPUsersViewController.h create mode 100644 MasterPassword/ObjC/iOS/MPUsersViewController.m create mode 100644 MasterPassword/ObjC/iOS/PearlUINavigationBar.h create mode 100644 MasterPassword/ObjC/iOS/PearlUINavigationBar.m create mode 100644 MasterPassword/ObjC/iOS/PearlUIView.h create mode 100644 MasterPassword/ObjC/iOS/PearlUIView.m diff --git a/External/LoveLyndir b/External/LoveLyndir index 97eafd9b..0b858644 160000 --- a/External/LoveLyndir +++ b/External/LoveLyndir @@ -1 +1 @@ -Subproject commit 97eafd9b59f84bd9e3fc3cb4313df8b3c034e766 +Subproject commit 0b858644cb58c357e055b41c2747ad9d45fa9ce3 diff --git a/External/Pearl b/External/Pearl index 575b409c..67321728 160000 --- a/External/Pearl +++ b/External/Pearl @@ -1 +1 @@ -Subproject commit 575b409cca36eabfaacf0a963ed259454cb8ec66 +Subproject commit 673217287de2920d21ef84f1d6811d8250f187b4 diff --git a/External/Reveal.framework/Versions/A/Headers/IBARevealLogger.h b/External/Reveal.framework/Versions/A/Headers/IBARevealLogger.h index 92193c71..a2dd329c 100644 --- a/External/Reveal.framework/Versions/A/Headers/IBARevealLogger.h +++ b/External/Reveal.framework/Versions/A/Headers/IBARevealLogger.h @@ -7,7 +7,7 @@ CF_EXTERN_C_BEGIN /*! \brief The Reveal Log level bit flags. - \discussion These flags are addative. Ie, you should bitwise OR them together. + \discussion These flags are additive. i.e. you should bitwise OR them together. \seealso IBARevealLoggerSetLevelMask \seealso IBARevealLoggerGetLevelMask diff --git a/External/Reveal.framework/Versions/A/Reveal b/External/Reveal.framework/Versions/A/Reveal index 0ae41f5e6a4510e74f0c9e11e0882cc8f640b3fa..8ef148752a87fe3b2981828ca9928cd8f3a5d914 100644 GIT binary patch literal 19933340 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 z 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

T&dx7fp-G3Cv(jZ_!uBx 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%0A$BC? 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