A step-by-step guide, fix setup appearance + fix capitalization of master password.
[ADDED] A new step-by-step guide which uses images and text to explain the basics of Master Password. [FIXED] The setup flow didn't appear anymore. [FIXED] When creating a new user, the master password field was auto-capitalized.
2
External/Pearl
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 04a91a866fab0d0be753100961279bb7116082d9
|
Subproject commit e50cad1411aaafe8083b3863e48b53a1f722c239
|
@ -8,27 +8,13 @@
|
|||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
@interface MPGuideViewController : UIViewController<UIScrollViewDelegate>
|
@interface MPGuideViewController : UIViewController<UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>
|
||||||
|
|
||||||
@property(weak, nonatomic) IBOutlet UISearchBar *searchBar;
|
@property(nonatomic) IBOutlet UICollectionView *collectionView;
|
||||||
@property(weak, nonatomic) IBOutlet UIView *siteNameTip;
|
@property(nonatomic) IBOutlet UILabel *captionLabel;
|
||||||
@property(weak, nonatomic) IBOutlet UIView *contentTip;
|
@property(nonatomic) IBOutlet UIPageControl *pageControl;
|
||||||
@property(weak, nonatomic) IBOutlet UILabel *contentTipText;
|
@property(nonatomic) IBOutlet UINavigationBar *navigationBar;
|
||||||
@property(weak, nonatomic) IBOutlet UIButton *usernameButton;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIView *usernameTip;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIButton *typeButton;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIView *typeTip;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIButton *toolButton;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIView *toolTip;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIProgressView *progress;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIView *content;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIButton *contentButton;
|
|
||||||
@property(weak, nonatomic) IBOutlet UITextField *contentText;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIButton *largePlayButton;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIButton *smallPlayButton;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIView *alertTip;
|
|
||||||
|
|
||||||
- (IBAction)play;
|
- (IBAction)close:(id)sender;
|
||||||
- (IBAction)close;
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@ -8,17 +8,86 @@
|
|||||||
|
|
||||||
#import "MPGuideViewController.h"
|
#import "MPGuideViewController.h"
|
||||||
|
|
||||||
|
@interface MPGuideStep : NSObject
|
||||||
|
|
||||||
|
@property(nonatomic) UIImage *image;
|
||||||
|
@property(nonatomic) NSString *caption;
|
||||||
|
|
||||||
|
+ (instancetype)stepWithImage:(UIImage *)image caption:(NSString *)caption;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface MPGuideStepCell : UICollectionViewCell
|
||||||
|
|
||||||
|
@property(nonatomic) IBOutlet UIImageView *imageView;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
@interface MPGuideViewController()
|
@interface MPGuideViewController()
|
||||||
|
|
||||||
@property(nonatomic, strong) NSTimer *timer;
|
@property(nonatomic, strong) NSArray *steps;
|
||||||
@property(nonatomic) int tickCount;
|
|
||||||
@property(nonatomic) int currentTick;
|
|
||||||
@property(nonatomic) int lastTick;
|
|
||||||
@property(nonatomic) BOOL muted;
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation MPGuideViewController
|
@implementation MPGuideViewController
|
||||||
|
|
||||||
|
#pragma mark - Life
|
||||||
|
|
||||||
|
- (void)viewDidLoad {
|
||||||
|
|
||||||
|
[super viewDidLoad];
|
||||||
|
|
||||||
|
self.steps = @[
|
||||||
|
[MPGuideStep stepWithImage:[UIImage imageNamed:@"image-0"] caption:
|
||||||
|
@"To begin, tap the \"New User\" icon and add yourself as a user to the application."],
|
||||||
|
[MPGuideStep stepWithImage:[UIImage imageNamed:@"image-1"] caption:
|
||||||
|
@"Enter your full name. Double-check that you have spelled your name correctly and capitalized it appropriately. Your passwords will depend on it."],
|
||||||
|
[MPGuideStep stepWithImage:[UIImage imageNamed:@"image-2"] caption:
|
||||||
|
@"Choose a master password: Use something new and long. A short sentence is ideal.\nDO NOT FORGET THIS ONE PASSWORD."],
|
||||||
|
[MPGuideStep stepWithImage:[UIImage imageNamed:@"image-3"] caption:
|
||||||
|
@"After logging in, you'll see an empty screen with a search box.\nTap the search box to begin adding sites."],
|
||||||
|
[MPGuideStep stepWithImage:[UIImage imageNamed:@"image-4"] caption:
|
||||||
|
@"To add a site, just enter its name fully and tap the result. Names can be anything, but we recommend using a site's bare domain name."],
|
||||||
|
[MPGuideStep stepWithImage:[UIImage imageNamed:@"image-5"] caption:
|
||||||
|
@"Your sites are easy to find and sorted by recency.\nTap any site to copy its password.\nYou can now switch and paste it in another app."],
|
||||||
|
[MPGuideStep stepWithImage:[UIImage imageNamed:@"image-6"] caption:
|
||||||
|
@"If the site you're looking for isn't easy to find, just type a few letters in the search box to filter the site list."],
|
||||||
|
[MPGuideStep stepWithImage:[UIImage imageNamed:@"image-7"] caption:
|
||||||
|
@"If you ever need a new password for the site, just tap the plus icon to increment its counter.\nYou can hold down to reset it back to 1."],
|
||||||
|
[MPGuideStep stepWithImage:[UIImage imageNamed:@"image-8"] caption:
|
||||||
|
@"The user icon lets you save your site's login.\nThis is useful if you find it hard to remember the user name for this site."],
|
||||||
|
[MPGuideStep stepWithImage:[UIImage imageNamed:@"image-9"] caption:
|
||||||
|
@"Master Password lets you swipe to upgrade or downgrade your password's complexity.\nSome sites won't let you use complex passwords."],
|
||||||
|
[MPGuideStep stepWithImage:[UIImage imageNamed:@"image-10"] caption:
|
||||||
|
@"To delete a site, swipe it all the way left to find the \"Delete Site\" button."],
|
||||||
|
[MPGuideStep stepWithImage:[UIImage imageNamed:@"image-11"] caption:
|
||||||
|
@"If you have a password that you cannot change, you can save it as a Personal password. Device Private means the site will not be backed up."],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)viewWillAppear:(BOOL)animated {
|
||||||
|
|
||||||
|
[super viewWillAppear:animated];
|
||||||
|
|
||||||
|
[self.pageControl observeKeyPath:@"currentPage"
|
||||||
|
withBlock:^(id from, id to, NSKeyValueChange cause, UIPageControl *pageControl) {
|
||||||
|
MPGuideStep *activeStep = self.steps[pageControl.currentPage];
|
||||||
|
self.captionLabel.text = activeStep.caption;
|
||||||
|
}];
|
||||||
|
|
||||||
|
[self.collectionView setContentOffset:CGPointZero];
|
||||||
|
self.pageControl.currentPage = 0;
|
||||||
|
|
||||||
|
if (self.navigationController)
|
||||||
|
[self.navigationBar removeFromSuperview];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)viewWillDisappear:(BOOL)animated {
|
||||||
|
|
||||||
|
[super viewWillDisappear:animated];
|
||||||
|
|
||||||
|
[self.pageControl removeKeyPathObservers];
|
||||||
|
}
|
||||||
|
|
||||||
- (BOOL)shouldAutorotate {
|
- (BOOL)shouldAutorotate {
|
||||||
|
|
||||||
return NO;
|
return NO;
|
||||||
@ -39,207 +108,72 @@
|
|||||||
return UIInterfaceOrientationPortrait;
|
return UIInterfaceOrientationPortrait;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)viewDidLoad {
|
#pragma mark - UICollectionViewDataSource
|
||||||
|
|
||||||
[super viewDidLoad];
|
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
|
||||||
|
|
||||||
self.siteNameTip.hidden = NO;
|
return self.pageControl.numberOfPages = [self.steps count];
|
||||||
self.contentTip.hidden = NO;
|
|
||||||
self.usernameTip.hidden = NO;
|
|
||||||
self.typeTip.hidden = NO;
|
|
||||||
self.toolTip.hidden = NO;
|
|
||||||
self.alertTip.hidden = NO;
|
|
||||||
|
|
||||||
self.tickCount = 30;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)viewWillAppear:(BOOL)animated {
|
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
|
||||||
|
|
||||||
[self.navigationController setNavigationBarHidden:YES animated:animated];
|
MPGuideStepCell *cell = [MPGuideStepCell dequeueCellFromCollectionView:collectionView indexPath:indexPath];
|
||||||
|
cell.imageView.image = ((MPGuideStep *)self.steps[indexPath.item]).image;
|
||||||
|
|
||||||
inf(@"Guide will appear.");
|
return cell;
|
||||||
[super viewWillAppear:animated];
|
|
||||||
|
|
||||||
if (self.navigationController) {
|
|
||||||
// Via setup
|
|
||||||
self.smallPlayButton.hidden = YES;
|
|
||||||
|
|
||||||
self.searchBar.text = nil;
|
|
||||||
self.siteNameTip.alpha = 0;
|
|
||||||
self.content.alpha = 0;
|
|
||||||
self.content.frame = CGRectSetHeight( self.content.frame, 180 );
|
|
||||||
self.contentTip.alpha = 0;
|
|
||||||
self.contentButton.highlighted = NO;
|
|
||||||
self.usernameTip.alpha = 0;
|
|
||||||
self.usernameButton.highlighted = NO;
|
|
||||||
self.typeTip.alpha = 0;
|
|
||||||
self.typeButton.highlighted = NO;
|
|
||||||
self.toolTip.alpha = 0;
|
|
||||||
self.toolButton.highlighted = NO;
|
|
||||||
self.alertTip.alpha = 0;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// Via segue
|
|
||||||
self.largePlayButton.hidden = YES;
|
|
||||||
|
|
||||||
self.searchBar.text = @"gmail.com";
|
|
||||||
self.siteNameTip.alpha = 1;
|
|
||||||
self.content.alpha = 1;
|
|
||||||
self.content.frame = CGRectSetHeight( self.content.frame, 231 );
|
|
||||||
self.contentTip.alpha = 1;
|
|
||||||
self.contentTipText.text = @"Tap to copy";
|
|
||||||
self.contentButton.highlighted = NO;
|
|
||||||
self.usernameTip.alpha = 1;
|
|
||||||
self.usernameButton.highlighted = NO;
|
|
||||||
self.typeTip.alpha = 1;
|
|
||||||
self.typeButton.highlighted = NO;
|
|
||||||
self.toolTip.alpha = 0;
|
|
||||||
self.toolButton.highlighted = NO;
|
|
||||||
self.alertTip.alpha = 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)viewWillDisappear:(BOOL)animated {
|
#pragma mark - UICollectionViewDelegateFlowLayout
|
||||||
|
|
||||||
inf(@"Guide will disappear.");
|
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout
|
||||||
[super viewWillDisappear:animated];
|
sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
|
||||||
|
|
||||||
|
return collectionView.bounds.size;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)play {
|
#pragma mark - UIScrollViewDelegate
|
||||||
|
|
||||||
if (self.timer) {
|
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
|
||||||
// Pause
|
|
||||||
[self.timer invalidate];
|
|
||||||
self.timer = nil;
|
|
||||||
|
|
||||||
self.smallPlayButton.hidden = NO;
|
if (scrollView == self.collectionView)
|
||||||
[self.smallPlayButton setImage:[UIImage imageNamed:@"icon_play"] forState:UIControlStateNormal];
|
self.pageControl.currentPage = [self.collectionView indexPathForItemAtPoint:CGRectGetCenter( self.collectionView.bounds )].item;
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
#pragma mark - Actions
|
||||||
// Play
|
|
||||||
self.smallPlayButton.hidden = NO;
|
|
||||||
self.largePlayButton.hidden = YES;
|
|
||||||
[self.smallPlayButton setImage:[UIImage imageNamed:@"icon_pause"] forState:UIControlStateNormal];
|
|
||||||
|
|
||||||
self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(tick:)
|
- (IBAction)close:(id)sender {
|
||||||
userInfo:nil repeats:YES];
|
|
||||||
}
|
[MPiOSConfig get].showSetup = @NO;
|
||||||
|
[self.navigationController dismissViewControllerAnimated:YES completion:nil];
|
||||||
|
[self dismissViewControllerAnimated:YES completion:nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)close {
|
#pragma mark - Private
|
||||||
|
|
||||||
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
|
@end
|
||||||
}
|
|
||||||
|
|
||||||
- (void)tick:(NSTimer *)timer {
|
@implementation MPGuideStep
|
||||||
|
|
||||||
self.lastTick = self.currentTick;
|
+ (instancetype)stepWithImage:(UIImage *)image caption:(NSString *)caption {
|
||||||
++self.currentTick;
|
|
||||||
[self.progress setProgress:(float)self.currentTick / self.tickCount animated:YES];
|
|
||||||
|
|
||||||
if (self.currentTick < 5) {
|
MPGuideStep *step = [self new];
|
||||||
[UIView animateWithDuration:0.5 animations:^{
|
step.image = image;
|
||||||
self.searchBar.text = nil;
|
step.caption = caption;
|
||||||
self.siteNameTip.alpha = 1;
|
|
||||||
self.content.alpha = 0;
|
return step;
|
||||||
self.content.frame = CGRectSetHeight( self.content.frame, 180 );
|
}
|
||||||
self.contentTip.alpha = 0;
|
|
||||||
self.usernameTip.alpha = 0;
|
@end
|
||||||
self.typeTip.alpha = 0;
|
|
||||||
self.toolTip.alpha = 0;
|
@implementation MPGuideStepCell
|
||||||
self.alertTip.alpha = 0;
|
|
||||||
}];
|
- (void)awakeFromNib {
|
||||||
}
|
|
||||||
else if (self.currentTick < 10) {
|
[super awakeFromNib];
|
||||||
[UIView animateWithDuration:0.5 animations:^{
|
|
||||||
self.searchBar.text = @"gmail.com";
|
self.imageView.layer.shadowColor = [UIColor grayColor].CGColor;
|
||||||
self.siteNameTip.alpha = 0;
|
self.imageView.layer.shadowOffset = CGSizeZero;
|
||||||
self.content.alpha = 1;
|
self.imageView.layer.shadowOpacity = 0.5f;
|
||||||
self.contentTip.alpha = 1;
|
|
||||||
self.contentTipText.text = @"Your password";
|
|
||||||
self.usernameTip.alpha = 0;
|
|
||||||
self.typeTip.alpha = 0;
|
|
||||||
self.toolTip.alpha = 0;
|
|
||||||
self.alertTip.alpha = 0;
|
|
||||||
}];
|
|
||||||
}
|
|
||||||
else if (self.currentTick < 15) {
|
|
||||||
[UIView animateWithDuration:0.5 animations:^{
|
|
||||||
self.searchBar.text = @"gmail.com";
|
|
||||||
self.siteNameTip.alpha = 0;
|
|
||||||
self.content.alpha = 1;
|
|
||||||
self.contentTip.alpha = 1;
|
|
||||||
self.contentTipText.text = @"Tap to copy";
|
|
||||||
self.contentButton.highlighted = YES;
|
|
||||||
self.usernameTip.alpha = 0;
|
|
||||||
self.typeTip.alpha = 0;
|
|
||||||
self.toolButton.highlighted = NO;
|
|
||||||
self.toolTip.alpha = 0;
|
|
||||||
self.alertTip.alpha = 0;
|
|
||||||
}];
|
|
||||||
}
|
|
||||||
else if (self.currentTick < 20) {
|
|
||||||
[UIView animateWithDuration:0.5 animations:^{
|
|
||||||
self.searchBar.text = @"gmail.com";
|
|
||||||
self.siteNameTip.alpha = 0;
|
|
||||||
self.content.alpha = 1;
|
|
||||||
self.content.frame = CGRectSetHeight( self.content.frame, 231 );
|
|
||||||
self.contentTip.alpha = 0;
|
|
||||||
self.contentButton.highlighted = NO;
|
|
||||||
self.usernameButton.highlighted = YES;
|
|
||||||
self.usernameTip.alpha = 1;
|
|
||||||
self.typeTip.alpha = 0;
|
|
||||||
self.toolTip.alpha = 0;
|
|
||||||
self.alertTip.alpha = 0;
|
|
||||||
}];
|
|
||||||
}
|
|
||||||
else if (self.currentTick < 25) {
|
|
||||||
[UIView animateWithDuration:0.5 animations:^{
|
|
||||||
self.searchBar.text = @"gmail.com";
|
|
||||||
self.siteNameTip.alpha = 0;
|
|
||||||
self.content.alpha = 1;
|
|
||||||
self.contentTip.alpha = 0;
|
|
||||||
self.usernameButton.highlighted = NO;
|
|
||||||
self.usernameTip.alpha = 0;
|
|
||||||
self.typeTip.alpha = 1;
|
|
||||||
self.typeButton.highlighted = YES;
|
|
||||||
self.toolTip.alpha = 0;
|
|
||||||
self.alertTip.alpha = 0;
|
|
||||||
}];
|
|
||||||
}
|
|
||||||
else if (self.currentTick < 30) {
|
|
||||||
[UIView animateWithDuration:0.5 animations:^{
|
|
||||||
self.searchBar.text = @"gmail.com";
|
|
||||||
self.siteNameTip.alpha = 0;
|
|
||||||
self.content.alpha = 1;
|
|
||||||
self.contentTip.alpha = 0;
|
|
||||||
self.usernameTip.alpha = 0;
|
|
||||||
self.typeTip.alpha = 0;
|
|
||||||
self.typeButton.highlighted = NO;
|
|
||||||
self.toolButton.highlighted = YES;
|
|
||||||
self.toolTip.alpha = 1;
|
|
||||||
self.alertTip.alpha = 0;
|
|
||||||
self.contentText.text = @"XupuMajf4'Hafh";
|
|
||||||
}];
|
|
||||||
}
|
|
||||||
else if (self.currentTick <= self.tickCount) {
|
|
||||||
[self.timer invalidate];
|
|
||||||
self.timer = nil;
|
|
||||||
self.currentTick = 0;
|
|
||||||
[UIView animateWithDuration:0.5 animations:^{
|
|
||||||
[self.smallPlayButton setImage:[UIImage imageNamed:@"icon_play"] forState:UIControlStateNormal];
|
|
||||||
self.searchBar.text = @"gmail.com";
|
|
||||||
self.siteNameTip.alpha = 1;
|
|
||||||
self.content.alpha = 1;
|
|
||||||
self.contentTip.alpha = 1;
|
|
||||||
self.usernameTip.alpha = 1;
|
|
||||||
self.typeTip.alpha = 1;
|
|
||||||
self.toolButton.highlighted = NO;
|
|
||||||
self.toolTip.alpha = 0;
|
|
||||||
self.alertTip.alpha = 1;
|
|
||||||
}];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@ -21,6 +21,14 @@
|
|||||||
|
|
||||||
@implementation MPNavigationController
|
@implementation MPNavigationController
|
||||||
|
|
||||||
|
- (void)viewDidAppear:(BOOL)animated {
|
||||||
|
|
||||||
|
[super viewDidAppear:animated];
|
||||||
|
|
||||||
|
if ([[MPiOSConfig get].showSetup boolValue])
|
||||||
|
[self performSegueWithIdentifier:@"setup" sender:self];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
|
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
|
||||||
|
|
||||||
if ([segue.identifier isEqualToString:@"web"])
|
if ([segue.identifier isEqualToString:@"web"])
|
||||||
|
@ -158,16 +158,16 @@
|
|||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case MPElementTypeGeneratedMaximum:
|
case MPElementTypeGeneratedMaximum:
|
||||||
self.strengthLabel.text = @"> age of the universe";
|
self.strengthLabel.text = @"422 quintillion years";
|
||||||
break;
|
break;
|
||||||
case MPElementTypeGeneratedLong:
|
case MPElementTypeGeneratedLong:
|
||||||
self.strengthLabel.text = @"196 billion years";
|
self.strengthLabel.text = @"1.4 years";
|
||||||
break;
|
break;
|
||||||
case MPElementTypeGeneratedMedium:
|
case MPElementTypeGeneratedMedium:
|
||||||
self.strengthLabel.text = @"5 months";
|
self.strengthLabel.text = @"2 seconds";
|
||||||
break;
|
break;
|
||||||
case MPElementTypeGeneratedBasic:
|
case MPElementTypeGeneratedBasic:
|
||||||
self.strengthLabel.text = @"12 days";
|
self.strengthLabel.text = @"trivial";
|
||||||
break;
|
break;
|
||||||
case MPElementTypeGeneratedShort:
|
case MPElementTypeGeneratedShort:
|
||||||
self.strengthLabel.text = @"trivial";
|
self.strengthLabel.text = @"trivial";
|
||||||
|
@ -216,7 +216,7 @@
|
|||||||
if (scrollView == self.contentCollectionView) {
|
if (scrollView == self.contentCollectionView) {
|
||||||
NSIndexPath *targetIndexPath = [self.contentCollectionView indexPathForItemAtPoint:
|
NSIndexPath *targetIndexPath = [self.contentCollectionView indexPathForItemAtPoint:
|
||||||
CGPointPlusCGPoint( *targetContentOffset, self.contentCollectionView.center )];
|
CGPointPlusCGPoint( *targetContentOffset, self.contentCollectionView.center )];
|
||||||
*targetContentOffset = CGPointFromCGRectTopLeft(
|
*targetContentOffset = CGRectGetTopLeft(
|
||||||
[self.contentCollectionView layoutAttributesForItemAtIndexPath:targetIndexPath].frame );
|
[self.contentCollectionView layoutAttributesForItemAtIndexPath:targetIndexPath].frame );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -315,7 +315,7 @@
|
|||||||
|
|
||||||
- (void)saveContentType {
|
- (void)saveContentType {
|
||||||
|
|
||||||
CGPoint centerPoint = CGPointFromCGRectCenter( self.contentCollectionView.bounds );
|
CGPoint centerPoint = CGRectGetCenter( self.contentCollectionView.bounds );
|
||||||
NSIndexPath *centerIndexPath = [self.contentCollectionView indexPathForItemAtPoint:centerPoint];
|
NSIndexPath *centerIndexPath = [self.contentCollectionView indexPathForItemAtPoint:centerPoint];
|
||||||
MPElementType type = [self typeForContentIndexPath:centerIndexPath];
|
MPElementType type = [self typeForContentIndexPath:centerIndexPath];
|
||||||
if (type == ((MPElementType)NSNotFound))
|
if (type == ((MPElementType)NSNotFound))
|
||||||
|
@ -33,8 +33,6 @@
|
|||||||
|
|
||||||
@property(assign, nonatomic) BOOL active;
|
@property(assign, nonatomic) BOOL active;
|
||||||
|
|
||||||
@property(nonatomic, readonly) MPCoachmark *coachmark;
|
|
||||||
|
|
||||||
- (void)setActive:(BOOL)active animated:(BOOL)animated completion:(void (^)(BOOL finished))completion;
|
- (void)setActive:(BOOL)active animated:(BOOL)animated completion:(void (^)(BOOL finished))completion;
|
||||||
- (void)updatePasswords;
|
- (void)updatePasswords;
|
||||||
|
|
||||||
|
@ -52,7 +52,6 @@
|
|||||||
|
|
||||||
_backgroundColor = self.passwordCollectionView.backgroundColor;
|
_backgroundColor = self.passwordCollectionView.backgroundColor;
|
||||||
_darkenedBackgroundColor = [_backgroundColor colorWithAlphaComponent:0.6f];
|
_darkenedBackgroundColor = [_backgroundColor colorWithAlphaComponent:0.6f];
|
||||||
_coachmark = [MPCoachmark coachmarkForClass:[self class] version:0];
|
|
||||||
|
|
||||||
self.view.backgroundColor = [UIColor clearColor];
|
self.view.backgroundColor = [UIColor clearColor];
|
||||||
[self.passwordCollectionView automaticallyAdjustInsetsForKeyboard];
|
[self.passwordCollectionView automaticallyAdjustInsetsForKeyboard];
|
||||||
@ -72,16 +71,6 @@
|
|||||||
[self updatePasswords];
|
[self updatePasswords];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)viewDidAppear:(BOOL)animated {
|
|
||||||
|
|
||||||
[super viewDidAppear:animated];
|
|
||||||
|
|
||||||
PearlMainQueueAfter( 1, ^{
|
|
||||||
if (!self.coachmark.coached)
|
|
||||||
[self performSegueWithIdentifier:@"coachmarks" sender:self];
|
|
||||||
} );
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewWillDisappear:(BOOL)animated {
|
- (void)viewWillDisappear:(BOOL)animated {
|
||||||
|
|
||||||
[super viewWillDisappear:animated];
|
[super viewWillDisappear:animated];
|
||||||
@ -94,8 +83,6 @@
|
|||||||
|
|
||||||
if ([segue.identifier isEqualToString:@"popdown"])
|
if ([segue.identifier isEqualToString:@"popdown"])
|
||||||
_popdownVC = segue.destinationViewController;
|
_popdownVC = segue.destinationViewController;
|
||||||
if ([segue.identifier isEqualToString:@"coachmarks"])
|
|
||||||
((MPCoachmarkViewController *)segue.destinationViewController).coachmark = self.coachmark;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
|
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
|
||||||
@ -110,7 +97,7 @@
|
|||||||
- (CGSize) collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout
|
- (CGSize) collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout
|
||||||
referenceSizeForHeaderInSection:(NSInteger)section {
|
referenceSizeForHeaderInSection:(NSInteger)section {
|
||||||
|
|
||||||
return CGSizeMake( collectionView.bounds.size.width, CGPointFromCGRectBottom( self.passwordsSearchBar.frame ).y );
|
return CGSizeMake( collectionView.bounds.size.width, CGRectGetBottom( self.passwordsSearchBar.frame ).y );
|
||||||
}
|
}
|
||||||
|
|
||||||
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout
|
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
@property(weak, nonatomic) IBOutlet UISwitch *savePasswordSwitch;
|
@property(weak, nonatomic) IBOutlet UISwitch *savePasswordSwitch;
|
||||||
@property(weak, nonatomic) IBOutlet UITableViewCell *signOutCell;
|
@property(weak, nonatomic) IBOutlet UITableViewCell *signOutCell;
|
||||||
@property(weak, nonatomic) IBOutlet UITableViewCell *feedbackCell;
|
@property(weak, nonatomic) IBOutlet UITableViewCell *feedbackCell;
|
||||||
@property(weak, nonatomic) IBOutlet UITableViewCell *coachmarksCell;
|
@property(weak, nonatomic) IBOutlet UITableViewCell *showHelpCell;
|
||||||
@property(weak, nonatomic) IBOutlet UITableViewCell *exportCell;
|
@property(weak, nonatomic) IBOutlet UITableViewCell *exportCell;
|
||||||
@property(weak, nonatomic) IBOutlet UITableViewCell *checkInconsistencies;
|
@property(weak, nonatomic) IBOutlet UITableViewCell *checkInconsistencies;
|
||||||
@property(weak, nonatomic) IBOutlet UIImageView *avatarImage;
|
@property(weak, nonatomic) IBOutlet UIImageView *avatarImage;
|
||||||
|
@ -65,10 +65,9 @@
|
|||||||
[[MPiOSAppDelegate get] showFeedbackWithLogs:YES forVC:self];
|
[[MPiOSAppDelegate get] showFeedbackWithLogs:YES forVC:self];
|
||||||
if (cell == self.exportCell)
|
if (cell == self.exportCell)
|
||||||
[[MPiOSAppDelegate get] showExportForVC:self];
|
[[MPiOSAppDelegate get] showExportForVC:self];
|
||||||
if (cell == self.coachmarksCell) {
|
if (cell == self.showHelpCell) {
|
||||||
MPPasswordsViewController *passwordsVC = [self dismissPopup];
|
MPPasswordsViewController *passwordsVC = [self dismissPopup];
|
||||||
passwordsVC.coachmark.coached = NO;
|
[passwordsVC performSegueWithIdentifier:@"guide" sender:self];
|
||||||
[passwordsVC performSegueWithIdentifier:@"coachmarks" sender:self];
|
|
||||||
}
|
}
|
||||||
if (cell == self.checkInconsistencies)
|
if (cell == self.checkInconsistencies)
|
||||||
[MPiOSAppDelegate managedObjectContextPerformBlock:^(NSManagedObjectContext *context) {
|
[MPiOSAppDelegate managedObjectContextPerformBlock:^(NSManagedObjectContext *context) {
|
||||||
|
@ -684,7 +684,6 @@ typedef NS_ENUM(NSUInteger, MPActiveUserState) {
|
|||||||
- (void)setActive:(BOOL)active animated:(BOOL)animated {
|
- (void)setActive:(BOOL)active animated:(BOOL)animated {
|
||||||
|
|
||||||
_active = active;
|
_active = active;
|
||||||
dbg(@"active -> %d", active);
|
|
||||||
|
|
||||||
if (active)
|
if (active)
|
||||||
[self setActiveUserState:MPActiveUserStateNone animated:animated];
|
[self setActiveUserState:MPActiveUserStateNone animated:animated];
|
||||||
@ -695,7 +694,6 @@ typedef NS_ENUM(NSUInteger, MPActiveUserState) {
|
|||||||
- (void)setUserIDs:(NSArray *)userIDs {
|
- (void)setUserIDs:(NSArray *)userIDs {
|
||||||
|
|
||||||
_userIDs = userIDs;
|
_userIDs = userIDs;
|
||||||
dbg(@"userIDs -> %lu", (unsigned long)[userIDs count]);
|
|
||||||
|
|
||||||
PearlMainQueue( ^{
|
PearlMainQueue( ^{
|
||||||
BOOL isNew = NO;
|
BOOL isNew = NO;
|
||||||
@ -732,7 +730,6 @@ typedef NS_ENUM(NSUInteger, MPActiveUserState) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[_afterUpdates setSuspended:YES];
|
[_afterUpdates setSuspended:YES];
|
||||||
dbg(@"suspend updates");
|
|
||||||
__block BOOL requestFirstResponder = NO;
|
__block BOOL requestFirstResponder = NO;
|
||||||
[UIView animateWithDuration:animated? 0.4f: 0 animations:^{
|
[UIView animateWithDuration:animated? 0.4f: 0 animations:^{
|
||||||
MPAvatarCell *selectedAvatar = [self selectedAvatar];
|
MPAvatarCell *selectedAvatar = [self selectedAvatar];
|
||||||
@ -752,10 +749,8 @@ typedef NS_ENUM(NSUInteger, MPActiveUserState) {
|
|||||||
// Set the entry container's contents.
|
// Set the entry container's contents.
|
||||||
switch (activeUserState) {
|
switch (activeUserState) {
|
||||||
case MPActiveUserStateNone:
|
case MPActiveUserStateNone:
|
||||||
dbg(@"activeUserState -> none");
|
|
||||||
break;
|
break;
|
||||||
case MPActiveUserStateLogin: {
|
case MPActiveUserStateLogin: {
|
||||||
dbg(@"activeUserState -> login");
|
|
||||||
self.entryLabel.text = strl( @"Enter your master password:" );
|
self.entryLabel.text = strl( @"Enter your master password:" );
|
||||||
self.entryField.secureTextEntry = YES;
|
self.entryField.secureTextEntry = YES;
|
||||||
self.entryField.autocapitalizationType = UITextAutocapitalizationTypeNone;
|
self.entryField.autocapitalizationType = UITextAutocapitalizationTypeNone;
|
||||||
@ -763,7 +758,6 @@ typedef NS_ENUM(NSUInteger, MPActiveUserState) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MPActiveUserStateUserName: {
|
case MPActiveUserStateUserName: {
|
||||||
dbg(@"activeUserState -> userName");
|
|
||||||
self.entryLabel.text = strl( @"Enter your full name:" );
|
self.entryLabel.text = strl( @"Enter your full name:" );
|
||||||
self.entryField.secureTextEntry = NO;
|
self.entryField.secureTextEntry = NO;
|
||||||
self.entryField.autocapitalizationType = UITextAutocapitalizationTypeWords;
|
self.entryField.autocapitalizationType = UITextAutocapitalizationTypeWords;
|
||||||
@ -771,7 +765,6 @@ typedef NS_ENUM(NSUInteger, MPActiveUserState) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MPActiveUserStateMasterPasswordChoice: {
|
case MPActiveUserStateMasterPasswordChoice: {
|
||||||
dbg(@"activeUserState -> masterPasswordChoice");
|
|
||||||
self.entryLabel.text = strl( @"Choose your master password:" );
|
self.entryLabel.text = strl( @"Choose your master password:" );
|
||||||
self.entryField.secureTextEntry = YES;
|
self.entryField.secureTextEntry = YES;
|
||||||
self.entryField.autocapitalizationType = UITextAutocapitalizationTypeNone;
|
self.entryField.autocapitalizationType = UITextAutocapitalizationTypeNone;
|
||||||
@ -779,7 +772,6 @@ typedef NS_ENUM(NSUInteger, MPActiveUserState) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MPActiveUserStateMasterPasswordConfirmation: {
|
case MPActiveUserStateMasterPasswordConfirmation: {
|
||||||
dbg(@"activeUserState -> masterPasswordConfirmation");
|
|
||||||
_masterPasswordChoice = self.entryField.text;
|
_masterPasswordChoice = self.entryField.text;
|
||||||
self.entryLabel.text = strl( @"Confirm your master password:" );
|
self.entryLabel.text = strl( @"Confirm your master password:" );
|
||||||
self.entryField.secureTextEntry = YES;
|
self.entryField.secureTextEntry = YES;
|
||||||
@ -788,7 +780,6 @@ typedef NS_ENUM(NSUInteger, MPActiveUserState) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MPActiveUserStateMinimized:
|
case MPActiveUserStateMinimized:
|
||||||
dbg(@"activeUserState -> minimized");
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -821,18 +812,12 @@ typedef NS_ENUM(NSUInteger, MPActiveUserState) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} completion:^(BOOL finished) {
|
} completion:^(BOOL finished) {
|
||||||
dbg(@"resume updates");
|
|
||||||
[_afterUpdates setSuspended:NO];
|
[_afterUpdates setSuspended:NO];
|
||||||
}];
|
}];
|
||||||
|
|
||||||
UIResponder *oldFirstResponder = [UIResponder findFirstResponder];
|
[self.entryField resignFirstResponder];
|
||||||
if (requestFirstResponder)
|
if (requestFirstResponder)
|
||||||
[self.entryField becomeFirstResponder];
|
[self.entryField becomeFirstResponder];
|
||||||
else
|
|
||||||
[self.entryField resignFirstResponder];
|
|
||||||
UIResponder *newFirstResponder = [UIResponder findFirstResponder];
|
|
||||||
if (newFirstResponder != oldFirstResponder)
|
|
||||||
dbg(@"first responder: %@ -> %@", oldFirstResponder, newFirstResponder);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark - Actions
|
#pragma mark - Actions
|
||||||
|
@ -59,6 +59,34 @@
|
|||||||
DA071BF3190187FE00179766 /* empty@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA071BF1190187FE00179766 /* empty@2x.png */; };
|
DA071BF3190187FE00179766 /* empty@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA071BF1190187FE00179766 /* empty@2x.png */; };
|
||||||
DA071BF4190187FE00179766 /* empty.png in Resources */ = {isa = PBXBuildFile; fileRef = DA071BF2190187FE00179766 /* empty.png */; };
|
DA071BF4190187FE00179766 /* empty.png in Resources */ = {isa = PBXBuildFile; fileRef = DA071BF2190187FE00179766 /* empty.png */; };
|
||||||
DA095E75172F4CD8001C948B /* MPLogsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D3979190DACEBD1F6AE9F4 /* MPLogsViewController.m */; };
|
DA095E75172F4CD8001C948B /* MPLogsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D3979190DACEBD1F6AE9F4 /* MPLogsViewController.m */; };
|
||||||
|
DA2509FB1956484D00AC23F1 /* image-11@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509E11956484D00AC23F1 /* image-11@2x.png */; };
|
||||||
|
DA2509FC1956484D00AC23F1 /* image-11.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509E21956484D00AC23F1 /* image-11.png */; };
|
||||||
|
DA2509FD1956484D00AC23F1 /* image-10@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509E31956484D00AC23F1 /* image-10@2x.png */; };
|
||||||
|
DA2509FE1956484D00AC23F1 /* image-10.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509E41956484D00AC23F1 /* image-10.png */; };
|
||||||
|
DA2509FF1956484D00AC23F1 /* image-9@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509E51956484D00AC23F1 /* image-9@2x.png */; };
|
||||||
|
DA250A001956484D00AC23F1 /* image-9.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509E61956484D00AC23F1 /* image-9.png */; };
|
||||||
|
DA250A011956484D00AC23F1 /* image-8@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509E71956484D00AC23F1 /* image-8@2x.png */; };
|
||||||
|
DA250A021956484D00AC23F1 /* image-8.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509E81956484D00AC23F1 /* image-8.png */; };
|
||||||
|
DA250A031956484D00AC23F1 /* image-7@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509E91956484D00AC23F1 /* image-7@2x.png */; };
|
||||||
|
DA250A041956484D00AC23F1 /* image-7.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509EA1956484D00AC23F1 /* image-7.png */; };
|
||||||
|
DA250A051956484D00AC23F1 /* image-6@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509EB1956484D00AC23F1 /* image-6@2x.png */; };
|
||||||
|
DA250A061956484D00AC23F1 /* image-6.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509EC1956484D00AC23F1 /* image-6.png */; };
|
||||||
|
DA250A071956484D00AC23F1 /* image-5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509ED1956484D00AC23F1 /* image-5@2x.png */; };
|
||||||
|
DA250A081956484D00AC23F1 /* image-5.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509EE1956484D00AC23F1 /* image-5.png */; };
|
||||||
|
DA250A091956484D00AC23F1 /* image-4@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509EF1956484D00AC23F1 /* image-4@2x.png */; };
|
||||||
|
DA250A0A1956484D00AC23F1 /* image-4.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509F01956484D00AC23F1 /* image-4.png */; };
|
||||||
|
DA250A0B1956484D00AC23F1 /* image-3@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509F11956484D00AC23F1 /* image-3@2x.png */; };
|
||||||
|
DA250A0C1956484D00AC23F1 /* image-3.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509F21956484D00AC23F1 /* image-3.png */; };
|
||||||
|
DA250A0D1956484D00AC23F1 /* image-2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509F31956484D00AC23F1 /* image-2@2x.png */; };
|
||||||
|
DA250A0E1956484D00AC23F1 /* image-2.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509F41956484D00AC23F1 /* image-2.png */; };
|
||||||
|
DA250A0F1956484D00AC23F1 /* image-1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509F51956484D00AC23F1 /* image-1@2x.png */; };
|
||||||
|
DA250A101956484D00AC23F1 /* image-1.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509F61956484D00AC23F1 /* image-1.png */; };
|
||||||
|
DA250A111956484D00AC23F1 /* image-0@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509F71956484D00AC23F1 /* image-0@2x.png */; };
|
||||||
|
DA250A121956484D00AC23F1 /* image-0.png in Resources */ = {isa = PBXBuildFile; fileRef = DA2509F81956484D00AC23F1 /* image-0.png */; };
|
||||||
|
DA250A17195665A100AC23F1 /* UITableView+PearlReloadFromArray.m in Sources */ = {isa = PBXBuildFile; fileRef = DA250A13195665A100AC23F1 /* UITableView+PearlReloadFromArray.m */; };
|
||||||
|
DA250A18195665A100AC23F1 /* UITableView+PearlReloadFromArray.h in Headers */ = {isa = PBXBuildFile; fileRef = DA250A14195665A100AC23F1 /* UITableView+PearlReloadFromArray.h */; };
|
||||||
|
DA250A19195665A100AC23F1 /* UICollectionReusableView+PearlDequeue.m in Sources */ = {isa = PBXBuildFile; fileRef = DA250A15195665A100AC23F1 /* UICollectionReusableView+PearlDequeue.m */; };
|
||||||
|
DA250A1A195665A100AC23F1 /* UICollectionReusableView+PearlDequeue.h in Headers */ = {isa = PBXBuildFile; fileRef = DA250A16195665A100AC23F1 /* UICollectionReusableView+PearlDequeue.h */; };
|
||||||
DA2CA4DD18D28859007798F8 /* NSArray+Pearl.m in Sources */ = {isa = PBXBuildFile; fileRef = DA2CA4D918D28859007798F8 /* NSArray+Pearl.m */; };
|
DA2CA4DD18D28859007798F8 /* NSArray+Pearl.m in Sources */ = {isa = PBXBuildFile; fileRef = DA2CA4D918D28859007798F8 /* NSArray+Pearl.m */; };
|
||||||
DA2CA4DE18D28859007798F8 /* NSArray+Pearl.h in Headers */ = {isa = PBXBuildFile; fileRef = DA2CA4DA18D28859007798F8 /* NSArray+Pearl.h */; };
|
DA2CA4DE18D28859007798F8 /* NSArray+Pearl.h in Headers */ = {isa = PBXBuildFile; fileRef = DA2CA4DA18D28859007798F8 /* NSArray+Pearl.h */; };
|
||||||
DA2CA4DF18D28859007798F8 /* NSTimer+PearlBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = DA2CA4DB18D28859007798F8 /* NSTimer+PearlBlock.m */; };
|
DA2CA4DF18D28859007798F8 /* NSTimer+PearlBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = DA2CA4DB18D28859007798F8 /* NSTimer+PearlBlock.m */; };
|
||||||
@ -541,6 +569,34 @@
|
|||||||
DA04E33D14B1E70400ECA4F3 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
|
DA04E33D14B1E70400ECA4F3 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
|
||||||
DA071BF1190187FE00179766 /* empty@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "empty@2x.png"; sourceTree = "<group>"; };
|
DA071BF1190187FE00179766 /* empty@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "empty@2x.png"; sourceTree = "<group>"; };
|
||||||
DA071BF2190187FE00179766 /* empty.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = empty.png; sourceTree = "<group>"; };
|
DA071BF2190187FE00179766 /* empty.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = empty.png; sourceTree = "<group>"; };
|
||||||
|
DA2509E11956484D00AC23F1 /* image-11@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-11@2x.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509E21956484D00AC23F1 /* image-11.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-11.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509E31956484D00AC23F1 /* image-10@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-10@2x.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509E41956484D00AC23F1 /* image-10.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-10.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509E51956484D00AC23F1 /* image-9@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-9@2x.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509E61956484D00AC23F1 /* image-9.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-9.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509E71956484D00AC23F1 /* image-8@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-8@2x.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509E81956484D00AC23F1 /* image-8.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-8.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509E91956484D00AC23F1 /* image-7@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-7@2x.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509EA1956484D00AC23F1 /* image-7.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-7.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509EB1956484D00AC23F1 /* image-6@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-6@2x.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509EC1956484D00AC23F1 /* image-6.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-6.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509ED1956484D00AC23F1 /* image-5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-5@2x.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509EE1956484D00AC23F1 /* image-5.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-5.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509EF1956484D00AC23F1 /* image-4@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-4@2x.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509F01956484D00AC23F1 /* image-4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-4.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509F11956484D00AC23F1 /* image-3@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-3@2x.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509F21956484D00AC23F1 /* image-3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-3.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509F31956484D00AC23F1 /* image-2@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-2@2x.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509F41956484D00AC23F1 /* image-2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-2.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509F51956484D00AC23F1 /* image-1@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-1@2x.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509F61956484D00AC23F1 /* image-1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-1.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509F71956484D00AC23F1 /* image-0@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-0@2x.png"; sourceTree = "<group>"; };
|
||||||
|
DA2509F81956484D00AC23F1 /* image-0.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "image-0.png"; sourceTree = "<group>"; };
|
||||||
|
DA250A13195665A100AC23F1 /* UITableView+PearlReloadFromArray.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITableView+PearlReloadFromArray.m"; sourceTree = "<group>"; };
|
||||||
|
DA250A14195665A100AC23F1 /* UITableView+PearlReloadFromArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITableView+PearlReloadFromArray.h"; sourceTree = "<group>"; };
|
||||||
|
DA250A15195665A100AC23F1 /* UICollectionReusableView+PearlDequeue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UICollectionReusableView+PearlDequeue.m"; sourceTree = "<group>"; };
|
||||||
|
DA250A16195665A100AC23F1 /* UICollectionReusableView+PearlDequeue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UICollectionReusableView+PearlDequeue.h"; sourceTree = "<group>"; };
|
||||||
DA2CA4D918D28859007798F8 /* NSArray+Pearl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSArray+Pearl.m"; sourceTree = "<group>"; };
|
DA2CA4D918D28859007798F8 /* NSArray+Pearl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSArray+Pearl.m"; sourceTree = "<group>"; };
|
||||||
DA2CA4DA18D28859007798F8 /* NSArray+Pearl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSArray+Pearl.h"; sourceTree = "<group>"; };
|
DA2CA4DA18D28859007798F8 /* NSArray+Pearl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSArray+Pearl.h"; sourceTree = "<group>"; };
|
||||||
DA2CA4DB18D28859007798F8 /* NSTimer+PearlBlock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSTimer+PearlBlock.m"; sourceTree = "<group>"; };
|
DA2CA4DB18D28859007798F8 /* NSTimer+PearlBlock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSTimer+PearlBlock.m"; sourceTree = "<group>"; };
|
||||||
@ -1598,6 +1654,37 @@
|
|||||||
/* End PBXFrameworksBuildPhase section */
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
/* Begin PBXGroup section */
|
||||||
|
DA2509B619563E1E00AC23F1 /* Guide */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
DA2509E11956484D00AC23F1 /* image-11@2x.png */,
|
||||||
|
DA2509E21956484D00AC23F1 /* image-11.png */,
|
||||||
|
DA2509E31956484D00AC23F1 /* image-10@2x.png */,
|
||||||
|
DA2509E41956484D00AC23F1 /* image-10.png */,
|
||||||
|
DA2509E51956484D00AC23F1 /* image-9@2x.png */,
|
||||||
|
DA2509E61956484D00AC23F1 /* image-9.png */,
|
||||||
|
DA2509E71956484D00AC23F1 /* image-8@2x.png */,
|
||||||
|
DA2509E81956484D00AC23F1 /* image-8.png */,
|
||||||
|
DA2509E91956484D00AC23F1 /* image-7@2x.png */,
|
||||||
|
DA2509EA1956484D00AC23F1 /* image-7.png */,
|
||||||
|
DA2509EB1956484D00AC23F1 /* image-6@2x.png */,
|
||||||
|
DA2509EC1956484D00AC23F1 /* image-6.png */,
|
||||||
|
DA2509ED1956484D00AC23F1 /* image-5@2x.png */,
|
||||||
|
DA2509EE1956484D00AC23F1 /* image-5.png */,
|
||||||
|
DA2509EF1956484D00AC23F1 /* image-4@2x.png */,
|
||||||
|
DA2509F01956484D00AC23F1 /* image-4.png */,
|
||||||
|
DA2509F11956484D00AC23F1 /* image-3@2x.png */,
|
||||||
|
DA2509F21956484D00AC23F1 /* image-3.png */,
|
||||||
|
DA2509F31956484D00AC23F1 /* image-2@2x.png */,
|
||||||
|
DA2509F41956484D00AC23F1 /* image-2.png */,
|
||||||
|
DA2509F51956484D00AC23F1 /* image-1@2x.png */,
|
||||||
|
DA2509F61956484D00AC23F1 /* image-1.png */,
|
||||||
|
DA2509F71956484D00AC23F1 /* image-0@2x.png */,
|
||||||
|
DA2509F81956484D00AC23F1 /* image-0.png */,
|
||||||
|
);
|
||||||
|
path = Guide;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
DA5BFA39147E415C00F98B1E = {
|
DA5BFA39147E415C00F98B1E = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@ -1696,6 +1783,7 @@
|
|||||||
DABD360D1711E29400CF925C /* Media */ = {
|
DABD360D1711E29400CF925C /* Media */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
DA2509B619563E1E00AC23F1 /* Guide */,
|
||||||
DA071BF1190187FE00179766 /* empty@2x.png */,
|
DA071BF1190187FE00179766 /* empty@2x.png */,
|
||||||
DA071BF2190187FE00179766 /* empty.png */,
|
DA071BF2190187FE00179766 /* empty.png */,
|
||||||
DADBB55918DB0CFC00D099FE /* keyboard-dark@2x.png */,
|
DADBB55918DB0CFC00D099FE /* keyboard-dark@2x.png */,
|
||||||
@ -2904,6 +2992,10 @@
|
|||||||
DAFE460715039823003ABA7C /* Pearl-UIKit */ = {
|
DAFE460715039823003ABA7C /* Pearl-UIKit */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
DA250A13195665A100AC23F1 /* UITableView+PearlReloadFromArray.m */,
|
||||||
|
DA250A14195665A100AC23F1 /* UITableView+PearlReloadFromArray.h */,
|
||||||
|
DA250A15195665A100AC23F1 /* UICollectionReusableView+PearlDequeue.m */,
|
||||||
|
DA250A16195665A100AC23F1 /* UICollectionReusableView+PearlDequeue.h */,
|
||||||
DAEC85B118E3DD9A007FC0DF /* PearlUIView.m */,
|
DAEC85B118E3DD9A007FC0DF /* PearlUIView.m */,
|
||||||
DAEC85B218E3DD9A007FC0DF /* PearlUINavigationBar.m */,
|
DAEC85B218E3DD9A007FC0DF /* PearlUINavigationBar.m */,
|
||||||
DAEC85B318E3DD9A007FC0DF /* PearlUINavigationBar.h */,
|
DAEC85B318E3DD9A007FC0DF /* PearlUINavigationBar.h */,
|
||||||
@ -3020,6 +3112,7 @@
|
|||||||
DAEB936F18AA537D000490CC /* rc4.h in Headers */,
|
DAEB936F18AA537D000490CC /* rc4.h in Headers */,
|
||||||
DAEB933318AA537D000490CC /* crypto_aesctr.h in Headers */,
|
DAEB933318AA537D000490CC /* crypto_aesctr.h in Headers */,
|
||||||
DAEB936718AA537D000490CC /* ossl_typ.h in Headers */,
|
DAEB936718AA537D000490CC /* ossl_typ.h in Headers */,
|
||||||
|
DA250A1A195665A100AC23F1 /* UICollectionReusableView+PearlDequeue.h in Headers */,
|
||||||
DAEB937018AA537D000490CC /* ripemd.h in Headers */,
|
DAEB937018AA537D000490CC /* ripemd.h in Headers */,
|
||||||
DAEB933F18AA537D000490CC /* asn1t.h in Headers */,
|
DAEB933F18AA537D000490CC /* asn1t.h in Headers */,
|
||||||
DAEB936418AA537D000490CC /* ocsp.h in Headers */,
|
DAEB936418AA537D000490CC /* ocsp.h in Headers */,
|
||||||
@ -3046,6 +3139,7 @@
|
|||||||
DAFE4A2815039824003ABA7C /* PearlMathUtils.h in Headers */,
|
DAFE4A2815039824003ABA7C /* PearlMathUtils.h in Headers */,
|
||||||
DAEB934418AA537D000490CC /* camellia.h in Headers */,
|
DAEB934418AA537D000490CC /* camellia.h in Headers */,
|
||||||
DAFE4A2A15039824003ABA7C /* PearlObjectUtils.h in Headers */,
|
DAFE4A2A15039824003ABA7C /* PearlObjectUtils.h in Headers */,
|
||||||
|
DA250A18195665A100AC23F1 /* UITableView+PearlReloadFromArray.h in Headers */,
|
||||||
DAEB936D18AA537D000490CC /* rand.h in Headers */,
|
DAEB936D18AA537D000490CC /* rand.h in Headers */,
|
||||||
DAFE4A2C15039824003ABA7C /* PearlResettable.h in Headers */,
|
DAFE4A2C15039824003ABA7C /* PearlResettable.h in Headers */,
|
||||||
DAFE4A2D15039824003ABA7C /* PearlStrings.h in Headers */,
|
DAFE4A2D15039824003ABA7C /* PearlStrings.h in Headers */,
|
||||||
@ -3425,6 +3519,7 @@
|
|||||||
DACA296F1705DF81002C6C22 /* Crashlytics.plist in Resources */,
|
DACA296F1705DF81002C6C22 /* Crashlytics.plist in Resources */,
|
||||||
DADEF4171810D2940052CA3E /* love-lyndir.button.red@2x.png in Resources */,
|
DADEF4171810D2940052CA3E /* love-lyndir.button.red@2x.png in Resources */,
|
||||||
DACA29731705E1A8002C6C22 /* ciphers.plist in Resources */,
|
DACA29731705E1A8002C6C22 /* ciphers.plist in Resources */,
|
||||||
|
DA250A0F1956484D00AC23F1 /* image-1@2x.png in Resources */,
|
||||||
DACA29741705E1A8002C6C22 /* dictionary.lst in Resources */,
|
DACA29741705E1A8002C6C22 /* dictionary.lst in Resources */,
|
||||||
DA45224C190628B2008F650A /* icon_gear@2x.png in Resources */,
|
DA45224C190628B2008F650A /* icon_gear@2x.png in Resources */,
|
||||||
DA854C8318D4CFBF00106317 /* avatar-add@2x.png in Resources */,
|
DA854C8318D4CFBF00106317 /* avatar-add@2x.png in Resources */,
|
||||||
@ -3435,17 +3530,20 @@
|
|||||||
DA4522451902355C008F650A /* icon_book@2x.png in Resources */,
|
DA4522451902355C008F650A /* icon_book@2x.png in Resources */,
|
||||||
DABD39371711E29700CF925C /* avatar-0.png in Resources */,
|
DABD39371711E29700CF925C /* avatar-0.png in Resources */,
|
||||||
DABD39381711E29700CF925C /* avatar-0@2x.png in Resources */,
|
DABD39381711E29700CF925C /* avatar-0@2x.png in Resources */,
|
||||||
|
DA250A041956484D00AC23F1 /* image-7.png in Resources */,
|
||||||
DABD39391711E29700CF925C /* avatar-1.png in Resources */,
|
DABD39391711E29700CF925C /* avatar-1.png in Resources */,
|
||||||
DA7304E5194E025900E72520 /* tip_basic_black.png in Resources */,
|
DA7304E5194E025900E72520 /* tip_basic_black.png in Resources */,
|
||||||
DABD393A1711E29700CF925C /* avatar-10.png in Resources */,
|
DABD393A1711E29700CF925C /* avatar-10.png in Resources */,
|
||||||
DABD393B1711E29700CF925C /* avatar-10@2x.png in Resources */,
|
DABD393B1711E29700CF925C /* avatar-10@2x.png in Resources */,
|
||||||
DADEF41C1810D2940052CA3E /* love-lyndir.heart.red.png in Resources */,
|
DADEF41C1810D2940052CA3E /* love-lyndir.heart.red.png in Resources */,
|
||||||
DABD393C1711E29700CF925C /* avatar-11.png in Resources */,
|
DABD393C1711E29700CF925C /* avatar-11.png in Resources */,
|
||||||
|
DA250A0A1956484D00AC23F1 /* image-4.png in Resources */,
|
||||||
DABD393D1711E29700CF925C /* avatar-11@2x.png in Resources */,
|
DABD393D1711E29700CF925C /* avatar-11@2x.png in Resources */,
|
||||||
DA73049D194E022700E72520 /* ui_spinner.png in Resources */,
|
DA73049D194E022700E72520 /* ui_spinner.png in Resources */,
|
||||||
DABD393E1711E29700CF925C /* avatar-12.png in Resources */,
|
DABD393E1711E29700CF925C /* avatar-12.png in Resources */,
|
||||||
DABD393F1711E29700CF925C /* avatar-12@2x.png in Resources */,
|
DABD393F1711E29700CF925C /* avatar-12@2x.png in Resources */,
|
||||||
DA67461018DE7F0C00DFE240 /* Exo2.0-Bold.otf in Resources */,
|
DA67461018DE7F0C00DFE240 /* Exo2.0-Bold.otf in Resources */,
|
||||||
|
DA2509FC1956484D00AC23F1 /* image-11.png in Resources */,
|
||||||
DABD39401711E29700CF925C /* avatar-13.png in Resources */,
|
DABD39401711E29700CF925C /* avatar-13.png in Resources */,
|
||||||
DABD39411711E29700CF925C /* avatar-13@2x.png in Resources */,
|
DABD39411711E29700CF925C /* avatar-13@2x.png in Resources */,
|
||||||
DABD39421711E29700CF925C /* avatar-14.png in Resources */,
|
DABD39421711E29700CF925C /* avatar-14.png in Resources */,
|
||||||
@ -3456,9 +3554,11 @@
|
|||||||
DABD39461711E29700CF925C /* avatar-16.png in Resources */,
|
DABD39461711E29700CF925C /* avatar-16.png in Resources */,
|
||||||
DABD39471711E29700CF925C /* avatar-16@2x.png in Resources */,
|
DABD39471711E29700CF925C /* avatar-16@2x.png in Resources */,
|
||||||
DA7304E7194E027C00E72520 /* Square-bottom.png in Resources */,
|
DA7304E7194E027C00E72520 /* Square-bottom.png in Resources */,
|
||||||
|
DA250A091956484D00AC23F1 /* image-4@2x.png in Resources */,
|
||||||
DABD39481711E29700CF925C /* avatar-17.png in Resources */,
|
DABD39481711E29700CF925C /* avatar-17.png in Resources */,
|
||||||
DABD39491711E29700CF925C /* avatar-17@2x.png in Resources */,
|
DABD39491711E29700CF925C /* avatar-17@2x.png in Resources */,
|
||||||
DAC8DF47192831E100BA7D71 /* icon_key.png in Resources */,
|
DAC8DF47192831E100BA7D71 /* icon_key.png in Resources */,
|
||||||
|
DA250A071956484D00AC23F1 /* image-5@2x.png in Resources */,
|
||||||
DAC8DF48192831E100BA7D71 /* icon_key@2x.png in Resources */,
|
DAC8DF48192831E100BA7D71 /* icon_key@2x.png in Resources */,
|
||||||
DABD394A1711E29700CF925C /* avatar-18.png in Resources */,
|
DABD394A1711E29700CF925C /* avatar-18.png in Resources */,
|
||||||
DABD394B1711E29700CF925C /* avatar-18@2x.png in Resources */,
|
DABD394B1711E29700CF925C /* avatar-18@2x.png in Resources */,
|
||||||
@ -3467,19 +3567,24 @@
|
|||||||
DA67460E18DE7F0C00DFE240 /* Exo2.0-Regular.otf in Resources */,
|
DA67460E18DE7F0C00DFE240 /* Exo2.0-Regular.otf in Resources */,
|
||||||
DABD394D1711E29700CF925C /* avatar-2.png in Resources */,
|
DABD394D1711E29700CF925C /* avatar-2.png in Resources */,
|
||||||
DABD394E1711E29700CF925C /* avatar-2@2x.png in Resources */,
|
DABD394E1711E29700CF925C /* avatar-2@2x.png in Resources */,
|
||||||
|
DA250A061956484D00AC23F1 /* image-6.png in Resources */,
|
||||||
DABD394F1711E29700CF925C /* avatar-3.png in Resources */,
|
DABD394F1711E29700CF925C /* avatar-3.png in Resources */,
|
||||||
DA67460F18DE7F0C00DFE240 /* Exo2.0-ExtraBold.otf in Resources */,
|
DA67460F18DE7F0C00DFE240 /* Exo2.0-ExtraBold.otf in Resources */,
|
||||||
DABD39501711E29700CF925C /* avatar-3@2x.png in Resources */,
|
DABD39501711E29700CF925C /* avatar-3@2x.png in Resources */,
|
||||||
DABD39511711E29700CF925C /* avatar-4.png in Resources */,
|
DABD39511711E29700CF925C /* avatar-4.png in Resources */,
|
||||||
|
DA2509FD1956484D00AC23F1 /* image-10@2x.png in Resources */,
|
||||||
DABD39521711E29700CF925C /* avatar-4@2x.png in Resources */,
|
DABD39521711E29700CF925C /* avatar-4@2x.png in Resources */,
|
||||||
DABD39531711E29700CF925C /* avatar-5.png in Resources */,
|
DABD39531711E29700CF925C /* avatar-5.png in Resources */,
|
||||||
DA73049E194E022700E72520 /* ui_spinner@2x.png in Resources */,
|
DA73049E194E022700E72520 /* ui_spinner@2x.png in Resources */,
|
||||||
DABD39541711E29700CF925C /* avatar-5@2x.png in Resources */,
|
DABD39541711E29700CF925C /* avatar-5@2x.png in Resources */,
|
||||||
|
DA250A031956484D00AC23F1 /* image-7@2x.png in Resources */,
|
||||||
DABD39551711E29700CF925C /* avatar-6.png in Resources */,
|
DABD39551711E29700CF925C /* avatar-6.png in Resources */,
|
||||||
DABD39561711E29700CF925C /* avatar-6@2x.png in Resources */,
|
DABD39561711E29700CF925C /* avatar-6@2x.png in Resources */,
|
||||||
DABD39571711E29700CF925C /* avatar-7.png in Resources */,
|
DABD39571711E29700CF925C /* avatar-7.png in Resources */,
|
||||||
DABD39581711E29700CF925C /* avatar-7@2x.png in Resources */,
|
DABD39581711E29700CF925C /* avatar-7@2x.png in Resources */,
|
||||||
DABD39591711E29700CF925C /* avatar-8.png in Resources */,
|
DABD39591711E29700CF925C /* avatar-8.png in Resources */,
|
||||||
|
DA250A0D1956484D00AC23F1 /* image-2@2x.png in Resources */,
|
||||||
|
DA250A051956484D00AC23F1 /* image-6@2x.png in Resources */,
|
||||||
DADEF41D1810D2940052CA3E /* love-lyndir.heart.red@2x.png in Resources */,
|
DADEF41D1810D2940052CA3E /* love-lyndir.heart.red@2x.png in Resources */,
|
||||||
DABD395A1711E29700CF925C /* avatar-8@2x.png in Resources */,
|
DABD395A1711E29700CF925C /* avatar-8@2x.png in Resources */,
|
||||||
DABD395B1711E29700CF925C /* avatar-9.png in Resources */,
|
DABD395B1711E29700CF925C /* avatar-9.png in Resources */,
|
||||||
@ -3488,8 +3593,10 @@
|
|||||||
DA45224719062899008F650A /* icon_settings.png in Resources */,
|
DA45224719062899008F650A /* icon_settings.png in Resources */,
|
||||||
DABD395E1711E29700CF925C /* background@2x.png in Resources */,
|
DABD395E1711E29700CF925C /* background@2x.png in Resources */,
|
||||||
DA945C8717E3F3FD0053236B /* Images.xcassets in Resources */,
|
DA945C8717E3F3FD0053236B /* Images.xcassets in Resources */,
|
||||||
|
DA250A101956484D00AC23F1 /* image-1.png in Resources */,
|
||||||
DABD39871711E29700CF925C /* SourceCodePro-Black.otf in Resources */,
|
DABD39871711E29700CF925C /* SourceCodePro-Black.otf in Resources */,
|
||||||
DADEF4161810D2940052CA3E /* love-lyndir.button.red.png in Resources */,
|
DADEF4161810D2940052CA3E /* love-lyndir.button.red.png in Resources */,
|
||||||
|
DA2509FE1956484D00AC23F1 /* image-10.png in Resources */,
|
||||||
DADEF44E1810FA3B0052CA3E /* LoveLyndir.storyboard in Resources */,
|
DADEF44E1810FA3B0052CA3E /* LoveLyndir.storyboard in Resources */,
|
||||||
DABD39881711E29700CF925C /* SourceCodePro-ExtraLight.otf in Resources */,
|
DABD39881711E29700CF925C /* SourceCodePro-ExtraLight.otf in Resources */,
|
||||||
DABD39A01711E29700CF925C /* icon_action.png in Resources */,
|
DABD39A01711E29700CF925C /* icon_action.png in Resources */,
|
||||||
@ -3497,6 +3604,7 @@
|
|||||||
DABD39F21711E29700CF925C /* icon_cancel.png in Resources */,
|
DABD39F21711E29700CF925C /* icon_cancel.png in Resources */,
|
||||||
DA73049F194E022B00E72520 /* ui_textfield.png in Resources */,
|
DA73049F194E022B00E72520 /* ui_textfield.png in Resources */,
|
||||||
DABD39F31711E29700CF925C /* icon_cancel@2x.png in Resources */,
|
DABD39F31711E29700CF925C /* icon_cancel@2x.png in Resources */,
|
||||||
|
DA250A0C1956484D00AC23F1 /* image-3.png in Resources */,
|
||||||
DABD3A261711E29700CF925C /* icon_edit.png in Resources */,
|
DABD3A261711E29700CF925C /* icon_edit.png in Resources */,
|
||||||
DABD3A271711E29700CF925C /* icon_edit@2x.png in Resources */,
|
DABD3A271711E29700CF925C /* icon_edit@2x.png in Resources */,
|
||||||
DADEF41B1810D2940052CA3E /* love-lyndir.heart.grey@2x.png in Resources */,
|
DADEF41B1810D2940052CA3E /* love-lyndir.heart.grey@2x.png in Resources */,
|
||||||
@ -3512,14 +3620,17 @@
|
|||||||
DADEF4141810D2940052CA3E /* love-lyndir.button.grey.png in Resources */,
|
DADEF4141810D2940052CA3E /* love-lyndir.button.grey.png in Resources */,
|
||||||
DABD3ABD1711E29800CF925C /* icon_play@2x.png in Resources */,
|
DABD3ABD1711E29800CF925C /* icon_play@2x.png in Resources */,
|
||||||
DABD3ABE1711E29800CF925C /* icon_plus.png in Resources */,
|
DABD3ABE1711E29800CF925C /* icon_plus.png in Resources */,
|
||||||
|
DA250A081956484D00AC23F1 /* image-5.png in Resources */,
|
||||||
DABD3ABF1711E29800CF925C /* icon_plus@2x.png in Resources */,
|
DABD3ABF1711E29800CF925C /* icon_plus@2x.png in Resources */,
|
||||||
DADEF4181810D2940052CA3E /* love-lyndir.heart.green.png in Resources */,
|
DADEF4181810D2940052CA3E /* love-lyndir.heart.green.png in Resources */,
|
||||||
DA69540717D975D900BF294E /* icon_gears@2x.png in Resources */,
|
DA69540717D975D900BF294E /* icon_gears@2x.png in Resources */,
|
||||||
DABD3B1C1711E29800CF925C /* icon_up.png in Resources */,
|
DABD3B1C1711E29800CF925C /* icon_up.png in Resources */,
|
||||||
DABD3B1D1711E29800CF925C /* icon_up@2x.png in Resources */,
|
DABD3B1D1711E29800CF925C /* icon_up@2x.png in Resources */,
|
||||||
|
DA250A121956484D00AC23F1 /* image-0.png in Resources */,
|
||||||
DA9B51551895D79E009D2A0B /* gittip.png in Resources */,
|
DA9B51551895D79E009D2A0B /* gittip.png in Resources */,
|
||||||
DA4522441902355C008F650A /* icon_book.png in Resources */,
|
DA4522441902355C008F650A /* icon_book.png in Resources */,
|
||||||
DABD3B8A1711E29800CF925C /* help.html in Resources */,
|
DABD3B8A1711E29800CF925C /* help.html in Resources */,
|
||||||
|
DA2509FF1956484D00AC23F1 /* image-9@2x.png in Resources */,
|
||||||
DABD3B8D1711E29800CF925C /* keypad.png in Resources */,
|
DABD3B8D1711E29800CF925C /* keypad.png in Resources */,
|
||||||
DABD3B8E1711E29800CF925C /* logo-bare.png in Resources */,
|
DABD3B8E1711E29800CF925C /* logo-bare.png in Resources */,
|
||||||
DADEF44B1810E7F30052CA3E /* love-lyndir.picker.png in Resources */,
|
DADEF44B1810E7F30052CA3E /* love-lyndir.picker.png in Resources */,
|
||||||
@ -3533,11 +3644,14 @@
|
|||||||
DA7304A0194E022B00E72520 /* ui_textfield@2x.png in Resources */,
|
DA7304A0194E022B00E72520 /* ui_textfield@2x.png in Resources */,
|
||||||
DA452249190628A1008F650A /* icon_wrench.png in Resources */,
|
DA452249190628A1008F650A /* icon_wrench.png in Resources */,
|
||||||
DA45224819062899008F650A /* icon_settings@2x.png in Resources */,
|
DA45224819062899008F650A /* icon_settings@2x.png in Resources */,
|
||||||
|
DA250A001956484D00AC23F1 /* image-9.png in Resources */,
|
||||||
DADEF4121810D2940052CA3E /* love-lyndir.button.green.png in Resources */,
|
DADEF4121810D2940052CA3E /* love-lyndir.button.green.png in Resources */,
|
||||||
DA854C8418D4CFBF00106317 /* avatar-add.png in Resources */,
|
DA854C8418D4CFBF00106317 /* avatar-add.png in Resources */,
|
||||||
DABD3C241711E2DC00CF925C /* MasterPassword.entitlements in Resources */,
|
DABD3C241711E2DC00CF925C /* MasterPassword.entitlements in Resources */,
|
||||||
DABD3C251711E2DC00CF925C /* Settings.bundle in Resources */,
|
DABD3C251711E2DC00CF925C /* Settings.bundle in Resources */,
|
||||||
DABD3C261711E2DC00CF925C /* InfoPlist.strings in Resources */,
|
DABD3C261711E2DC00CF925C /* InfoPlist.strings in Resources */,
|
||||||
|
DA2509FB1956484D00AC23F1 /* image-11@2x.png in Resources */,
|
||||||
|
DA250A0B1956484D00AC23F1 /* image-3@2x.png in Resources */,
|
||||||
DABD3FCA1712446200CF925C /* cloud.png in Resources */,
|
DABD3FCA1712446200CF925C /* cloud.png in Resources */,
|
||||||
DABD3FCB1712446200CF925C /* cloud@2x.png in Resources */,
|
DABD3FCB1712446200CF925C /* cloud@2x.png in Resources */,
|
||||||
DABD3FCE1714F45C00CF925C /* identity.png in Resources */,
|
DABD3FCE1714F45C00CF925C /* identity.png in Resources */,
|
||||||
@ -3546,11 +3660,15 @@
|
|||||||
DA45224B190628B2008F650A /* icon_gear.png in Resources */,
|
DA45224B190628B2008F650A /* icon_gear.png in Resources */,
|
||||||
DAE1EF2217E942DE00BC0086 /* Localizable.strings in Resources */,
|
DAE1EF2217E942DE00BC0086 /* Localizable.strings in Resources */,
|
||||||
DA38D6A318CCB5BF009AEB3E /* Storyboard.storyboard in Resources */,
|
DA38D6A318CCB5BF009AEB3E /* Storyboard.storyboard in Resources */,
|
||||||
|
DA250A021956484D00AC23F1 /* image-8.png in Resources */,
|
||||||
DA5A09DF171A70E4005284AB /* play.png in Resources */,
|
DA5A09DF171A70E4005284AB /* play.png in Resources */,
|
||||||
DA5A09E0171A70E4005284AB /* play@2x.png in Resources */,
|
DA5A09E0171A70E4005284AB /* play@2x.png in Resources */,
|
||||||
DA5A09EA171BB0F7005284AB /* unlocked.png in Resources */,
|
DA5A09EA171BB0F7005284AB /* unlocked.png in Resources */,
|
||||||
|
DA250A0E1956484D00AC23F1 /* image-2.png in Resources */,
|
||||||
DA5A09EB171BB0F7005284AB /* unlocked@2x.png in Resources */,
|
DA5A09EB171BB0F7005284AB /* unlocked@2x.png in Resources */,
|
||||||
DADEF44C1810E7F30052CA3E /* love-lyndir.picker@2x.png in Resources */,
|
DADEF44C1810E7F30052CA3E /* love-lyndir.picker@2x.png in Resources */,
|
||||||
|
DA250A011956484D00AC23F1 /* image-8@2x.png in Resources */,
|
||||||
|
DA250A111956484D00AC23F1 /* image-0@2x.png in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@ -3699,6 +3817,7 @@
|
|||||||
DAFE4A3015039824003ABA7C /* PearlStringUtils.m in Sources */,
|
DAFE4A3015039824003ABA7C /* PearlStringUtils.m in Sources */,
|
||||||
DAFE4A3515039824003ABA7C /* PearlCryptUtils.m in Sources */,
|
DAFE4A3515039824003ABA7C /* PearlCryptUtils.m in Sources */,
|
||||||
DAFE4A3715039824003ABA7C /* PearlKeyChain.m in Sources */,
|
DAFE4A3715039824003ABA7C /* PearlKeyChain.m in Sources */,
|
||||||
|
DA250A17195665A100AC23F1 /* UITableView+PearlReloadFromArray.m in Sources */,
|
||||||
DAFE4A3915039824003ABA7C /* PearlRSAKey.m in Sources */,
|
DAFE4A3915039824003ABA7C /* PearlRSAKey.m in Sources */,
|
||||||
DAFE4A3B15039824003ABA7C /* PearlSCrypt.m in Sources */,
|
DAFE4A3B15039824003ABA7C /* PearlSCrypt.m in Sources */,
|
||||||
DAFE4A3F15039824003ABA7C /* PearlAlert.m in Sources */,
|
DAFE4A3F15039824003ABA7C /* PearlAlert.m in Sources */,
|
||||||
@ -3706,6 +3825,7 @@
|
|||||||
DAFE4A4315039824003ABA7C /* PearlBoxView.m in Sources */,
|
DAFE4A4315039824003ABA7C /* PearlBoxView.m in Sources */,
|
||||||
DAFE4A4515039824003ABA7C /* PearlGradientView.m in Sources */,
|
DAFE4A4515039824003ABA7C /* PearlGradientView.m in Sources */,
|
||||||
DAFE4A4715039824003ABA7C /* PearlLayout.m in Sources */,
|
DAFE4A4715039824003ABA7C /* PearlLayout.m in Sources */,
|
||||||
|
DA250A19195665A100AC23F1 /* UICollectionReusableView+PearlDequeue.m in Sources */,
|
||||||
DAFE4A4915039824003ABA7C /* PearlLayoutView.m in Sources */,
|
DAFE4A4915039824003ABA7C /* PearlLayoutView.m in Sources */,
|
||||||
DAFE4A4B15039824003ABA7C /* PearlMessageView.m in Sources */,
|
DAFE4A4B15039824003ABA7C /* PearlMessageView.m in Sources */,
|
||||||
DAFE4A4D15039824003ABA7C /* PearlRootViewController.m in Sources */,
|
DAFE4A4D15039824003ABA7C /* PearlRootViewController.m in Sources */,
|
||||||
|
@ -361,11 +361,11 @@
|
|||||||
<viewControllerLayoutGuide type="bottom" id="Eo0-ai-7DG"/>
|
<viewControllerLayoutGuide type="bottom" id="Eo0-ai-7DG"/>
|
||||||
</layoutGuides>
|
</layoutGuides>
|
||||||
<view key="view" contentMode="scaleToFill" id="2Jz-8H-3nG" userLabel="Root">
|
<view key="view" contentMode="scaleToFill" id="2Jz-8H-3nG" userLabel="Root">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="548"/>
|
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<webView contentMode="scaleToFill" scalesPageToFit="YES" suppressesIncrementalRendering="YES" translatesAutoresizingMaskIntoConstraints="NO" id="3aB-Hk-Fgd">
|
<webView contentMode="scaleToFill" scalesPageToFit="YES" suppressesIncrementalRendering="YES" translatesAutoresizingMaskIntoConstraints="NO" id="3aB-Hk-Fgd">
|
||||||
<rect key="frame" x="0.0" y="20" width="320" height="528"/>
|
<rect key="frame" x="0.0" y="20" width="320" height="548"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
<connections>
|
<connections>
|
||||||
@ -504,9 +504,43 @@
|
|||||||
<sections>
|
<sections>
|
||||||
<tableViewSection id="FEv-Rb-jst">
|
<tableViewSection id="FEv-Rb-jst">
|
||||||
<cells>
|
<cells>
|
||||||
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" shouldIndentWhileEditing="NO" rowHeight="97" id="R30-AU-bR6" userLabel="Sign Out">
|
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" shouldIndentWhileEditing="NO" rowHeight="97" id="eth-Dc-JYn" userLabel="Show Help">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="97"/>
|
<rect key="frame" x="0.0" y="0.0" width="320" height="97"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="eth-Dc-JYn" id="8m6-pP-lda">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="287" height="96"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<subviews>
|
||||||
|
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Show Help" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="x9b-Qa-Pza">
|
||||||
|
<rect key="frame" x="20" y="20" width="247" height="21"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<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" text="Open the short step-by-step guide which explains how to use Master Password." lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="247" translatesAutoresizingMaskIntoConstraints="NO" id="bKz-o1-gHv">
|
||||||
|
<rect key="frame" x="20" y="49" width="247" height="27"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<fontDescription key="fontDescription" name="Exo2.0-Thin" family="Exo 2.0" pointSize="11"/>
|
||||||
|
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="bKz-o1-gHv" firstAttribute="leading" secondItem="8m6-pP-lda" secondAttribute="leading" constant="20" symbolic="YES" id="0eE-CN-kk5"/>
|
||||||
|
<constraint firstItem="x9b-Qa-Pza" firstAttribute="top" secondItem="8m6-pP-lda" secondAttribute="top" constant="20" symbolic="YES" id="49Z-eX-muM"/>
|
||||||
|
<constraint firstItem="x9b-Qa-Pza" firstAttribute="leading" secondItem="8m6-pP-lda" secondAttribute="leading" constant="20" symbolic="YES" id="FkN-p2-cZp"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="x9b-Qa-Pza" secondAttribute="trailing" constant="20" symbolic="YES" id="JHI-tD-twr"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="bKz-o1-gHv" secondAttribute="trailing" constant="20" symbolic="YES" id="Nde-K4-9wG"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="bKz-o1-gHv" secondAttribute="bottom" constant="20" symbolic="YES" id="b8g-US-LwY"/>
|
||||||
|
<constraint firstItem="bKz-o1-gHv" firstAttribute="top" secondItem="x9b-Qa-Pza" secondAttribute="bottom" constant="8" symbolic="YES" id="xcl-jC-fG7"/>
|
||||||
|
</constraints>
|
||||||
|
</tableViewCellContentView>
|
||||||
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
|
</tableViewCell>
|
||||||
|
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" shouldIndentWhileEditing="NO" rowHeight="97" id="R30-AU-bR6" userLabel="Sign Out">
|
||||||
|
<rect key="frame" x="0.0" y="97" width="320" height="97"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="R30-AU-bR6" id="f6h-Ff-2Qc">
|
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="R30-AU-bR6" id="f6h-Ff-2Qc">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="287" height="96"/>
|
<rect key="frame" x="0.0" y="0.0" width="287" height="96"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
@ -539,7 +573,7 @@
|
|||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
</tableViewCell>
|
</tableViewCell>
|
||||||
<tableViewCell contentMode="scaleToFill" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" shouldIndentWhileEditing="NO" rowHeight="216" id="B8R-iE-Ffe" userLabel="Default Password Type">
|
<tableViewCell contentMode="scaleToFill" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" shouldIndentWhileEditing="NO" rowHeight="216" id="B8R-iE-Ffe" userLabel="Default Password Type">
|
||||||
<rect key="frame" x="0.0" y="97" width="320" height="216"/>
|
<rect key="frame" x="0.0" y="194" width="320" height="216"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="B8R-iE-Ffe" id="8r5-Zc-TRj">
|
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="B8R-iE-Ffe" id="8r5-Zc-TRj">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="215"/>
|
<rect key="frame" x="0.0" y="0.0" width="320" height="215"/>
|
||||||
@ -605,7 +639,7 @@
|
|||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
</tableViewCell>
|
</tableViewCell>
|
||||||
<tableViewCell contentMode="scaleToFill" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" shouldIndentWhileEditing="NO" rowHeight="220" id="Sz1-JP-dw2" userLabel="Avatar">
|
<tableViewCell contentMode="scaleToFill" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" shouldIndentWhileEditing="NO" rowHeight="220" id="Sz1-JP-dw2" userLabel="Avatar">
|
||||||
<rect key="frame" x="0.0" y="313" width="320" height="220"/>
|
<rect key="frame" x="0.0" y="410" width="320" height="220"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Sz1-JP-dw2" id="R4X-LE-ir9">
|
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Sz1-JP-dw2" id="R4X-LE-ir9">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="219"/>
|
<rect key="frame" x="0.0" y="0.0" width="320" height="219"/>
|
||||||
@ -685,7 +719,7 @@
|
|||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
</tableViewCell>
|
</tableViewCell>
|
||||||
<tableViewCell contentMode="scaleToFill" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" shouldIndentWhileEditing="NO" rowHeight="230" id="fRZ-Uh-FR8" userLabel="Save Password">
|
<tableViewCell contentMode="scaleToFill" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" shouldIndentWhileEditing="NO" rowHeight="230" id="fRZ-Uh-FR8" userLabel="Save Password">
|
||||||
<rect key="frame" x="0.0" y="533" width="320" height="230"/>
|
<rect key="frame" x="0.0" y="630" width="320" height="230"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="fRZ-Uh-FR8" id="qCQ-L5-teL">
|
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="fRZ-Uh-FR8" id="qCQ-L5-teL">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="229"/>
|
<rect key="frame" x="0.0" y="0.0" width="320" height="229"/>
|
||||||
@ -729,7 +763,7 @@
|
|||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
</tableViewCell>
|
</tableViewCell>
|
||||||
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" shouldIndentWhileEditing="NO" rowHeight="97" id="9QG-lM-ymM" userLabel="Feedback">
|
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" shouldIndentWhileEditing="NO" rowHeight="97" id="9QG-lM-ymM" userLabel="Feedback">
|
||||||
<rect key="frame" x="0.0" y="763" width="320" height="97"/>
|
<rect key="frame" x="0.0" y="860" width="320" height="97"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="9QG-lM-ymM" id="hK8-XQ-lLz">
|
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="9QG-lM-ymM" id="hK8-XQ-lLz">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="287" height="96"/>
|
<rect key="frame" x="0.0" y="0.0" width="287" height="96"/>
|
||||||
@ -762,40 +796,6 @@
|
|||||||
</tableViewCellContentView>
|
</tableViewCellContentView>
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
</tableViewCell>
|
</tableViewCell>
|
||||||
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" shouldIndentWhileEditing="NO" rowHeight="97" id="eth-Dc-JYn" userLabel="Reveal Coachmarks">
|
|
||||||
<rect key="frame" x="0.0" y="860" width="320" height="97"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="eth-Dc-JYn" id="8m6-pP-lda">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="287" height="96"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Reveal Coachmarks" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="x9b-Qa-Pza">
|
|
||||||
<rect key="frame" x="20" y="20" width="247" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<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" text="Show the coachmarks in the app that briefly explain the different user interface elements." lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="247" translatesAutoresizingMaskIntoConstraints="NO" id="bKz-o1-gHv">
|
|
||||||
<rect key="frame" x="20" y="49" width="247" height="27"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" name="Exo2.0-Thin" family="Exo 2.0" pointSize="11"/>
|
|
||||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstItem="bKz-o1-gHv" firstAttribute="leading" secondItem="8m6-pP-lda" secondAttribute="leading" constant="20" symbolic="YES" id="0eE-CN-kk5"/>
|
|
||||||
<constraint firstItem="x9b-Qa-Pza" firstAttribute="top" secondItem="8m6-pP-lda" secondAttribute="top" constant="20" symbolic="YES" id="49Z-eX-muM"/>
|
|
||||||
<constraint firstItem="x9b-Qa-Pza" firstAttribute="leading" secondItem="8m6-pP-lda" secondAttribute="leading" constant="20" symbolic="YES" id="FkN-p2-cZp"/>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="x9b-Qa-Pza" secondAttribute="trailing" constant="20" symbolic="YES" id="JHI-tD-twr"/>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="bKz-o1-gHv" secondAttribute="trailing" constant="20" symbolic="YES" id="Nde-K4-9wG"/>
|
|
||||||
<constraint firstAttribute="bottom" secondItem="bKz-o1-gHv" secondAttribute="bottom" constant="20" symbolic="YES" id="b8g-US-LwY"/>
|
|
||||||
<constraint firstItem="bKz-o1-gHv" firstAttribute="top" secondItem="x9b-Qa-Pza" secondAttribute="bottom" constant="8" symbolic="YES" id="xcl-jC-fG7"/>
|
|
||||||
</constraints>
|
|
||||||
</tableViewCellContentView>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
</tableViewCell>
|
|
||||||
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" shouldIndentWhileEditing="NO" rowHeight="110" id="UdB-BV-AHA" userLabel="Check Inconsistencies">
|
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" shouldIndentWhileEditing="NO" rowHeight="110" id="UdB-BV-AHA" userLabel="Check Inconsistencies">
|
||||||
<rect key="frame" x="0.0" y="957" width="320" height="110"/>
|
<rect key="frame" x="0.0" y="957" width="320" height="110"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
@ -959,11 +959,11 @@
|
|||||||
<connections>
|
<connections>
|
||||||
<outlet property="avatarImage" destination="tWi-sc-DGp" id="ifT-Ct-WL6"/>
|
<outlet property="avatarImage" destination="tWi-sc-DGp" id="ifT-Ct-WL6"/>
|
||||||
<outlet property="checkInconsistencies" destination="UdB-BV-AHA" id="Cm2-Om-UzP"/>
|
<outlet property="checkInconsistencies" destination="UdB-BV-AHA" id="Cm2-Om-UzP"/>
|
||||||
<outlet property="coachmarksCell" destination="eth-Dc-JYn" id="0Tq-I3-SwK"/>
|
|
||||||
<outlet property="exportCell" destination="IVT-Rs-nTu" id="RU0-qr-Bdi"/>
|
<outlet property="exportCell" destination="IVT-Rs-nTu" id="RU0-qr-Bdi"/>
|
||||||
<outlet property="feedbackCell" destination="9QG-lM-ymM" id="18X-Ph-0ac"/>
|
<outlet property="feedbackCell" destination="9QG-lM-ymM" id="18X-Ph-0ac"/>
|
||||||
<outlet property="generatedTypeControl" destination="H8F-E0-dqF" id="CWy-G3-lL4"/>
|
<outlet property="generatedTypeControl" destination="H8F-E0-dqF" id="CWy-G3-lL4"/>
|
||||||
<outlet property="savePasswordSwitch" destination="Jr5-mX-nw0" id="eqq-Xo-9Iq"/>
|
<outlet property="savePasswordSwitch" destination="Jr5-mX-nw0" id="eqq-Xo-9Iq"/>
|
||||||
|
<outlet property="showHelpCell" destination="eth-Dc-JYn" id="0Tq-I3-SwK"/>
|
||||||
<outlet property="signOutCell" destination="R30-AU-bR6" id="Sam-x5-p3H"/>
|
<outlet property="signOutCell" destination="R30-AU-bR6" id="Sam-x5-p3H"/>
|
||||||
<outlet property="storedTypeControl" destination="Rei-aO-UBD" id="WGp-D2-DmU"/>
|
<outlet property="storedTypeControl" destination="Rei-aO-UBD" id="WGp-D2-DmU"/>
|
||||||
</connections>
|
</connections>
|
||||||
@ -1403,7 +1403,7 @@
|
|||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
</state>
|
</state>
|
||||||
<connections>
|
<connections>
|
||||||
<segue destination="0Pk-uR-lak" kind="custom" identifier="popdown" customClass="MPPopdownSegue" id="yUM-h4-9AM"/>
|
<segue destination="0Pk-uR-lak" kind="custom" identifier="popdown" customClass="MPPopdownSegue" id="Xez-9c-7oF"/>
|
||||||
</connections>
|
</connections>
|
||||||
</button>
|
</button>
|
||||||
</navigationItem>
|
</navigationItem>
|
||||||
@ -1522,7 +1522,7 @@
|
|||||||
<outlet property="popdownContainer" destination="bnY-br-a2v" id="7QN-qY-iCl"/>
|
<outlet property="popdownContainer" destination="bnY-br-a2v" id="7QN-qY-iCl"/>
|
||||||
<outlet property="popdownToTopConstraint" destination="BdD-Kc-eHl" id="59Y-ap-Yn4"/>
|
<outlet property="popdownToTopConstraint" destination="BdD-Kc-eHl" id="59Y-ap-Yn4"/>
|
||||||
<outlet property="popdownView" destination="XNM-XQ-rMe" id="FaW-4m-Fff"/>
|
<outlet property="popdownView" destination="XNM-XQ-rMe" id="FaW-4m-Fff"/>
|
||||||
<segue destination="a4U-1y-he6" kind="modal" identifier="coachmarks" modalTransitionStyle="crossDissolve" id="3Qm-Yj-DCb"/>
|
<segue destination="z9O-w0-6oR" kind="modal" identifier="guide" id="Ql4-wf-T8u"/>
|
||||||
</connections>
|
</connections>
|
||||||
</viewController>
|
</viewController>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="APh-u5-vFI" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="APh-u5-vFI" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
@ -1852,23 +1852,133 @@
|
|||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="2424" y="464"/>
|
<point key="canvasLocation" x="2424" y="464"/>
|
||||||
</scene>
|
</scene>
|
||||||
<!--View Controller-->
|
<!--Guide View Controller - Usage-->
|
||||||
<scene sceneID="9SY-7D-CE9">
|
<scene sceneID="9SY-7D-CE9">
|
||||||
<objects>
|
<objects>
|
||||||
<viewController storyboardIdentifier="x" id="z9O-w0-6oR" sceneMemberID="viewController">
|
<viewController storyboardIdentifier="x" id="z9O-w0-6oR" customClass="MPGuideViewController" sceneMemberID="viewController">
|
||||||
<layoutGuides>
|
<layoutGuides>
|
||||||
<viewControllerLayoutGuide type="top" id="EnC-Uo-cUP"/>
|
<viewControllerLayoutGuide type="top" id="EnC-Uo-cUP"/>
|
||||||
<viewControllerLayoutGuide type="bottom" id="fDn-y8-bUP"/>
|
<viewControllerLayoutGuide type="bottom" id="fDn-y8-bUP"/>
|
||||||
</layoutGuides>
|
</layoutGuides>
|
||||||
<view key="view" contentMode="scaleToFill" id="9l8-e1-3BO">
|
<view key="view" contentMode="scaleToFill" id="9l8-e1-3BO" userLabel="Root">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
<subviews>
|
||||||
|
<navigationBar contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="751" barStyle="black" translatesAutoresizingMaskIntoConstraints="NO" id="z0y-eW-npn" userLabel="Fake Navigation Bar">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="320" height="64"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||||
|
<items>
|
||||||
|
<navigationItem title="Usage" id="JSk-yT-9NA">
|
||||||
|
<barButtonItem key="rightBarButtonItem" title="Close" style="done" id="lJX-aM-NTy">
|
||||||
|
<connections>
|
||||||
|
<action selector="close:" destination="z9O-w0-6oR" id="Lwh-yR-GX0"/>
|
||||||
|
</connections>
|
||||||
|
</barButtonItem>
|
||||||
|
</navigationItem>
|
||||||
|
</items>
|
||||||
|
</navigationBar>
|
||||||
|
<pageControl opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" contentHorizontalAlignment="center" contentVerticalAlignment="center" numberOfPages="3" translatesAutoresizingMaskIntoConstraints="NO" id="8A2-ly-WTX">
|
||||||
|
<rect key="frame" x="141" y="523" width="39" height="37"/>
|
||||||
|
<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"/>
|
||||||
|
<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">
|
||||||
|
<size key="itemSize" width="320" height="458"/>
|
||||||
|
<size key="headerReferenceSize" width="0.0" height="0.0"/>
|
||||||
|
<size key="footerReferenceSize" width="0.0" height="0.0"/>
|
||||||
|
<inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
|
||||||
|
</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"/>
|
||||||
|
<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"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<subviews>
|
||||||
|
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="image-0.png" translatesAutoresizingMaskIntoConstraints="NO" id="6sF-iJ-8GW">
|
||||||
|
<rect key="frame" x="40" y="8" width="240" height="442"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
</imageView>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
</view>
|
</view>
|
||||||
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="6sF-iJ-8GW" firstAttribute="top" secondItem="oGu-pJ-3bQ" secondAttribute="top" constant="8" id="Lxq-3c-Hy0"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="6sF-iJ-8GW" secondAttribute="bottom" constant="8" id="evX-l9-KKx"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="6sF-iJ-8GW" secondAttribute="trailing" constant="40" id="gS8-7H-iFc"/>
|
||||||
|
<constraint firstItem="6sF-iJ-8GW" firstAttribute="leading" secondItem="oGu-pJ-3bQ" secondAttribute="leading" constant="40" id="orJ-1k-O71"/>
|
||||||
|
</constraints>
|
||||||
|
<connections>
|
||||||
|
<outlet property="imageView" destination="6sF-iJ-8GW" id="BgH-z4-jMu"/>
|
||||||
|
</connections>
|
||||||
|
</collectionViewCell>
|
||||||
|
</cells>
|
||||||
|
<connections>
|
||||||
|
<outlet property="dataSource" destination="z9O-w0-6oR" id="Tfo-Tq-gEx"/>
|
||||||
|
<outlet property="delegate" destination="z9O-w0-6oR" id="RcD-gy-C1W"/>
|
||||||
|
</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"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
|
||||||
|
<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"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<string key="text" base64-UTF8="YES">
|
||||||
|
CgoKCgoKCgoKCgoKCg
|
||||||
|
</string>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||||
|
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" cocoaTouchSystemColor="viewFlipsideBackgroundColor"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="i2y-lo-HXR" firstAttribute="top" secondItem="z0y-eW-npn" secondAttribute="bottom" id="4NN-YN-Rxh"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="ciw-56-nNy" secondAttribute="trailing" constant="20" symbolic="YES" id="Cir-5Q-wV6"/>
|
||||||
|
<constraint firstItem="z0y-eW-npn" firstAttribute="bottom" secondItem="EnC-Uo-cUP" secondAttribute="bottom" constant="44" id="Dog-BR-i9l"/>
|
||||||
|
<constraint firstItem="i2y-lo-HXR" firstAttribute="leading" secondItem="9l8-e1-3BO" secondAttribute="leading" id="ECk-yT-u1U"/>
|
||||||
|
<constraint firstAttribute="centerX" secondItem="8A2-ly-WTX" secondAttribute="centerX" id="R9V-M2-Feu"/>
|
||||||
|
<constraint firstItem="z0y-eW-npn" firstAttribute="top" secondItem="9l8-e1-3BO" secondAttribute="top" id="THU-Ja-YlV"/>
|
||||||
|
<constraint firstItem="fDn-y8-bUP" firstAttribute="top" secondItem="8A2-ly-WTX" secondAttribute="bottom" constant="20" symbolic="YES" id="Wzh-OK-8av"/>
|
||||||
|
<constraint firstItem="8A2-ly-WTX" firstAttribute="top" secondItem="ciw-56-nNy" secondAttribute="bottom" constant="8" symbolic="YES" id="Xdn-oB-dUr"/>
|
||||||
|
<constraint firstItem="ciw-56-nNy" firstAttribute="top" secondItem="Oop-Ff-gbz" secondAttribute="top" id="ZCi-IU-AQj"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="i2y-lo-HXR" secondAttribute="trailing" id="a0p-ms-oqA"/>
|
||||||
|
<constraint firstItem="ciw-56-nNy" firstAttribute="top" secondItem="i2y-lo-HXR" secondAttribute="bottom" constant="8" symbolic="YES" id="dn3-Cj-x51"/>
|
||||||
|
<constraint firstItem="z0y-eW-npn" firstAttribute="leading" secondItem="9l8-e1-3BO" secondAttribute="leading" id="eDB-OY-eog"/>
|
||||||
|
<constraint firstItem="ciw-56-nNy" firstAttribute="leading" secondItem="9l8-e1-3BO" secondAttribute="leading" constant="20" symbolic="YES" id="eLR-Qf-8Uj"/>
|
||||||
|
<constraint firstItem="ciw-56-nNy" firstAttribute="leading" secondItem="Oop-Ff-gbz" secondAttribute="leading" id="fZA-TL-P91"/>
|
||||||
|
<constraint firstItem="ciw-56-nNy" firstAttribute="bottom" secondItem="Oop-Ff-gbz" secondAttribute="bottom" id="k5D-W2-bdt"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="z0y-eW-npn" secondAttribute="trailing" id="lVg-3k-QeE"/>
|
||||||
|
<constraint firstItem="i2y-lo-HXR" firstAttribute="top" secondItem="EnC-Uo-cUP" secondAttribute="bottom" priority="750" id="pdi-sO-O4v"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
<navigationItem key="navigationItem" title="Usage" id="DLb-Co-APh">
|
||||||
|
<barButtonItem key="rightBarButtonItem" title="Close" style="done" id="evm-JP-NwO">
|
||||||
|
<connections>
|
||||||
|
<action selector="close:" destination="z9O-w0-6oR" id="Mjy-qr-iiN"/>
|
||||||
|
</connections>
|
||||||
|
</barButtonItem>
|
||||||
|
</navigationItem>
|
||||||
|
<connections>
|
||||||
|
<outlet property="captionLabel" destination="ciw-56-nNy" id="a5c-QW-JHm"/>
|
||||||
|
<outlet property="collectionView" destination="i2y-lo-HXR" id="tSP-UU-fG5"/>
|
||||||
|
<outlet property="navigationBar" destination="z0y-eW-npn" id="TtX-3X-dcT"/>
|
||||||
|
<outlet property="pageControl" destination="8A2-ly-WTX" id="H0t-Kq-vZJ"/>
|
||||||
|
</connections>
|
||||||
</viewController>
|
</viewController>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="fiE-U7-p6y" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="fiE-U7-p6y" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="2866" y="464"/>
|
<point key="canvasLocation" x="1887" y="1936"/>
|
||||||
</scene>
|
</scene>
|
||||||
<!--View Controller-->
|
<!--View Controller-->
|
||||||
<scene sceneID="qiQ-By-IQy">
|
<scene sceneID="qiQ-By-IQy">
|
||||||
@ -1886,7 +1996,7 @@
|
|||||||
</viewController>
|
</viewController>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="OKk-Ht-Uzq" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="OKk-Ht-Uzq" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="2866" y="-272"/>
|
<point key="canvasLocation" x="2961" y="-272"/>
|
||||||
</scene>
|
</scene>
|
||||||
<!--Logs View Controller - Logbook-->
|
<!--Logs View Controller - Logbook-->
|
||||||
<scene sceneID="cks-mO-kuy">
|
<scene sceneID="cks-mO-kuy">
|
||||||
@ -2222,437 +2332,6 @@ However, it means that anyone who finds your device unlocked can do the same.</s
|
|||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="1887" y="2672"/>
|
<point key="canvasLocation" x="1887" y="2672"/>
|
||||||
</scene>
|
</scene>
|
||||||
<!--Passwords Coachmark View Controller-->
|
|
||||||
<scene sceneID="9jg-z5-KnK">
|
|
||||||
<objects>
|
|
||||||
<viewController automaticallyAdjustsScrollViewInsets="NO" id="a4U-1y-he6" customClass="MPPasswordsCoachmarkViewController" sceneMemberID="viewController">
|
|
||||||
<layoutGuides>
|
|
||||||
<viewControllerLayoutGuide type="top" id="YPK-zp-lBz"/>
|
|
||||||
<viewControllerLayoutGuide type="bottom" id="dif-kp-Fcg"/>
|
|
||||||
</layoutGuides>
|
|
||||||
<view key="view" contentMode="scaleToFill" id="b24-Hr-nC2" userLabel="Root" customClass="PearlUIView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="G6q-gV-ttC" userLabel="Passwords Root" customClass="PearlUIView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="APQ-r2-UhH" userLabel="Passwords Container">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<collectionView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" minimumZoomScale="0.0" maximumZoomScale="0.0" keyboardDismissMode="onDrag" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="scR-fD-I84" userLabel="Password Collection">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
<inset key="scrollIndicatorInsets" minX="0.0" minY="108" maxX="0.0" maxY="0.0"/>
|
|
||||||
<collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="gQO-JL-J1g">
|
|
||||||
<size key="itemSize" width="300" height="100"/>
|
|
||||||
<size key="headerReferenceSize" width="0.0" height="108"/>
|
|
||||||
<size key="footerReferenceSize" width="0.0" height="0.0"/>
|
|
||||||
<inset key="sectionInset" minX="10" minY="10" maxX="10" maxY="10"/>
|
|
||||||
</collectionViewFlowLayout>
|
|
||||||
<cells>
|
|
||||||
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="MPPasswordLargeGeneratedCell" id="6HR-rB-Aq4" userLabel="Generated" customClass="MPPasswordLargeGeneratedCell">
|
|
||||||
<rect key="frame" x="10" y="118" width="300" height="100"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="300" height="100"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.029999999329447746" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Long Password" lineBreakMode="clip" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="X3M-0e-7CN" userLabel="Type">
|
|
||||||
<rect key="frame" x="-10" y="19" width="604" height="101"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" name="Exo2.0-Bold" family="Exo 2.0" pointSize="84"/>
|
|
||||||
<color key="textColor" cocoaTouchSystemColor="lightTextColor"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="SadwGafy7^Sidu" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="dUW-Tf-ck9" userLabel="Content">
|
|
||||||
<rect key="frame" x="8" y="20" width="284" 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"/>
|
|
||||||
</textField>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.5" contentMode="left" text="apple.com" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="osk-LW-Vzb" userLabel="Site Name">
|
|
||||||
<rect key="frame" x="8" y="71" width="284" height="14"/>
|
|
||||||
<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"/>
|
|
||||||
<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>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.5" contentMode="left" text="1" textAlignment="right" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="IkN-Fh-liV" userLabel="Counter">
|
|
||||||
<rect key="frame" x="216" y="69" width="11" height="19"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" hint="Site's counter."/>
|
|
||||||
<fontDescription key="fontDescription" name="Copperplate-Bold" family="Copperplate" pointSize="17"/>
|
|
||||||
<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" highlighted="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Kzf-fQ-sjL" userLabel="Incrementer">
|
|
||||||
<rect key="frame" x="221" y="56" width="44" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" hint="Increments the site counter."/>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstAttribute="height" constant="44" id="7YR-uH-HmF"/>
|
|
||||||
<constraint firstAttribute="width" constant="44" id="ZDK-n2-fhI"/>
|
|
||||||
</constraints>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<inset key="contentEdgeInsets" minX="6" minY="6" maxX="6" maxY="6"/>
|
|
||||||
<state key="normal" image="icon_plus.png">
|
|
||||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted">
|
|
||||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" alpha="0.5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="T3n-dY-rfl" userLabel="User">
|
|
||||||
<rect key="frame" x="256" y="56" width="44" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" hint="Upgrades the password."/>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstAttribute="height" constant="44" id="QRx-Bo-2U7"/>
|
|
||||||
<constraint firstAttribute="width" constant="44" id="kxz-mj-td2"/>
|
|
||||||
</constraints>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<inset key="contentEdgeInsets" minX="6" minY="6" maxX="6" maxY="6"/>
|
|
||||||
<state key="normal" image="icon_person.png">
|
|
||||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted">
|
|
||||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
<color key="backgroundColor" red="0.18823529410000001" green="0.18823529410000001" blue="0.18823529410000001" alpha="0.5" colorSpace="calibratedRGB"/>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstItem="Kzf-fQ-sjL" firstAttribute="centerY" secondItem="IkN-Fh-liV" secondAttribute="centerY" id="1Ph-6t-z0y"/>
|
|
||||||
<constraint firstItem="X3M-0e-7CN" firstAttribute="leading" secondItem="6HR-rB-Aq4" secondAttribute="leading" constant="-10" id="EH3-Fe-wi6"/>
|
|
||||||
<constraint firstItem="osk-LW-Vzb" firstAttribute="centerY" secondItem="IkN-Fh-liV" secondAttribute="centerY" id="H2G-MC-JPG"/>
|
|
||||||
<constraint firstItem="Kzf-fQ-sjL" firstAttribute="leading" secondItem="IkN-Fh-liV" secondAttribute="trailing" constant="-6" id="H8U-Re-7I1"/>
|
|
||||||
<constraint firstItem="dUW-Tf-ck9" firstAttribute="leading" secondItem="6HR-rB-Aq4" secondAttribute="leading" constant="8" id="H8s-1V-fmd"/>
|
|
||||||
<constraint firstItem="T3n-dY-rfl" firstAttribute="centerY" secondItem="Kzf-fQ-sjL" secondAttribute="centerY" id="IoL-Jk-sZ3"/>
|
|
||||||
<constraint firstItem="T3n-dY-rfl" firstAttribute="leading" secondItem="Kzf-fQ-sjL" secondAttribute="trailing" constant="-9" id="J3A-Lb-zc0"/>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="osk-LW-Vzb" secondAttribute="trailing" constant="8" id="K2p-e3-3c4"/>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="T3n-dY-rfl" secondAttribute="trailing" id="K51-r4-Kvo"/>
|
|
||||||
<constraint firstAttribute="bottom" secondItem="X3M-0e-7CN" secondAttribute="bottom" constant="-20" id="KMs-aZ-6Un"/>
|
|
||||||
<constraint firstItem="osk-LW-Vzb" firstAttribute="leading" secondItem="6HR-rB-Aq4" secondAttribute="leading" constant="8" id="Rcj-RM-GKv"/>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="dUW-Tf-ck9" secondAttribute="trailing" constant="8" id="bpf-2y-o15"/>
|
|
||||||
<constraint firstItem="dUW-Tf-ck9" firstAttribute="top" secondItem="6HR-rB-Aq4" secondAttribute="top" constant="20" id="brm-sc-y3u"/>
|
|
||||||
<constraint firstAttribute="bottom" secondItem="T3n-dY-rfl" secondAttribute="bottom" id="cj3-Of-wq2"/>
|
|
||||||
</constraints>
|
|
||||||
</collectionViewCell>
|
|
||||||
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="MPPasswordLargeStoredCell" id="dUb-yf-LDP" userLabel="Stored" customClass="MPPasswordLargeStoredCell">
|
|
||||||
<rect key="frame" x="10" y="228" width="300" height="100"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="300" height="100"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.029999999329447746" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Personal Password" lineBreakMode="clip" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="py5-gO-cD5" userLabel="Type">
|
|
||||||
<rect key="frame" x="-10" y="19" width="763" height="101"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" name="Exo2.0-Bold" family="Exo 2.0" pointSize="84"/>
|
|
||||||
<color key="textColor" cocoaTouchSystemColor="lightTextColor"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="Pas$w0rD" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="LmU-xM-THl" userLabel="Content">
|
|
||||||
<rect key="frame" x="8" y="20" width="284" 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"/>
|
|
||||||
</textField>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.5" contentMode="left" text="gmail.com" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="2R5-IF-DAr" userLabel="Site Name">
|
|
||||||
<rect key="frame" x="8" y="71" width="284" height="14"/>
|
|
||||||
<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"/>
|
|
||||||
<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" highlighted="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fH6-Xn-WgC" userLabel="User">
|
|
||||||
<rect key="frame" x="256" y="56" width="44" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" hint="Upgrades the password."/>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstAttribute="width" constant="44" id="ZzI-rr-SHu"/>
|
|
||||||
<constraint firstAttribute="height" constant="44" id="sO7-pb-16X"/>
|
|
||||||
</constraints>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<inset key="contentEdgeInsets" minX="6" minY="6" maxX="6" maxY="6"/>
|
|
||||||
<state key="normal" image="icon_person.png">
|
|
||||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted">
|
|
||||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
<color key="backgroundColor" red="0.18823529410000001" green="0.15686274510000001" blue="0.15686274510000001" alpha="0.5" colorSpace="calibratedRGB"/>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstItem="LmU-xM-THl" firstAttribute="top" secondItem="dUb-yf-LDP" secondAttribute="top" constant="20" id="4Qb-zG-vdo"/>
|
|
||||||
<constraint firstAttribute="bottom" secondItem="fH6-Xn-WgC" secondAttribute="bottom" id="5ii-qa-Med"/>
|
|
||||||
<constraint firstItem="LmU-xM-THl" firstAttribute="leading" secondItem="dUb-yf-LDP" secondAttribute="leading" constant="8" id="9HO-Rv-hYk"/>
|
|
||||||
<constraint firstItem="py5-gO-cD5" firstAttribute="leading" secondItem="dUb-yf-LDP" secondAttribute="leading" constant="-10" id="E2q-be-YEn"/>
|
|
||||||
<constraint firstAttribute="bottom" secondItem="py5-gO-cD5" secondAttribute="bottom" constant="-20" id="LYF-a1-URA"/>
|
|
||||||
<constraint firstItem="2R5-IF-DAr" firstAttribute="leading" secondItem="dUb-yf-LDP" secondAttribute="leading" constant="8" id="LfC-km-dM8"/>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="LmU-xM-THl" secondAttribute="trailing" constant="8" id="SI3-DZ-ST3"/>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="fH6-Xn-WgC" secondAttribute="trailing" id="Yno-XO-5rv"/>
|
|
||||||
<constraint firstItem="2R5-IF-DAr" firstAttribute="centerY" secondItem="fH6-Xn-WgC" secondAttribute="centerY" id="fAu-Lv-ght"/>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="2R5-IF-DAr" secondAttribute="trailing" constant="8" id="pvb-sj-PUV"/>
|
|
||||||
</constraints>
|
|
||||||
</collectionViewCell>
|
|
||||||
</cells>
|
|
||||||
<collectionReusableView key="sectionHeaderView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="MPPasswordHeader" id="ttf-pq-CbW">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="108"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
</collectionReusableView>
|
|
||||||
<connections>
|
|
||||||
<outlet property="dataSource" destination="a4U-1y-he6" id="rgt-9E-y3S"/>
|
|
||||||
<outlet property="delegate" destination="a4U-1y-he6" id="ye7-Tu-q7w"/>
|
|
||||||
</connections>
|
|
||||||
</collectionView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.40000000000000002" colorSpace="calibratedWhite"/>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="scR-fD-I84" secondAttribute="trailing" id="1z4-tS-Vyd"/>
|
|
||||||
<constraint firstItem="scR-fD-I84" firstAttribute="leading" secondItem="APQ-r2-UhH" secondAttribute="leading" id="E2f-Sx-gEy"/>
|
|
||||||
<constraint firstItem="scR-fD-I84" firstAttribute="top" secondItem="APQ-r2-UhH" secondAttribute="top" id="ey5-4P-Ews"/>
|
|
||||||
<constraint firstAttribute="bottom" secondItem="scR-fD-I84" secondAttribute="bottom" id="uIa-K7-YgH"/>
|
|
||||||
</constraints>
|
|
||||||
</view>
|
|
||||||
<navigationBar opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="251" barStyle="black" translatesAutoresizingMaskIntoConstraints="NO" id="H1q-gJ-4fo" userLabel="Navigation" customClass="PearlUINavigationBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="64"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<items>
|
|
||||||
<navigationItem id="T3y-At-dlY">
|
|
||||||
<nil key="title"/>
|
|
||||||
<view key="titleView" contentMode="scaleToFill" id="NJ7-FJ-2Rq">
|
|
||||||
<rect key="frame" x="142" y="24" width="36" height="36"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="avatar-0.png" translatesAutoresizingMaskIntoConstraints="NO" id="Ylm-mE-LfW" userLabel="Avatar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="36" height="36"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="tintColor" red="0.47450980390000003" green="0.86666666670000003" blue="0.98431372549999996" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstAttribute="width" constant="36" id="3Cs-fs-t6n"/>
|
|
||||||
<constraint firstAttribute="width" secondItem="Ylm-mE-LfW" secondAttribute="height" multiplier="1:1" id="lsO-e7-Qgo"/>
|
|
||||||
</constraints>
|
|
||||||
</imageView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstItem="Ylm-mE-LfW" firstAttribute="top" secondItem="NJ7-FJ-2Rq" secondAttribute="top" id="B9l-DZ-OHs"/>
|
|
||||||
<constraint firstAttribute="bottom" secondItem="Ylm-mE-LfW" secondAttribute="bottom" id="MBs-DZ-SQi"/>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="Ylm-mE-LfW" secondAttribute="trailing" id="ctl-Yr-yGt"/>
|
|
||||||
<constraint firstItem="Ylm-mE-LfW" firstAttribute="leading" secondItem="NJ7-FJ-2Rq" secondAttribute="leading" id="oCP-WA-8Oe"/>
|
|
||||||
</constraints>
|
|
||||||
</view>
|
|
||||||
</navigationItem>
|
|
||||||
</items>
|
|
||||||
<userDefinedRuntimeAttributes>
|
|
||||||
<userDefinedRuntimeAttribute type="boolean" keyPath="ignoreTouches" value="YES"/>
|
|
||||||
</userDefinedRuntimeAttributes>
|
|
||||||
</navigationBar>
|
|
||||||
<toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" barStyle="black" translatesAutoresizingMaskIntoConstraints="NO" id="hqP-FG-C0l">
|
|
||||||
<rect key="frame" x="0.0" y="64" width="320" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
|
||||||
<items/>
|
|
||||||
</toolbar>
|
|
||||||
<searchBar contentMode="redraw" barStyle="black" searchBarStyle="minimal" placeholder="eg. apple.com" translatesAutoresizingMaskIntoConstraints="NO" id="Pl5-3l-hZm">
|
|
||||||
<rect key="frame" x="0.0" y="64" width="320" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="URL"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="delegate" destination="a4U-1y-he6" id="xck-3c-AoG"/>
|
|
||||||
</connections>
|
|
||||||
</searchBar>
|
|
||||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kmo-c1-5dK" userLabel="Shade">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hqT-j3-SlJ" userLabel="Close Button">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.59999999999999998" colorSpace="calibratedWhite"/>
|
|
||||||
<state key="normal">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<connections>
|
|
||||||
<action selector="close:" destination="a4U-1y-he6" eventType="touchUpInside" id="dLv-Dh-bHi"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Preferences and Sign Out" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3eY-lZ-dPZ">
|
|
||||||
<rect key="frame" x="63" y="32" width="194" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<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>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Enter your site's name" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SCn-dQ-xrj">
|
|
||||||
<rect key="frame" x="75" y="76" width="171" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<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>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Tap to copy the site password" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ScF-Yu-oFB">
|
|
||||||
<rect key="frame" x="66" y="120" width="189" height="17"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<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" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="right" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="196" translatesAutoresizingMaskIntoConstraints="NO" id="0Qe-Pv-mvu">
|
|
||||||
<rect key="frame" x="24" y="175" width="196" height="51"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<string key="text">Password counter:
|
|
||||||
Tap it to make a new password
|
|
||||||
Hold it to reset the counter</string>
|
|
||||||
<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" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="right" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="139" translatesAutoresizingMaskIntoConstraints="NO" id="sE1-UW-xsu">
|
|
||||||
<rect key="frame" x="131" y="285" width="139" height="34"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<string key="text">Tap to see or set
|
|
||||||
your site's login name</string>
|
|
||||||
<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" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="231" translatesAutoresizingMaskIntoConstraints="NO" id="fo1-XN-xu3">
|
|
||||||
<rect key="frame" x="45" y="350" width="231" height="41"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<string key="text">Swipe sites left & right
|
|
||||||
to change type or delete them</string>
|
|
||||||
<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>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Tap to dismiss" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="78" translatesAutoresizingMaskIntoConstraints="NO" id="Ow6-UF-yHx">
|
|
||||||
<rect key="frame" x="121" y="533" width="78" height="15"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<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>
|
|
||||||
<progressView opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="750" progress="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="U1E-SN-YvR">
|
|
||||||
<rect key="frame" x="0.0" y="566" width="320" height="2"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="progressTintColor" red="0.47450980390000003" green="0.86666666670000003" blue="0.98431372549999996" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<color key="trackTintColor" red="0.37254901959999998" green="0.3921568627" blue="0.42745098040000001" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
</progressView>
|
|
||||||
</subviews>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstAttribute="centerX" secondItem="Ow6-UF-yHx" secondAttribute="centerX" constant="0.5" id="7jq-PO-Hfm"/>
|
|
||||||
<constraint firstItem="hqT-j3-SlJ" firstAttribute="leading" secondItem="kmo-c1-5dK" secondAttribute="leading" id="AVB-1q-IzS"/>
|
|
||||||
<constraint firstAttribute="bottom" secondItem="hqT-j3-SlJ" secondAttribute="bottom" id="J23-69-b3a"/>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="U1E-SN-YvR" secondAttribute="trailing" id="Vii-V2-rrP"/>
|
|
||||||
<constraint firstItem="U1E-SN-YvR" firstAttribute="leading" secondItem="kmo-c1-5dK" secondAttribute="leading" id="X5h-Sk-d7Q"/>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="hqT-j3-SlJ" secondAttribute="trailing" id="Y0c-iq-5u2"/>
|
|
||||||
<constraint firstItem="hqT-j3-SlJ" firstAttribute="top" secondItem="kmo-c1-5dK" secondAttribute="top" id="aVa-Mp-GeF"/>
|
|
||||||
<constraint firstAttribute="bottom" secondItem="U1E-SN-YvR" secondAttribute="bottom" id="kKB-h5-75J"/>
|
|
||||||
<constraint firstAttribute="bottom" secondItem="Ow6-UF-yHx" secondAttribute="bottom" constant="20" symbolic="YES" id="onU-kU-PZf"/>
|
|
||||||
</constraints>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstItem="kmo-c1-5dK" firstAttribute="leading" secondItem="G6q-gV-ttC" secondAttribute="leading" id="0Af-mM-hkv"/>
|
|
||||||
<constraint firstItem="Pl5-3l-hZm" firstAttribute="bottom" secondItem="hqP-FG-C0l" secondAttribute="bottom" id="1mE-B7-25L"/>
|
|
||||||
<constraint firstItem="kmo-c1-5dK" firstAttribute="top" secondItem="G6q-gV-ttC" secondAttribute="top" id="28o-F2-RGP"/>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="APQ-r2-UhH" secondAttribute="trailing" id="2t5-2T-SHL"/>
|
|
||||||
<constraint firstItem="H1q-gJ-4fo" firstAttribute="top" secondItem="G6q-gV-ttC" secondAttribute="top" priority="500" id="344-Wc-JGW"/>
|
|
||||||
<constraint firstItem="ScF-Yu-oFB" firstAttribute="top" secondItem="scR-fD-I84" secondAttribute="top" constant="120" id="3a0-gY-6hu"/>
|
|
||||||
<constraint firstItem="APQ-r2-UhH" firstAttribute="leading" secondItem="G6q-gV-ttC" secondAttribute="leading" id="5Bi-F6-Oep"/>
|
|
||||||
<constraint firstItem="APQ-r2-UhH" firstAttribute="height" secondItem="G6q-gV-ttC" secondAttribute="height" id="8Z1-61-UNR"/>
|
|
||||||
<constraint firstItem="Pl5-3l-hZm" firstAttribute="leading" secondItem="hqP-FG-C0l" secondAttribute="leading" id="Fg9-fU-Ygs"/>
|
|
||||||
<constraint firstItem="0Qe-Pv-mvu" firstAttribute="top" secondItem="scR-fD-I84" secondAttribute="top" constant="175" id="Hmt-fC-YHy"/>
|
|
||||||
<constraint firstItem="sE1-UW-xsu" firstAttribute="top" secondItem="scR-fD-I84" secondAttribute="top" constant="285" id="IrP-eO-cwb"/>
|
|
||||||
<constraint firstItem="Pl5-3l-hZm" firstAttribute="centerY" secondItem="SCn-dQ-xrj" secondAttribute="centerY" id="KfO-De-Ogw"/>
|
|
||||||
<constraint firstItem="H1q-gJ-4fo" firstAttribute="leading" secondItem="G6q-gV-ttC" secondAttribute="leading" id="LqD-4f-udU"/>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="H1q-gJ-4fo" secondAttribute="trailing" id="Lqj-25-GGH"/>
|
|
||||||
<constraint firstItem="ScF-Yu-oFB" firstAttribute="centerX" secondItem="scR-fD-I84" secondAttribute="centerX" id="Nhw-fy-vlr"/>
|
|
||||||
<constraint firstItem="H1q-gJ-4fo" firstAttribute="centerX" secondItem="3eY-lZ-dPZ" secondAttribute="centerX" id="OSq-65-mVB"/>
|
|
||||||
<constraint firstAttribute="top" secondItem="Pl5-3l-hZm" secondAttribute="bottom" priority="1" id="OVm-5o-HqY"/>
|
|
||||||
<constraint firstAttribute="bottom" secondItem="kmo-c1-5dK" secondAttribute="bottom" id="SdV-Qs-hc8"/>
|
|
||||||
<constraint firstItem="Pl5-3l-hZm" firstAttribute="top" secondItem="hqP-FG-C0l" secondAttribute="top" id="WAD-ha-hzG"/>
|
|
||||||
<constraint firstItem="Pl5-3l-hZm" firstAttribute="centerX" secondItem="SCn-dQ-xrj" secondAttribute="centerX" id="XGh-UZ-5oV"/>
|
|
||||||
<constraint firstItem="0Qe-Pv-mvu" firstAttribute="trailing" secondItem="scR-fD-I84" secondAttribute="trailing" constant="-100" id="YBh-av-eG6"/>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="Pl5-3l-hZm" secondAttribute="trailing" id="Zih-As-2ck"/>
|
|
||||||
<constraint firstItem="APQ-r2-UhH" firstAttribute="top" secondItem="G6q-gV-ttC" secondAttribute="bottom" priority="1" id="e2a-e6-60c"/>
|
|
||||||
<constraint firstItem="H1q-gJ-4fo" firstAttribute="centerY" secondItem="3eY-lZ-dPZ" secondAttribute="centerY" constant="-10" id="f00-OP-SMP"/>
|
|
||||||
<constraint firstItem="Pl5-3l-hZm" firstAttribute="trailing" secondItem="hqP-FG-C0l" secondAttribute="trailing" id="fY7-b8-QvS"/>
|
|
||||||
<constraint firstItem="sE1-UW-xsu" firstAttribute="trailing" secondItem="scR-fD-I84" secondAttribute="trailing" constant="-50" id="mYK-VX-sXS"/>
|
|
||||||
<constraint firstItem="Pl5-3l-hZm" firstAttribute="leading" secondItem="G6q-gV-ttC" secondAttribute="leading" id="rvo-bl-s3l"/>
|
|
||||||
<constraint firstItem="APQ-r2-UhH" firstAttribute="top" secondItem="G6q-gV-ttC" secondAttribute="top" priority="500" id="tWE-hD-v8C"/>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="kmo-c1-5dK" secondAttribute="trailing" id="vS2-jK-lnf"/>
|
|
||||||
<constraint firstItem="scR-fD-I84" firstAttribute="top" secondItem="fo1-XN-xu3" secondAttribute="top" constant="-350" id="vcg-RU-HhB"/>
|
|
||||||
<constraint firstItem="Pl5-3l-hZm" firstAttribute="top" secondItem="H1q-gJ-4fo" secondAttribute="bottom" id="y0v-su-3mS"/>
|
|
||||||
<constraint firstItem="scR-fD-I84" firstAttribute="centerX" secondItem="fo1-XN-xu3" secondAttribute="centerX" id="yPs-uO-1Ry"/>
|
|
||||||
</constraints>
|
|
||||||
<userDefinedRuntimeAttributes>
|
|
||||||
<userDefinedRuntimeAttribute type="boolean" keyPath="ignoreTouches" value="YES"/>
|
|
||||||
</userDefinedRuntimeAttributes>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" cocoaTouchSystemColor="viewFlipsideBackgroundColor"/>
|
|
||||||
<constraints>
|
|
||||||
<constraint firstAttribute="trailing" secondItem="G6q-gV-ttC" secondAttribute="trailing" id="3El-nK-KJp"/>
|
|
||||||
<constraint firstAttribute="top" secondItem="G6q-gV-ttC" secondAttribute="top" id="657-SB-Vhu"/>
|
|
||||||
<constraint firstItem="dif-kp-Fcg" firstAttribute="top" secondItem="G6q-gV-ttC" secondAttribute="bottom" id="a0s-mp-tUk"/>
|
|
||||||
<constraint firstItem="H1q-gJ-4fo" firstAttribute="bottom" secondItem="YPK-zp-lBz" secondAttribute="bottom" priority="500" constant="44" id="got-ur-VGU"/>
|
|
||||||
<constraint firstItem="G6q-gV-ttC" firstAttribute="leading" secondItem="b24-Hr-nC2" secondAttribute="leading" id="lcp-FG-zHy"/>
|
|
||||||
</constraints>
|
|
||||||
<userDefinedRuntimeAttributes>
|
|
||||||
<userDefinedRuntimeAttribute type="boolean" keyPath="ignoreTouches" value="YES"/>
|
|
||||||
</userDefinedRuntimeAttributes>
|
|
||||||
</view>
|
|
||||||
<connections>
|
|
||||||
<outlet property="view0" destination="3eY-lZ-dPZ" id="aVZ-eY-8fv"/>
|
|
||||||
<outlet property="view1" destination="SCn-dQ-xrj" id="zLZ-LF-18D"/>
|
|
||||||
<outlet property="view2" destination="ScF-Yu-oFB" id="4PX-Ji-muD"/>
|
|
||||||
<outlet property="view3" destination="0Qe-Pv-mvu" id="5Bz-2c-nzB"/>
|
|
||||||
<outlet property="view4" destination="sE1-UW-xsu" id="xiu-ri-2RO"/>
|
|
||||||
<outlet property="view5" destination="fo1-XN-xu3" id="kSi-5O-QzP"/>
|
|
||||||
<outlet property="viewProgress" destination="U1E-SN-YvR" id="7rX-5w-Ngz"/>
|
|
||||||
</connections>
|
|
||||||
</viewController>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sign Out" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="0sm-0Q-eah">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="67" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" name="Exo2.0-Bold" 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>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="Qy9-t1-6gT" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
|
||||||
</objects>
|
|
||||||
<point key="canvasLocation" x="1887" y="1936"/>
|
|
||||||
</scene>
|
|
||||||
<!--Setup View Controller - About-->
|
<!--Setup View Controller - About-->
|
||||||
<scene sceneID="p3O-pB-vAg">
|
<scene sceneID="p3O-pB-vAg">
|
||||||
<objects>
|
<objects>
|
||||||
@ -2818,17 +2497,40 @@ See </string>
|
|||||||
</constraints>
|
</constraints>
|
||||||
</view>
|
</view>
|
||||||
<navigationItem key="navigationItem" title="About" id="hKn-HH-Uq1">
|
<navigationItem key="navigationItem" title="About" id="hKn-HH-Uq1">
|
||||||
<barButtonItem key="rightBarButtonItem" title="Close" style="done" id="C6X-M4-LPa">
|
<barButtonItem key="leftBarButtonItem" title="Close" style="done" id="C6X-M4-LPa">
|
||||||
<connections>
|
<connections>
|
||||||
<action selector="close:" destination="ZJ6-pe-kyr" id="dNl-ls-U0S"/>
|
<action selector="close:" destination="ZJ6-pe-kyr" id="dNl-ls-U0S"/>
|
||||||
</connections>
|
</connections>
|
||||||
</barButtonItem>
|
</barButtonItem>
|
||||||
|
<barButtonItem key="rightBarButtonItem" title="Short Guide" id="s82-d0-8qj">
|
||||||
|
<connections>
|
||||||
|
<segue destination="z9O-w0-6oR" kind="push" id="k2G-nL-x3l"/>
|
||||||
|
</connections>
|
||||||
|
</barButtonItem>
|
||||||
</navigationItem>
|
</navigationItem>
|
||||||
</viewController>
|
</viewController>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="xht-w2-261" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="xht-w2-261" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="2424" y="2672"/>
|
<point key="canvasLocation" x="2424" y="2672"/>
|
||||||
</scene>
|
</scene>
|
||||||
|
<!--View Controller-->
|
||||||
|
<scene sceneID="D1h-xG-jy2">
|
||||||
|
<objects>
|
||||||
|
<viewController storyboardIdentifier="z" id="2YR-fB-hdq" sceneMemberID="viewController">
|
||||||
|
<layoutGuides>
|
||||||
|
<viewControllerLayoutGuide type="top" id="Z82-Sy-cpI"/>
|
||||||
|
<viewControllerLayoutGuide type="bottom" id="nll-b7-yHd"/>
|
||||||
|
</layoutGuides>
|
||||||
|
<view key="view" contentMode="scaleToFill" id="xHD-So-hnl">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||||
|
</view>
|
||||||
|
</viewController>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="6di-Zc-lpO" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
|
</objects>
|
||||||
|
<point key="canvasLocation" x="3498" y="-272"/>
|
||||||
|
</scene>
|
||||||
</scenes>
|
</scenes>
|
||||||
<resources>
|
<resources>
|
||||||
<image name="avatar-0.png" width="110" height="110"/>
|
<image name="avatar-0.png" width="110" height="110"/>
|
||||||
@ -2843,6 +2545,7 @@ See </string>
|
|||||||
<image name="icon_plus.png" width="32" height="32"/>
|
<image name="icon_plus.png" width="32" height="32"/>
|
||||||
<image name="icon_up.png" width="32" height="32"/>
|
<image name="icon_up.png" width="32" height="32"/>
|
||||||
<image name="identity.png" width="82" height="80"/>
|
<image name="identity.png" width="82" height="80"/>
|
||||||
|
<image name="image-0.png" width="256" height="384"/>
|
||||||
<image name="tip_basic_black.png" width="210" height="60"/>
|
<image name="tip_basic_black.png" width="210" height="60"/>
|
||||||
<image name="ui_spinner.png" width="75" height="75"/>
|
<image name="ui_spinner.png" width="75" height="75"/>
|
||||||
<image name="ui_textfield.png" width="158" height="34"/>
|
<image name="ui_textfield.png" width="158" height="34"/>
|
||||||
@ -2855,6 +2558,7 @@ See </string>
|
|||||||
<simulatedScreenMetrics key="destination" type="retina4"/>
|
<simulatedScreenMetrics key="destination" type="retina4"/>
|
||||||
</simulatedMetricsContainer>
|
</simulatedMetricsContainer>
|
||||||
<inferredMetricsTieBreakers>
|
<inferredMetricsTieBreakers>
|
||||||
<segue reference="gtb-zE-u9H"/>
|
<segue reference="GZk-I4-JyH"/>
|
||||||
|
<segue reference="Ql4-wf-T8u"/>
|
||||||
</inferredMetricsTieBreakers>
|
</inferredMetricsTieBreakers>
|
||||||
</document>
|
</document>
|
||||||
|
BIN
MasterPassword/Resources/Media/Guide/image-0.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-0@2x.png
Normal file
After Width: | Height: | Size: 144 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-1.png
Normal file
After Width: | Height: | Size: 57 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-10.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-10@2x.png
Normal file
After Width: | Height: | Size: 142 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-11.png
Normal file
After Width: | Height: | Size: 56 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-11@2x.png
Normal file
After Width: | Height: | Size: 164 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-1@2x.png
Normal file
After Width: | Height: | Size: 167 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-2.png
Normal file
After Width: | Height: | Size: 55 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-2@2x.png
Normal file
After Width: | Height: | Size: 162 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-3.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-3@2x.png
Normal file
After Width: | Height: | Size: 99 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-4.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-4@2x.png
Normal file
After Width: | Height: | Size: 107 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-5.png
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-5@2x.png
Normal file
After Width: | Height: | Size: 152 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-6.png
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-6@2x.png
Normal file
After Width: | Height: | Size: 124 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-7.png
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-7@2x.png
Normal file
After Width: | Height: | Size: 151 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-8.png
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-8@2x.png
Normal file
After Width: | Height: | Size: 151 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-9.png
Normal file
After Width: | Height: | Size: 49 KiB |
BIN
MasterPassword/Resources/Media/Guide/image-9@2x.png
Normal file
After Width: | Height: | Size: 152 KiB |
BIN
MasterPassword/Resources/Media/screen.png
Normal file
After Width: | Height: | Size: 1.6 MiB |
BIN
MasterPassword/Resources/Media/small-screen.png
Normal file
After Width: | Height: | Size: 6.0 KiB |