login name UI improvements and saved key login fix.
[IMPROVED] -saveContent now returns YES if successful and NO if nothing changed. [FIXED] Fix for unsetting the login key when key is saved due to a notification race. [IMPROVED] UI improvements for login name. [IMPROVED] Remove system fonts all-over and replace with Exo2. [IMPROVED] Various UI improvements and fixes throughout.
This commit is contained in:
parent
d40ccee0fe
commit
398f7bdb66
2
External/Pearl
vendored
2
External/Pearl
vendored
@ -1 +1 @@
|
||||
Subproject commit ba3f080a2c5645d3e4af4de1c71a7b7c4420c626
|
||||
Subproject commit da89089f2900ab8990a61f549d061f36325a4e41
|
6
External/iOS/Crashlytics.framework/Modules/module.modulemap
vendored
Normal file
6
External/iOS/Crashlytics.framework/Modules/module.modulemap
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
framework module Crashlytics {
|
||||
umbrella header "Crashlytics.h"
|
||||
|
||||
export *
|
||||
module * { export * }
|
||||
}
|
Binary file not shown.
@ -15,13 +15,13 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2.2.2</string>
|
||||
<string>2.2.4</string>
|
||||
<key>CFBundleSupportedPlatforms</key>
|
||||
<array>
|
||||
<string>iPhoneOS</string>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>36</string>
|
||||
<string>38</string>
|
||||
<key>DTPlatformName</key>
|
||||
<string>iphoneos</string>
|
||||
<key>MinimumOSVersion</key>
|
||||
|
BIN
External/iOS/Crashlytics.framework/run
vendored
BIN
External/iOS/Crashlytics.framework/run
vendored
Binary file not shown.
BIN
External/iOS/Crashlytics.framework/submit
vendored
BIN
External/iOS/Crashlytics.framework/submit
vendored
Binary file not shown.
@ -62,7 +62,7 @@ NSString *NSStringFromTimeToCrack(TimeToCrack timeToCrack);
|
||||
- (NSString *)generateContentNamed:(NSString *)name ofType:(MPElementType)type withCounter:(NSUInteger)counter usingKey:(MPKey *)key;
|
||||
- (NSString *)storedContentForElement:(MPElementStoredEntity *)element usingKey:(MPKey *)key;
|
||||
|
||||
- (void)saveContent:(NSString *)clearContent toElement:(MPElementEntity *)element usingKey:(MPKey *)elementKey;
|
||||
- (BOOL)saveContent:(NSString *)clearContent toElement:(MPElementEntity *)element usingKey:(MPKey *)elementKey;
|
||||
- (NSString *)resolveContentForElement:(MPElementEntity *)element usingKey:(MPKey *)elementKey;
|
||||
- (void)resolveContentForElement:(MPElementEntity *)element usingKey:(MPKey *)elementKey
|
||||
result:(void (^)(NSString *result))resultBlock;
|
||||
|
@ -369,7 +369,7 @@
|
||||
return [self decryptContent:element.contentObject usingKey:key];
|
||||
}
|
||||
|
||||
- (void)saveContent:(NSString *)clearContent toElement:(MPElementEntity *)element usingKey:(MPKey *)elementKey {
|
||||
- (BOOL)saveContent:(NSString *)clearContent toElement:(MPElementEntity *)element usingKey:(MPKey *)elementKey {
|
||||
|
||||
NSAssert( [elementKey.keyID isEqualToData:element.user.keyID], @"Element does not belong to current user." );
|
||||
switch (element.type) {
|
||||
@ -380,26 +380,29 @@
|
||||
case MPElementTypeGeneratedShort:
|
||||
case MPElementTypeGeneratedPIN: {
|
||||
NSAssert( NO, @"Cannot save content to element with generated type %lu.", (long)element.type );
|
||||
break;
|
||||
return NO;
|
||||
}
|
||||
|
||||
case MPElementTypeStoredPersonal: {
|
||||
if (![element isKindOfClass:[MPElementStoredEntity class]]) {
|
||||
wrn( @"Element with stored type %lu is not an MPElementStoredEntity, but a %@.",
|
||||
(long)element.type, [element class] );
|
||||
break;
|
||||
return NO;
|
||||
}
|
||||
|
||||
NSData *encryptedContent = [[clearContent dataUsingEncoding:NSUTF8StringEncoding]
|
||||
encryptWithSymmetricKey:[elementKey subKeyOfLength:PearlCryptKeySize].keyData padding:YES];
|
||||
if ([((MPElementStoredEntity *)element).contentObject isEqualToData:encryptedContent])
|
||||
return NO;
|
||||
|
||||
((MPElementStoredEntity *)element).contentObject = encryptedContent;
|
||||
break;
|
||||
return YES;
|
||||
}
|
||||
case MPElementTypeStoredDevicePrivate: {
|
||||
if (![element isKindOfClass:[MPElementStoredEntity class]]) {
|
||||
wrn( @"Element with stored type %lu is not an MPElementStoredEntity, but a %@.",
|
||||
(long)element.type, [element class] );
|
||||
break;
|
||||
return NO;
|
||||
}
|
||||
|
||||
NSData *encryptedContent = [[clearContent dataUsingEncoding:NSUTF8StringEncoding]
|
||||
@ -415,9 +418,11 @@
|
||||
#endif
|
||||
}];
|
||||
((MPElementStoredEntity *)element).contentObject = nil;
|
||||
break;
|
||||
return YES;
|
||||
}
|
||||
}
|
||||
|
||||
Throw( @"Unsupported type: %d", element.type );
|
||||
}
|
||||
|
||||
- (NSString *)resolveContentForElement:(MPElementEntity *)element usingKey:(MPKey *)elementKey {
|
||||
|
@ -143,8 +143,8 @@ static NSDictionary *keyQuery(MPUserEntity *user) {
|
||||
}
|
||||
|
||||
user.lastUsed = [NSDate date];
|
||||
[moc saveToStore];
|
||||
self.activeUser = user;
|
||||
[moc saveToStore];
|
||||
|
||||
// Perform a data sanity check now that we're logged in as the user to allow fixes that require the user's key.
|
||||
if ([[MPConfig get].checkInconsistency boolValue])
|
||||
|
@ -48,6 +48,7 @@
|
||||
DA3B8452190FC86F00246EEA /* NSManagedObject+Pearl.m in Sources */ = {isa = PBXBuildFile; fileRef = DA3B8450190FC86F00246EEA /* NSManagedObject+Pearl.m */; };
|
||||
DA3B8453190FC86F00246EEA /* NSManagedObject+Pearl.h in Headers */ = {isa = PBXBuildFile; fileRef = DA3B8451190FC86F00246EEA /* NSManagedObject+Pearl.h */; };
|
||||
DA3B8456190FC89700246EEA /* MPFixable.m in Sources */ = {isa = PBXBuildFile; fileRef = DA3B8454190FC89700246EEA /* MPFixable.m */; };
|
||||
DA3BCFCD19BD09E0006B2681 /* SourceCodePro-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = DA3BCFCC19BD09E0006B2681 /* SourceCodePro-Regular.otf */; };
|
||||
DA4425CC1557BED40052177D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
|
||||
DA4DA1D91564471A00F6F596 /* libjrswizzle.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAC6326C148680650075AEA5 /* libjrswizzle.a */; };
|
||||
DA5E5C9417248AA1003798D8 /* libscryptenc-osx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5E5C8717248AA1003798D8 /* libscryptenc-osx.a */; };
|
||||
@ -275,6 +276,7 @@
|
||||
DA3B8451190FC86F00246EEA /* NSManagedObject+Pearl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSManagedObject+Pearl.h"; sourceTree = "<group>"; };
|
||||
DA3B8454190FC89700246EEA /* MPFixable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPFixable.m; sourceTree = "<group>"; };
|
||||
DA3B8455190FC89700246EEA /* MPFixable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPFixable.h; sourceTree = "<group>"; };
|
||||
DA3BCFCC19BD09E0006B2681 /* SourceCodePro-Regular.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SourceCodePro-Regular.otf"; sourceTree = "<group>"; };
|
||||
DA4425CB1557BED40052177D /* libUbiquityStoreManager.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libUbiquityStoreManager.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
DA5BFA44147E415C00F98B1E /* Master Password.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Master Password.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
DA5BFA4A147E415C00F98B1E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
@ -1607,6 +1609,7 @@
|
||||
DACA268A1705DF81002C6C22 /* Fonts */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
DA3BCFCC19BD09E0006B2681 /* SourceCodePro-Regular.otf */,
|
||||
DAF4EF52190A828100023C90 /* Exo2.0-Thin.otf */,
|
||||
DAF4EF53190A828100023C90 /* Exo2.0-Regular.otf */,
|
||||
DAF4EF54190A828100023C90 /* Exo2.0-ExtraBold.otf */,
|
||||
@ -2041,6 +2044,7 @@
|
||||
DACA27301705DF81002C6C22 /* avatar-18.png in Resources */,
|
||||
DACA27311705DF81002C6C22 /* avatar-4.png in Resources */,
|
||||
DAF4EF58190A828100023C90 /* Exo2.0-ExtraBold.otf in Resources */,
|
||||
DA3BCFCD19BD09E0006B2681 /* SourceCodePro-Regular.otf in Resources */,
|
||||
DAF4EF56190A828100023C90 /* Exo2.0-Thin.otf in Resources */,
|
||||
DACA27321705DF81002C6C22 /* avatar-16.png in Resources */,
|
||||
DACA27331705DF81002C6C22 /* avatar-12@2x.png in Resources */,
|
||||
|
@ -24,17 +24,17 @@
|
||||
|
||||
@property(nonatomic, strong) IBOutlet UILabel *siteNameLabel;
|
||||
@property(nonatomic, strong) IBOutlet UITextField *passwordField;
|
||||
@property(nonatomic, strong) IBOutlet UIView *loginNameContainer;
|
||||
@property(nonatomic, strong) IBOutlet UITextField *loginNameField;
|
||||
@property(nonatomic, strong) IBOutlet UIPageControl *pageControl;
|
||||
@property(nonatomic, strong) IBOutlet UILabel *strengthLabel;
|
||||
@property(nonatomic, strong) IBOutlet UILabel *counterLabel;
|
||||
@property(nonatomic, strong) IBOutlet UIButton *counterButton;
|
||||
@property(nonatomic, strong) IBOutlet UIButton *upgradeButton;
|
||||
@property(nonatomic, strong) IBOutlet UIButton *modeButton;
|
||||
@property(nonatomic, strong) IBOutlet UIButton *loginModeButton;
|
||||
@property(nonatomic, strong) IBOutlet UIButton *editButton;
|
||||
@property(nonatomic, strong) IBOutlet UIScrollView *modeScrollView;
|
||||
@property(nonatomic, strong) IBOutlet UIButton *selectionButton;
|
||||
@property(nonatomic, strong) IBOutlet UIButton *contentButton;
|
||||
@property(nonatomic, strong) IBOutlet UIButton *loginNameButton;
|
||||
@property(nonatomic, strong) IBOutlet UIView *indicatorView;
|
||||
|
||||
@property(nonatomic) MPPasswordCellMode mode;
|
||||
@ -57,31 +57,32 @@
|
||||
[self.counterButton addGestureRecognizer:
|
||||
[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector( doResetCounter: )]];
|
||||
|
||||
self.selectionButton.layer.cornerRadius = 4;
|
||||
self.selectionButton.layer.shadowOffset = CGSizeZero;
|
||||
self.selectionButton.layer.shadowRadius = 5;
|
||||
self.selectionButton.layer.shadowOpacity = 0;
|
||||
self.selectionButton.layer.shadowColor = [UIColor whiteColor].CGColor;
|
||||
self.selectionButton.layer.borderWidth = 1;
|
||||
self.selectionButton.layer.borderColor = [UIColor colorWithWhite:0.15f alpha:0.6f].CGColor;
|
||||
self.contentView.layer.shadowRadius = 5;
|
||||
self.contentView.layer.shadowOpacity = 1;
|
||||
self.contentView.layer.shadowColor = [UIColor colorWithWhite:0 alpha:0.6f].CGColor;
|
||||
self.contentView.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:self.contentView.bounds cornerRadius:4].CGPath;
|
||||
self.contentView.layer.masksToBounds = NO;
|
||||
self.contentView.clipsToBounds = NO;
|
||||
self.layer.masksToBounds = NO;
|
||||
self.clipsToBounds = NO;
|
||||
[self setupLayer];
|
||||
|
||||
self.pageControl.transform = CGAffineTransformMakeScale( 0.4f, 0.4f );
|
||||
|
||||
[self.selectionButton observeKeyPath:@"highlighted"
|
||||
withBlock:^(id from, id to, NSKeyValueChange cause, UIButton *button) {
|
||||
button.layer.shadowOpacity = button.selected? 1: button.highlighted? 0.3f: 0;
|
||||
[self observeKeyPath:@"bounds" withBlock:^(id from, id to, NSKeyValueChange cause, id _self) {
|
||||
if (from && !CGSizeEqualToSize( [from CGRectValue].size, [to CGRectValue].size ))
|
||||
[self setupLayer];
|
||||
}];
|
||||
[self.selectionButton observeKeyPath:@"selected"
|
||||
|
||||
[self.contentButton observeKeyPath:@"highlighted"
|
||||
withBlock:^(id from, id to, NSKeyValueChange cause, UIButton *button) {
|
||||
button.layer.shadowOpacity = button.selected? 1: button.highlighted? 0.3f: 0;
|
||||
button.layer.shadowOpacity = button.selected? 0.7f: button.highlighted? 0.3f: 0;
|
||||
}];
|
||||
[self.contentButton observeKeyPath:@"selected"
|
||||
withBlock:^(id from, id to, NSKeyValueChange cause, UIButton *button) {
|
||||
button.layer.shadowOpacity = button.selected? 0.7f: button.highlighted? 0.3f: 0;
|
||||
}];
|
||||
[self.loginNameButton observeKeyPath:@"highlighted"
|
||||
withBlock:^(id from, id to, NSKeyValueChange cause, UIButton *button) {
|
||||
button.backgroundColor = [button.backgroundColor colorWithAlphaComponent:
|
||||
button.selected || button.highlighted? 0.1f: 0];
|
||||
button.layer.shadowOpacity = button.selected? 0.7f: button.highlighted? 0.3f: 0;
|
||||
}];
|
||||
[self.loginNameButton observeKeyPath:@"selected"
|
||||
withBlock:^(id from, id to, NSKeyValueChange cause, UIButton *button) {
|
||||
button.backgroundColor = [button.backgroundColor colorWithAlphaComponent:
|
||||
button.selected || button.highlighted? 0.1f: 0];
|
||||
button.layer.shadowOpacity = button.selected? 0.7f: button.highlighted? 0.3f: 0;
|
||||
}];
|
||||
|
||||
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position.y"];
|
||||
@ -92,13 +93,36 @@
|
||||
[self.indicatorView.layer addAnimation:animation forKey:@"bounce"];
|
||||
}
|
||||
|
||||
- (void)setupLayer {
|
||||
|
||||
self.contentButton.layer.cornerRadius = 4;
|
||||
self.contentButton.layer.shadowOffset = CGSizeZero;
|
||||
self.contentButton.layer.shadowRadius = 5;
|
||||
self.contentButton.layer.shadowOpacity = 0;
|
||||
self.contentButton.layer.shadowColor = [UIColor whiteColor].CGColor;
|
||||
self.contentButton.layer.borderWidth = 1;
|
||||
self.contentButton.layer.borderColor = [UIColor colorWithWhite:0.15f alpha:0.6f].CGColor;
|
||||
self.loginNameButton.layer.cornerRadius = 4;
|
||||
self.loginNameButton.layer.shadowOffset = CGSizeZero;
|
||||
self.loginNameButton.layer.shadowRadius = 5;
|
||||
self.loginNameButton.layer.shadowOpacity = 0;
|
||||
self.loginNameButton.layer.shadowColor = [UIColor whiteColor].CGColor;
|
||||
self.contentView.layer.shadowRadius = 5;
|
||||
self.contentView.layer.shadowOpacity = 1;
|
||||
self.contentView.layer.shadowColor = [UIColor colorWithWhite:0 alpha:0.6f].CGColor;
|
||||
self.contentView.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:self.contentView.bounds cornerRadius:4].CGPath;
|
||||
self.contentView.layer.masksToBounds = NO;
|
||||
self.contentView.clipsToBounds = NO;
|
||||
self.layer.masksToBounds = NO;
|
||||
self.clipsToBounds = NO;
|
||||
}
|
||||
|
||||
- (void)prepareForReuse {
|
||||
|
||||
[super prepareForReuse];
|
||||
|
||||
_elementOID = nil;
|
||||
self.transientSite = nil;
|
||||
self.loginModeButton.selected = NO;
|
||||
self.mode = MPPasswordCellModePassword;
|
||||
[self updateAnimated:NO];
|
||||
}
|
||||
@ -130,7 +154,11 @@
|
||||
|
||||
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
|
||||
|
||||
if (textField == self.passwordField)
|
||||
[self.loginNameField becomeFirstResponder];
|
||||
else
|
||||
[textField resignFirstResponder];
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
@ -162,8 +190,8 @@
|
||||
- (void)textFieldDidEndEditing:(UITextField *)textField {
|
||||
|
||||
if (textField == self.passwordField || textField == self.loginNameField) {
|
||||
NSString *text = textField.text;
|
||||
textField.enabled = NO;
|
||||
NSString *text = textField.text;
|
||||
|
||||
[MPiOSAppDelegate managedObjectContextPerformBlock:^(NSManagedObjectContext *context) {
|
||||
MPElementEntity *element = [self elementInContext:context];
|
||||
@ -171,10 +199,10 @@
|
||||
return;
|
||||
|
||||
if (textField == self.passwordField) {
|
||||
[element.algorithm saveContent:text toElement:element usingKey:[MPiOSAppDelegate get].key];
|
||||
if ([element.algorithm saveContent:text toElement:element usingKey:[MPiOSAppDelegate get].key])
|
||||
[PearlOverlay showTemporaryOverlayWithTitle:@"Password Updated" dismissAfter:2];
|
||||
}
|
||||
else if (textField == self.loginNameField) {
|
||||
else if (textField == self.loginNameField && ![text isEqualToString:element.loginName]) {
|
||||
element.loginName = text;
|
||||
[PearlOverlay showTemporaryOverlayWithTitle:@"Login Updated" dismissAfter:2];
|
||||
}
|
||||
@ -187,12 +215,6 @@
|
||||
|
||||
#pragma mark - Actions
|
||||
|
||||
- (IBAction)doLoginMode:(UIButton *)sender {
|
||||
|
||||
self.loginModeButton.selected = !self.loginModeButton.selected;
|
||||
[self updateAnimated:YES];
|
||||
}
|
||||
|
||||
- (IBAction)doDelete:(UIButton *)sender {
|
||||
|
||||
MPElementEntity *element = [self elementInContext:[MPiOSAppDelegate managedObjectContextForMainThreadIfReady]];
|
||||
@ -243,14 +265,13 @@
|
||||
|
||||
- (IBAction)doEdit:(UIButton *)sender {
|
||||
|
||||
if (self.loginModeButton.selected) {
|
||||
self.loginNameField.enabled = YES;
|
||||
[self.loginNameField becomeFirstResponder];
|
||||
}
|
||||
else if ([self elementInContext:[MPiOSAppDelegate managedObjectContextForMainThreadIfReady]].type & MPElementTypeClassStored) {
|
||||
self.passwordField.enabled = YES;
|
||||
|
||||
if ([self elementInContext:[MPiOSAppDelegate managedObjectContextForMainThreadIfReady]].type & MPElementTypeClassStored)
|
||||
[self.passwordField becomeFirstResponder];
|
||||
}
|
||||
else
|
||||
[self.loginNameField becomeFirstResponder];
|
||||
}
|
||||
|
||||
- (IBAction)doMode:(UIButton *)sender {
|
||||
@ -328,9 +349,11 @@
|
||||
}];
|
||||
}
|
||||
|
||||
- (IBAction)doUse:(id)sender {
|
||||
- (IBAction)doContent:(id)sender {
|
||||
|
||||
self.selectionButton.selected = YES;
|
||||
[UIView animateWithDuration:.2f animations:^{
|
||||
self.contentButton.selected = YES;
|
||||
}];
|
||||
|
||||
if (self.transientSite) {
|
||||
[[UIResponder findFirstResponder] resignFirstResponder];
|
||||
@ -339,15 +362,18 @@
|
||||
viewStyle:UIAlertViewStyleDefault
|
||||
initAlert:nil tappedButtonBlock:^(UIAlertView *alert, NSInteger buttonIndex) {
|
||||
if (buttonIndex == [alert cancelButtonIndex]) {
|
||||
self.selectionButton.selected = NO;
|
||||
self.contentButton.selected = NO;
|
||||
return;
|
||||
}
|
||||
|
||||
[[MPiOSAppDelegate get]
|
||||
addElementNamed:self.transientSite completion:^(MPElementEntity *element, NSManagedObjectContext *context) {
|
||||
[self copyContentOfElement:element saveInContext:context];
|
||||
PearlMainQueue( ^{
|
||||
self.selectionButton.selected = NO;
|
||||
|
||||
PearlMainQueueAfter( .3f, ^{
|
||||
[UIView animateWithDuration:.2f animations:^{
|
||||
self.contentButton.selected = NO;
|
||||
}];
|
||||
} );
|
||||
}];
|
||||
} cancelTitle:[PearlStrings get].commonButtonCancel otherTitles:[PearlStrings get].commonButtonYes, nil];
|
||||
@ -356,8 +382,28 @@
|
||||
|
||||
[MPiOSAppDelegate managedObjectContextPerformBlock:^(NSManagedObjectContext *context) {
|
||||
[self copyContentOfElement:[self elementInContext:context] saveInContext:context];
|
||||
PearlMainQueue( ^{
|
||||
self.selectionButton.selected = NO;
|
||||
|
||||
PearlMainQueueAfter( .3f, ^{
|
||||
[UIView animateWithDuration:.2f animations:^{
|
||||
self.contentButton.selected = NO;
|
||||
}];
|
||||
} );
|
||||
}];
|
||||
}
|
||||
|
||||
- (IBAction)doLoginName:(id)sender {
|
||||
|
||||
[UIView animateWithDuration:.2f animations:^{
|
||||
self.loginNameButton.selected = YES;
|
||||
}];
|
||||
|
||||
[MPiOSAppDelegate managedObjectContextPerformBlock:^(NSManagedObjectContext *context) {
|
||||
[self copyLoginOfElement:[self elementInContext:context] saveInContext:context];
|
||||
|
||||
PearlMainQueueAfter( .3f, ^{
|
||||
[UIView animateWithDuration:.2f animations:^{
|
||||
self.loginNameButton.selected = NO;
|
||||
}];
|
||||
} );
|
||||
}];
|
||||
}
|
||||
@ -383,43 +429,24 @@
|
||||
return;
|
||||
}
|
||||
|
||||
[UIView animateWithDuration:animated? 0.3f: 0 animations:^{
|
||||
[UIView animateWithDuration:animated? .3f: 0 animations:^{
|
||||
MPElementEntity *mainElement = [self elementInContext:[MPiOSAppDelegate managedObjectContextForMainThreadIfReady]];
|
||||
|
||||
// UI
|
||||
self.selectionButton.layer.shadowOpacity = self.selectionButton.selected? 1: self.selectionButton.highlighted? 0.3f: 0;
|
||||
self.upgradeButton.alpha = mainElement.requiresExplicitMigration? 1: 0;
|
||||
self.passwordField.alpha = self.loginModeButton.selected? 0: 1;
|
||||
self.loginNameField.alpha = self.loginModeButton.selected? 1: 0;
|
||||
self.modeButton.alpha = self.transientSite? 0: 1;
|
||||
self.loginModeButton.alpha = self.transientSite? 0: 1;
|
||||
self.counterLabel.alpha = self.counterButton.alpha = mainElement.type & MPElementTypeClassGenerated? 1: 0;
|
||||
self.loginNameContainer.alpha = [mainElement.loginName length] || self.mode == MPPasswordCellModeSettings? 1: 0;
|
||||
self.modeButton.alpha = self.transientSite? 0: self.mode == MPPasswordCellModePassword? 0.1f: 0.5f;
|
||||
self.counterLabel.alpha = self.counterButton.alpha = mainElement.type & MPElementTypeClassGenerated? 0.5f: 0;
|
||||
self.modeButton.selected = self.mode == MPPasswordCellModeSettings;
|
||||
self.pageControl.currentPage = self.mode == MPPasswordCellModePassword? 0: 1;
|
||||
self.strengthLabel.alpha = self.mode == MPPasswordCellModePassword? 0: 1;
|
||||
self.editButton.enabled = self.loginModeButton.selected || mainElement.type & MPElementTypeClassStored;
|
||||
self.strengthLabel.gone = self.mode == MPPasswordCellModePassword;
|
||||
self.modeScrollView.scrollEnabled = !self.transientSite;
|
||||
self.pageControl.alpha = self.transientSite? 0: 1;
|
||||
[self.modeScrollView setContentOffset:CGPointMake( self.mode * self.modeScrollView.frame.size.width, 0 ) animated:animated];
|
||||
|
||||
// Indicator
|
||||
if (self.loginModeButton.selected) {
|
||||
if ([mainElement.loginName length])
|
||||
self.indicatorView.alpha = 0;
|
||||
else {
|
||||
self.indicatorView.alpha = 1;
|
||||
[self.indicatorView removeFromSuperview];
|
||||
[self.modeScrollView addSubview:self.indicatorView];
|
||||
[self.contentView addConstraintsWithVisualFormat:@"V:[indicator][view]" options:NSLayoutFormatAlignAllCenterX
|
||||
metrics:nil views:@{
|
||||
@"indicator" : self.indicatorView,
|
||||
@"view" : self.mode == MPPasswordCellModeSettings? self.editButton: self.modeButton
|
||||
}];
|
||||
}
|
||||
}
|
||||
switch (self.mode) {
|
||||
case MPPasswordCellModePassword:
|
||||
if (mainElement.type & MPElementTypeClassStored)
|
||||
[self.loginNameField resignFirstResponder];
|
||||
[self.passwordField resignFirstResponder];
|
||||
break;
|
||||
case MPPasswordCellModeSettings:
|
||||
break;
|
||||
@ -430,7 +457,6 @@
|
||||
self.transientSite? @"Tap to create": [mainElement.algorithm shortNameOfType:mainElement.type] );
|
||||
|
||||
// Site Password
|
||||
self.passwordField.enabled = NO;
|
||||
self.passwordField.secureTextEntry = [[MPiOSConfig get].hidePasswords boolValue];
|
||||
self.passwordField.attributedPlaceholder = stra(
|
||||
mainElement.type & MPElementTypeClassStored? strl( @"No password" ):
|
||||
@ -458,20 +484,18 @@
|
||||
self.passwordField.text = password;
|
||||
self.strengthLabel.text = timeToCrackString;
|
||||
|
||||
if (!self.loginModeButton.selected) {
|
||||
if ([password length])
|
||||
self.indicatorView.alpha = 0;
|
||||
else {
|
||||
self.indicatorView.alpha = 1;
|
||||
[self.indicatorView removeFromSuperview];
|
||||
[self.modeScrollView addSubview:self.indicatorView];
|
||||
[self.contentView addConstraintsWithVisualFormat:@"V:[indicator][view]" options:NSLayoutFormatAlignAllCenterX
|
||||
[self.contentView addConstraintsWithVisualFormat:@"V:[indicator][target]" options:NSLayoutFormatAlignAllCenterX
|
||||
metrics:nil views:@{
|
||||
@"indicator" : self.indicatorView,
|
||||
@"view" : self.mode == MPPasswordCellModeSettings? self.editButton: self.modeButton
|
||||
@"target" : self.mode == MPPasswordCellModeSettings? self.editButton: self.modeButton
|
||||
}];
|
||||
}
|
||||
}
|
||||
} );
|
||||
}];
|
||||
|
||||
@ -480,34 +504,19 @@
|
||||
self.counterLabel.text = strf( @"%lu", (unsigned long)((MPElementGeneratedEntity *)mainElement).counter );
|
||||
|
||||
// Site Login Name
|
||||
self.loginNameField.enabled = NO;
|
||||
self.loginNameField.text = mainElement.loginName;
|
||||
self.loginNameField.attributedPlaceholder = stra( strl( @"Set login name" ), @{
|
||||
NSForegroundColorAttributeName : [UIColor whiteColor]
|
||||
} );
|
||||
self.loginNameField.enabled = self.passwordField.enabled = //
|
||||
[self.loginNameField isFirstResponder] || [self.passwordField isFirstResponder];
|
||||
|
||||
[self.contentView layoutIfNeeded];
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)copyContentOfElement:(MPElementEntity *)element saveInContext:(NSManagedObjectContext *)context {
|
||||
|
||||
// Copy content.
|
||||
if (self.loginModeButton.selected) {
|
||||
// Login Mode
|
||||
inf( @"Copying login for: %@", element.name );
|
||||
NSString *loginName = element.loginName;
|
||||
if (![loginName length])
|
||||
return;
|
||||
|
||||
PearlMainQueue( ^{
|
||||
[PearlOverlay showTemporaryOverlayWithTitle:strl( @"Login Name Copied" ) dismissAfter:2];
|
||||
[UIPasteboard generalPasteboard].string = loginName;
|
||||
} );
|
||||
|
||||
[element use];
|
||||
[context saveToStore];
|
||||
}
|
||||
else {
|
||||
// Password Mode
|
||||
inf( @"Copying password for: %@", element.name );
|
||||
NSString *password = [element resolveContentUsingKey:[MPAppDelegate_Shared get].key];
|
||||
if (![password length])
|
||||
@ -521,6 +530,21 @@
|
||||
[element use];
|
||||
[context saveToStore];
|
||||
}
|
||||
|
||||
- (void)copyLoginOfElement:(MPElementEntity *)element saveInContext:(NSManagedObjectContext *)context {
|
||||
|
||||
inf( @"Copying login for: %@", element.name );
|
||||
NSString *loginName = element.loginName;
|
||||
if (![loginName length])
|
||||
return;
|
||||
|
||||
PearlMainQueue( ^{
|
||||
[PearlOverlay showTemporaryOverlayWithTitle:strl( @"Login Name Copied" ) dismissAfter:2];
|
||||
[UIPasteboard generalPasteboard].string = loginName;
|
||||
} );
|
||||
|
||||
[element use];
|
||||
[context saveToStore];
|
||||
}
|
||||
|
||||
- (MPElementEntity *)elementInContext:(NSManagedObjectContext *)context {
|
||||
|
@ -24,6 +24,7 @@
|
||||
#import "MPAppDelegate_Key.h"
|
||||
#import "PearlSizedTextView.h"
|
||||
#import "MPWebViewController.h"
|
||||
#import "UIView+FontScale.h"
|
||||
|
||||
typedef NS_ENUM(NSUInteger, MPActiveUserState) {
|
||||
/** The users are all inactive */
|
||||
|
@ -58,17 +58,6 @@
|
||||
<true/>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>© 2011-2013, Lyndir</string>
|
||||
<key>ReplacementFonts</key>
|
||||
<dict>
|
||||
<key>AmericanTypewriter-Bold</key>
|
||||
<string>SourceCodePro-Black</string>
|
||||
<key>AmericanTypewriter-Light</key>
|
||||
<string>SourceCodePro-ExtraLight</string>
|
||||
<key>Futura-CondensedExtraBold</key>
|
||||
<string>Exo-ExtraBold</string>
|
||||
<key>Futura-Medium</key>
|
||||
<string>Exo</string>
|
||||
</dict>
|
||||
<key>UIAppFonts</key>
|
||||
<array>
|
||||
<string>Exo2.0-Bold.otf</string>
|
||||
@ -76,6 +65,7 @@
|
||||
<string>Exo2.0-Regular.otf</string>
|
||||
<string>Exo2.0-Thin.otf</string>
|
||||
<string>SourceCodePro-Black.otf</string>
|
||||
<string>SourceCodePro-Regular.otf</string>
|
||||
<string>SourceCodePro-ExtraLight.otf</string>
|
||||
</array>
|
||||
<key>UIMainStoryboardFile</key>
|
||||
|
@ -107,6 +107,7 @@
|
||||
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 */; };
|
||||
DA3BCFCB19BD09D5006B2681 /* SourceCodePro-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = DA3BCFCA19BD09D5006B2681 /* SourceCodePro-Regular.otf */; };
|
||||
DA4425CC1557BED40052177D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
|
||||
DA44260A1557D9E40052177D /* libUbiquityStoreManager.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DA4425CB1557BED40052177D /* libUbiquityStoreManager.a */; };
|
||||
DA4522441902355C008F650A /* icon_book.png in Resources */ = {isa = PBXBuildFile; fileRef = DABD370C1711E29500CF925C /* icon_book.png */; };
|
||||
@ -270,6 +271,12 @@
|
||||
DACA29BD1705E2DE002C6C22 /* UIColor+HSV.h in Headers */ = {isa = PBXBuildFile; fileRef = DACA29B61705E2DE002C6C22 /* UIColor+HSV.h */; };
|
||||
DACA29BE1705E2DE002C6C22 /* UIColor+Expanded.m in Sources */ = {isa = PBXBuildFile; fileRef = DACA29BA1705E2DE002C6C22 /* UIColor+Expanded.m */; };
|
||||
DACA29BF1705E2DE002C6C22 /* UIColor+HSV.m in Sources */ = {isa = PBXBuildFile; fileRef = DACA29BB1705E2DE002C6C22 /* UIColor+HSV.m */; };
|
||||
DACE2F6519BA6A0A0010F92E /* PearlProfiler.m in Sources */ = {isa = PBXBuildFile; fileRef = DACE2F6319BA6A0A0010F92E /* PearlProfiler.m */; };
|
||||
DACE2F6619BA6A0A0010F92E /* PearlProfiler.h in Headers */ = {isa = PBXBuildFile; fileRef = DACE2F6419BA6A0A0010F92E /* PearlProfiler.h */; };
|
||||
DACE2F6B19BA6A2A0010F92E /* UIView+FontScale.m in Sources */ = {isa = PBXBuildFile; fileRef = DACE2F6719BA6A2A0010F92E /* UIView+FontScale.m */; };
|
||||
DACE2F6C19BA6A2A0010F92E /* PearlMutableStaticTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DACE2F6819BA6A2A0010F92E /* PearlMutableStaticTableViewController.m */; };
|
||||
DACE2F6D19BA6A2A0010F92E /* PearlMutableStaticTableViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = DACE2F6919BA6A2A0010F92E /* PearlMutableStaticTableViewController.h */; };
|
||||
DACE2F6E19BA6A2A0010F92E /* UIView+FontScale.h in Headers */ = {isa = PBXBuildFile; fileRef = DACE2F6A19BA6A2A0010F92E /* UIView+FontScale.h */; };
|
||||
DAD312C21552A22700A3F9ED /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = DAD312C01552A20800A3F9ED /* libsqlite3.dylib */; };
|
||||
DAE1EF2217E942DE00BC0086 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = DAE1EF2417E942DE00BC0086 /* Localizable.strings */; };
|
||||
DAEBC45314F6364500987BF6 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DAEBC45214F6364500987BF6 /* QuartzCore.framework */; };
|
||||
@ -277,6 +284,8 @@
|
||||
DAEC85B618E3DD9A007FC0DF /* PearlUINavigationBar.m in Sources */ = {isa = PBXBuildFile; fileRef = DAEC85B218E3DD9A007FC0DF /* PearlUINavigationBar.m */; };
|
||||
DAEC85B718E3DD9A007FC0DF /* PearlUINavigationBar.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEC85B318E3DD9A007FC0DF /* PearlUINavigationBar.h */; };
|
||||
DAEC85B818E3DD9A007FC0DF /* UIView+Touches.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEC85B418E3DD9A007FC0DF /* UIView+Touches.h */; };
|
||||
DAEFB01E19BCBD9E00525079 /* UIView+LayoutGone.m in Sources */ = {isa = PBXBuildFile; fileRef = DAEFB01C19BCBD9E00525079 /* UIView+LayoutGone.m */; };
|
||||
DAEFB01F19BCBD9E00525079 /* UIView+LayoutGone.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEFB01D19BCBD9E00525079 /* UIView+LayoutGone.h */; };
|
||||
DAF4EF50190A81E400023C90 /* NSManagedObject+Pearl.m in Sources */ = {isa = PBXBuildFile; fileRef = DAF4EF4E190A81E400023C90 /* NSManagedObject+Pearl.m */; };
|
||||
DAF4EF51190A81E400023C90 /* NSManagedObject+Pearl.h in Headers */ = {isa = PBXBuildFile; fileRef = DAF4EF4F190A81E400023C90 /* NSManagedObject+Pearl.h */; };
|
||||
DAFC5656172C573B00CB5CC5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
|
||||
@ -486,6 +495,7 @@
|
||||
DA3509FD15F101A500C14A8E /* PearlQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PearlQueue.m; sourceTree = "<group>"; };
|
||||
DA38D6A218CCB5BF009AEB3E /* Storyboard.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Storyboard.storyboard; sourceTree = "<group>"; };
|
||||
DA3B844D190FC5DF00246EEA /* Crashlytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Crashlytics.framework; path = ../../../External/iOS/Crashlytics.framework; sourceTree = "<group>"; };
|
||||
DA3BCFCA19BD09D5006B2681 /* SourceCodePro-Regular.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SourceCodePro-Regular.otf"; sourceTree = "<group>"; };
|
||||
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 = "<group>"; };
|
||||
DA5A09DE171A70E4005284AB /* play@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "play@2x.png"; sourceTree = "<group>"; };
|
||||
@ -1209,6 +1219,12 @@
|
||||
DACA29B61705E2DE002C6C22 /* UIColor+HSV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIColor+HSV.h"; sourceTree = "<group>"; };
|
||||
DACA29BA1705E2DE002C6C22 /* UIColor+Expanded.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIColor+Expanded.m"; sourceTree = "<group>"; };
|
||||
DACA29BB1705E2DE002C6C22 /* UIColor+HSV.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIColor+HSV.m"; sourceTree = "<group>"; };
|
||||
DACE2F6319BA6A0A0010F92E /* PearlProfiler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PearlProfiler.m; sourceTree = "<group>"; };
|
||||
DACE2F6419BA6A0A0010F92E /* PearlProfiler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PearlProfiler.h; sourceTree = "<group>"; };
|
||||
DACE2F6719BA6A2A0010F92E /* UIView+FontScale.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+FontScale.m"; sourceTree = "<group>"; };
|
||||
DACE2F6819BA6A2A0010F92E /* PearlMutableStaticTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PearlMutableStaticTableViewController.m; sourceTree = "<group>"; };
|
||||
DACE2F6919BA6A2A0010F92E /* PearlMutableStaticTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PearlMutableStaticTableViewController.h; sourceTree = "<group>"; };
|
||||
DACE2F6A19BA6A2A0010F92E /* UIView+FontScale.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+FontScale.h"; sourceTree = "<group>"; };
|
||||
DAD312C01552A20800A3F9ED /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; };
|
||||
DADBB55918DB0CFC00D099FE /* keyboard-dark@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "keyboard-dark@2x.png"; sourceTree = "<group>"; };
|
||||
DAE1EF2317E942DE00BC0086 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
@ -1218,6 +1234,8 @@
|
||||
DAEC85B218E3DD9A007FC0DF /* PearlUINavigationBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PearlUINavigationBar.m; sourceTree = "<group>"; };
|
||||
DAEC85B318E3DD9A007FC0DF /* PearlUINavigationBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PearlUINavigationBar.h; sourceTree = "<group>"; };
|
||||
DAEC85B418E3DD9A007FC0DF /* UIView+Touches.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+Touches.h"; sourceTree = "<group>"; };
|
||||
DAEFB01C19BCBD9E00525079 /* UIView+LayoutGone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+LayoutGone.m"; sourceTree = "<group>"; };
|
||||
DAEFB01D19BCBD9E00525079 /* UIView+LayoutGone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+LayoutGone.h"; sourceTree = "<group>"; };
|
||||
DAF4EF4E190A81E400023C90 /* NSManagedObject+Pearl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSManagedObject+Pearl.m"; sourceTree = "<group>"; };
|
||||
DAF4EF4F190A81E400023C90 /* NSManagedObject+Pearl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSManagedObject+Pearl.h"; sourceTree = "<group>"; };
|
||||
DAFC5655172C573B00CB5CC5 /* libInAppSettingsKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libInAppSettingsKit.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
@ -1718,6 +1736,7 @@
|
||||
DABD36BB1711E29500CF925C /* Fonts */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
DA3BCFCA19BD09D5006B2681 /* SourceCodePro-Regular.otf */,
|
||||
DA67460918DE7F0C00DFE240 /* Exo2.0-Thin.otf */,
|
||||
DA67460A18DE7F0C00DFE240 /* Exo2.0-Regular.otf */,
|
||||
DA67460B18DE7F0C00DFE240 /* Exo2.0-ExtraBold.otf */,
|
||||
@ -2469,6 +2488,8 @@
|
||||
DAFE45D715039823003ABA7C /* Pearl */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
DACE2F6319BA6A0A0010F92E /* PearlProfiler.m */,
|
||||
DACE2F6419BA6A0A0010F92E /* PearlProfiler.h */,
|
||||
DAA1411C1922FF020032B392 /* PearlTween.m */,
|
||||
DAA1411D1922FF020032B392 /* PearlTween.h */,
|
||||
DAA1411E1922FF020032B392 /* include */,
|
||||
@ -2559,6 +2580,12 @@
|
||||
DAFE460715039823003ABA7C /* Pearl-UIKit */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
DAEFB01C19BCBD9E00525079 /* UIView+LayoutGone.m */,
|
||||
DAEFB01D19BCBD9E00525079 /* UIView+LayoutGone.h */,
|
||||
DACE2F6719BA6A2A0010F92E /* UIView+FontScale.m */,
|
||||
DACE2F6819BA6A2A0010F92E /* PearlMutableStaticTableViewController.m */,
|
||||
DACE2F6919BA6A2A0010F92E /* PearlMutableStaticTableViewController.h */,
|
||||
DACE2F6A19BA6A2A0010F92E /* UIView+FontScale.h */,
|
||||
DA250A13195665A100AC23F1 /* UITableView+PearlReloadFromArray.m */,
|
||||
DA250A14195665A100AC23F1 /* UITableView+PearlReloadFromArray.h */,
|
||||
DA250A15195665A100AC23F1 /* UICollectionReusableView+PearlDequeue.m */,
|
||||
@ -2686,6 +2713,7 @@
|
||||
DAFE4A2215039824003ABA7C /* PearlDeviceUtils.h in Headers */,
|
||||
DAFE4A2415039824003ABA7C /* PearlInfoPlist.h in Headers */,
|
||||
DA2CA4E418D28866007798F8 /* NSLayoutConstraint+PearlUIKit.h in Headers */,
|
||||
DACE2F6D19BA6A2A0010F92E /* PearlMutableStaticTableViewController.h in Headers */,
|
||||
DAFE4A2615039824003ABA7C /* PearlLogger.h in Headers */,
|
||||
DAFE4A2815039824003ABA7C /* PearlMathUtils.h in Headers */,
|
||||
DAFE4A2A15039824003ABA7C /* PearlObjectUtils.h in Headers */,
|
||||
@ -2699,16 +2727,19 @@
|
||||
DAFE4A3615039824003ABA7C /* PearlKeyChain.h in Headers */,
|
||||
DAFE4A3815039824003ABA7C /* PearlRSAKey.h in Headers */,
|
||||
DAFE4A3A15039824003ABA7C /* PearlSCrypt.h in Headers */,
|
||||
DACE2F6E19BA6A2A0010F92E /* UIView+FontScale.h in Headers */,
|
||||
DAFE4A3C15039824003ABA7C /* Pearl-UIKit-Dependencies.h in Headers */,
|
||||
DAEC85B818E3DD9A007FC0DF /* UIView+Touches.h in Headers */,
|
||||
DAFE4A3D15039824003ABA7C /* Pearl-UIKit.h in Headers */,
|
||||
DAFE4A3E15039824003ABA7C /* PearlAlert.h in Headers */,
|
||||
DAFE4A4015039824003ABA7C /* PearlArrayTVC.h in Headers */,
|
||||
DAFE4A4215039824003ABA7C /* PearlBoxView.h in Headers */,
|
||||
DAEFB01F19BCBD9E00525079 /* UIView+LayoutGone.h in Headers */,
|
||||
DAFE4A4415039824003ABA7C /* PearlGradientView.h in Headers */,
|
||||
DAFE4A4615039824003ABA7C /* PearlLayout.h in Headers */,
|
||||
DAFE4A4815039824003ABA7C /* PearlLayoutView.h in Headers */,
|
||||
DAFE4A4A15039824003ABA7C /* PearlMessageView.h in Headers */,
|
||||
DACE2F6619BA6A0A0010F92E /* PearlProfiler.h in Headers */,
|
||||
DAFE4A4C15039824003ABA7C /* PearlRootViewController.h in Headers */,
|
||||
DAFE4A4E15039824003ABA7C /* PearlSheet.h in Headers */,
|
||||
DAFE4A5015039824003ABA7C /* PearlUIDebug.h in Headers */,
|
||||
@ -3092,6 +3123,7 @@
|
||||
DA69540717D975D900BF294E /* icon_gears@2x.png in Resources */,
|
||||
DABD3B1C1711E29800CF925C /* icon_up.png in Resources */,
|
||||
DABD3B1D1711E29800CF925C /* icon_up@2x.png in Resources */,
|
||||
DA3BCFCB19BD09D5006B2681 /* SourceCodePro-Regular.otf in Resources */,
|
||||
DA250A121956484D00AC23F1 /* image-0.png in Resources */,
|
||||
DA4522441902355C008F650A /* icon_book.png in Resources */,
|
||||
DABD3B8A1711E29800CF925C /* help.html in Resources */,
|
||||
@ -3249,6 +3281,7 @@
|
||||
DAFE4A1815039824003ABA7C /* NSString+PearlSEL.m in Sources */,
|
||||
DAFE4A1B15039824003ABA7C /* PearlAbstractStrings.m in Sources */,
|
||||
DAFE4A1F15039824003ABA7C /* PearlCodeUtils.m in Sources */,
|
||||
DAEFB01E19BCBD9E00525079 /* UIView+LayoutGone.m in Sources */,
|
||||
DAFE4A2115039824003ABA7C /* PearlConfig.m in Sources */,
|
||||
DAFE4A2315039824003ABA7C /* PearlDeviceUtils.m in Sources */,
|
||||
DAFE4A2515039824003ABA7C /* PearlInfoPlist.m in Sources */,
|
||||
@ -3270,6 +3303,7 @@
|
||||
DA250A19195665A100AC23F1 /* UICollectionReusableView+PearlDequeue.m in Sources */,
|
||||
DAFE4A4915039824003ABA7C /* PearlLayoutView.m in Sources */,
|
||||
DAFE4A4B15039824003ABA7C /* PearlMessageView.m in Sources */,
|
||||
DACE2F6519BA6A0A0010F92E /* PearlProfiler.m in Sources */,
|
||||
DAFE4A4D15039824003ABA7C /* PearlRootViewController.m in Sources */,
|
||||
DAFE4A4F15039824003ABA7C /* PearlSheet.m in Sources */,
|
||||
DAFE4A5115039824003ABA7C /* PearlUIDebug.m in Sources */,
|
||||
@ -3277,6 +3311,7 @@
|
||||
DAFE4A5515039824003ABA7C /* PearlValidatingTextField.m in Sources */,
|
||||
DAEC85B618E3DD9A007FC0DF /* PearlUINavigationBar.m in Sources */,
|
||||
DAFE4A5715039824003ABA7C /* PearlWebViewController.m in Sources */,
|
||||
DACE2F6C19BA6A2A0010F92E /* PearlMutableStaticTableViewController.m in Sources */,
|
||||
DAFE4A5915039824003ABA7C /* UIImage+PearlScaling.m in Sources */,
|
||||
DAFE4A62150399FF003ABA7C /* PearlAppDelegate.m in Sources */,
|
||||
DA30E9CF15722ECA00A68B4C /* NSBundle+PearlMutableInfo.m in Sources */,
|
||||
@ -3289,6 +3324,7 @@
|
||||
DAEC85B518E3DD9A007FC0DF /* UIView+Touches.m in Sources */,
|
||||
DA2CA4DD18D28859007798F8 /* NSArray+Pearl.m in Sources */,
|
||||
DAFE4A63150399FF003ABA8A /* UIControl+PearlSelect.m in Sources */,
|
||||
DACE2F6B19BA6A2A0010F92E /* UIView+FontScale.m in Sources */,
|
||||
DAFE4A63150399FF003ABA8E /* UIScrollView+PearlFlashingIndicators.m in Sources */,
|
||||
DAFE4A63150399FF003ABA92 /* NSDateFormatter+RFC3339.m in Sources */,
|
||||
DA2CA4E618D2AC10007798F8 /* NSLayoutConstraint+PearlUIKit.m in Sources */,
|
||||
|
@ -123,7 +123,7 @@
|
||||
</connections>
|
||||
</collectionView>
|
||||
<button opaque="NO" alpha="0.69999999999999996" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9u7-pu-Wtv" userLabel="Previous Avatar">
|
||||
<rect key="frame" x="0.0" y="166" width="44" height="53"/>
|
||||
<rect key="frame" x="0.0" y="163" width="44" height="53"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="44" id="Ay6-Jg-c3T"/>
|
||||
@ -137,7 +137,7 @@
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" alpha="0.69999999999999996" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fUK-gJ-NRE" userLabel="Next Avatar">
|
||||
<rect key="frame" x="276" y="166" width="44" height="53"/>
|
||||
<rect key="frame" x="276" y="163" width="44" height="53"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="44" id="oAm-YX-Fx5"/>
|
||||
@ -151,23 +151,23 @@
|
||||
</connections>
|
||||
</button>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qp1-nX-o4i" userLabel="Entry">
|
||||
<rect key="frame" x="20" y="255" width="280" height="68"/>
|
||||
<rect key="frame" x="20" y="252" width="280" height="71"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Enter your full name:" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="5fe-rt-zFa" userLabel="Entry Label">
|
||||
<rect key="frame" x="20" y="0.0" width="240" height="18"/>
|
||||
<rect key="frame" x="20" y="0.0" width="240" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" name="Copperplate" family="Copperplate" pointSize="17"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="17"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="ui_textfield.png" translatesAutoresizingMaskIntoConstraints="NO" id="UfK-na-vOU" userLabel="Field Background">
|
||||
<rect key="frame" x="0.0" y="26" width="280" height="42"/>
|
||||
<rect key="frame" x="0.0" y="29" width="280" height="42"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<rect key="contentStretch" x="0.25" y="0.25" width="0.49999999999999961" height="0.49999999999999961"/>
|
||||
</imageView>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="MyMasterPassword" textAlignment="center" clearsOnBeginEditing="YES" minimumFontSize="14" translatesAutoresizingMaskIntoConstraints="NO" id="z3Z-AB-fG2" userLabel="Entry Field">
|
||||
<rect key="frame" x="10" y="30" width="260" height="34"/>
|
||||
<rect key="frame" x="10" y="33" width="260" height="34"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="28"/>
|
||||
@ -177,25 +177,25 @@
|
||||
</connections>
|
||||
</textField>
|
||||
<view userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fdS-zb-K9I" userLabel="Entry Tip">
|
||||
<rect key="frame" x="28" y="-35" width="225" height="82"/>
|
||||
<rect key="frame" x="23" y="-33" width="235" height="83"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="tip_basic_black.png" translatesAutoresizingMaskIntoConstraints="NO" id="g2g-5i-er4">
|
||||
<rect key="frame" x="0.0" y="0.0" width="225" height="82"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="235" height="83"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<rect key="contentStretch" x="0.15000000000000002" y="0.14999999999999999" width="0.69999999999999973" height="0.44999999999999996"/>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Looks like a typo!" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="ZI7-qg-7OW">
|
||||
<rect key="frame" x="20" y="12" width="185" height="17"/>
|
||||
<rect key="frame" x="20" y="12" width="195" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="14"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Try again; the password was wrong." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" preferredMaxLayoutWidth="185" translatesAutoresizingMaskIntoConstraints="NO" id="KhE-Yj-Kvm">
|
||||
<rect key="frame" x="20" y="37" width="185" height="14"/>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Try again; the password was wrong." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" preferredMaxLayoutWidth="195" translatesAutoresizingMaskIntoConstraints="NO" id="KhE-Yj-Kvm">
|
||||
<rect key="frame" x="20" y="37" width="195" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="11"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="12"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
@ -237,14 +237,15 @@
|
||||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XEP-O3-ayG" userLabel="Footer">
|
||||
<rect key="frame" x="0.0" y="477" width="320" height="71"/>
|
||||
<rect key="frame" x="0.0" y="476" width="320" height="72"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" alpha="0.5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="4md-Gp-SLG">
|
||||
<rect key="frame" x="20" y="48" width="280" height="23"/>
|
||||
<rect key="frame" x="20" y="48" width="280" height="24"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" name="Copperplate" family="Copperplate" pointSize="10"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="10"/>
|
||||
<state key="normal" title="Thanks, lhunath ➚">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
@ -252,18 +253,18 @@
|
||||
</connections>
|
||||
</button>
|
||||
<view userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="069-Pu-yXe" userLabel="Thanks Tip">
|
||||
<rect key="frame" x="42" y="0.0" width="236" height="60"/>
|
||||
<rect key="frame" x="44" y="0.0" width="233" height="60"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="tip_basic_black.png" translatesAutoresizingMaskIntoConstraints="NO" id="Z8P-ZK-aS0">
|
||||
<rect key="frame" x="0.0" y="0.0" width="236" height="60"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="233" height="60"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<rect key="contentStretch" x="0.15000000000000002" y="0.0" width="0.69999999999999973" height="1"/>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Why is Master Password free?" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="BLV-3x-Q0z">
|
||||
<rect key="frame" x="20" y="12" width="196" height="17"/>
|
||||
<rect key="frame" x="20" y="12" width="193" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="14"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
@ -350,7 +351,7 @@
|
||||
</connections>
|
||||
</searchDisplayController>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="1355" y="474"/>
|
||||
<point key="canvasLocation" x="1345" y="474"/>
|
||||
</scene>
|
||||
<!--Web View Controller-->
|
||||
<scene sceneID="JQz-u7-oA7">
|
||||
@ -1019,60 +1020,116 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="300" height="100"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="aDw-qY-VjU">
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="aDw-qY-VjU" userLabel="Copy Content">
|
||||
<rect key="frame" x="0.0" y="0.0" width="300" height="100"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.18431372549019609" green="0.15686274509803921" blue="0.15686274509803921" alpha="0.5" colorSpace="calibratedRGB"/>
|
||||
<connections>
|
||||
<action selector="doUse:" destination="W2g-yv-V3V" eventType="touchUpInside" id="ukg-D8-8O3"/>
|
||||
<action selector="doContent:" destination="W2g-yv-V3V" eventType="touchUpInside" id="ukg-D8-8O3"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="3" contentMode="left" text="> age of the universe" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="wfM-xz-roR" userLabel="Strength">
|
||||
<rect key="frame" x="0.0" y="0.0" width="300" height="12"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="10"/>
|
||||
<color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" alpha="0.0" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="CuzaSasy3*Rimo" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="blw-Ou-8I8" userLabel="Password">
|
||||
<rect key="frame" x="8" y="20" width="284" height="31"/>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="w2g-zN-1wZ" userLabel="Login Container">
|
||||
<rect key="frame" x="0.0" y="0.0" width="300" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="textColor" red="0.40000000600000002" green="0.80000001190000003" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<fontDescription key="fontDescription" name="SourceCodePro-Black" family="Source Code Pro" pointSize="24"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="alphabet" keyboardAppearance="alert" returnKeyType="done"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Iwe-rQ-ma0" userLabel="Copy Login">
|
||||
<rect key="frame" x="0.0" y="0.0" width="300" height="29"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.18431372549019609" green="0.15686274509803921" blue="0.15686274509803921" alpha="0.01" colorSpace="calibratedRGB"/>
|
||||
<connections>
|
||||
<action selector="textFieldDidChange:" destination="W2g-yv-V3V" eventType="editingChanged" id="gTE-0d-r2l"/>
|
||||
<outlet property="delegate" destination="W2g-yv-V3V" id="YKp-IE-zEQ"/>
|
||||
<action selector="doLoginName:" destination="W2g-yv-V3V" eventType="touchUpInside" id="Ex0-re-QrI"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="lhunath" borderStyle="roundedRect" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="3I9-vf-IZK" userLabel="Login">
|
||||
<rect key="frame" x="8" y="20" width="284" height="30"/>
|
||||
</button>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="lhunath" textAlignment="center" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="3I9-vf-IZK" userLabel="Login">
|
||||
<rect key="frame" x="8" y="0.0" width="284" height="20"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.37254901959999998" green="0.3921568627" blue="0.42745098040000001" alpha="0.10000000000000001" colorSpace="calibratedRGB"/>
|
||||
<color key="textColor" red="0.40000000600000002" green="0.80000001190000003" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<fontDescription key="fontDescription" name="SourceCodePro-Black" family="Source Code Pro" pointSize="24"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="20" id="9gA-Ti-g1e"/>
|
||||
</constraints>
|
||||
<color key="textColor" red="0.37254901959999998" green="0.3921568627" blue="0.42745098040000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<fontDescription key="fontDescription" name="SourceCodePro-Regular" family="Source Code Pro" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="alphabet" keyboardAppearance="alert" returnKeyType="done"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="W2g-yv-V3V" id="z8b-Vd-dWe"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tl3-hd-x35" userLabel="Main">
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="q3g-CJ-LbN" userLabel="Separator">
|
||||
<rect key="frame" x="0.0" y="20" width="300" height="1"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.14901960784313725" green="0.14901960784313725" blue="0.14901960784313725" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="1" id="jyk-dC-QLb"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="q3g-CJ-LbN" firstAttribute="top" secondItem="3I9-vf-IZK" secondAttribute="bottom" id="1l4-Dd-saw"/>
|
||||
<constraint firstAttribute="trailing" secondItem="Iwe-rQ-ma0" secondAttribute="trailing" id="EgP-Gt-hrE"/>
|
||||
<constraint firstItem="Iwe-rQ-ma0" firstAttribute="leading" secondItem="w2g-zN-1wZ" secondAttribute="leading" id="FXB-F1-CkV"/>
|
||||
<constraint firstAttribute="trailing" secondItem="q3g-CJ-LbN" secondAttribute="trailing" id="FZB-WS-hXK"/>
|
||||
<constraint firstItem="q3g-CJ-LbN" firstAttribute="leading" secondItem="w2g-zN-1wZ" secondAttribute="leading" id="HJR-cB-QA1"/>
|
||||
<constraint firstAttribute="bottom" secondItem="q3g-CJ-LbN" secondAttribute="bottom" id="Iv4-lL-Lr9"/>
|
||||
<constraint firstItem="3I9-vf-IZK" firstAttribute="leading" secondItem="w2g-zN-1wZ" secondAttribute="leading" constant="8" id="cMp-Hs-Hpl"/>
|
||||
<constraint firstItem="3I9-vf-IZK" firstAttribute="top" secondItem="w2g-zN-1wZ" secondAttribute="top" id="eg4-pX-Itm"/>
|
||||
<constraint firstAttribute="trailing" secondItem="3I9-vf-IZK" secondAttribute="trailing" constant="8" id="jOw-lP-CuB"/>
|
||||
<constraint firstAttribute="bottom" secondItem="Iwe-rQ-ma0" secondAttribute="bottom" constant="-8" id="oyp-AJ-Nu6"/>
|
||||
<constraint firstItem="Iwe-rQ-ma0" firstAttribute="top" secondItem="w2g-zN-1wZ" secondAttribute="top" id="q2j-Aa-lEd"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="2tX-WK-ASq" userLabel="Password Container">
|
||||
<rect key="frame" x="0.0" y="20" width="300" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="CuzaSasy3*Rimo" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="blw-Ou-8I8" userLabel="Password">
|
||||
<rect key="frame" x="0.0" y="0.0" width="300" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="textColor" red="0.40000000600000002" green="0.80000001190000003" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<fontDescription key="fontDescription" name="SourceCodePro-Black" family="Source Code Pro" pointSize="24"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="alphabet" keyboardAppearance="alert" returnKeyType="next"/>
|
||||
<connections>
|
||||
<action selector="textFieldDidChange:" destination="W2g-yv-V3V" eventType="editingChanged" id="gTE-0d-r2l"/>
|
||||
<outlet property="delegate" destination="W2g-yv-V3V" id="YKp-IE-zEQ"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="3" contentMode="left" text="> age of the universe" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="wfM-xz-roR" userLabel="Strength">
|
||||
<rect key="frame" x="0.0" y="31" width="300" height="12"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="10"/>
|
||||
<color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="wfM-xz-roR" firstAttribute="leading" secondItem="2tX-WK-ASq" secondAttribute="leading" id="2eX-eo-YIO"/>
|
||||
<constraint firstItem="wfM-xz-roR" firstAttribute="top" secondItem="blw-Ou-8I8" secondAttribute="bottom" id="BfU-Wj-unA"/>
|
||||
<constraint firstAttribute="trailing" secondItem="wfM-xz-roR" secondAttribute="trailing" id="O0o-KW-Od0"/>
|
||||
<constraint firstItem="blw-Ou-8I8" firstAttribute="top" secondItem="2tX-WK-ASq" secondAttribute="top" id="Sea-3Y-JdY"/>
|
||||
<constraint firstAttribute="bottom" secondItem="blw-Ou-8I8" secondAttribute="bottom" priority="250" id="bdr-Yi-Dro"/>
|
||||
<constraint firstAttribute="trailing" secondItem="blw-Ou-8I8" secondAttribute="trailing" id="lJn-c1-Cay"/>
|
||||
<constraint firstAttribute="bottom" secondItem="wfM-xz-roR" secondAttribute="bottom" id="w1O-DM-5gJ"/>
|
||||
<constraint firstItem="blw-Ou-8I8" firstAttribute="leading" secondItem="2tX-WK-ASq" secondAttribute="leading" id="x6P-h1-nhk"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tl3-hd-x35" userLabel="Main Container">
|
||||
<rect key="frame" x="0.0" y="0.0" width="300" height="100"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.5" contentMode="left" text="apple.com - long" lineBreakMode="tailTruncation" minimumFontSize="8" adjustsLetterSpacingToFitWidth="YES" translatesAutoresizingMaskIntoConstraints="NO" id="OwP-sb-Wxl" userLabel="Site Name">
|
||||
<rect key="frame" x="8" y="71" width="204" height="14"/>
|
||||
<rect key="frame" x="8" y="76" width="204" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="">
|
||||
<accessibilityTraits key="traits" none="YES" staticText="YES" summaryElement="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" name="Copperplate" family="Copperplate" pointSize="12"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="12"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<color key="shadowColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<size key="shadowOffset" width="0.0" height="1"/>
|
||||
</label>
|
||||
<button opaque="NO" alpha="0.5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Agd-0J-z5o" userLabel="Field Mode">
|
||||
<button hidden="YES" opaque="NO" alpha="0.5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Agd-0J-z5o" userLabel="Field Mode">
|
||||
<rect key="frame" x="212" y="56" width="44" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" hint="Edits the password."/>
|
||||
@ -1090,27 +1147,25 @@
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="doLoginMode:" destination="W2g-yv-V3V" eventType="touchUpInside" id="CbH-c0-CJe"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="Agd-0J-z5o" secondAttribute="trailing" constant="44" id="3Pc-mp-S6g"/>
|
||||
<constraint firstItem="OwP-sb-Wxl" firstAttribute="leading" secondItem="tl3-hd-x35" secondAttribute="leading" constant="8" id="ec1-f1-mud"/>
|
||||
<constraint firstAttribute="bottom" secondItem="OwP-sb-Wxl" secondAttribute="bottom" constant="8" id="nV5-ND-sbl"/>
|
||||
<constraint firstItem="Agd-0J-z5o" firstAttribute="leading" secondItem="OwP-sb-Wxl" secondAttribute="trailing" id="wRj-23-2nN"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="ignoreTouches" value="YES"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LvK-28-fbm" userLabel="Settings">
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LvK-28-fbm" userLabel="Settings Container">
|
||||
<rect key="frame" x="300" y="0.0" width="300" height="100"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" alpha="0.5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vGk-t6-hZn" userLabel="Upgrade">
|
||||
<rect key="frame" x="25" y="56" width="44" height="44"/>
|
||||
<rect key="frame" x="29" y="56" width="44" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" hint="Upgrades the password."/>
|
||||
<constraints>
|
||||
@ -1131,10 +1186,10 @@
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.5" contentMode="left" text="1" textAlignment="right" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="PKP-M9-T8E" userLabel="Counter">
|
||||
<rect key="frame" x="69" y="69" width="11" height="19"/>
|
||||
<rect key="frame" x="73" y="67" width="7" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" hint="Site's counter."/>
|
||||
<fontDescription key="fontDescription" name="Copperplate-Bold" family="Copperplate" pointSize="17"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="17"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<color key="shadowColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
||||
@ -1262,18 +1317,13 @@
|
||||
<action selector="doMode:" destination="W2g-yv-V3V" eventType="touchUpInside" id="72U-sh-nce"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.0" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="⬇︎" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tuh-Au-J9k">
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="⬇︎" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tuh-Au-J9k">
|
||||
<rect key="frame" x="270" y="35" width="17" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="17"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<pageControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" numberOfPages="2" translatesAutoresizingMaskIntoConstraints="NO" id="5SS-x0-icl">
|
||||
<rect key="frame" x="138" y="77" width="23" height="37"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="currentPageIndicatorTintColor" red="0.37254901959999998" green="0.3921568627" blue="0.42745098040000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</pageControl>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
@ -1286,7 +1336,6 @@
|
||||
<constraint firstItem="b5f-wN-2xb" firstAttribute="centerY" secondItem="vGk-t6-hZn" secondAttribute="centerY" id="fGB-8g-u5b"/>
|
||||
<constraint firstItem="tl3-hd-x35" firstAttribute="leading" secondItem="bff-RU-OcY" secondAttribute="leading" id="fx5-KQ-LSM"/>
|
||||
<constraint firstItem="tl3-hd-x35" firstAttribute="top" secondItem="bff-RU-OcY" secondAttribute="top" id="jc9-39-FY3"/>
|
||||
<constraint firstItem="OwP-sb-Wxl" firstAttribute="centerY" secondItem="b5f-wN-2xb" secondAttribute="centerY" id="m22-uE-sVm"/>
|
||||
<constraint firstItem="K8q-bM-tzh" firstAttribute="centerY" secondItem="b5f-wN-2xb" secondAttribute="centerY" id="ofO-r3-bjz"/>
|
||||
<constraint firstItem="b5f-wN-2xb" firstAttribute="centerX" secondItem="tuh-Au-J9k" secondAttribute="centerX" id="pYG-bz-kd8"/>
|
||||
<constraint firstAttribute="trailing" secondItem="LvK-28-fbm" secondAttribute="trailing" id="r9d-ym-Frs"/>
|
||||
@ -1302,30 +1351,25 @@
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" secondItem="tl3-hd-x35" secondAttribute="height" id="52G-c7-hIf"/>
|
||||
<constraint firstItem="wfM-xz-roR" firstAttribute="leading" secondItem="xph-TW-9QO" secondAttribute="leading" id="6kW-om-vdj"/>
|
||||
<constraint firstItem="blw-Ou-8I8" firstAttribute="top" secondItem="xph-TW-9QO" secondAttribute="top" constant="20" id="9Op-Su-ydb"/>
|
||||
<constraint firstAttribute="trailing" secondItem="blw-Ou-8I8" secondAttribute="trailing" constant="8" id="9sz-Xs-Vd4"/>
|
||||
<constraint firstItem="aDw-qY-VjU" firstAttribute="leading" secondItem="xph-TW-9QO" secondAttribute="leading" id="CD9-Oa-unh"/>
|
||||
<constraint firstAttribute="bottom" secondItem="b5f-wN-2xb" secondAttribute="bottom" id="G0H-PL-lee"/>
|
||||
<constraint firstItem="bff-RU-OcY" firstAttribute="leading" secondItem="xph-TW-9QO" secondAttribute="leading" id="HqJ-3D-UKp"/>
|
||||
<constraint firstItem="w2g-zN-1wZ" firstAttribute="top" secondItem="xph-TW-9QO" secondAttribute="top" id="JvP-m8-hJ0"/>
|
||||
<constraint firstAttribute="bottom" secondItem="bff-RU-OcY" secondAttribute="bottom" id="LdO-Uh-meg"/>
|
||||
<constraint firstItem="blw-Ou-8I8" firstAttribute="leading" secondItem="xph-TW-9QO" secondAttribute="leading" constant="8" id="OFb-yO-Tz5"/>
|
||||
<constraint firstItem="w2g-zN-1wZ" firstAttribute="leading" secondItem="xph-TW-9QO" secondAttribute="leading" id="M3r-hv-csT"/>
|
||||
<constraint firstItem="LvK-28-fbm" firstAttribute="width" secondItem="xph-TW-9QO" secondAttribute="width" id="SI5-t4-8N0"/>
|
||||
<constraint firstItem="wfM-xz-roR" firstAttribute="top" secondItem="xph-TW-9QO" secondAttribute="top" id="SRE-Mi-f2h"/>
|
||||
<constraint firstAttribute="width" secondItem="tl3-hd-x35" secondAttribute="width" id="W1t-9b-nDP"/>
|
||||
<constraint firstAttribute="bottom" secondItem="5SS-x0-icl" secondAttribute="centerY" constant="4" id="WQK-m9-V2t"/>
|
||||
<constraint firstAttribute="trailing" secondItem="b5f-wN-2xb" secondAttribute="trailing" id="WgC-8z-VnB"/>
|
||||
<constraint firstItem="aDw-qY-VjU" firstAttribute="top" secondItem="xph-TW-9QO" secondAttribute="top" id="YVH-Wj-Ese"/>
|
||||
<constraint firstAttribute="bottom" secondItem="aDw-qY-VjU" secondAttribute="bottom" id="aQ3-1j-L38"/>
|
||||
<constraint firstAttribute="centerX" secondItem="5SS-x0-icl" secondAttribute="centerX" id="bGC-IS-Y3g"/>
|
||||
<constraint firstItem="2tX-WK-ASq" firstAttribute="leading" secondItem="xph-TW-9QO" secondAttribute="leading" id="dIj-GF-FGw"/>
|
||||
<constraint firstItem="2tX-WK-ASq" firstAttribute="centerY" secondItem="xph-TW-9QO" secondAttribute="centerY" constant="-8.5" id="gXz-4o-2tV"/>
|
||||
<constraint firstItem="bff-RU-OcY" firstAttribute="top" secondItem="xph-TW-9QO" secondAttribute="top" id="hCs-ZY-tmo"/>
|
||||
<constraint firstAttribute="trailing" secondItem="aDw-qY-VjU" secondAttribute="trailing" id="hsj-QF-2Oh"/>
|
||||
<constraint firstAttribute="trailing" secondItem="wfM-xz-roR" secondAttribute="trailing" id="jgh-K9-x5e"/>
|
||||
<constraint firstItem="3I9-vf-IZK" firstAttribute="top" secondItem="xph-TW-9QO" secondAttribute="top" constant="20" id="m75-b3-V0O"/>
|
||||
<constraint firstItem="3I9-vf-IZK" firstAttribute="leading" secondItem="xph-TW-9QO" secondAttribute="leading" constant="8" id="nQM-Be-y0N"/>
|
||||
<constraint firstAttribute="trailing" secondItem="w2g-zN-1wZ" secondAttribute="trailing" id="nRi-3Q-i1q"/>
|
||||
<constraint firstAttribute="trailing" secondItem="bff-RU-OcY" secondAttribute="trailing" id="o6W-1a-ia7"/>
|
||||
<constraint firstAttribute="trailing" secondItem="2tX-WK-ASq" secondAttribute="trailing" id="vap-H1-HVI"/>
|
||||
<constraint firstItem="LvK-28-fbm" firstAttribute="height" secondItem="xph-TW-9QO" secondAttribute="height" id="viy-di-Nag"/>
|
||||
<constraint firstAttribute="trailing" secondItem="3I9-vf-IZK" secondAttribute="trailing" constant="8" id="wJ9-tT-6BH"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="ignoreTouches" value="YES"/>
|
||||
@ -1343,17 +1387,17 @@
|
||||
<constraint firstAttribute="bottom" secondItem="xph-TW-9QO" secondAttribute="bottom" id="W1r-47-bqe"/>
|
||||
</constraints>
|
||||
<connections>
|
||||
<outlet property="contentButton" destination="aDw-qY-VjU" id="R3R-kq-XMd"/>
|
||||
<outlet property="counterButton" destination="uZi-FT-Fe8" id="oaF-bB-Sgc"/>
|
||||
<outlet property="counterLabel" destination="PKP-M9-T8E" id="m9u-Qx-Z9N"/>
|
||||
<outlet property="editButton" destination="qBo-Kw-vN9" id="g0S-0o-e3D"/>
|
||||
<outlet property="indicatorView" destination="tuh-Au-J9k" id="K2E-de-G5P"/>
|
||||
<outlet property="loginModeButton" destination="Agd-0J-z5o" id="VQI-nl-5Yh"/>
|
||||
<outlet property="loginNameButton" destination="Iwe-rQ-ma0" id="DPS-pw-Nq4"/>
|
||||
<outlet property="loginNameContainer" destination="w2g-zN-1wZ" id="BND-oz-bt0"/>
|
||||
<outlet property="loginNameField" destination="3I9-vf-IZK" id="jK4-LI-4ST"/>
|
||||
<outlet property="modeButton" destination="b5f-wN-2xb" id="m2X-BZ-Lbv"/>
|
||||
<outlet property="modeScrollView" destination="bff-RU-OcY" id="Mdp-fj-00L"/>
|
||||
<outlet property="pageControl" destination="5SS-x0-icl" id="IGN-yI-5s0"/>
|
||||
<outlet property="passwordField" destination="blw-Ou-8I8" id="bov-At-Wpd"/>
|
||||
<outlet property="selectionButton" destination="aDw-qY-VjU" id="R3R-kq-XMd"/>
|
||||
<outlet property="siteNameLabel" destination="OwP-sb-Wxl" id="6GN-Ou-K0F"/>
|
||||
<outlet property="strengthLabel" destination="wfM-xz-roR" id="dzk-dB-OfP"/>
|
||||
<outlet property="upgradeButton" destination="vGk-t6-hZn" id="m2T-CA-HmJ"/>
|
||||
@ -1545,31 +1589,31 @@
|
||||
</connections>
|
||||
</button>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1lc-e7-Qme" userLabel="Emergency Generator">
|
||||
<rect key="frame" x="8" y="28" width="304" height="384"/>
|
||||
<rect key="frame" x="8" y="28" width="304" height="388"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Emergency Generator" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="4Lh-s0-Dbt">
|
||||
<rect key="frame" x="20" y="20" width="264" height="21"/>
|
||||
<rect key="frame" x="20" y="20" width="264" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" name="GillSans-Bold" family="Gill Sans" pointSize="17"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Bold" family="Exo 2.0" pointSize="17"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<color key="shadowColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<size key="shadowOffset" width="0.0" height="1"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Generate your password without logging in. Great for if you're borrowing a friend's device or are having trouble logging in." lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" preferredMaxLayoutWidth="264" translatesAutoresizingMaskIntoConstraints="NO" id="vHS-3A-Tae">
|
||||
<rect key="frame" x="20" y="49" width="264" height="49"/>
|
||||
<rect key="frame" x="20" y="50" width="264" height="52"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" name="GillSans-LightItalic" family="Gill Sans" pointSize="14"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Thin" family="Exo 2.0" pointSize="14"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<color key="shadowColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<size key="shadowOffset" width="0.0" height="1"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Your Name" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="XAC-Da-lpf" userLabel="User Name">
|
||||
<rect key="frame" x="20" y="106" width="264" height="30"/>
|
||||
<rect key="frame" x="20" y="110" width="264" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocapitalizationType="words" keyboardAppearance="alert" returnKeyType="next" enablesReturnKeyAutomatically="YES"/>
|
||||
<connections>
|
||||
<action selector="controlChanged:" destination="osn-5H-SWW" eventType="editingChanged" id="cDg-Lx-6qf"/>
|
||||
@ -1577,9 +1621,9 @@
|
||||
</connections>
|
||||
</textField>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Your Master Password" clearsOnBeginEditing="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="J46-0E-no3" userLabel="Master Password">
|
||||
<rect key="frame" x="20" y="144" width="264" height="30"/>
|
||||
<rect key="frame" x="20" y="148" width="264" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardAppearance="alert" returnKeyType="next" enablesReturnKeyAutomatically="YES" secureTextEntry="YES"/>
|
||||
<connections>
|
||||
<action selector="controlChanged:" destination="osn-5H-SWW" eventType="editingChanged" id="u70-5j-UrY"/>
|
||||
@ -1587,9 +1631,9 @@
|
||||
</connections>
|
||||
</textField>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Site Name" clearsOnBeginEditing="YES" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="56H-xR-09J" userLabel="Site Name">
|
||||
<rect key="frame" x="20" y="182" width="264" height="30"/>
|
||||
<rect key="frame" x="20" y="186" width="264" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="URL" keyboardAppearance="alert" returnKeyType="done" enablesReturnKeyAutomatically="YES"/>
|
||||
<connections>
|
||||
<action selector="controlChanged:" destination="osn-5H-SWW" eventType="editingChanged" id="ycr-oN-lhp"/>
|
||||
@ -1597,7 +1641,7 @@
|
||||
</connections>
|
||||
</textField>
|
||||
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="bar" selectedSegmentIndex="1" translatesAutoresizingMaskIntoConstraints="NO" id="e4b-Iv-Pk9" userLabel="Type">
|
||||
<rect key="frame" x="20" y="220" width="264" height="29"/>
|
||||
<rect key="frame" x="20" y="224" width="264" height="29"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<segments>
|
||||
<segment title="Max"/>
|
||||
@ -1613,25 +1657,25 @@
|
||||
</connections>
|
||||
</segmentedControl>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Counter" lineBreakMode="tailTruncation" numberOfLines="0" minimumFontSize="10" preferredMaxLayoutWidth="64" translatesAutoresizingMaskIntoConstraints="NO" id="cAo-K2-E23">
|
||||
<rect key="frame" x="20" y="259" width="64" height="22"/>
|
||||
<rect key="frame" x="20" y="263" width="64" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Bold" family="Exo 2.0" pointSize="17"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<color key="shadowColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<size key="shadowOffset" width="0.0" height="1"/>
|
||||
</label>
|
||||
<stepper opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" maximumValue="100" translatesAutoresizingMaskIntoConstraints="NO" id="ZPT-EI-yuv" userLabel="Counter">
|
||||
<rect key="frame" x="190" y="256" width="94" height="29"/>
|
||||
<rect key="frame" x="190" y="260" width="94" height="29"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<connections>
|
||||
<action selector="controlChanged:" destination="osn-5H-SWW" eventType="valueChanged" id="eQA-3X-uc9"/>
|
||||
</connections>
|
||||
</stepper>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="1" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="3Cd-XH-Wau">
|
||||
<rect key="frame" x="172" y="259" width="10" height="21"/>
|
||||
<rect key="frame" x="175" y="263" width="7" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="17"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</label>
|
||||
@ -1673,11 +1717,11 @@
|
||||
</state>
|
||||
</button>
|
||||
<activityIndicatorView hidden="YES" opaque="NO" contentMode="scaleToFill" hidesWhenStopped="YES" style="whiteLarge" translatesAutoresizingMaskIntoConstraints="NO" id="4sN-hm-xio">
|
||||
<rect key="frame" x="134" y="326" width="37" height="37"/>
|
||||
<rect key="frame" x="134" y="330" width="37" height="37"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
</activityIndicatorView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="XapaNuwjFihn6$" textAlignment="center" lineBreakMode="clip" baselineAdjustment="alignBaselines" minimumFontSize="10" adjustsLetterSpacingToFitWidth="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bHR-he-dnZ" userLabel="Password Label">
|
||||
<rect key="frame" x="20" y="325" width="264" height="39"/>
|
||||
<rect key="frame" x="20" y="329" width="264" height="39"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<gestureRecognizers/>
|
||||
<fontDescription key="fontDescription" name="SourceCodePro-Black" family="Source Code Pro" pointSize="30"/>
|
||||
@ -1689,7 +1733,7 @@
|
||||
</connections>
|
||||
</label>
|
||||
<view userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="beo-cJ-jIn" userLabel="View - Content Tip">
|
||||
<rect key="frame" x="47" y="284" width="210" height="60"/>
|
||||
<rect key="frame" x="47" y="288" width="210" height="60"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="tip_basic_black.png" translatesAutoresizingMaskIntoConstraints="NO" id="nyL-cO-aPa">
|
||||
@ -1699,7 +1743,7 @@
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Copied!" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="rtA-NK-3HP">
|
||||
<rect key="frame" x="20" y="11" width="170" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="14"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
@ -1886,7 +1930,7 @@
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
</pageControl>
|
||||
<collectionView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" pagingEnabled="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" minimumZoomScale="0.0" maximumZoomScale="0.0" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="i2y-lo-HXR">
|
||||
<rect key="frame" x="0.0" y="64" width="320" height="382"/>
|
||||
<rect key="frame" x="0.0" y="64" width="320" height="381"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="m8O-kY-22j">
|
||||
@ -1897,7 +1941,7 @@
|
||||
</collectionViewFlowLayout>
|
||||
<cells>
|
||||
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="MPGuideStepCell" id="oGu-pJ-3bQ" customClass="MPGuideStepCell">
|
||||
<rect key="frame" x="0.0" y="-38" width="320" height="458"/>
|
||||
<rect key="frame" x="0.0" y="-39" width="320" height="458"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="458"/>
|
||||
@ -1928,19 +1972,19 @@
|
||||
</connections>
|
||||
</collectionView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="To begin, tap the "New User" icon and add yourself as a user to the application." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="280" translatesAutoresizingMaskIntoConstraints="NO" id="ciw-56-nNy" userLabel="Caption">
|
||||
<rect key="frame" x="20" y="454" width="280" height="61"/>
|
||||
<rect key="frame" x="20" y="453" width="280" height="62"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="11"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label hidden="YES" opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="1" translatesAutoresizingMaskIntoConstraints="NO" id="Oop-Ff-gbz" userLabel="Caption Height Strut">
|
||||
<rect key="frame" x="20" y="454" width="1" height="61"/>
|
||||
<rect key="frame" x="20" y="453" width="1" height="62"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<string key="text" base64-UTF8="YES">
|
||||
CgoKCgoKCgoKCgoKCg
|
||||
</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="17"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
@ -1973,6 +2017,7 @@ CgoKCgoKCgoKCgoKCg
|
||||
</connections>
|
||||
</barButtonItem>
|
||||
</navigationItem>
|
||||
<nil key="simulatedTopBarMetrics"/>
|
||||
<connections>
|
||||
<outlet property="captionLabel" destination="ciw-56-nNy" id="a5c-QW-JHm"/>
|
||||
<outlet property="collectionView" destination="i2y-lo-HXR" id="tSP-UU-fG5"/>
|
||||
@ -2152,7 +2197,7 @@ CgoKCgoKCgoKCgoKCg
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Stay Logged In?" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5X1-J4-TbH">
|
||||
<rect key="frame" x="20" y="108" width="280" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Bold" family="Exo 2.0" pointSize="17"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
@ -2162,14 +2207,14 @@ CgoKCgoKCgoKCgoKCg
|
||||
<color key="onTintColor" red="0.37254901959999998" green="0.3921568627" blue="0.42745098040000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</switch>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="280" translatesAutoresizingMaskIntoConstraints="NO" id="e80-98-V6D">
|
||||
<rect key="frame" x="20" y="137" width="280" height="168"/>
|
||||
<rect key="frame" x="20" y="137" width="280" height="169"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<string key="text">The right balance between security and convenience is often very personal.
|
||||
|
||||
To make getting to your passwords faster, you can remain logged in after you close Master Password. This allows you to skip having to log in the next time.
|
||||
|
||||
However, it means that anyone who finds your device unlocked can do the same.</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Regular" family="Exo 2.0" pointSize="14"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
@ -2246,19 +2291,19 @@ However, it means that anyone who finds your device unlocked can do the same.</s
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Getting Started" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0UA-Nw-PXP">
|
||||
<rect key="frame" x="20" y="108" width="280" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<fontDescription key="fontDescription" name="Exo2.0-Bold" family="Exo 2.0" pointSize="17"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="280" translatesAutoresizingMaskIntoConstraints="NO" id="J90-SQ-ljR">
|
||||
<rect key="frame" x="20" y="137" width="280" height="556"/>
|
||||
<rect key="frame" x="20" y="137" width="280" height="573"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<attributedString key="attributedText">
|
||||
<fragment content="The passwords generated by this app are not stored but ">
|
||||
<attributes>
|
||||
<color key="NSBackgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<color key="NSColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<font key="NSFont" size="14" name="HelveticaNeue"/>
|
||||
<font key="NSFont" size="14" name="Exo2.0-Regular"/>
|
||||
<paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural"/>
|
||||
</attributes>
|
||||
</fragment>
|
||||
@ -2266,7 +2311,7 @@ However, it means that anyone who finds your device unlocked can do the same.</s
|
||||
<attributes>
|
||||
<color key="NSBackgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<color key="NSColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<font key="NSFont" size="14" name="HelveticaNeue-Italic"/>
|
||||
<font key="NSFont" size="14" name="Exo2.0-Italic"/>
|
||||
<paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural"/>
|
||||
</attributes>
|
||||
</fragment>
|
||||
@ -2279,7 +2324,7 @@ You don't need to remember any password generated by this app, but </string>
|
||||
<attributes>
|
||||
<color key="NSBackgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<color key="NSColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<font key="NSFont" size="14" name="HelveticaNeue"/>
|
||||
<font key="NSFont" size="14" name="Exo2.0-Regular"/>
|
||||
<paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural"/>
|
||||
</attributes>
|
||||
</fragment>
|
||||
@ -2287,7 +2332,7 @@ You don't need to remember any password generated by this app, but </string>
|
||||
<attributes>
|
||||
<color key="NSBackgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<color key="NSColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<font key="NSFont" size="14" name="HelveticaNeue-Bold"/>
|
||||
<font key="NSFont" size="14" name="Exo2.0-Bold"/>
|
||||
<paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural"/>
|
||||
</attributes>
|
||||
</fragment>
|
||||
@ -2295,7 +2340,7 @@ You don't need to remember any password generated by this app, but </string>
|
||||
<attributes>
|
||||
<color key="NSBackgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<color key="NSColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<font key="NSFont" size="14" name="HelveticaNeue-BoldItalic"/>
|
||||
<font key="NSFont" size="14" name="Exo2.0-BoldItalic"/>
|
||||
<paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural"/>
|
||||
</attributes>
|
||||
</fragment>
|
||||
@ -2310,7 +2355,7 @@ You don't need to remember any password generated by this app, but </string>
|
||||
<attributes>
|
||||
<color key="NSBackgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<color key="NSColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<font key="NSFont" size="14" name="HelveticaNeue"/>
|
||||
<font key="NSFont" size="14" name="Exo2.0-Regular"/>
|
||||
<paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural"/>
|
||||
</attributes>
|
||||
</fragment>
|
||||
@ -2318,7 +2363,7 @@ You don't need to remember any password generated by this app, but </string>
|
||||
<attributes>
|
||||
<color key="NSBackgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<color key="NSColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<font key="NSFont" size="14" name="HelveticaNeue-Bold"/>
|
||||
<font key="NSFont" size="14" name="Exo2.0-Bold"/>
|
||||
<paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural"/>
|
||||
</attributes>
|
||||
</fragment>
|
||||
@ -2331,7 +2376,7 @@ See </string>
|
||||
<attributes>
|
||||
<color key="NSBackgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<color key="NSColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<font key="NSFont" size="14" name="HelveticaNeue"/>
|
||||
<font key="NSFont" size="14" name="Exo2.0-Regular"/>
|
||||
<paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural"/>
|
||||
</attributes>
|
||||
</fragment>
|
||||
@ -2339,7 +2384,7 @@ See </string>
|
||||
<attributes>
|
||||
<color key="NSBackgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<color key="NSColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<font key="NSFont" size="14" name="HelveticaNeue"/>
|
||||
<font key="NSFont" size="14" name="Exo2.0-Regular"/>
|
||||
<url key="NSLink" string="http://masterpasswordapp.com/security.html"/>
|
||||
<paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural"/>
|
||||
</attributes>
|
||||
@ -2348,7 +2393,7 @@ See </string>
|
||||
<attributes>
|
||||
<color key="NSBackgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<color key="NSColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<font key="NSFont" size="14" name="HelveticaNeue"/>
|
||||
<font key="NSFont" size="14" name="Exo2.0-Regular"/>
|
||||
<paragraphStyle key="NSParagraphStyle" alignment="left" lineBreakMode="wordWrapping" baseWritingDirection="natural"/>
|
||||
</attributes>
|
||||
</fragment>
|
||||
|
BIN
MasterPassword/Resources/Media/Fonts/SourceCodePro-Regular.otf
Normal file
BIN
MasterPassword/Resources/Media/Fonts/SourceCodePro-Regular.otf
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user