Setup and guide.
[FIXED] Setup wasn't showing up on app load. [FIXED] More temporary moc fixes and main thread fixes. [IMPROVED] Guide now plays an introduction animation. [FIXED] Setup iCloud switch is now functional.
This commit is contained in:
parent
5bf8842031
commit
7cf2c7f5c6
2
External/Pearl
vendored
2
External/Pearl
vendored
@ -1 +1 @@
|
|||||||
Subproject commit d8c2fa3755d1f440cd5eaa980adffef08a805b25
|
Subproject commit 99c73fd3b37b4d2621548f5ae366c163231a346d
|
@ -46,7 +46,7 @@
|
|||||||
informativeTextWithFormat:@"Certain sites require explicit migration to get updated to the latest version of the "
|
informativeTextWithFormat:@"Certain sites require explicit migration to get updated to the latest version of the "
|
||||||
@"Master Password algorithm. For these sites, a migration button will appear. Migrating these sites will cause "
|
@"Master Password algorithm. For these sites, a migration button will appear. Migrating these sites will cause "
|
||||||
@"their passwords to change. You'll need to update your profile for that site with the new password."];
|
@"their passwords to change. You'll need to update your profile for that site with the new password."];
|
||||||
[activeUser saveContext];
|
[moc saveToStore];
|
||||||
}];
|
}];
|
||||||
} forKeyPath:@"key" options:NSKeyValueObservingOptionInitial context:nil];
|
} forKeyPath:@"key" options:NSKeyValueObservingOptionInitial context:nil];
|
||||||
[[NSNotificationCenter defaultCenter] addObserverForName:NSWindowDidBecomeKeyNotification object:self.window queue:nil
|
[[NSNotificationCenter defaultCenter] addObserverForName:NSWindowDidBecomeKeyNotification object:self.window queue:nil
|
||||||
|
@ -260,8 +260,10 @@
|
|||||||
|
|
||||||
inf(@"Started up with device identifier: %@", [PearlKeyChain deviceIdentifier]);
|
inf(@"Started up with device identifier: %@", [PearlKeyChain deviceIdentifier]);
|
||||||
|
|
||||||
|
dispatch_async(dispatch_get_main_queue(), ^{
|
||||||
if ([[MPiOSConfig get].showSetup boolValue])
|
if ([[MPiOSConfig get].showSetup boolValue])
|
||||||
[[MPAppDelegate get] showSetup];
|
[[MPAppDelegate get] showSetup];
|
||||||
|
});
|
||||||
|
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
@ -592,11 +594,12 @@
|
|||||||
if (buttonIndex == [alert cancelButtonIndex])
|
if (buttonIndex == [alert cancelButtonIndex])
|
||||||
return;
|
return;
|
||||||
|
|
||||||
[moc performBlock:^{
|
[moc performBlockAndWait:^{
|
||||||
inf(@"Unsetting master password for: %@.", user.userID);
|
inf(@"Unsetting master password for: %@.", user.userID);
|
||||||
user.keyID = nil;
|
user.keyID = nil;
|
||||||
[self forgetSavedKeyFor:user];
|
[self forgetSavedKeyFor:user];
|
||||||
[moc saveToStore];
|
[moc saveToStore];
|
||||||
|
}];
|
||||||
|
|
||||||
[self signOutAnimated:YES];
|
[self signOutAnimated:YES];
|
||||||
if (didReset)
|
if (didReset)
|
||||||
@ -606,7 +609,6 @@
|
|||||||
[TestFlight passCheckpoint:MPCheckpointChangeMP];
|
[TestFlight passCheckpoint:MPCheckpointChangeMP];
|
||||||
#endif
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointChangeMP attributes:nil];
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointChangeMP attributes:nil];
|
||||||
}];
|
|
||||||
}
|
}
|
||||||
cancelTitle:[PearlStrings get].commonButtonAbort
|
cancelTitle:[PearlStrings get].commonButtonAbort
|
||||||
otherTitles:[PearlStrings get].commonButtonContinue, nil];
|
otherTitles:[PearlStrings get].commonButtonContinue, nil];
|
||||||
|
@ -250,20 +250,23 @@
|
|||||||
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
|
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
|
||||||
forRowAtIndexPath:(NSIndexPath *)indexPath {
|
forRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||||
|
|
||||||
if (editingStyle == UITableViewCellEditingStyleDelete)
|
if (editingStyle == UITableViewCellEditingStyleDelete) {
|
||||||
[self.fetchedResultsController.managedObjectContext performBlock:^{
|
NSManagedObjectContext *moc = self.fetchedResultsController.managedObjectContext;
|
||||||
|
[moc performBlock:^{
|
||||||
MPElementEntity *element = [self.fetchedResultsController objectAtIndexPath:indexPath];
|
MPElementEntity *element = [self.fetchedResultsController objectAtIndexPath:indexPath];
|
||||||
|
|
||||||
inf(@"Deleting element: %@", element.name);
|
inf(@"Deleting element: %@", element.name);
|
||||||
[self.fetchedResultsController.managedObjectContext deleteObject:element];
|
[moc deleteObject:element];
|
||||||
|
|
||||||
#ifdef TESTFLIGHT_SDK_VERSION
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointDeleteElement];
|
[TestFlight passCheckpoint:MPCheckpointDeleteElement];
|
||||||
#endif
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointDeleteElement attributes:@{
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointDeleteElement attributes:@{
|
||||||
@"type" : element.typeName,
|
@"type" : element.typeName,
|
||||||
@"version" : @(element.version)}];
|
@"version" : @(element.version)
|
||||||
}];
|
}];
|
||||||
|
}];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@ -10,6 +10,25 @@
|
|||||||
|
|
||||||
@interface MPGuideViewController : UIViewController <UIScrollViewDelegate>
|
@interface MPGuideViewController : UIViewController <UIScrollViewDelegate>
|
||||||
|
|
||||||
|
@property (weak, nonatomic) IBOutlet UIView *siteNameTip;
|
||||||
|
@property (weak, nonatomic) IBOutlet UIView *contentTip;
|
||||||
|
@property (weak, nonatomic) IBOutlet UILabel *contentTipText;
|
||||||
|
@property (weak, nonatomic) IBOutlet UIButton *usernameButton;
|
||||||
|
@property (weak, nonatomic) IBOutlet UIView *usernameTip;
|
||||||
|
@property (weak, nonatomic) IBOutlet UIButton *typeButton;
|
||||||
|
@property (weak, nonatomic) IBOutlet UIView *typeTip;
|
||||||
|
@property (weak, nonatomic) IBOutlet UIButton *toolButton;
|
||||||
|
@property (weak, nonatomic) IBOutlet UIView *toolTip;
|
||||||
|
@property (weak, nonatomic) IBOutlet UIProgressView *progress;
|
||||||
|
@property (weak, nonatomic) IBOutlet UIView *content;
|
||||||
|
@property (weak, nonatomic) IBOutlet UIButton *contentButton;
|
||||||
|
@property (weak, nonatomic) IBOutlet UITextField *contentText;
|
||||||
|
@property (weak, nonatomic) IBOutlet UIButton *volumeButton;
|
||||||
|
@property (weak, nonatomic) IBOutlet UIButton *largePlayButton;
|
||||||
|
@property (weak, nonatomic) IBOutlet UIButton *smallPlayButton;
|
||||||
|
|
||||||
|
- (IBAction)play;
|
||||||
- (IBAction)close;
|
- (IBAction)close;
|
||||||
|
- (IBAction)toggleVolume;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@ -8,6 +8,14 @@
|
|||||||
|
|
||||||
#import "MPGuideViewController.h"
|
#import "MPGuideViewController.h"
|
||||||
|
|
||||||
|
@interface MPGuideViewController()
|
||||||
|
|
||||||
|
@property(nonatomic, strong) NSTimer *timer;
|
||||||
|
@property(nonatomic) int tickCount;
|
||||||
|
@property(nonatomic) int currentTick;
|
||||||
|
@property(nonatomic) int lastTick;
|
||||||
|
@property(nonatomic) BOOL muted;
|
||||||
|
@end
|
||||||
|
|
||||||
@implementation MPGuideViewController
|
@implementation MPGuideViewController
|
||||||
|
|
||||||
@ -21,10 +29,34 @@
|
|||||||
return UIInterfaceOrientationPortrait;
|
return UIInterfaceOrientationPortrait;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)viewDidLoad {
|
||||||
|
|
||||||
|
[super viewDidLoad];
|
||||||
|
|
||||||
|
self.tickCount = 30;
|
||||||
|
}
|
||||||
|
|
||||||
- (void)viewWillAppear:(BOOL)animated {
|
- (void)viewWillAppear:(BOOL)animated {
|
||||||
|
|
||||||
inf(@"Guide will appear.");
|
inf(@"Guide will appear.");
|
||||||
[super viewWillAppear:animated];
|
[super viewWillAppear:animated];
|
||||||
|
|
||||||
|
if (self.navigationController) {
|
||||||
|
// Via setup
|
||||||
|
[self.navigationController setNavigationBarHidden:YES animated:animated];
|
||||||
|
self.smallPlayButton.hidden = YES;
|
||||||
|
self.siteNameTip.alpha = 0;
|
||||||
|
self.content.alpha = 0;
|
||||||
|
self.content.frame = CGRectSetHeight( self.content.frame, 180 );
|
||||||
|
self.contentTip.alpha = 0;
|
||||||
|
self.usernameTip.alpha = 0;
|
||||||
|
self.typeTip.alpha = 0;
|
||||||
|
self.toolTip.alpha = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Via segue
|
||||||
|
self.largePlayButton.hidden = YES;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)viewDidAppear:(BOOL)animated {
|
- (void)viewDidAppear:(BOOL)animated {
|
||||||
@ -37,12 +69,139 @@
|
|||||||
- (void)viewWillDisappear:(BOOL)animated {
|
- (void)viewWillDisappear:(BOOL)animated {
|
||||||
|
|
||||||
inf(@"Guide will disappear.");
|
inf(@"Guide will disappear.");
|
||||||
|
[self.navigationController setNavigationBarHidden:NO animated:animated];
|
||||||
[super viewWillDisappear:animated];
|
[super viewWillDisappear:animated];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (IBAction)play {
|
||||||
|
|
||||||
|
if (self.timer) {
|
||||||
|
// Pause
|
||||||
|
[self.timer invalidate];
|
||||||
|
self.timer = nil;
|
||||||
|
|
||||||
|
self.smallPlayButton.hidden = NO;
|
||||||
|
[self.smallPlayButton setImage:[UIImage imageNamed:@"icon_play"] forState:UIControlStateNormal];
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
// Play
|
||||||
|
self.smallPlayButton.hidden = NO;
|
||||||
|
self.largePlayButton.hidden = YES;
|
||||||
|
[self.smallPlayButton setImage:[UIImage imageNamed:@"icon_pause"] forState:UIControlStateNormal];
|
||||||
|
|
||||||
|
self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(tick:)
|
||||||
|
userInfo:nil repeats:YES];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
- (IBAction)close {
|
- (IBAction)close {
|
||||||
|
|
||||||
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
|
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (IBAction)toggleVolume {
|
||||||
|
|
||||||
|
if ((self.muted = !self.muted))
|
||||||
|
[self.volumeButton setImage:[UIImage imageNamed:@"icon_volume-mute"] forState:UIControlStateNormal];
|
||||||
|
else
|
||||||
|
[self.volumeButton setImage:[UIImage imageNamed:@"icon_volume-high"] forState:UIControlStateNormal];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)tick:(NSTimer *)timer {
|
||||||
|
|
||||||
|
self.lastTick = self.currentTick;
|
||||||
|
++self.currentTick;
|
||||||
|
[self.progress setProgress:(float)self.currentTick / self.tickCount animated:YES];
|
||||||
|
|
||||||
|
if (self.currentTick < 5) {
|
||||||
|
[UIView animateWithDuration:0.5 animations:^{
|
||||||
|
self.siteNameTip.alpha = 1;
|
||||||
|
self.content.alpha = 0;
|
||||||
|
self.content.frame = CGRectSetHeight( self.content.frame, 180 );
|
||||||
|
self.contentTip.alpha = 0;
|
||||||
|
self.usernameTip.alpha = 0;
|
||||||
|
self.typeTip.alpha = 0;
|
||||||
|
self.toolTip.alpha = 0;
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
else if (self.currentTick < 10) {
|
||||||
|
[UIView animateWithDuration:0.5 animations:^{
|
||||||
|
self.siteNameTip.alpha = 0;
|
||||||
|
self.content.alpha = 1;
|
||||||
|
self.contentTip.alpha = 1;
|
||||||
|
self.usernameTip.alpha = 0;
|
||||||
|
self.typeTip.alpha = 0;
|
||||||
|
self.toolTip.alpha = 0;
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
else if (self.currentTick < 15) {
|
||||||
|
[UIView animateWithDuration:0.5 animations:^{
|
||||||
|
self.siteNameTip.alpha = 0;
|
||||||
|
self.content.alpha = 1;
|
||||||
|
self.contentTip.alpha = 1;
|
||||||
|
self.contentButton.highlighted = YES;
|
||||||
|
self.contentTipText.text = @"Tap to copy";
|
||||||
|
self.usernameTip.alpha = 0;
|
||||||
|
self.typeTip.alpha = 0;
|
||||||
|
self.toolButton.highlighted = NO;
|
||||||
|
self.toolTip.alpha = 0;
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
else if (self.currentTick < 20) {
|
||||||
|
[UIView animateWithDuration:0.5 animations:^{
|
||||||
|
self.siteNameTip.alpha = 0;
|
||||||
|
self.content.alpha = 1;
|
||||||
|
self.content.frame = CGRectSetHeight( self.content.frame, 231 );
|
||||||
|
self.contentTip.alpha = 0;
|
||||||
|
self.contentButton.highlighted = NO;
|
||||||
|
self.contentTipText.text = @"Use this password";
|
||||||
|
self.usernameButton.highlighted = YES;
|
||||||
|
self.usernameTip.alpha = 1;
|
||||||
|
self.typeTip.alpha = 0;
|
||||||
|
self.toolTip.alpha = 0;
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
else if (self.currentTick < 25) {
|
||||||
|
[UIView animateWithDuration:0.5 animations:^{
|
||||||
|
self.siteNameTip.alpha = 0;
|
||||||
|
self.content.alpha = 1;
|
||||||
|
self.contentTip.alpha = 0;
|
||||||
|
self.usernameButton.highlighted = NO;
|
||||||
|
self.usernameTip.alpha = 0;
|
||||||
|
self.typeTip.alpha = 1;
|
||||||
|
self.typeButton.highlighted = YES;
|
||||||
|
self.toolTip.alpha = 0;
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
else if (self.currentTick < 30) {
|
||||||
|
[UIView animateWithDuration:0.5 animations:^{
|
||||||
|
self.siteNameTip.alpha = 0;
|
||||||
|
self.content.alpha = 1;
|
||||||
|
self.contentTip.alpha = 0;
|
||||||
|
self.usernameTip.alpha = 0;
|
||||||
|
self.typeTip.alpha = 0;
|
||||||
|
self.typeButton.highlighted = NO;
|
||||||
|
self.toolButton.highlighted = YES;
|
||||||
|
self.toolTip.alpha = 1;
|
||||||
|
self.contentText.text = @"XupuMajf4'Hafh";
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
else if (self.currentTick <= self.tickCount) {
|
||||||
|
[self.timer invalidate];
|
||||||
|
self.timer = nil;
|
||||||
|
self.currentTick = 0;
|
||||||
|
[UIView animateWithDuration:0.5 animations:^{
|
||||||
|
[self.smallPlayButton setImage:[UIImage imageNamed:@"icon_play"] forState:UIControlStateNormal];
|
||||||
|
self.siteNameTip.alpha = 1;
|
||||||
|
self.content.alpha = 1;
|
||||||
|
self.contentTip.alpha = 1;
|
||||||
|
self.usernameTip.alpha = 1;
|
||||||
|
self.typeTip.alpha = 1;
|
||||||
|
self.toolButton.highlighted = NO;
|
||||||
|
self.toolTip.alpha = 0;
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@ -590,9 +590,6 @@
|
|||||||
|
|
||||||
// Update element, keeping track of the old password.
|
// Update element, keeping track of the old password.
|
||||||
[self activeElementDo:^(MPElementEntity *activeElement) {
|
[self activeElementDo:^(MPElementEntity *activeElement) {
|
||||||
NSManagedObjectContext *moc = activeElement.managedObjectContext;
|
|
||||||
[moc performBlock:^{
|
|
||||||
|
|
||||||
// Perform the task.
|
// Perform the task.
|
||||||
NSString *oldPassword = [activeElement.content description];
|
NSString *oldPassword = [activeElement.content description];
|
||||||
if (!task( activeElement ))
|
if (!task( activeElement ))
|
||||||
@ -600,9 +597,7 @@
|
|||||||
NSString *newPassword = [activeElement.content description];
|
NSString *newPassword = [activeElement.content description];
|
||||||
|
|
||||||
// Save.
|
// Save.
|
||||||
NSError *error;
|
[activeElement.managedObjectContext saveToStore];
|
||||||
if (![moc save:&error])
|
|
||||||
err(@"While saving changes to: %@, error: %@", activeElement.name, error);
|
|
||||||
|
|
||||||
// Update the UI.
|
// Update the UI.
|
||||||
dispatch_async( dispatch_get_main_queue(), ^{
|
dispatch_async( dispatch_get_main_queue(), ^{
|
||||||
@ -618,7 +613,6 @@
|
|||||||
@"%@", activeElement.name, oldPassword )];
|
@"%@", activeElement.name, oldPassword )];
|
||||||
} );
|
} );
|
||||||
}];
|
}];
|
||||||
}];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)activeElementDo:(void (^)(MPElementEntity *activeElement))task {
|
- (void)activeElementDo:(void (^)(MPElementEntity *activeElement))task {
|
||||||
|
@ -19,6 +19,9 @@
|
|||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
@interface MPSetupViewController : UIViewController
|
@interface MPSetupViewController : UIViewController
|
||||||
|
|
||||||
|
@property (weak, nonatomic) IBOutlet UISwitch *cloudSwitch;
|
||||||
|
|
||||||
- (IBAction)close:(UIBarButtonItem *)sender;
|
- (IBAction)close:(UIBarButtonItem *)sender;
|
||||||
- (IBAction)showGuide:(UIBarButtonItem *)sender;
|
|
||||||
@end
|
@end
|
||||||
|
@ -18,9 +18,30 @@
|
|||||||
|
|
||||||
#import "MPSetupViewController.h"
|
#import "MPSetupViewController.h"
|
||||||
#import "MPAppDelegate.h"
|
#import "MPAppDelegate.h"
|
||||||
|
#import "MPAppDelegate_Store.h"
|
||||||
|
|
||||||
@implementation MPSetupViewController
|
@implementation MPSetupViewController
|
||||||
|
|
||||||
|
- (void)viewDidAppear:(BOOL)animated {
|
||||||
|
|
||||||
|
[[LocalyticsSession sharedLocalyticsSession] tagScreen:@"Setup"];
|
||||||
|
|
||||||
|
[super viewDidAppear:animated];
|
||||||
|
|
||||||
|
if (self.cloudSwitch && [[MPiOSConfig get].iCloudDecided boolValue])
|
||||||
|
self.cloudSwitch.on = [MPAppDelegate get].storeManager.cloudEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)viewWillDisappear:(BOOL)animated {
|
||||||
|
|
||||||
|
[super viewWillDisappear:animated];
|
||||||
|
|
||||||
|
if (self.cloudSwitch) {
|
||||||
|
[MPiOSConfig get].iCloudDecided = @YES;
|
||||||
|
[MPAppDelegate get].storeManager.cloudEnabled = self.cloudSwitch.on;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
- (IBAction)close:(UIBarButtonItem *)sender {
|
- (IBAction)close:(UIBarButtonItem *)sender {
|
||||||
|
|
||||||
[MPiOSConfig get].showSetup = @NO;
|
[MPiOSConfig get].showSetup = @NO;
|
||||||
|
@ -94,8 +94,8 @@
|
|||||||
cellElement.user = selectedElement_.user;
|
cellElement.user = selectedElement_.user;
|
||||||
cellElement.loginName = selectedElement_.loginName;
|
cellElement.loginName = selectedElement_.loginName;
|
||||||
cellElement.version = MPAlgorithmDefaultVersion;
|
cellElement.version = MPAlgorithmDefaultVersion;
|
||||||
NSString *typeContent = [cellElement.algorithm generateContentForElement:cellElement usingKey:[MPAppDelegate get].key];
|
|
||||||
|
|
||||||
|
NSString *typeContent = [cellElement.algorithm generateContentForElement:cellElement usingKey:[MPAppDelegate get].key];
|
||||||
dispatch_async(dispatch_get_main_queue(), ^{
|
dispatch_async(dispatch_get_main_queue(), ^{
|
||||||
[(UITextField *) [[tableView cellForRowAtIndexPath:indexPath] viewWithTag:2] setText:typeContent];
|
[(UITextField *) [[tableView cellForRowAtIndexPath:indexPath] viewWithTag:2] setText:typeContent];
|
||||||
});
|
});
|
||||||
|
@ -319,7 +319,7 @@
|
|||||||
- (void)showNewUserNameAlertFor:(MPUserEntity *)newUser inContext:(NSManagedObjectContext *)moc
|
- (void)showNewUserNameAlertFor:(MPUserEntity *)newUser inContext:(NSManagedObjectContext *)moc
|
||||||
completion:(void (^)(BOOL finished))completion {
|
completion:(void (^)(BOOL finished))completion {
|
||||||
|
|
||||||
dispatch_async(dispatch_get_main_queue(), ^{
|
PEARL_MAIN_THREAD_START
|
||||||
[PearlAlert showAlertWithTitle:@"Enter Your Name"
|
[PearlAlert showAlertWithTitle:@"Enter Your Name"
|
||||||
message:nil viewStyle:UIAlertViewStylePlainTextInput
|
message:nil viewStyle:UIAlertViewStylePlainTextInput
|
||||||
initAlert:^(UIAlertView *alert, UITextField *firstField) {
|
initAlert:^(UIAlertView *alert, UITextField *firstField) {
|
||||||
@ -334,24 +334,23 @@
|
|||||||
completion(NO);
|
completion(NO);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (![alert textFieldAtIndex:0].text.length) {
|
NSString *name = [alert textFieldAtIndex:0].text;
|
||||||
|
if (!name.length) {
|
||||||
[PearlAlert showAlertWithTitle:@"Name Is Required" message:nil viewStyle:UIAlertViewStyleDefault initAlert:nil
|
[PearlAlert showAlertWithTitle:@"Name Is Required" message:nil viewStyle:UIAlertViewStyleDefault initAlert:nil
|
||||||
tappedButtonBlock:^(UIAlertView *alert_, NSInteger buttonIndex_) {
|
tappedButtonBlock:^(UIAlertView *alert_, NSInteger buttonIndex_) {
|
||||||
[moc performBlock:^{
|
|
||||||
[self showNewUserNameAlertFor:newUser inContext:moc completion:completion];
|
[self showNewUserNameAlertFor:newUser inContext:moc completion:completion];
|
||||||
}];
|
|
||||||
} cancelTitle:@"Try Again" otherTitles:nil];
|
} cancelTitle:@"Try Again" otherTitles:nil];
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save
|
// Save
|
||||||
[moc performBlock:^{
|
[moc performBlockAndWait:^{
|
||||||
newUser.name = [alert textFieldAtIndex:0].text;
|
newUser.name = name;
|
||||||
[self showNewUserAvatarAlertFor:newUser inContext:moc completion:completion];
|
|
||||||
}];
|
}];
|
||||||
|
[self showNewUserAvatarAlertFor:newUser inContext:moc completion:completion];
|
||||||
}
|
}
|
||||||
cancelTitle:[PearlStrings get].commonButtonCancel otherTitles:[PearlStrings get].commonButtonSave, nil];
|
cancelTitle:[PearlStrings get].commonButtonCancel otherTitles:[PearlStrings get].commonButtonSave, nil];
|
||||||
});
|
PEARL_MAIN_THREAD_END
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)showNewUserAvatarAlertFor:(MPUserEntity *)newUser inContext:(NSManagedObjectContext *)moc
|
- (void)showNewUserAvatarAlertFor:(MPUserEntity *)newUser inContext:(NSManagedObjectContext *)moc
|
||||||
@ -365,9 +364,7 @@
|
|||||||
tappedButtonBlock:^(UIAlertView *_alert, NSInteger _buttonIndex) {
|
tappedButtonBlock:^(UIAlertView *_alert, NSInteger _buttonIndex) {
|
||||||
|
|
||||||
// Okay
|
// Okay
|
||||||
[moc performBlock:^{
|
|
||||||
[self showNewUserConfirmationAlertFor:newUser inContext:moc completion:completion];
|
[self showNewUserConfirmationAlertFor:newUser inContext:moc completion:completion];
|
||||||
}];
|
|
||||||
} cancelTitle:nil otherTitles:[PearlStrings get].commonButtonOkay, nil];
|
} cancelTitle:nil otherTitles:[PearlStrings get].commonButtonOkay, nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -384,9 +381,7 @@
|
|||||||
}
|
}
|
||||||
tappedButtonBlock:^void(UIAlertView *__alert, NSInteger __buttonIndex) {
|
tappedButtonBlock:^void(UIAlertView *__alert, NSInteger __buttonIndex) {
|
||||||
if (__buttonIndex == [__alert cancelButtonIndex]) {
|
if (__buttonIndex == [__alert cancelButtonIndex]) {
|
||||||
[moc performBlock:^{
|
|
||||||
[self showNewUserNameAlertFor:newUser inContext:moc completion:completion];
|
[self showNewUserNameAlertFor:newUser inContext:moc completion:completion];
|
||||||
}];
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -808,13 +803,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (buttonIndex == [sheet firstOtherButtonIndex])
|
if (buttonIndex == [sheet firstOtherButtonIndex])
|
||||||
[moc performBlock:^{
|
|
||||||
[[MPAppDelegate get] changeMasterPasswordFor:targetedUser inContext:moc didResetBlock:^{
|
[[MPAppDelegate get] changeMasterPasswordFor:targetedUser inContext:moc didResetBlock:^{
|
||||||
dispatch_async(dispatch_get_main_queue(), ^{
|
dispatch_async(dispatch_get_main_queue(), ^{
|
||||||
[[self avatarForUser:targetedUser] setSelected:YES];
|
[[self avatarForUser:targetedUser] setSelected:YES];
|
||||||
});
|
});
|
||||||
}];
|
}];
|
||||||
}];
|
|
||||||
} cancelTitle:[PearlStrings get].commonButtonCancel
|
} cancelTitle:[PearlStrings get].commonButtonCancel
|
||||||
destructiveTitle:@"Delete User" otherTitles:@"Reset Password", nil];
|
destructiveTitle:@"Delete User" otherTitles:@"Reset Password", nil];
|
||||||
}
|
}
|
||||||
|
@ -1536,7 +1536,7 @@ You could use the word wall for inspiration in finding a memorable master passw
|
|||||||
</label>
|
</label>
|
||||||
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="ToN-ll-G0q">
|
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="ToN-ll-G0q">
|
||||||
<rect key="frame" x="20" y="137" width="280" height="200"/>
|
<rect key="frame" x="20" y="137" width="280" height="200"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
<string key="text">Enabling iCloud will keep all your iPhones, iPads and Macs nicely in-sync. Any site you add on this device will automatically appear on all your others as well.
|
<string key="text">Enabling iCloud will keep all your iPhones, iPads and Macs nicely in-sync. Any site you add on this device will automatically appear on all your others as well.
|
||||||
|
|
||||||
@ -1548,7 +1548,7 @@ If you set a custom password, it will be encrypted before it is saved to the clo
|
|||||||
</textView>
|
</textView>
|
||||||
<switch opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" id="M0m-G9-hH0">
|
<switch opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" id="M0m-G9-hH0">
|
||||||
<rect key="frame" x="122" y="345" width="79" height="27"/>
|
<rect key="frame" x="122" y="345" width="79" height="27"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
<color key="onTintColor" red="0.37254901959999998" green="0.3921568627" blue="0.42745098040000001" alpha="1" colorSpace="calibratedRGB"/>
|
<color key="onTintColor" red="0.37254901959999998" green="0.3921568627" blue="0.42745098040000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||||
</switch>
|
</switch>
|
||||||
</subviews>
|
</subviews>
|
||||||
@ -1561,6 +1561,9 @@ If you set a custom password, it will be encrypted before it is saved to the clo
|
|||||||
</connections>
|
</connections>
|
||||||
</barButtonItem>
|
</barButtonItem>
|
||||||
</navigationItem>
|
</navigationItem>
|
||||||
|
<connections>
|
||||||
|
<outlet property="cloudSwitch" destination="M0m-G9-hH0" id="Egt-3w-3Zr"/>
|
||||||
|
</connections>
|
||||||
</viewController>
|
</viewController>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="Olv-0G-8Ul" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="Olv-0G-8Ul" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
@ -1669,7 +1672,7 @@ If you set a custom password, it will be encrypted before it is saved to the clo
|
|||||||
<connections>
|
<connections>
|
||||||
<segue destination="uu3-4d-bYN" kind="modal" identifier="MP_Setup" id="qw3-O5-NEa"/>
|
<segue destination="uu3-4d-bYN" kind="modal" identifier="MP_Setup" id="qw3-O5-NEa"/>
|
||||||
<segue destination="Nbn-Rv-sP1" kind="relationship" relationship="rootViewController" id="Gzv-dM-6bM"/>
|
<segue destination="Nbn-Rv-sP1" kind="relationship" relationship="rootViewController" id="Gzv-dM-6bM"/>
|
||||||
<segue destination="myN-X7-9Tg" kind="modal" identifier="MP_Guide" id="swi-5o-hfK"/>
|
<segue destination="myN-X7-9Tg" kind="modal" identifier="MP_Guide" modalTransitionStyle="crossDissolve" id="swi-5o-hfK"/>
|
||||||
</connections>
|
</connections>
|
||||||
</navigationController>
|
</navigationController>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="Lcz-JH-B5B" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="Lcz-JH-B5B" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
@ -2084,7 +2087,7 @@ If you set a custom password, it will be encrypted before it is saved to the clo
|
|||||||
</label>
|
</label>
|
||||||
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" usesAttributedText="YES" id="hwP-ds-GDh">
|
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" usesAttributedText="YES" id="hwP-ds-GDh">
|
||||||
<rect key="frame" x="20" y="137" width="280" height="347"/>
|
<rect key="frame" x="20" y="137" width="280" height="347"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="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"/>
|
||||||
<attributedString key="attributedText">
|
<attributedString key="attributedText">
|
||||||
<fragment>
|
<fragment>
|
||||||
@ -2186,26 +2189,22 @@ You can make passwords for all sorts of things, like email addresses, sites or r
|
|||||||
<rect key="frame" x="0.0" y="44" width="320" height="504"/>
|
<rect key="frame" x="0.0" y="44" width="320" height="504"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
</imageView>
|
</imageView>
|
||||||
<view contentMode="scaleToFill" id="aRZ-vF-YZW" userLabel="View - Content">
|
|
||||||
<rect key="frame" x="0.0" y="87" width="320" height="225"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view clipsSubviews="YES" contentMode="scaleToFill" id="vSk-nT-Vwf" userLabel="View - Display">
|
<view clipsSubviews="YES" contentMode="scaleToFill" id="vSk-nT-Vwf" userLabel="View - Display">
|
||||||
<rect key="frame" x="0.0" y="20" width="320" height="137"/>
|
<rect key="frame" x="0.0" y="88" width="320" height="231"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<imageView userInteractionEnabled="NO" alpha="0.80000001192092896" contentMode="scaleToFill" image="ui_panel_container.png" id="DnG-K7-jCr">
|
<imageView userInteractionEnabled="NO" alpha="0.80000001192092896" contentMode="scaleToFill" image="ui_panel_container.png" id="DnG-K7-jCr">
|
||||||
<rect key="frame" x="11" y="0.0" width="298" height="137"/>
|
<rect key="frame" x="11" y="20" width="298" height="137"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<rect key="contentStretch" x="0.050000000000000003" y="0.10000000000000001" width="0.89999999999999991" height="0.79999999999999982"/>
|
<rect key="contentStretch" x="0.050000000000000003" y="0.10000000000000001" width="0.89999999999999991" height="0.79999999999999982"/>
|
||||||
</imageView>
|
</imageView>
|
||||||
<imageView userInteractionEnabled="NO" alpha="0.80000001192092896" contentMode="scaleToFill" image="ui_panel_display.png" id="XCE-7d-ffN">
|
<imageView userInteractionEnabled="NO" alpha="0.80000001192092896" contentMode="scaleToFill" image="ui_panel_display.png" id="XCE-7d-ffN">
|
||||||
<rect key="frame" x="11" y="0.0" width="298" height="86"/>
|
<rect key="frame" x="11" y="20" width="298" height="86"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||||
<rect key="contentStretch" x="0.050000000000000003" y="0.10000000000000001" width="0.89999999999999991" height="0.79999999999999982"/>
|
<rect key="contentStretch" x="0.050000000000000003" y="0.10000000000000001" width="0.89999999999999991" height="0.79999999999999982"/>
|
||||||
</imageView>
|
</imageView>
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" id="naw-bU-g1E" userLabel="Button - Copy">
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" id="naw-bU-g1E" userLabel="Button - Copy">
|
||||||
<rect key="frame" x="11" y="0.0" width="298" height="86"/>
|
<rect key="frame" x="11" y="20" width="298" height="86"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
<accessibility key="accessibilityConfiguration" hint="Copies the password."/>
|
<accessibility key="accessibilityConfiguration" hint="Copies the password."/>
|
||||||
@ -2217,12 +2216,9 @@ You can make passwords for all sorts of things, like email addresses, sites or r
|
|||||||
<state key="highlighted">
|
<state key="highlighted">
|
||||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
</state>
|
</state>
|
||||||
<connections>
|
|
||||||
<action selector="copyContent" destination="myN-X7-9Tg" eventType="touchUpInside" id="R5w-Yl-vQ2"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
</button>
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.5" contentMode="left" text="apple.com" lineBreakMode="tailTruncation" minimumFontSize="10" id="vVA-b3-7Lo" userLabel="Label - Site Name">
|
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.5" contentMode="left" text="gmail.com" lineBreakMode="tailTruncation" minimumFontSize="10" id="vVA-b3-7Lo" userLabel="Label - Site Name">
|
||||||
<rect key="frame" x="25" y="0.0" width="270" height="26"/>
|
<rect key="frame" x="25" y="20" width="270" height="26"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||||
<accessibility key="accessibilityConfiguration" label="">
|
<accessibility key="accessibilityConfiguration" label="">
|
||||||
<accessibilityTraits key="traits" none="YES" staticText="YES" summaryElement="YES"/>
|
<accessibilityTraits key="traits" none="YES" staticText="YES" summaryElement="YES"/>
|
||||||
@ -2234,18 +2230,15 @@ You can make passwords for all sorts of things, like email addresses, sites or r
|
|||||||
<size key="shadowOffset" width="0.0" height="1"/>
|
<size key="shadowOffset" width="0.0" height="1"/>
|
||||||
</label>
|
</label>
|
||||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="RateJija3$Tucm" textAlignment="center" minimumFontSize="17" clearButtonMode="whileEditing" id="G2i-wO-6x6" userLabel="Text Field - Content">
|
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="RateJija3$Tucm" textAlignment="center" minimumFontSize="17" clearButtonMode="whileEditing" id="G2i-wO-6x6" userLabel="Text Field - Content">
|
||||||
<rect key="frame" x="20" y="26" width="280" height="60"/>
|
<rect key="frame" x="20" y="46" width="280" height="60"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||||
<accessibility key="accessibilityConfiguration" hint=""/>
|
<accessibility key="accessibilityConfiguration" hint=""/>
|
||||||
<color key="textColor" red="0.47450980390000003" green="0.86666666670000003" blue="0.98431372549999996" alpha="1" colorSpace="calibratedRGB"/>
|
<color key="textColor" red="0.47450980390000003" green="0.86666666670000003" blue="0.98431372549999996" alpha="1" colorSpace="calibratedRGB"/>
|
||||||
<fontDescription key="fontDescription" name="AmericanTypewriter-Bold" family="American Typewriter" pointSize="30"/>
|
<fontDescription key="fontDescription" name="AmericanTypewriter-Bold" family="American Typewriter" pointSize="30"/>
|
||||||
<textInputTraits key="textInputTraits" autocorrectionType="no" returnKeyType="done"/>
|
<textInputTraits key="textInputTraits" autocorrectionType="no" returnKeyType="done"/>
|
||||||
<connections>
|
|
||||||
<outlet property="delegate" destination="myN-X7-9Tg" id="Skg-uS-Qnv"/>
|
|
||||||
</connections>
|
|
||||||
</textField>
|
</textField>
|
||||||
<button opaque="NO" alpha="0.5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="ZPR-Tx-as7" userLabel="Button - User">
|
<button opaque="NO" alpha="0.5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" id="ZPR-Tx-as7" userLabel="Button - User">
|
||||||
<rect key="frame" x="266" y="-2" width="44" height="44"/>
|
<rect key="frame" x="266" y="18" width="44" height="44"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||||
<accessibility key="accessibilityConfiguration" hint="Upgrades the password."/>
|
<accessibility key="accessibilityConfiguration" hint="Upgrades the password."/>
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||||
@ -2257,12 +2250,9 @@ You can make passwords for all sorts of things, like email addresses, sites or r
|
|||||||
<state key="highlighted">
|
<state key="highlighted">
|
||||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
</state>
|
</state>
|
||||||
<connections>
|
|
||||||
<action selector="toggleUser" destination="myN-X7-9Tg" eventType="touchUpInside" id="4eb-0L-NHJ"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
</button>
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.5" contentMode="left" text="1" textAlignment="right" lineBreakMode="tailTruncation" minimumFontSize="10" id="rDj-nH-rQR" userLabel="Label - Counter">
|
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.5" contentMode="left" text="1" textAlignment="right" lineBreakMode="tailTruncation" minimumFontSize="10" id="rDj-nH-rQR" userLabel="Label - Counter">
|
||||||
<rect key="frame" x="196" y="11" width="41" height="20"/>
|
<rect key="frame" x="196" y="31" width="41" height="20"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||||
<accessibility key="accessibilityConfiguration" hint="Site's counter."/>
|
<accessibility key="accessibilityConfiguration" hint="Site's counter."/>
|
||||||
<fontDescription key="fontDescription" name="Copperplate-Bold" family="Copperplate" pointSize="17"/>
|
<fontDescription key="fontDescription" name="Copperplate-Bold" family="Copperplate" pointSize="17"/>
|
||||||
@ -2271,8 +2261,8 @@ You can make passwords for all sorts of things, like email addresses, sites or r
|
|||||||
<color key="shadowColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
<color key="shadowColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
<size key="shadowOffset" width="0.0" height="1"/>
|
<size key="shadowOffset" width="0.0" height="1"/>
|
||||||
</label>
|
</label>
|
||||||
<button opaque="NO" alpha="0.5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="yxo-kW-iLM" userLabel="Button - Incrementer">
|
<button opaque="NO" alpha="0.5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" id="yxo-kW-iLM" userLabel="Button - Incrementer">
|
||||||
<rect key="frame" x="231" y="-2" width="44" height="44"/>
|
<rect key="frame" x="231" y="18" width="44" height="44"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||||
<accessibility key="accessibilityConfiguration" hint="Increments the site counter."/>
|
<accessibility key="accessibilityConfiguration" hint="Increments the site counter."/>
|
||||||
<gestureRecognizers/>
|
<gestureRecognizers/>
|
||||||
@ -2285,46 +2275,9 @@ You can make passwords for all sorts of things, like email addresses, sites or r
|
|||||||
<state key="highlighted">
|
<state key="highlighted">
|
||||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
</state>
|
</state>
|
||||||
<connections>
|
|
||||||
<action selector="incrementPasswordCounter" destination="myN-X7-9Tg" eventType="touchUpInside" id="5Rm-nz-F7j"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" alpha="0.5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="awz-TO-Bhd" userLabel="Button - Edit">
|
|
||||||
<rect key="frame" x="231" y="-2" width="44" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" hint="Edits the password."/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<inset key="contentEdgeInsets" minX="6" minY="6" maxX="6" maxY="6"/>
|
|
||||||
<state key="normal" image="icon_edit.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>
|
|
||||||
<connections>
|
|
||||||
<action selector="editPassword" destination="myN-X7-9Tg" eventType="touchUpInside" id="o16-F3-sId"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" alpha="0.5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="CkS-2e-RXV" userLabel="Button - Upgrade">
|
|
||||||
<rect key="frame" x="231" y="-2" width="44" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" hint="Upgrades the password."/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<inset key="contentEdgeInsets" minX="6" minY="6" maxX="6" maxY="6"/>
|
|
||||||
<state key="normal" image="icon_up.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>
|
|
||||||
<connections>
|
|
||||||
<action selector="upgradePassword" destination="myN-X7-9Tg" eventType="touchUpInside" id="2R5-y6-hYc"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
</button>
|
||||||
<view contentMode="scaleToFill" id="60X-Nj-wqq" userLabel="View - User Name">
|
<view contentMode="scaleToFill" id="60X-Nj-wqq" userLabel="View - User Name">
|
||||||
<rect key="frame" x="20" y="94" width="280" height="31"/>
|
<rect key="frame" x="20" y="114" width="280" height="31"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="robert.mitchell@gmail.com" placeholder="Hold to set a login name." textAlignment="center" minimumFontSize="17" clearButtonMode="whileEditing" id="9jx-Ue-v7J">
|
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="robert.mitchell@gmail.com" placeholder="Hold to set a login name." textAlignment="center" minimumFontSize="17" clearButtonMode="whileEditing" id="9jx-Ue-v7J">
|
||||||
@ -2333,16 +2286,11 @@ You can make passwords for all sorts of things, like email addresses, sites or r
|
|||||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
<fontDescription key="fontDescription" name="AmericanTypewriter-Light" family="American Typewriter" pointSize="14"/>
|
<fontDescription key="fontDescription" name="AmericanTypewriter-Light" family="American Typewriter" pointSize="14"/>
|
||||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="emailAddress" returnKeyType="done"/>
|
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="emailAddress" returnKeyType="done"/>
|
||||||
<connections>
|
|
||||||
<outlet property="delegate" destination="myN-X7-9Tg" id="Ekm-Up-Gjh"/>
|
|
||||||
</connections>
|
|
||||||
</textField>
|
</textField>
|
||||||
</subviews>
|
</subviews>
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
</view>
|
</view>
|
||||||
</subviews>
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" reversesTitleShadowWhenHighlighted="YES" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" id="ebR-9P-XGe">
|
||||||
</view>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" reversesTitleShadowWhenHighlighted="YES" lineBreakMode="middleTruncation" id="ebR-9P-XGe">
|
|
||||||
<rect key="frame" x="10" y="165" width="300" height="46"/>
|
<rect key="frame" x="10" y="165" width="300" height="46"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
<accessibility key="accessibilityConfiguration" hint="Changes the password type."/>
|
<accessibility key="accessibilityConfiguration" hint="Changes the password type."/>
|
||||||
@ -2358,6 +2306,14 @@ You can make passwords for all sorts of things, like email addresses, sites or r
|
|||||||
</button>
|
</button>
|
||||||
</subviews>
|
</subviews>
|
||||||
</view>
|
</view>
|
||||||
|
<navigationBar contentMode="scaleToFill" id="CEU-ib-OHf">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||||
|
<color key="tintColor" red="0.37254901959999998" green="0.3921568627" blue="0.42745098040000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||||
|
<items>
|
||||||
|
<navigationItem title="Master Password" id="Kbd-LM-sCQ"/>
|
||||||
|
</items>
|
||||||
|
</navigationBar>
|
||||||
<searchBar contentMode="redraw" placeholder="Site name" showsBookmarkButton="YES" id="IJX-hq-SkG">
|
<searchBar contentMode="redraw" placeholder="Site name" showsBookmarkButton="YES" id="IJX-hq-SkG">
|
||||||
<rect key="frame" x="0.0" y="44" width="320" height="44"/>
|
<rect key="frame" x="0.0" y="44" width="320" height="44"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||||
@ -2369,15 +2325,7 @@ You can make passwords for all sorts of things, like email addresses, sites or r
|
|||||||
<string>Outdated</string>
|
<string>Outdated</string>
|
||||||
</scopeButtonTitles>
|
</scopeButtonTitles>
|
||||||
</searchBar>
|
</searchBar>
|
||||||
<navigationBar contentMode="scaleToFill" id="CEU-ib-OHf">
|
<view alpha="0.60000000000000009" contentMode="scaleToFill" id="Ahl-o0-lMv">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="tintColor" red="0.37254901959999998" green="0.3921568627" blue="0.42745098040000001" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<items>
|
|
||||||
<navigationItem title="Master Password" id="Kbd-LM-sCQ"/>
|
|
||||||
</items>
|
|
||||||
</navigationBar>
|
|
||||||
<view alpha="0.50000000000000011" contentMode="scaleToFill" id="Ahl-o0-lMv">
|
|
||||||
<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="548"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
@ -2399,7 +2347,7 @@ You can make passwords for all sorts of things, like email addresses, sites or r
|
|||||||
</button>
|
</button>
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="UHf-cp-97W">
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="UHf-cp-97W">
|
||||||
<rect key="frame" x="33" y="502" width="44" height="44"/>
|
<rect key="frame" x="33" y="502" width="44" height="44"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<accessibility key="accessibilityConfiguration" hint="" label="Close"/>
|
<accessibility key="accessibilityConfiguration" hint="" label="Close"/>
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||||
<state key="normal" image="icon_play.png">
|
<state key="normal" image="icon_play.png">
|
||||||
@ -2410,28 +2358,61 @@ You can make passwords for all sorts of things, like email addresses, sites or r
|
|||||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
</state>
|
</state>
|
||||||
<connections>
|
<connections>
|
||||||
<action selector="closeAlert" destination="myN-X7-9Tg" eventType="touchUpInside" id="ogL-98-yIA"/>
|
<action selector="play" destination="myN-X7-9Tg" eventType="touchUpInside" id="2zM-lM-KYG"/>
|
||||||
</connections>
|
</connections>
|
||||||
</button>
|
</button>
|
||||||
<progressView opaque="NO" contentMode="scaleToFill" progress="0.5" id="nf7-oM-7dh">
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="jDS-Vh-ETL">
|
||||||
|
<rect key="frame" x="124" y="234" width="72" height="80"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||||
|
<accessibility key="accessibilityConfiguration" hint="" label="Close"/>
|
||||||
|
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||||
|
<state key="normal" image="play.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>
|
||||||
|
<connections>
|
||||||
|
<action selector="play" destination="myN-X7-9Tg" eventType="touchUpInside" id="6vf-LF-jJt"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="nXW-Eq-JOa">
|
||||||
|
<rect key="frame" x="243" y="502" width="44" height="44"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<accessibility key="accessibilityConfiguration" hint="" label="Close"/>
|
||||||
|
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||||
|
<state key="normal" image="icon_volume-high.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>
|
||||||
|
<connections>
|
||||||
|
<action selector="toggleVolume" destination="myN-X7-9Tg" eventType="touchUpInside" id="hHG-m2-dUF"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<progressView opaque="NO" contentMode="scaleToFill" id="nf7-oM-7dh">
|
||||||
<rect key="frame" x="85" y="519" width="150" height="9"/>
|
<rect key="frame" x="85" y="519" width="150" height="9"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<color key="progressTintColor" red="0.37254901959999998" green="0.3921568627" blue="0.42745098040000001" alpha="1" colorSpace="calibratedRGB"/>
|
<color key="progressTintColor" red="0.37254901959999998" green="0.3921568627" blue="0.42745098040000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||||
</progressView>
|
</progressView>
|
||||||
</subviews>
|
</subviews>
|
||||||
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
<color key="backgroundColor" cocoaTouchSystemColor="viewFlipsideBackgroundColor"/>
|
||||||
</view>
|
</view>
|
||||||
<view userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" id="X0C-Qf-SMn" userLabel="View - Content Tip">
|
<view userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" id="nDU-uf-V0X" userLabel="View - Tool Tip">
|
||||||
<rect key="frame" x="55" y="110" width="210" height="60"/>
|
<rect key="frame" x="10" y="59" width="266" height="60"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="tip_basic_black.png" id="tYf-3g-pcO">
|
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="tip_basic_black_bottom_right.png" id="Tmk-FU-w4D">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="210" height="60"/>
|
<rect key="frame" x="0.0" y="0.0" width="266" height="60"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<rect key="contentStretch" x="0.15000000000000002" y="0.15000000000000002" width="0.69999999999999973" height="0.69999999999999973"/>
|
||||||
</imageView>
|
</imageView>
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Use this password" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" id="nGi-CK-Dng">
|
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Tap if you need a new password" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" id="V6L-v1-m1Z">
|
||||||
<rect key="frame" x="19" y="9" width="171" height="21"/>
|
<rect key="frame" x="-20" y="9" width="306" height="21"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||||
<nil key="highlightedColor"/>
|
<nil key="highlightedColor"/>
|
||||||
@ -2451,7 +2432,43 @@ You can make passwords for all sorts of things, like email addresses, sites or r
|
|||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Name for your password" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" id="lgI-5O-kXT">
|
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Name for your password" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" id="lgI-5O-kXT">
|
||||||
<rect key="frame" x="-20" y="26" width="340" height="21"/>
|
<rect key="frame" x="-20" y="26" width="340" height="21"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
|
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||||
|
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
|
</view>
|
||||||
|
<view userInteractionEnabled="NO" contentMode="scaleToFill" id="X0C-Qf-SMn" userLabel="View - Content Tip">
|
||||||
|
<rect key="frame" x="55" y="110" width="210" height="60"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="tip_basic_black.png" id="tYf-3g-pcO">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="210" height="60"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
</imageView>
|
||||||
|
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Use this password" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" id="nGi-CK-Dng">
|
||||||
|
<rect key="frame" x="19" y="9" width="171" height="21"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||||
|
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
|
</view>
|
||||||
|
<view userInteractionEnabled="NO" contentMode="scaleToFill" id="w3j-Qm-9gD" userLabel="View - User Name Tip">
|
||||||
|
<rect key="frame" x="55" y="166" width="210" height="60"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="tip_basic_black.png" id="w4A-YL-1Tu">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="210" height="60"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
</imageView>
|
||||||
|
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Save your username here" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" id="b87-Cf-2qK">
|
||||||
|
<rect key="frame" x="19" y="9" width="171" height="21"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||||
<nil key="highlightedColor"/>
|
<nil key="highlightedColor"/>
|
||||||
</label>
|
</label>
|
||||||
@ -2477,70 +2494,38 @@ You can make passwords for all sorts of things, like email addresses, sites or r
|
|||||||
</subviews>
|
</subviews>
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
</view>
|
</view>
|
||||||
<view userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" id="w3j-Qm-9gD" userLabel="View - User Name Tip">
|
|
||||||
<rect key="frame" x="55" y="166" width="210" height="60"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="tip_basic_black.png" id="w4A-YL-1Tu">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="210" height="60"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Save your username here" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" id="b87-Cf-2qK">
|
|
||||||
<rect key="frame" x="19" y="9" width="171" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
</subviews>
|
||||||
<color key="backgroundColor" red="0.14901960780000001" green="0.1647058824" blue="0.18039215689999999" alpha="1" colorSpace="calibratedRGB"/>
|
<color key="backgroundColor" red="0.14901960780000001" green="0.1647058824" blue="0.18039215689999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||||
</view>
|
</view>
|
||||||
<navigationItem key="navigationItem" id="p1Y-gL-psy"/>
|
<navigationItem key="navigationItem" id="p1Y-gL-psy"/>
|
||||||
<nil key="simulatedTopBarMetrics"/>
|
<nil key="simulatedTopBarMetrics"/>
|
||||||
<connections>
|
<connections>
|
||||||
<outlet property="contentContainer" destination="aRZ-vF-YZW" id="hU4-iX-4qp"/>
|
<outlet property="content" destination="vSk-nT-Vwf" id="Kgh-xj-8Z6"/>
|
||||||
<outlet property="contentField" destination="G2i-wO-6x6" id="JOb-yS-3me"/>
|
<outlet property="contentButton" destination="naw-bU-g1E" id="g2B-hC-aHX"/>
|
||||||
<outlet property="contentTipBody" destination="nGi-CK-Dng" id="UJR-VS-Cwc"/>
|
<outlet property="contentText" destination="G2i-wO-6x6" id="u9H-xp-CR2"/>
|
||||||
<outlet property="contentTipContainer" destination="X0C-Qf-SMn" id="VtW-fY-s6x"/>
|
<outlet property="contentTip" destination="X0C-Qf-SMn" id="nSQ-vg-6ni"/>
|
||||||
<outlet property="displayContainer" destination="vSk-nT-Vwf" id="dJv-aQ-vF2"/>
|
<outlet property="contentTipText" destination="nGi-CK-Dng" id="T7O-aC-li6"/>
|
||||||
<outlet property="loginNameContainer" destination="60X-Nj-wqq" id="NNt-fg-0hY"/>
|
<outlet property="largePlayButton" destination="jDS-Vh-ETL" id="LIU-jq-0Oo"/>
|
||||||
<outlet property="loginNameField" destination="9jx-Ue-v7J" id="J7H-Q9-s5r"/>
|
<outlet property="progress" destination="nf7-oM-7dh" id="dFy-br-0OQ"/>
|
||||||
<outlet property="loginNameTipBody" destination="b87-Cf-2qK" id="Vkf-p6-3St"/>
|
<outlet property="siteNameTip" destination="cUZ-lb-h7x" id="3cq-3F-Cwd"/>
|
||||||
<outlet property="loginNameTipContainer" destination="w3j-Qm-9gD" id="UBZ-u1-7vo"/>
|
<outlet property="smallPlayButton" destination="UHf-cp-97W" id="K6U-Nf-F2p"/>
|
||||||
<outlet property="passwordCounter" destination="rDj-nH-rQR" id="iGu-2g-goP"/>
|
<outlet property="toolButton" destination="yxo-kW-iLM" id="yuh-5h-1Nj"/>
|
||||||
<outlet property="passwordEdit" destination="awz-TO-Bhd" id="9LZ-AX-GlZ"/>
|
<outlet property="toolTip" destination="nDU-uf-V0X" id="qRq-tC-mdy"/>
|
||||||
<outlet property="passwordIncrementer" destination="yxo-kW-iLM" id="wJn-fv-fKJ"/>
|
<outlet property="typeButton" destination="ebR-9P-XGe" id="ofw-d1-knI"/>
|
||||||
<outlet property="passwordUpgrade" destination="CkS-2e-RXV" id="hnU-qy-nQM"/>
|
<outlet property="typeTip" destination="Pub-jz-pkR" id="KAK-cu-b8O"/>
|
||||||
<outlet property="passwordUser" destination="ZPR-Tx-as7" id="94M-Dm-asP"/>
|
<outlet property="usernameButton" destination="ZPR-Tx-as7" id="Skc-7h-X9c"/>
|
||||||
<outlet property="pullDownGesture" destination="O19-XO-q6s" id="ZGD-xB-1eV"/>
|
<outlet property="usernameTip" destination="w3j-Qm-9gD" id="zg3-vy-aMx"/>
|
||||||
<outlet property="pullUpGesture" destination="D0R-Cc-rG7" id="CUh-gp-ckf"/>
|
<outlet property="volumeButton" destination="nXW-Eq-JOa" id="Ok3-SU-csw"/>
|
||||||
<outlet property="searchDisplayController" destination="P8c-gf-nN3" id="pvr-3d-V2W"/>
|
|
||||||
<outlet property="searchTipContainer" destination="cUZ-lb-h7x" id="XbI-kk-Q9Y"/>
|
|
||||||
<outlet property="siteName" destination="vVA-b3-7Lo" id="2Nk-GO-E6h"/>
|
|
||||||
<outlet property="typeButton" destination="ebR-9P-XGe" id="WGb-FG-N68"/>
|
|
||||||
<outlet property="typeTipContainer" destination="Pub-jz-pkR" id="nMm-z3-PG6"/>
|
|
||||||
</connections>
|
</connections>
|
||||||
</viewController>
|
</viewController>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="zsi-4A-If9" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="zsi-4A-If9" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
<searchDisplayController id="OeZ-hn-lL1">
|
<searchDisplayController id="OeZ-hn-lL1">
|
||||||
<connections>
|
<connections>
|
||||||
<outlet property="searchBar" destination="IJX-hq-SkG" id="LF3-B0-RBY"/>
|
<outlet property="searchBar" destination="IJX-hq-SkG" id="LF3-B0-RBY"/>
|
||||||
<outlet property="searchContentsController" destination="myN-X7-9Tg" id="Fjz-gh-JyH"/>
|
|
||||||
</connections>
|
</connections>
|
||||||
</searchDisplayController>
|
</searchDisplayController>
|
||||||
<panGestureRecognizer minimumNumberOfTouches="1" id="kYj-Dc-rXL">
|
<panGestureRecognizer minimumNumberOfTouches="1" id="kYj-Dc-rXL"/>
|
||||||
<connections>
|
<panGestureRecognizer minimumNumberOfTouches="1" id="ayP-1f-n2G"/>
|
||||||
<action selector="panHelpDown:" destination="myN-X7-9Tg" id="f8Z-CC-TtC"/>
|
|
||||||
</connections>
|
|
||||||
</panGestureRecognizer>
|
|
||||||
<panGestureRecognizer minimumNumberOfTouches="1" id="ayP-1f-n2G">
|
|
||||||
<connections>
|
|
||||||
<action selector="panHelpUp:" destination="myN-X7-9Tg" id="7X1-pX-SVx"/>
|
|
||||||
</connections>
|
|
||||||
</panGestureRecognizer>
|
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="2078" y="1425"/>
|
<point key="canvasLocation" x="2078" y="1425"/>
|
||||||
</scene>
|
</scene>
|
||||||
@ -2559,9 +2544,11 @@ You can make passwords for all sorts of things, like email addresses, sites or r
|
|||||||
<image name="icon_play.png" width="32" height="32"/>
|
<image name="icon_play.png" width="32" height="32"/>
|
||||||
<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="icon_volume-high.png" width="32" height="32"/>
|
||||||
<image name="identity.png" width="82" height="80"/>
|
<image name="identity.png" width="82" height="80"/>
|
||||||
<image name="page-deblock.png" width="305" height="400"/>
|
<image name="page-deblock.png" width="305" height="400"/>
|
||||||
<image name="page-gorillas.png" width="305" height="400"/>
|
<image name="page-gorillas.png" width="305" height="400"/>
|
||||||
|
<image name="play.png" width="72" height="80"/>
|
||||||
<image name="pull-down.png" width="60" height="10"/>
|
<image name="pull-down.png" width="60" height="10"/>
|
||||||
<image name="pull-up.png" width="60" height="20"/>
|
<image name="pull-up.png" width="60" height="20"/>
|
||||||
<image name="social-facebook.png" width="44" height="44"/>
|
<image name="social-facebook.png" width="44" height="44"/>
|
||||||
@ -2620,6 +2607,24 @@ You can make passwords for all sorts of things, like email addresses, sites or r
|
|||||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/MPGuideViewController.h"/>
|
<source key="sourceIdentifier" type="project" relativePath="./Classes/MPGuideViewController.h"/>
|
||||||
<relationships>
|
<relationships>
|
||||||
<relationship kind="action" name="close"/>
|
<relationship kind="action" name="close"/>
|
||||||
|
<relationship kind="action" name="play"/>
|
||||||
|
<relationship kind="action" name="toggleVolume"/>
|
||||||
|
<relationship kind="outlet" name="content" candidateClass="UIView"/>
|
||||||
|
<relationship kind="outlet" name="contentButton" candidateClass="UIButton"/>
|
||||||
|
<relationship kind="outlet" name="contentText" candidateClass="UITextField"/>
|
||||||
|
<relationship kind="outlet" name="contentTip" candidateClass="UIView"/>
|
||||||
|
<relationship kind="outlet" name="contentTipText" candidateClass="UILabel"/>
|
||||||
|
<relationship kind="outlet" name="largePlayButton" candidateClass="UIButton"/>
|
||||||
|
<relationship kind="outlet" name="progress" candidateClass="UIProgressView"/>
|
||||||
|
<relationship kind="outlet" name="siteNameTip" candidateClass="UIView"/>
|
||||||
|
<relationship kind="outlet" name="smallPlayButton" candidateClass="UIButton"/>
|
||||||
|
<relationship kind="outlet" name="toolButton" candidateClass="UIButton"/>
|
||||||
|
<relationship kind="outlet" name="toolTip" candidateClass="UIView"/>
|
||||||
|
<relationship kind="outlet" name="typeButton" candidateClass="UIButton"/>
|
||||||
|
<relationship kind="outlet" name="typeTip" candidateClass="UIView"/>
|
||||||
|
<relationship kind="outlet" name="usernameButton" candidateClass="UIButton"/>
|
||||||
|
<relationship kind="outlet" name="usernameTip" candidateClass="UIView"/>
|
||||||
|
<relationship kind="outlet" name="volumeButton" candidateClass="UIButton"/>
|
||||||
</relationships>
|
</relationships>
|
||||||
</class>
|
</class>
|
||||||
<class className="MPMainViewController" superclassName="UIViewController">
|
<class className="MPMainViewController" superclassName="UIViewController">
|
||||||
@ -2694,6 +2699,7 @@ You can make passwords for all sorts of things, like email addresses, sites or r
|
|||||||
<relationships>
|
<relationships>
|
||||||
<relationship kind="action" name="close:" candidateClass="UIBarButtonItem"/>
|
<relationship kind="action" name="close:" candidateClass="UIBarButtonItem"/>
|
||||||
<relationship kind="action" name="showGuide:" candidateClass="UIBarButtonItem"/>
|
<relationship kind="action" name="showGuide:" candidateClass="UIBarButtonItem"/>
|
||||||
|
<relationship kind="outlet" name="cloudSwitch" candidateClass="UISwitch"/>
|
||||||
</relationships>
|
</relationships>
|
||||||
</class>
|
</class>
|
||||||
<class className="MPTypeViewController" superclassName="UITableViewController">
|
<class className="MPTypeViewController" superclassName="UITableViewController">
|
||||||
|
@ -36,6 +36,8 @@
|
|||||||
DA497C0C15E8C95700B52167 /* libGoogle+.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DA497B9715E8C90E00B52167 /* libGoogle+.a */; };
|
DA497C0C15E8C95700B52167 /* libGoogle+.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DA497B9715E8C90E00B52167 /* libGoogle+.a */; };
|
||||||
DA4DA1D91564471A00F6F596 /* libjrswizzle.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAC6326C148680650075AEA5 /* libjrswizzle.a */; };
|
DA4DA1D91564471A00F6F596 /* libjrswizzle.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAC6326C148680650075AEA5 /* libjrswizzle.a */; };
|
||||||
DA4DA1DA1564471F00F6F596 /* libuicolor-utilities.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAC6325D1486805C0075AEA5 /* libuicolor-utilities.a */; };
|
DA4DA1DA1564471F00F6F596 /* libuicolor-utilities.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAC6325D1486805C0075AEA5 /* libuicolor-utilities.a */; };
|
||||||
|
DA5A09DF171A70E4005284AB /* play.png in Resources */ = {isa = PBXBuildFile; fileRef = DA5A09DD171A70E4005284AB /* play.png */; };
|
||||||
|
DA5A09E0171A70E4005284AB /* play@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA5A09DE171A70E4005284AB /* play@2x.png */; };
|
||||||
DA5BFA49147E415C00F98B1E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA48147E415C00F98B1E /* UIKit.framework */; };
|
DA5BFA49147E415C00F98B1E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA48147E415C00F98B1E /* UIKit.framework */; };
|
||||||
DA5BFA4B147E415C00F98B1E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
|
DA5BFA4B147E415C00F98B1E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
|
||||||
DA5BFA4D147E415C00F98B1E /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4C147E415C00F98B1E /* CoreGraphics.framework */; };
|
DA5BFA4D147E415C00F98B1E /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4C147E415C00F98B1E /* CoreGraphics.framework */; };
|
||||||
@ -1032,6 +1034,8 @@
|
|||||||
DA3EF17A15A47744003ABF4E /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
|
DA3EF17A15A47744003ABF4E /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
|
||||||
DA4425CB1557BED40052177D /* libUbiquityStoreManager.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libUbiquityStoreManager.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
DA4425CB1557BED40052177D /* libUbiquityStoreManager.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libUbiquityStoreManager.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
DA497B9715E8C90E00B52167 /* libGoogle+.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libGoogle+.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
DA497B9715E8C90E00B52167 /* libGoogle+.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libGoogle+.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
DA5A09DD171A70E4005284AB /* play.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = play.png; sourceTree = "<group>"; };
|
||||||
|
DA5A09DE171A70E4005284AB /* play@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "play@2x.png"; sourceTree = "<group>"; };
|
||||||
DA5BFA44147E415C00F98B1E /* MasterPassword.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MasterPassword.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
DA5BFA44147E415C00F98B1E /* MasterPassword.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MasterPassword.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
DA5BFA48147E415C00F98B1E /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
DA5BFA48147E415C00F98B1E /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||||
DA5BFA4A147E415C00F98B1E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
DA5BFA4A147E415C00F98B1E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||||
@ -2202,6 +2206,8 @@
|
|||||||
DABD360D1711E29400CF925C /* Media */ = {
|
DABD360D1711E29400CF925C /* Media */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
DA5A09DD171A70E4005284AB /* play.png */,
|
||||||
|
DA5A09DE171A70E4005284AB /* play@2x.png */,
|
||||||
DABD360E1711E29400CF925C /* Automaton */,
|
DABD360E1711E29400CF925C /* Automaton */,
|
||||||
DABD366B1711E29400CF925C /* Avatars */,
|
DABD366B1711E29400CF925C /* Avatars */,
|
||||||
DABD36921711E29400CF925C /* Background */,
|
DABD36921711E29400CF925C /* Background */,
|
||||||
@ -4588,6 +4594,8 @@
|
|||||||
DABD3FCB1712446200CF925C /* cloud@2x.png in Resources */,
|
DABD3FCB1712446200CF925C /* cloud@2x.png in Resources */,
|
||||||
DABD3FCE1714F45C00CF925C /* identity.png in Resources */,
|
DABD3FCE1714F45C00CF925C /* identity.png in Resources */,
|
||||||
DABD3FCF1714F45C00CF925C /* identity@2x.png in Resources */,
|
DABD3FCF1714F45C00CF925C /* identity@2x.png in Resources */,
|
||||||
|
DA5A09DF171A70E4005284AB /* play.png in Resources */,
|
||||||
|
DA5A09E0171A70E4005284AB /* play@2x.png in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
BIN
MasterPassword/Resources/Media/play.png
Normal file
BIN
MasterPassword/Resources/Media/play.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.9 KiB |
BIN
MasterPassword/Resources/Media/play@2x.png
Normal file
BIN
MasterPassword/Resources/Media/play@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 19 KiB |
Binary file not shown.
Loading…
Reference in New Issue
Block a user