wizard: connect to account manager
Change-Id: Ieadb3a1dd3f16fcf97183f5df747d07fb46c337f
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b03804c..77a6051 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -182,6 +182,8 @@
src/ChooseContactVC.h
src/CallInConferenceVC.mm
src/CallInConferenceVC.h
+ src/ConnectToAccManagerVC.mm
+ src/ConnectToAccManagerVC.h
)
SET(ringclient_VIEWS
@@ -283,6 +285,7 @@
RecordFileVC
ChooseContactVC
CallInConferenceVC
+ ConnectToAccManagerVC
)
# Icons
diff --git a/src/AccRingGeneralVC.mm b/src/AccRingGeneralVC.mm
index d3a02f6..3e5d29f 100644
--- a/src/AccRingGeneralVC.mm
+++ b/src/AccRingGeneralVC.mm
@@ -49,10 +49,12 @@
@property (unsafe_unretained) IBOutlet NSTextField *displayNameField;
@property (unsafe_unretained) IBOutlet NSTextField *ringIDField;
@property (unsafe_unretained) IBOutlet NSTextField *registeredNameField;
+@property (unsafe_unretained) IBOutlet NSTextField *passwordField;
@property (unsafe_unretained) IBOutlet RoundedTextField *accountStatus;
@property (unsafe_unretained) IBOutlet NSButton *registerNameButton;
@property (unsafe_unretained) IBOutlet NSButton* photoView;
@property (unsafe_unretained) IBOutlet NSButton* passwordButton;
+@property (unsafe_unretained) IBOutlet NSButton* linkDeviceButton;
@property (unsafe_unretained) IBOutlet NSButton* removeAccountButton;
@property (unsafe_unretained) IBOutlet NSImageView* addProfilePhotoImage;
@property (unsafe_unretained) IBOutlet NSTableView* devicesTableView;
@@ -90,7 +92,8 @@
@synthesize delegate;
@synthesize devicesTableView;
@synthesize blockedContactsTableView;
-
+@synthesize linkDeviceButton;
+@synthesize passwordField;
typedef NS_ENUM(NSInteger, TagViews) {
DISPLAYNAME = 100,
@@ -166,6 +169,12 @@
[passwordButton setTitle:accountProperties.archiveHasPassword ? @"Change password" : @"Create password"];
self.accountEnabled = account.enabled;
+ bool hideLocalAccountConfig = !accountProperties.managerUri.empty();
+ [registerNameButton setHidden:hideLocalAccountConfig];
+ [passwordButton setHidden:hideLocalAccountConfig];
+ [linkDeviceButton setHidden:hideLocalAccountConfig];
+ [passwordField setHidden:hideLocalAccountConfig];
+
NSMutableAttributedString *colorTitle = [[NSMutableAttributedString alloc] initWithAttributedString:[removeAccountButton attributedTitle]];
NSRange titleRange = NSMakeRange(0, [colorTitle length]);
[colorTitle addAttribute:NSForegroundColorAttributeName value:[NSColor errorColor] range:titleRange];
diff --git a/src/AddSIPAccountVC.mm b/src/AddSIPAccountVC.mm
index f6bb611..ec5b4d0 100644
--- a/src/AddSIPAccountVC.mm
+++ b/src/AddSIPAccountVC.mm
@@ -50,7 +50,7 @@
- (void)viewDidLoad {
[super viewDidLoad];
- [self.view setAutoresizingMask: NSViewHeightSizable];
+ [self.view setAutoresizingMask: NSViewHeightSizable | NSViewWidthSizable];
}
-(id) initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil accountmodel:(lrc::api::NewAccountModel*) accountModel {
@@ -67,6 +67,7 @@
photoView.layer.masksToBounds = YES;
[photoView setBordered:YES];
[addProfilePhotoImage setWantsLayer: YES];
+ [self.delegate showView:self.view];
}
- (IBAction)cancel:(id)sender
diff --git a/src/ConnectToAccManagerVC.h b/src/ConnectToAccManagerVC.h
new file mode 100644
index 0000000..35657f8
--- /dev/null
+++ b/src/ConnectToAccManagerVC.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2019 Savoir-faire Linux Inc.
+ * Author: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#import <Cocoa/Cocoa.h>
+#import "LrcModelsProtocol.h"
+
+@protocol RingWizardAccManagerDelegate <NSObject>
+- (void)didSignInSuccess:(BOOL)success;
+- (void)showView:(NSView*)view;
+@end
+
+
+@interface ConnectToAccManagerVC: NSViewController <LrcModelsProtocol>
+@property (nonatomic, weak) NSWindowController <RingWizardAccManagerDelegate>* delegate;
+
+/*
+ * KVO value username
+ */
+@property (nonatomic, weak) NSString* username;
+/*
+ * KVO value password
+ */
+@property (nonatomic, weak) NSString* password;
+/*
+ * KVO value account manager
+ */
+@property (nonatomic, weak) NSString* accountManager;
+
+- (void)show;
+
+@end
+
diff --git a/src/ConnectToAccManagerVC.mm b/src/ConnectToAccManagerVC.mm
new file mode 100644
index 0000000..9316f14
--- /dev/null
+++ b/src/ConnectToAccManagerVC.mm
@@ -0,0 +1,127 @@
+/*
+ * Copyright (C) 2019 Savoir-faire Linux Inc.
+ * Author: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#import "ConnectToAccManagerVC.h"
+#import "utils.h"
+
+//LRC
+#import <api/lrc.h>
+#import <api/newaccountmodel.h>
+
+@interface ConnectToAccManagerVC ()
+
+@end
+
+@implementation ConnectToAccManagerVC {
+ __unsafe_unretained IBOutlet NSView* initialContainer;
+ __unsafe_unretained IBOutlet NSView* loadingContainer;
+ __unsafe_unretained IBOutlet NSProgressIndicator* progressBar;
+ __unsafe_unretained IBOutlet NSView* errorContainer;
+
+ __unsafe_unretained IBOutlet NSTextField* userNameField;
+ __unsafe_unretained IBOutlet NSTextField* accountManagerField;
+ __unsafe_unretained IBOutlet NSSecureTextField* passwordTextField;
+}
+
+QMetaObject::Connection accountCreatedSuccess;
+QMetaObject::Connection accountNotCreated;
+std::string accointId;
+
+@synthesize accountModel;
+
+-(id) initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil accountmodel:(lrc::api::NewAccountModel*) accountModel {
+ if (self = [self initWithNibName:nibNameOrNil bundle:nibBundleOrNil])
+ {
+ self.accountModel = accountModel;
+ }
+ return self;
+}
+
+- (void)show
+{
+ self.username = userNameField.stringValue = @"";
+ self.password = passwordTextField.stringValue = @"";
+ self.accountManager = accountManagerField.stringValue = @"";
+ [self.delegate showView:initialContainer];
+}
+
+- (void)showError
+{
+ [self.delegate showView:errorContainer];
+}
+- (void)showLoading
+{
+ [progressBar startAnimation:nil];
+ [self.delegate showView:loadingContainer];
+}
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+ [self.view setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
+}
+
+- (IBAction)dismissViewWithError:(id)sender
+{
+ [self.delegate didSignInSuccess:NO];
+}
+
+- (IBAction)startAgain:(id)sender
+{
+ [self show];
+}
+
+
+- (IBAction)signIn:(id)sender
+{
+ QObject::disconnect(accountCreatedSuccess);
+ QObject::disconnect(accountNotCreated);
+ accountCreatedSuccess = QObject::connect(self.accountModel,
+ &lrc::api::NewAccountModel::accountAdded,
+ [self] (const std::string& accountID) {
+ if(accountID.compare(accointId) != 0) {
+ return;
+ }
+ [self.delegate didSignInSuccess:YES];
+ lrc::api::account::ConfProperties_t accountProperties = self.accountModel->getAccountConfig(accountID);
+ accountProperties.Ringtone.ringtonePath = [defaultRingtonePath() UTF8String];
+ self.accountModel->setAccountConfig(accountID, accountProperties);
+ QObject::disconnect(accountCreatedSuccess);
+ QObject::disconnect(accountNotCreated);
+ });
+ accountNotCreated = QObject::connect(self.accountModel,
+ &lrc::api::NewAccountModel::accountRemoved,
+ [self] (const std::string& accountID) {
+ if(accountID.compare(accointId) == 0) {
+ [self showError];
+ }
+ });
+ accountNotCreated = QObject::connect(self.accountModel,
+ &lrc::api::NewAccountModel::invalidAccountDetected,
+ [self] (const std::string& accountID) {
+ if(accountID.compare(accointId) == 0) {
+ [self showError];
+ }
+ });
+
+ [self showLoading];
+
+ accointId = self.accountModel->connectToAccountManager([userNameField.stringValue UTF8String], [passwordTextField.stringValue UTF8String], [accountManagerField.stringValue UTF8String]);
+}
+
+@end
diff --git a/src/RegisterNameWC.mm b/src/RegisterNameWC.mm
index 4255f2c..cc57295 100644
--- a/src/RegisterNameWC.mm
+++ b/src/RegisterNameWC.mm
@@ -152,7 +152,7 @@
}
case NameDirectory::LookupStatus::INVALID_NAME:
{
- message = NSLocalizedString(@"The entered username is invalid. It must have at least 3 characters and contain only lowercase alphanumeric characters.",
+ message = NSLocalizedString(@"Invalid username",
@"Text shown to user when his username is invalid to be registered");
isAvailable = NO;
break;
diff --git a/src/RingWindowController.mm b/src/RingWindowController.mm
index 30fb6a5..5d3f4dc 100644
--- a/src/RingWindowController.mm
+++ b/src/RingWindowController.mm
@@ -540,7 +540,7 @@
- (void) createNewAccount {
[self changeViewTo:SHOW_WELCOME_SCREEN];
wizard = [[RingWizardWC alloc] initWithNibName:@"RingWizard" bundle: nil accountmodel: self.accountModel];
- [wizard showChooseWithCancelButton: YES andAdvanced: YES];
+ [wizard showChooseWithCancelButton: YES];
[self.window beginSheet:wizard.window completionHandler:nil];
}
diff --git a/src/RingWizardChooseVC.h b/src/RingWizardChooseVC.h
index c98d701..82aaed4 100644
--- a/src/RingWizardChooseVC.h
+++ b/src/RingWizardChooseVC.h
@@ -24,9 +24,11 @@
typedef NS_ENUM(NSInteger, WizardAction) {
WIZARD_ACTION_INVALID = -1,
WIZARD_ACTION_NEW = 0,
- WIZARD_ACTION_LINK = 1,
- WIZARD_ACTION_ADVANCED = 2,
- WIZARD_ACTION_SIP_ACCOUNT = 3
+ WIZARD_ACTION_IMPORT_FROM_DEVICE= 1,
+ WIZARD_ACTION_IMPORT_FROM_ADCHIVE= 2,
+ WIZARD_ACTION_ADVANCED = 3,
+ WIZARD_ACTION_SIP_ACCOUNT = 4,
+ WIZARD_ACTION_ACCOUNT_MANAGER = 5
};
@protocol RingWizardChooseDelegate <NSObject>
@@ -40,12 +42,8 @@
@property (weak, nonatomic) id <RingWizardChooseDelegate> delegate;
@property BOOL isCancelable;
-@property BOOL withAdvancedOptions;
-- (void)showCancelButton:(BOOL)showCancel;
-
-- (void)showAdvancedButton:(BOOL)showAdvanced;
-- (void)updateFrame;
+- (void)showInitialwithCancell:(BOOL)showCancel;
@end
diff --git a/src/RingWizardChooseVC.mm b/src/RingWizardChooseVC.mm
index 1cfc7d2..c04b9e0 100644
--- a/src/RingWizardChooseVC.mm
+++ b/src/RingWizardChooseVC.mm
@@ -26,31 +26,19 @@
@implementation RingWizardChooseVC {
__unsafe_unretained IBOutlet NSButton* createSIPAccount;
-__unsafe_unretained IBOutlet NSLayoutConstraint* buttonTopConstraint;
+__unsafe_unretained IBOutlet NSButton* connectToManager;
+__unsafe_unretained IBOutlet NSLayoutConstraint* viewBottomConstraint;
}
@synthesize delegate;
-#define heightWithAdvanced 220
-#define heightWithCancel 148
-#define heightWithCancelAndAdvanced 168
-#define defaultHeight 128
-
-- (void)showCancelButton:(BOOL)showCancel {
- [createSIPAccount setHidden: YES];
- buttonTopConstraint.constant = showCancel ? 25 : 0;
+- (void)showInitialwithCancell:(BOOL)showCancel {
self.isCancelable = showCancel;
-}
-
-- (void)showAdvancedButton:(BOOL)showAdvanced {
- self.withAdvancedOptions = showAdvanced;
-}
-
-- (void)updateFrame {
- NSRect viewFrame = self.view.frame;
- viewFrame.size.height = (self.isCancelable && self.withAdvancedOptions) ? heightWithCancelAndAdvanced : self.isCancelable ? heightWithCancel : defaultHeight;
- self.view.frame = viewFrame;
+ [self.view setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
+ [createSIPAccount setHidden: YES];
+ [connectToManager setHidden: YES];
+ viewBottomConstraint.constant = showCancel ? 25 : 0;
}
- (IBAction)createRingAccount:(id)sender
@@ -60,10 +48,24 @@
}
}
-- (IBAction)linkExistingRingAccount:(id)sender
+- (IBAction)importFromArchive:(id)sender
{
if ([self.delegate respondsToSelector:@selector(didCompleteWithAction:)]){
- [delegate didCompleteWithAction:WizardAction::WIZARD_ACTION_LINK];
+ [delegate didCompleteWithAction:WizardAction::WIZARD_ACTION_IMPORT_FROM_ADCHIVE];
+ }
+}
+
+- (IBAction)importFromDevice:(id)sender
+{
+ if ([self.delegate respondsToSelector:@selector(didCompleteWithAction:)]){
+ [delegate didCompleteWithAction:WizardAction::WIZARD_ACTION_IMPORT_FROM_DEVICE];
+ }
+}
+
+- (IBAction)connectToAccountManager:(id)sender
+{
+ if ([self.delegate respondsToSelector:@selector(didCompleteWithAction:)]){
+ [delegate didCompleteWithAction:WizardAction::WIZARD_ACTION_ACCOUNT_MANAGER];
}
}
@@ -74,15 +76,12 @@
}
}
-- (IBAction)showCreateSIP:(id)sender
+- (IBAction)expandAdwanced:(id)sender
{
if ([self.delegate respondsToSelector:@selector(didCompleteWithAction:)]){
- buttonTopConstraint.constant = 57;
- NSRect viewFrame = self.view.frame;
- viewFrame.size.height = heightWithAdvanced;
- self.view.frame = viewFrame;
+ [createSIPAccount setHidden: !createSIPAccount.isHidden];
+ [connectToManager setHidden: !connectToManager.isHidden];
[delegate didCompleteWithAction:WIZARD_ACTION_ADVANCED];
- [createSIPAccount setHidden: NO];
}
}
diff --git a/src/RingWizardLinkAccountVC.h b/src/RingWizardLinkAccountVC.h
index 9789416..ed5fd21 100644
--- a/src/RingWizardLinkAccountVC.h
+++ b/src/RingWizardLinkAccountVC.h
@@ -25,11 +25,16 @@
- (void)showView:(NSView*)view;
@end
+typedef NS_ENUM(NSInteger, IMPORT_TYPE) {
+ IMPORT_FROM_DEVICE = 0,
+ IMPORT_FROM_BACKUP = 1
+};
+
@interface RingWizardLinkAccountVC : NSViewController <LrcModelsProtocol>
@property (nonatomic, weak) NSWindowController <RingWizardLinkDelegate>* delegate;
@property (nonatomic, weak) NSString* pinValue;
@property (nonatomic, weak) NSString* passwordValue;
@property NSURL* backupFile;
-- (void)show;
+- (void)showImportViewOfType:(IMPORT_TYPE)type;
@end
diff --git a/src/RingWizardLinkAccountVC.mm b/src/RingWizardLinkAccountVC.mm
index 65a5c7b..f245ad7 100644
--- a/src/RingWizardLinkAccountVC.mm
+++ b/src/RingWizardLinkAccountVC.mm
@@ -53,6 +53,8 @@
__unsafe_unretained IBOutlet NSButton* linkButton;
__unsafe_unretained IBOutlet NSPopover* helpPINContainer;
__unsafe_unretained IBOutlet NSPopover* helpArchiveFileContainer;
+ __unsafe_unretained IBOutlet NSStackView* pinContainer;
+ __unsafe_unretained IBOutlet NSStackView* filePathContainer;
NSString *fileButtonTitleBackup;
QMetaObject::Connection accountCreated;
@@ -72,12 +74,18 @@
- (void)viewDidLoad {
[super viewDidLoad];
+ [self.view setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
+ [initialContainer setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
+ [loadingContainer setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
+ [errorContainer setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
fileButtonTitleBackup = NSLocalizedString(@"Select archive",
@"export account button title");
}
-- (void)show
+- (void)showImportViewOfType:(IMPORT_TYPE)type
{
+ [pinContainer setHidden: type == IMPORT_FROM_BACKUP];
+ [filePathContainer setHidden: type == IMPORT_FROM_DEVICE];
[self.delegate showView:initialContainer];
[fileButton setTitle:fileButtonTitleBackup];
backupFile = nil;
diff --git a/src/RingWizardNewAccountVC.h b/src/RingWizardNewAccountVC.h
index 381422e..2d2a961 100644
--- a/src/RingWizardNewAccountVC.h
+++ b/src/RingWizardNewAccountVC.h
@@ -23,7 +23,6 @@
@protocol RingWizardNewDelegate <NSObject>
- (void)didCreateAccountWithSuccess:(BOOL)success;
- (void)showView:(NSView*)view;
-- (void) updateFrame:(float)height;
@end
@interface RingWizardNewAccountVC : NSViewController <LrcModelsProtocol>
@@ -41,4 +40,6 @@
@property (readonly)BOOL withBlockchain;
@property (assign)NSInteger signUpBlockchainState;
- (void)show;
+
+- (void)prepareViewToShow;
@end
diff --git a/src/RingWizardNewAccountVC.mm b/src/RingWizardNewAccountVC.mm
index de00032..0291fbe 100644
--- a/src/RingWizardNewAccountVC.mm
+++ b/src/RingWizardNewAccountVC.mm
@@ -54,22 +54,21 @@
__unsafe_unretained IBOutlet NSButton* photoView;
__unsafe_unretained IBOutlet NSTextField* displayNameField;
__unsafe_unretained IBOutlet NSTextField* registeredNameField;
+ __unsafe_unretained IBOutlet NSTextField* registeredNameError;
+ __unsafe_unretained IBOutlet NSTextField* passwordError;
__unsafe_unretained IBOutlet NSSecureTextField* passwordField;
__unsafe_unretained IBOutlet NSSecureTextField* passwordRepeatField;
- __unsafe_unretained IBOutlet NSImageView* passwordCheck;
- __unsafe_unretained IBOutlet NSImageView* passwordRepeatCheck;
__unsafe_unretained IBOutlet NSImageView* addProfilePhotoImage;
__unsafe_unretained IBOutlet NSProgressIndicator* progressBar;
- __unsafe_unretained IBOutlet NSImageView* ivLookupResult;
__unsafe_unretained IBOutlet NSProgressIndicator* indicatorLookupResult;
__unsafe_unretained IBOutlet NSPopover* helpBlockchainContainer;
__unsafe_unretained IBOutlet NSPopover* helpPasswordContainer;
__unsafe_unretained IBOutlet NSLayoutConstraint* buttonTopConstraint;
- __unsafe_unretained IBOutlet NSBox* passwordBox;
__unsafe_unretained IBOutlet NSButton* passwordButton;
+ __unsafe_unretained IBOutlet NSStackView* repeatPasswordView;
QMetaObject::Connection registeredNameFound;
QMetaObject::Connection accountCreated;
@@ -82,6 +81,8 @@
NSInteger const DISPLAY_NAME_TAG = 1;
NSInteger const BLOCKCHAIN_NAME_TAG = 2;
+NSInteger const PASSWORD_TAG = 3;
+NSInteger const REPEAT_PASSWORD_TAG = 4;
//ERROR CODE for textfields validations
NSInteger const ERROR_PASSWORD_TOO_SHORT = -1;
@@ -89,9 +90,6 @@
@synthesize accountModel;
-#define heightWithCancelAndAdvanced 468
-#define defaultHeight 408
-
-(id) initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil accountmodel:(lrc::api::NewAccountModel*) accountModel {
if (self = [self initWithNibName:nibNameOrNil bundle:nibBundleOrNil])
{
@@ -119,12 +117,18 @@
[helpPasswordContainer showRelativeToRect:[sender bounds] ofView:sender preferredEdge:NSMaxYEdge];
}
+- (void)prepareViewToShow {
+ [self.view setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
+ [creationView setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
+ [passwordField setHidden: YES];
+ [repeatPasswordView setHidden: YES];
+ buttonTopConstraint.constant = 35;
+}
+
- (void)show
{
[displayNameField setTag:DISPLAY_NAME_TAG];
[registeredNameField setTag:BLOCKCHAIN_NAME_TAG];
- [displayNameField setStringValue: NSFullUserName()];
- [self controlTextDidChange:[NSNotification notificationWithName:@"PlaceHolder" object:displayNameField]];
[photoView setWantsLayer: YES];
photoView.layer.cornerRadius = photoView.frame.size.width / 2;
photoView.layer.masksToBounds = YES;
@@ -133,26 +137,12 @@
[addProfilePhotoImage setWantsLayer: YES];
[photoView setBordered:YES];
[passwordButton setState: NSControlStateValueOff];
- NSRect viewFrame = creationView.frame;
- viewFrame.size.height = defaultHeight;
- creationView.frame = viewFrame;
-
- buttonTopConstraint.constant = 25;
- [passwordBox setHidden: YES];
self.registeredName = @"";
self.password = @"";
self.repeatPassword = @"";
-
[self display:creationView];
}
-- (void)removeSubviews
-{
- while ([self.view.subviews count] > 0){
- [[self.view.subviews firstObject] removeFromSuperview];
- }
-}
-
- (void)display:(NSView *)view
{
[self.delegate showView:view];
@@ -211,7 +201,7 @@
- (BOOL)isPasswordValid
{
- return self.password.length >= 6;
+ return self.password.length >= 6 || self.password.length == 0;
}
- (BOOL)isRepeatPasswordValid
@@ -222,22 +212,28 @@
- (BOOL)validateRepeatPassword:(NSError **)error
{
if (!self.isRepeatPasswordValid){
+ passwordError.stringValue = NSLocalizedString(@"Passwords don't match",
+ @"Indication for user");
return [self produceError:error
withCode:ERROR_REPEAT_MISMATCH
andMessage:NSLocalizedString(@"Passwords don't match",
@"Indication for user")];
}
+ passwordError.stringValue = @"";
return YES;
}
- (BOOL)validatePassword:(NSError **)error
{
- if (!self.isRepeatPasswordValid){
+ if (!self.isPasswordValid){
+ passwordError.stringValue = NSLocalizedString(@"Password is too short",
+ @"Indication for user");
return [self produceError:error
withCode:ERROR_PASSWORD_TOO_SHORT
andMessage:NSLocalizedString(@"Password is too short",
@"Indication for user")];
}
+ passwordError.stringValue = @"";
return YES;
}
@@ -248,23 +244,6 @@
- (IBAction)createRingAccount:(id)sender
{
- NSError *error = nil;
- if (![self validateUserInputPassword:&error]){
- NSAlert* alert = [NSAlert alertWithMessageText:[error localizedDescription]
- defaultButton:NSLocalizedString(@"Revise Input",
- @"Button title")
- alternateButton:nil
- otherButton:nil
- informativeTextWithFormat:@"%@",error];
-
- [alert beginSheetModalForWindow:passwordField.window
- modalDelegate:nil
- didEndSelector:NULL
- contextInfo:NULL];
-
- return;
- }
-
QObject::disconnect(accountCreated);
QObject::disconnect(accountRemoved);
accountCreated = QObject::connect(self.accountModel,
@@ -346,22 +325,10 @@
- (IBAction)togglePasswordButton:(NSButton *)sender
{
- NSRect viewFrame = creationView.frame;
- if([sender state] == NSControlStateValueOn) {
- viewFrame.size.height = heightWithCancelAndAdvanced;
- [self.delegate updateFrame: heightWithCancelAndAdvanced];
- creationView.frame = viewFrame;
- buttonTopConstraint.constant = 85;
- [passwordBox setHidden: NO];
- } else {
- buttonTopConstraint.priority = 100;
- viewFrame.size.height = defaultHeight;
- [self.delegate updateFrame: defaultHeight];
- creationView.frame = viewFrame;
- buttonTopConstraint.constant = 25;
- buttonTopConstraint.priority = 999;
- [passwordBox setHidden: YES];
- }
+ [passwordField setHidden: !passwordField.hidden];
+ [repeatPasswordView setHidden: !repeatPasswordView.hidden];
+ buttonTopConstraint.constant = repeatPasswordView.hidden ? 35 : 25;
+ [self display:creationView];
}
- (BOOL)withBlockchain
@@ -376,9 +343,11 @@
- (void)showLookUpAvailable:(BOOL)available andText:(NSString *)message
{
- [ivLookupResult setImage:[NSImage imageNamed:(available?@"ic_action_accept":@"ic_action_cancel")]] ;
- [ivLookupResult setHidden:NO];
- [ivLookupResult setToolTip:message];
+ if (registeredNameField.stringValue.length > 0) {
+ registeredNameError.stringValue = message;
+ }
+ [indicatorLookupResult setHidden:YES];
+ [indicatorLookupResult stopAnimation:nil];
}
- (void)onUsernameAvailabilityChangedWithNewAvailability:(BOOL)newAvailability
@@ -393,9 +362,11 @@
- (void)showLookupSpinner
{
- [ivLookupResult setHidden:YES];
- [indicatorLookupResult setHidden:NO];
- [indicatorLookupResult startAnimation:nil];
+ registeredNameError.stringValue = @"";
+ if (registeredNameField.stringValue.length > 0) {
+ [indicatorLookupResult setHidden:NO];
+ [indicatorLookupResult startAnimation:nil];
+ }
}
- (BOOL)lookupUserName
@@ -433,14 +404,13 @@
}
case NameDirectory::LookupStatus::NOT_FOUND:
{
- message = NSLocalizedString(@"The entered username is available",
- @"Text shown to user when his username is available to be registered");
+ message = @"";
isAvailable = YES;
break;
}
case NameDirectory::LookupStatus::INVALID_NAME:
{
- message = NSLocalizedString(@"The entered username is invalid. It must have at least 3 characters and contain only lowercase alphanumeric characters.",
+ message = NSLocalizedString(@"Invalid username.",
@"Text shown to user when his username is invalid to be registered");
isAvailable = NO;
break;
@@ -469,11 +439,20 @@
- (void)controlTextDidChange:(NSNotification *)notif
{
NSTextField* textField = [notif object];
+ if (textField.tag == PASSWORD_TAG) {
+ NSError *error = nil;
+ [self validatePassword: &error];
+ return;
+ }
+ if (textField.tag == REPEAT_PASSWORD_TAG) {
+ NSError *error = nil;
+ [self validateRepeatPassword: &error];
+ return;
+ }
if (textField.tag != BLOCKCHAIN_NAME_TAG) {
return;
}
NSString* alias = textField.stringValue;
-
[self showLookupSpinner];
[self onUsernameAvailabilityChangedWithNewAvailability:NO];
[NSObject cancelPreviousPerformRequestsWithTarget:self];
diff --git a/src/RingWizardWC.h b/src/RingWizardWC.h
index e962630..35c0c30 100644
--- a/src/RingWizardWC.h
+++ b/src/RingWizardWC.h
@@ -23,12 +23,15 @@
#import "RingWizardLinkAccountVC.h"
#import "LrcModelsProtocol.h"
#import "AddSIPAccountVC.h"
+#import "ConnectToAccManagerVC.h"
@interface RingWizardWC : NSWindowController <NSWindowDelegate, NSPathControlDelegate,
NSOpenSavePanelDelegate, RingWizardChooseDelegate, RingWizardNewDelegate,
- RingWizardLinkDelegate, AddSIPAccountDelegate, LrcModelsProtocol>
-- (void)showChooseWithCancelButton:(BOOL)showCancel andAdvanced:(BOOL)showAdvanced;
+ RingWizardLinkDelegate, AddSIPAccountDelegate, RingWizardAccManagerDelegate,
+LrcModelsProtocol>
+- (void)showChooseWithCancelButton:(BOOL)showCancel;
- (void)showNewAccountVC;
- (void)showLinkAccountVC;
- (void)showSIPAccountVC;
+- (void)showConnectToAccountManager;
@end
diff --git a/src/RingWizardWC.mm b/src/RingWizardWC.mm
index ff65c10..2cf5c23 100644
--- a/src/RingWizardWC.mm
+++ b/src/RingWizardWC.mm
@@ -29,6 +29,7 @@
#import "RingWizardNewAccountVC.h"
#import "RingWizardLinkAccountVC.h"
#import "RingWizardChooseVC.h"
+#import "ConnectToAccManagerVC.h"
@interface RingWizardWC ()
@@ -43,8 +44,8 @@
IBOutlet RingWizardLinkAccountVC* linkAccountWC;
IBOutlet RingWizardChooseVC* chooseActiontWC;
IBOutlet AddSIPAccountVC* addSIPAccountVC;
+ IBOutlet ConnectToAccManagerVC* connectToAccManagerVC;
BOOL isCancelable;
- BOOL withAdvanced;
}
@synthesize accountModel, ringImage, titleConstraint;
@@ -66,11 +67,13 @@
chooseActiontWC = [[RingWizardChooseVC alloc] initWithNibName:@"RingWizardChoose" bundle:nil];
linkAccountWC = [[RingWizardLinkAccountVC alloc] initWithNibName:@"RingWizardLinkAccount" bundle:nil accountmodel:self.accountModel];
addSIPAccountVC = [[AddSIPAccountVC alloc] initWithNibName:@"AddSIPAccountVC" bundle:nil accountmodel:self.accountModel];
+ connectToAccManagerVC = [[ConnectToAccManagerVC alloc] initWithNibName:@"ConnectToAccManagerVC" bundle:nil accountmodel:self.accountModel];
[addSIPAccountVC setDelegate:self];
[chooseActiontWC setDelegate:self];
[linkAccountWC setDelegate:self];
[newAccountWC setDelegate:self];
- [self showChooseWithCancelButton:isCancelable andAdvanced: withAdvanced];
+ [connectToAccManagerVC setDelegate:self];
+ [self showChooseWithCancelButton:isCancelable];
}
- (void)removeSubviews
@@ -81,83 +84,47 @@
}
}
-#define headerHeight 70
-#define minHeight 140
-#define defaultMargin 5
- (void)showView:(NSView*)view
{
[self removeSubviews];
- NSRect frame = [self.container frame];
- CGFloat height = minHeight;
- float sizeFrame = MAX(height, view.frame.size.height);
- frame.size.height = sizeFrame;
- [view setFrame: frame];
- [self.container setFrame:frame];
- float titleBarHeight = self.window.frame.size.height -
- [NSWindow contentRectForFrameRect: self.window.frame styleMask:self.window.styleMask].size.height;
- titleBarHeight = self.window.isSheet ? 0 : titleBarHeight;
- float size = headerHeight + sizeFrame + titleBarHeight;
- NSRect frameWindows = self.window.frame;
- frameWindows.size.height = size;
- [self.window setFrame:frameWindows display:YES animate:YES];
+ [self.container setFrameSize:view.frame.size];
[self.container addSubview:view];
}
-- (void) updateFrame:(float) height {
- float titleBarHeight = self.window.frame.size.height -
- [NSWindow contentRectForFrameRect: self.window.frame styleMask:self.window.styleMask].size.height;
- titleBarHeight = self.window.isSheet ? 0 : titleBarHeight;
- float size = headerHeight + height + titleBarHeight;
- NSRect frameWindows = self.window.frame;
- frameWindows.size.height = size;
- [self.window setFrame:frameWindows display:YES animate:YES];
-}
-
-- (void)showChooseWithCancelButton:(BOOL)showCancel andAdvanced:(BOOL)showAdvanced {
- [self.windowHeader setStringValue: NSLocalizedString(@"Welcome to Jami",
- @"Welcome title")];
- [ringImage setHidden: NO];
- titleConstraint.constant = -26.5;
- [self showView:chooseActiontWC.view];
- [chooseActiontWC showCancelButton:showCancel];
- [chooseActiontWC showAdvancedButton:showAdvanced];
- isCancelable = showCancel;
- withAdvanced = showAdvanced;
- [chooseActiontWC updateFrame];
- [self showView:chooseActiontWC.view];
-}
-
- (void)showChooseWithCancelButton:(BOOL)showCancel
{
[self.windowHeader setStringValue: NSLocalizedString(@"Welcome to Jami",
@"Welcome title")];
[ringImage setHidden: NO];
- titleConstraint.constant = -26.5;
- [self showView:chooseActiontWC.view];
- [chooseActiontWC showCancelButton:showCancel];
+ [chooseActiontWC showInitialwithCancell:showCancel];
isCancelable = showCancel;
+ [self showView:chooseActiontWC.view];
}
- (void)showNewAccountVC
{
[self.windowHeader setStringValue: NSLocalizedString(@"Create a new account",
@"Welcome title")];
- [chooseActiontWC showCancelButton: isCancelable];
[ringImage setHidden: YES];
titleConstraint.constant = 0;
+ [newAccountWC prepareViewToShow];
[self showView: newAccountWC.view];
[newAccountWC show];
}
-- (void)showLinkAccountVC
+- (void)showImportWithType:(IMPORT_TYPE)type
{
- [self.windowHeader setStringValue: NSLocalizedString(@"Link to an account",
- @"link account title")];
+ auto header = type == IMPORT_FROM_DEVICE ?
+ NSLocalizedString(@"Import from other device",
+ @"link account title") :
+ NSLocalizedString(@"Import from backup",
+ @"link account title");
+
+ [self.windowHeader setStringValue: header];
[ringImage setHidden: YES];
titleConstraint.constant = 0;
- [chooseActiontWC showCancelButton: isCancelable];
[self showView: linkAccountWC.view];
- [linkAccountWC show];
+ [linkAccountWC showImportViewOfType: type];
}
- (void)showSIPAccountVC
@@ -167,10 +134,19 @@
[ringImage setHidden: YES];
titleConstraint.constant = 0;
[self showView: addSIPAccountVC.view];
- [chooseActiontWC showAdvancedButton: NO];
[addSIPAccountVC show];
}
+- (void)showConnectToAccountManager
+{
+ [self.windowHeader setStringValue: NSLocalizedString(@"Sign In",
+ @"Sign In")];
+ [ringImage setHidden: YES];
+ titleConstraint.constant = 0;
+ [self showView: connectToAccManagerVC.view];
+ [connectToAccManagerVC show];
+}
+
# pragma NSWindowDelegate methods
- (void)windowWillClose:(NSNotification *)notification
@@ -187,18 +163,30 @@
- (void)didCompleteWithAction:(WizardAction)action
{
- if (action == WIZARD_ACTION_LINK) {
- [self showLinkAccountVC];
- } else if (action == WIZARD_ACTION_NEW) {
- [self showNewAccountVC];
- } else if (action == WIZARD_ACTION_ADVANCED) {
- [self showView:chooseActiontWC.view];
- } else if (action == WIZARD_ACTION_SIP_ACCOUNT) {
- [self showSIPAccountVC];
- } else {
- [self.window close];
- [NSApp endSheet:self.window];
- [[NSApplication sharedApplication] removeWindowsItem:self.window];
+ switch (action) {
+ case WIZARD_ACTION_IMPORT_FROM_DEVICE:
+ [self showImportWithType: IMPORT_FROM_DEVICE];
+ break;
+ case WIZARD_ACTION_IMPORT_FROM_ADCHIVE:
+ [self showImportWithType: IMPORT_FROM_BACKUP];
+ break;
+ case WIZARD_ACTION_NEW:
+ [self showNewAccountVC];
+ break;
+ case WIZARD_ACTION_ADVANCED:
+ [self showView:chooseActiontWC.view];
+ break;
+ case WIZARD_ACTION_SIP_ACCOUNT:
+ [self showSIPAccountVC];
+ break;
+ case WIZARD_ACTION_ACCOUNT_MANAGER:
+ [self showConnectToAccountManager];
+ break;
+ default:
+ [self.window close];
+ [NSApp endSheet:self.window];
+ [[NSApplication sharedApplication] removeWindowsItem:self.window];
+ break;
}
}
@@ -206,23 +194,23 @@
- (void)didCreateAccountWithSuccess:(BOOL)success
{
- if (success) {
- [self.window close];
- [NSApp endSheet:self.window];
- [[NSApplication sharedApplication] removeWindowsItem:self.window];
- if (!isCancelable){
- AppDelegate* appDelegate = (AppDelegate *)[[NSApplication sharedApplication] delegate];
- [appDelegate showMainWindow];
- }
- } else {
- [self showChooseWithCancelButton: isCancelable andAdvanced: withAdvanced];
- }
+ [self completedWithSuccess:success];
}
#pragma - WizardLinkAccountDelegate methods
- (void)didLinkAccountWithSuccess:(BOOL)success
{
+ [self completedWithSuccess:success];
+}
+
+#pragma - RingWizardAccManagerDelegate
+
+- (void)didSignInSuccess:(BOOL)success {
+ [self completedWithSuccess:success];
+}
+
+-(void) completedWithSuccess:(BOOL) success {
if (success) {
[self.window close];
[NSApp endSheet:self.window];
@@ -232,7 +220,7 @@
[appDelegate showMainWindow];
}
} else {
- [self showChooseWithCancelButton: isCancelable andAdvanced: withAdvanced];
+ [self showChooseWithCancelButton: isCancelable];
}
}
diff --git a/ui/Base.lproj/AccRingGeneral.xib b/ui/Base.lproj/AccRingGeneral.xib
index c58c39b..3d579d2 100644
--- a/ui/Base.lproj/AccRingGeneral.xib
+++ b/ui/Base.lproj/AccRingGeneral.xib
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
<capability name="System colors introduced in macOS 10.14" minToolsVersion="10.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
@@ -15,7 +15,9 @@
<outlet property="blockedContactsTableView" destination="aau-IO-oSs" id="Vek-r1-CDK"/>
<outlet property="devicesTableView" destination="Zw2-AJ-V23" id="fdL-VK-1ao"/>
<outlet property="displayNameField" destination="n2O-cF-oZh" id="EaH-qO-DhI"/>
+ <outlet property="linkDeviceButton" destination="xuK-C2-qCq" id="Syf-y5-KnW"/>
<outlet property="passwordButton" destination="jn6-I2-q72" id="ElE-O6-kva"/>
+ <outlet property="passwordField" destination="jfs-pl-8Bb" id="RYs-Qw-rCE"/>
<outlet property="photoView" destination="a04-w7-5Bn" id="cGK-Ao-FaB"/>
<outlet property="registerNameButton" destination="wRD-yN-Fq8" id="Nd0-BQ-cfn"/>
<outlet property="registeredNameField" destination="WON-75-xph" id="0Gt-gX-edt"/>
@@ -420,7 +422,7 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView verticalHuggingPriority="750" ambiguous="YES" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnSelection="YES" multipleSelection="NO" autosaveColumns="NO" rowHeight="1" viewBased="YES" id="aau-IO-oSs">
- <rect key="frame" x="0.0" y="0.0" width="578" height="52"/>
+ <rect key="frame" x="0.0" y="0.0" width="578" height="1"/>
<autoresizingMask key="autoresizingMask"/>
<size key="intercellSpacing" width="3" height="0.0"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
diff --git a/ui/Base.lproj/AddSIPAccountVC.xib b/ui/Base.lproj/AddSIPAccountVC.xib
index 4ce57d4..5e0b3f0 100644
--- a/ui/Base.lproj/AddSIPAccountVC.xib
+++ b/ui/Base.lproj/AddSIPAccountVC.xib
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
@@ -19,113 +19,239 @@
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<view id="AbV-oR-qrC">
- <rect key="frame" x="0.0" y="0.0" width="400" height="436"/>
+ <rect key="frame" x="0.0" y="0.0" width="400" height="367"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<subviews>
- <button focusRingType="none" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="gTr-1R-5qI">
- <rect key="frame" x="155" y="287" width="91" height="90"/>
+ <stackView distribution="fill" orientation="vertical" alignment="centerX" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="tCn-bT-Rf4">
+ <rect key="frame" x="20" y="66" width="360" height="296"/>
+ <subviews>
+ <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="k1Y-Gu-pHf">
+ <rect key="frame" x="-2" y="278" width="364" height="18"/>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="Profile" id="fgN-nq-QdO">
+ <font key="font" metaFont="systemSemibold" size="14"/>
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <customView translatesAutoresizingMaskIntoConstraints="NO" id="LC6-AI-cmj" userLabel="AvatarWidget">
+ <rect key="frame" x="135" y="180" width="91" height="90"/>
+ <subviews>
+ <button focusRingType="none" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="gTr-1R-5qI">
+ <rect key="frame" x="0.0" y="0.0" width="91" height="90"/>
+ <buttonCell key="cell" type="inline" bezelStyle="inline" imagePosition="only" alignment="center" focusRingType="none" imageScaling="proportionallyUpOrDown" inset="2" id="EgL-uj-Bpa">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="smallSystemBold"/>
+ </buttonCell>
+ </button>
+ <button verticalHuggingPriority="750" alphaValue="0.29999999999999999" translatesAutoresizingMaskIntoConstraints="NO" id="h0K-g2-bgQ" customClass="HoverButton">
+ <rect key="frame" x="0.0" y="0.0" width="91" height="90"/>
+ <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" alignment="center" refusesFirstResponder="YES" transparent="YES" imageScaling="proportionallyDown" inset="2" id="Ded-FV-C1n">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <userDefinedRuntimeAttributes>
+ <userDefinedRuntimeAttribute type="color" keyPath="hoverColor">
+ <color key="value" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+ </userDefinedRuntimeAttribute>
+ </userDefinedRuntimeAttributes>
+ <connections>
+ <action selector="editPhoto:" target="-2" id="ZqF-dw-9gc"/>
+ </connections>
+ </button>
+ <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Uof-hc-DnR">
+ <rect key="frame" x="30" y="30" width="30" height="30"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="30" id="lng-eT-YgX"/>
+ <constraint firstAttribute="width" constant="30" id="qDg-pa-wIj"/>
+ </constraints>
+ <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="ic_picture" id="ggY-JV-qn5"/>
+ </imageView>
+ </subviews>
+ <constraints>
+ <constraint firstAttribute="width" constant="91" id="3su-fs-OKV"/>
+ <constraint firstItem="gTr-1R-5qI" firstAttribute="top" secondItem="LC6-AI-cmj" secondAttribute="top" id="7yR-Bg-kba"/>
+ <constraint firstAttribute="height" constant="90" id="Lia-re-cpZ"/>
+ <constraint firstItem="h0K-g2-bgQ" firstAttribute="top" secondItem="gTr-1R-5qI" secondAttribute="top" id="N20-tX-A5V"/>
+ <constraint firstItem="h0K-g2-bgQ" firstAttribute="bottom" secondItem="gTr-1R-5qI" secondAttribute="bottom" id="TWp-qC-Crq"/>
+ <constraint firstAttribute="bottom" secondItem="gTr-1R-5qI" secondAttribute="bottom" id="XAe-ph-eQ2"/>
+ <constraint firstItem="gTr-1R-5qI" firstAttribute="leading" secondItem="LC6-AI-cmj" secondAttribute="leading" id="fyI-vc-iFn"/>
+ <constraint firstItem="Uof-hc-DnR" firstAttribute="centerX" secondItem="LC6-AI-cmj" secondAttribute="centerX" id="jsc-4F-Hcb"/>
+ <constraint firstAttribute="trailing" secondItem="gTr-1R-5qI" secondAttribute="trailing" id="lht-up-gyE"/>
+ <constraint firstItem="h0K-g2-bgQ" firstAttribute="trailing" secondItem="gTr-1R-5qI" secondAttribute="trailing" id="n6E-Gu-bQI"/>
+ <constraint firstItem="h0K-g2-bgQ" firstAttribute="leading" secondItem="gTr-1R-5qI" secondAttribute="leading" id="nkL-xl-tGn"/>
+ <constraint firstItem="Uof-hc-DnR" firstAttribute="centerY" secondItem="LC6-AI-cmj" secondAttribute="centerY" id="sCe-Sv-KuB"/>
+ </constraints>
+ </customView>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="vGN-UO-vCk">
+ <rect key="frame" x="55" y="150" width="250" height="22"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="250" id="PHP-ae-Vy9"/>
+ </constraints>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="center" placeholderString="Enter name" bezelStyle="round" id="YeS-R8-ZLT">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <customView translatesAutoresizingMaskIntoConstraints="NO" id="yJ9-hR-pul">
+ <rect key="frame" x="178" y="137" width="5" height="5"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="5" id="7Cb-Sb-Gzc"/>
+ <constraint firstAttribute="height" constant="5" id="AZV-RW-UA3"/>
+ </constraints>
+ </customView>
+ <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="SyG-hW-jMO">
+ <rect key="frame" x="-2" y="112" width="364" height="17"/>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="Account" id="zAN-HT-1oE">
+ <font key="font" metaFont="systemSemibold" size="13"/>
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <customView translatesAutoresizingMaskIntoConstraints="NO" id="plE-1c-AGs">
+ <rect key="frame" x="178" y="99" width="5" height="5"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="5" id="86K-aW-hmn"/>
+ <constraint firstAttribute="height" constant="5" id="oXX-Ft-yDD"/>
+ </constraints>
+ </customView>
+ <stackView distribution="fill" orientation="horizontal" alignment="centerY" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="wpC-mD-oWp">
+ <rect key="frame" x="17" y="66" width="326" height="25"/>
+ <subviews>
+ <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="KhB-Ik-Njv">
+ <rect key="frame" x="-2" y="4" width="72" height="17"/>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="User Name" id="Srm-hv-9WR">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="5bs-k5-y85">
+ <rect key="frame" x="76" y="2" width="250" height="22"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="250" id="wh8-I9-Ke9"/>
+ </constraints>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Enter username" bezelStyle="round" id="Rej-Yd-PDb">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ </subviews>
+ <constraints>
+ <constraint firstAttribute="height" constant="25" id="QwH-Yu-sh8"/>
+ </constraints>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
+ <stackView distribution="fill" orientation="horizontal" alignment="centerY" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="5Ig-lN-yT5">
+ <rect key="frame" x="17" y="33" width="326" height="25"/>
+ <subviews>
+ <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ltT-Ku-8cT">
+ <rect key="frame" x="-2" y="4" width="72" height="17"/>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Password" id="Aem-zQ-Ya3">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="D0T-VV-iYE" customClass="NSSecureTextField">
+ <rect key="frame" x="76" y="2" width="250" height="22"/>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Enter password" bezelStyle="round" id="DBU-zJ-vj6">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ </subviews>
+ <constraints>
+ <constraint firstAttribute="height" constant="25" id="lk6-jN-ThX"/>
+ </constraints>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
+ <stackView distribution="fill" orientation="horizontal" alignment="centerY" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="js1-zJ-3gE">
+ <rect key="frame" x="17" y="0.0" width="326" height="25"/>
+ <subviews>
+ <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="lgy-cp-ZAK">
+ <rect key="frame" x="-2" y="4" width="72" height="17"/>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="SIP Server" id="ubR-HD-O15">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="SUD-CK-UdK">
+ <rect key="frame" x="76" y="2" width="250" height="22"/>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Enter SIP address" bezelStyle="round" id="0UI-j5-0at">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ </subviews>
+ <constraints>
+ <constraint firstAttribute="height" constant="25" id="Igd-jv-7SA"/>
+ </constraints>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
+ </subviews>
<constraints>
- <constraint firstAttribute="height" constant="90" id="NmN-a9-slb"/>
- <constraint firstAttribute="width" constant="91" id="txT-to-kST"/>
+ <constraint firstItem="D0T-VV-iYE" firstAttribute="leading" secondItem="5bs-k5-y85" secondAttribute="leading" id="72G-Cv-nb9"/>
+ <constraint firstAttribute="trailing" secondItem="k1Y-Gu-pHf" secondAttribute="trailing" id="DMg-OY-ZIL"/>
+ <constraint firstItem="ltT-Ku-8cT" firstAttribute="leading" secondItem="KhB-Ik-Njv" secondAttribute="leading" id="I31-ZE-Xef"/>
+ <constraint firstItem="lgy-cp-ZAK" firstAttribute="trailing" secondItem="KhB-Ik-Njv" secondAttribute="trailing" id="Qzw-oq-GNh"/>
+ <constraint firstAttribute="trailing" secondItem="SyG-hW-jMO" secondAttribute="trailing" id="U3B-ha-3ap"/>
+ <constraint firstItem="k1Y-Gu-pHf" firstAttribute="leading" secondItem="tCn-bT-Rf4" secondAttribute="leading" id="U77-Ki-73i"/>
+ <constraint firstItem="D0T-VV-iYE" firstAttribute="trailing" secondItem="5bs-k5-y85" secondAttribute="trailing" id="USL-23-bc8"/>
+ <constraint firstItem="ltT-Ku-8cT" firstAttribute="trailing" secondItem="KhB-Ik-Njv" secondAttribute="trailing" id="ZDQ-xs-n4s"/>
+ <constraint firstItem="SUD-CK-UdK" firstAttribute="leading" secondItem="5bs-k5-y85" secondAttribute="leading" id="dcz-YA-bAr"/>
+ <constraint firstItem="SUD-CK-UdK" firstAttribute="trailing" secondItem="5bs-k5-y85" secondAttribute="trailing" id="fLD-6u-xiL"/>
+ <constraint firstItem="SyG-hW-jMO" firstAttribute="leading" secondItem="tCn-bT-Rf4" secondAttribute="leading" id="iBN-GJ-Lpe"/>
+ <constraint firstItem="lgy-cp-ZAK" firstAttribute="leading" secondItem="KhB-Ik-Njv" secondAttribute="leading" id="uSY-79-Ig5"/>
</constraints>
- <buttonCell key="cell" type="inline" bezelStyle="inline" imagePosition="only" alignment="center" focusRingType="none" imageScaling="proportionallyUpOrDown" inset="2" id="EgL-uj-Bpa">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="smallSystemBold"/>
- </buttonCell>
- </button>
- <button verticalHuggingPriority="750" alphaValue="0.29999999999999999" translatesAutoresizingMaskIntoConstraints="NO" id="h0K-g2-bgQ" customClass="HoverButton">
- <rect key="frame" x="155" y="287" width="91" height="90"/>
- <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" alignment="center" refusesFirstResponder="YES" transparent="YES" imageScaling="proportionallyDown" inset="2" id="Ded-FV-C1n">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="system"/>
- </buttonCell>
- <userDefinedRuntimeAttributes>
- <userDefinedRuntimeAttribute type="color" keyPath="hoverColor">
- <color key="value" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
- </userDefinedRuntimeAttribute>
- </userDefinedRuntimeAttributes>
- <connections>
- <action selector="editPhoto:" target="-2" id="ZqF-dw-9gc"/>
- </connections>
- </button>
- <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="vGN-UO-vCk">
- <rect key="frame" x="80" y="245" width="240" height="22"/>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="center" placeholderString="Enter name" bezelStyle="round" id="YeS-R8-ZLT">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
- <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Uof-hc-DnR">
- <rect key="frame" x="185" y="317" width="30" height="30"/>
- <constraints>
- <constraint firstAttribute="height" constant="30" id="lng-eT-YgX"/>
- <constraint firstAttribute="width" constant="30" id="qDg-pa-wIj"/>
- </constraints>
- <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="ic_picture" id="ggY-JV-qn5"/>
- </imageView>
- <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="k1Y-Gu-pHf">
- <rect key="frame" x="18" y="418" width="364" height="18"/>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Profile" id="fgN-nq-QdO">
- <font key="font" metaFont="systemSemibold" size="14"/>
- <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
- <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="SyG-hW-jMO">
- <rect key="frame" x="18" y="187" width="364" height="17"/>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Account" id="zAN-HT-1oE">
- <font key="font" metaFont="systemSemibold" size="13"/>
- <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
- <box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="Sfl-q6-sGH">
- <rect key="frame" x="20" y="395" width="360" height="5"/>
- </box>
- <box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="ZIg-7T-R16">
- <rect key="frame" x="20" y="222" width="360" height="5"/>
- </box>
- <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="KhB-Ik-Njv">
- <rect key="frame" x="18" y="150" width="72" height="17"/>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="User Name" id="Srm-hv-9WR">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
- <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ltT-Ku-8cT">
- <rect key="frame" x="18" y="113" width="72" height="17"/>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Password" id="Aem-zQ-Ya3">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
- <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="lgy-cp-ZAK">
- <rect key="frame" x="18" y="76" width="72" height="17"/>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="SIP Server" id="ubR-HD-O15">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
- <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="5bs-k5-y85">
- <rect key="frame" x="108" y="150" width="272" height="22"/>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Enter username" bezelStyle="round" id="Rej-Yd-PDb">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
- <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="D0T-VV-iYE" customClass="NSSecureTextField">
- <rect key="frame" x="108" y="113" width="272" height="22"/>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Enter password" bezelStyle="round" id="DBU-zJ-vj6">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="H2H-Nj-iaA">
<rect key="frame" x="314" y="13" width="72" height="32"/>
<buttonCell key="cell" type="push" title="Done" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="DJz-do-CJo">
@@ -149,67 +275,25 @@
<action selector="cancel:" target="-2" id="Jmu-dk-Kiw"/>
</connections>
</button>
- <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="SUD-CK-UdK">
- <rect key="frame" x="108" y="76" width="272" height="22"/>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Enter SIP address" bezelStyle="round" id="0UI-j5-0at">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
</subviews>
<constraints>
- <constraint firstItem="h0K-g2-bgQ" firstAttribute="top" secondItem="gTr-1R-5qI" secondAttribute="top" id="3p7-UD-eti"/>
- <constraint firstItem="lgy-cp-ZAK" firstAttribute="trailing" secondItem="KhB-Ik-Njv" secondAttribute="trailing" id="82g-n3-028"/>
- <constraint firstItem="h0K-g2-bgQ" firstAttribute="bottom" secondItem="gTr-1R-5qI" secondAttribute="bottom" id="9PF-KD-nWz"/>
- <constraint firstItem="k1Y-Gu-pHf" firstAttribute="top" secondItem="AbV-oR-qrC" secondAttribute="top" id="BAX-Ro-h80"/>
- <constraint firstItem="SUD-CK-UdK" firstAttribute="bottom" secondItem="lgy-cp-ZAK" secondAttribute="bottom" id="CUL-RU-jNp"/>
- <constraint firstItem="SyG-hW-jMO" firstAttribute="top" secondItem="ZIg-7T-R16" secondAttribute="bottom" constant="20" id="CqL-Zc-y07"/>
- <constraint firstItem="Uof-hc-DnR" firstAttribute="centerY" secondItem="gTr-1R-5qI" secondAttribute="centerY" id="E0o-1N-dI8"/>
- <constraint firstItem="ltT-Ku-8cT" firstAttribute="leading" secondItem="KhB-Ik-Njv" secondAttribute="leading" id="I5y-hT-7kU"/>
- <constraint firstItem="k1Y-Gu-pHf" firstAttribute="leading" secondItem="AbV-oR-qrC" secondAttribute="leading" constant="20" id="Ib0-eE-tLs"/>
- <constraint firstItem="5bs-k5-y85" firstAttribute="leading" secondItem="KhB-Ik-Njv" secondAttribute="trailing" constant="20" id="KOU-1n-TBv"/>
- <constraint firstItem="gTr-1R-5qI" firstAttribute="top" secondItem="Sfl-q6-sGH" secondAttribute="bottom" constant="20" id="L9m-LI-eOI"/>
+ <constraint firstAttribute="trailing" secondItem="tCn-bT-Rf4" secondAttribute="trailing" constant="20" id="ER3-xp-85p"/>
+ <constraint firstItem="H2H-Nj-iaA" firstAttribute="top" secondItem="tCn-bT-Rf4" secondAttribute="bottom" constant="25" id="G56-QW-cp2"/>
+ <constraint firstItem="tCn-bT-Rf4" firstAttribute="leading" secondItem="AbV-oR-qrC" secondAttribute="leading" constant="20" id="KTr-Wa-8hm"/>
<constraint firstItem="H2H-Nj-iaA" firstAttribute="bottom" secondItem="eYs-22-jZA" secondAttribute="bottom" id="MKJ-vd-s0d"/>
- <constraint firstAttribute="trailing" secondItem="SyG-hW-jMO" secondAttribute="trailing" constant="20" id="Meg-na-Q6u"/>
<constraint firstAttribute="trailing" secondItem="H2H-Nj-iaA" secondAttribute="trailing" constant="20" id="N1z-aK-mCv"/>
- <constraint firstItem="D0T-VV-iYE" firstAttribute="bottom" secondItem="ltT-Ku-8cT" secondAttribute="bottom" id="OJd-Jr-GTq"/>
- <constraint firstItem="h0K-g2-bgQ" firstAttribute="trailing" secondItem="gTr-1R-5qI" secondAttribute="trailing" id="P8V-b6-9vP"/>
- <constraint firstItem="5bs-k5-y85" firstAttribute="bottom" secondItem="KhB-Ik-Njv" secondAttribute="bottom" id="Ppo-F5-NZ1"/>
- <constraint firstItem="SUD-CK-UdK" firstAttribute="leading" secondItem="5bs-k5-y85" secondAttribute="leading" id="QLI-6r-1Am"/>
- <constraint firstItem="lgy-cp-ZAK" firstAttribute="leading" secondItem="KhB-Ik-Njv" secondAttribute="leading" id="SAd-Tg-BOL"/>
- <constraint firstAttribute="trailing" secondItem="D0T-VV-iYE" secondAttribute="trailing" constant="20" id="TB2-A1-kcZ"/>
- <constraint firstItem="ZIg-7T-R16" firstAttribute="leading" secondItem="AbV-oR-qrC" secondAttribute="leading" constant="20" id="UPm-ck-fNx"/>
+ <constraint firstItem="tCn-bT-Rf4" firstAttribute="top" secondItem="AbV-oR-qrC" secondAttribute="top" constant="5" id="Tyy-5Y-ccC"/>
+ <constraint firstItem="eYs-22-jZA" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="AbV-oR-qrC" secondAttribute="leading" constant="20" symbolic="YES" id="UYX-mm-rkY"/>
<constraint firstItem="H2H-Nj-iaA" firstAttribute="leading" secondItem="eYs-22-jZA" secondAttribute="trailing" constant="10" id="aS4-4o-cA4"/>
- <constraint firstItem="gTr-1R-5qI" firstAttribute="centerX" secondItem="AbV-oR-qrC" secondAttribute="centerX" id="ag4-z5-fZ8"/>
- <constraint firstAttribute="trailing" secondItem="5bs-k5-y85" secondAttribute="trailing" constant="20" id="an9-QX-m91"/>
- <constraint firstItem="SyG-hW-jMO" firstAttribute="leading" secondItem="AbV-oR-qrC" secondAttribute="leading" constant="20" id="b0c-WX-5Je"/>
- <constraint firstAttribute="trailing" secondItem="SUD-CK-UdK" secondAttribute="trailing" constant="20" id="c5B-rK-U0v"/>
- <constraint firstItem="KhB-Ik-Njv" firstAttribute="leading" secondItem="AbV-oR-qrC" secondAttribute="leading" constant="20" id="gW7-s6-BA2"/>
- <constraint firstItem="vGN-UO-vCk" firstAttribute="centerX" secondItem="AbV-oR-qrC" secondAttribute="centerX" id="hXC-lj-ZSG"/>
- <constraint firstAttribute="trailing" secondItem="ZIg-7T-R16" secondAttribute="trailing" constant="20" id="jbY-Wn-N2s"/>
- <constraint firstItem="D0T-VV-iYE" firstAttribute="leading" secondItem="5bs-k5-y85" secondAttribute="leading" id="krH-LJ-nEV"/>
- <constraint firstAttribute="trailing" secondItem="k1Y-Gu-pHf" secondAttribute="trailing" constant="20" id="lGK-7a-GnJ"/>
- <constraint firstItem="Sfl-q6-sGH" firstAttribute="top" secondItem="k1Y-Gu-pHf" secondAttribute="bottom" constant="20" id="mys-s9-Hi1"/>
- <constraint firstItem="ZIg-7T-R16" firstAttribute="top" secondItem="vGN-UO-vCk" secondAttribute="bottom" constant="20" id="nKR-Nc-r2K"/>
- <constraint firstItem="vGN-UO-vCk" firstAttribute="leading" secondItem="AbV-oR-qrC" secondAttribute="leading" constant="80" id="nyQ-aG-Thc"/>
- <constraint firstAttribute="trailing" secondItem="Sfl-q6-sGH" secondAttribute="trailing" constant="20" id="p7B-t7-Uuz"/>
- <constraint firstItem="ltT-Ku-8cT" firstAttribute="trailing" secondItem="KhB-Ik-Njv" secondAttribute="trailing" id="pgi-Wp-s73"/>
<constraint firstAttribute="bottom" secondItem="H2H-Nj-iaA" secondAttribute="bottom" constant="20" id="rlf-hh-jtE"/>
- <constraint firstItem="Sfl-q6-sGH" firstAttribute="leading" secondItem="AbV-oR-qrC" secondAttribute="leading" constant="20" id="shS-ge-hQq"/>
- <constraint firstItem="lgy-cp-ZAK" firstAttribute="leading" secondItem="AbV-oR-qrC" secondAttribute="leading" constant="20" id="skr-4Q-Z9U"/>
- <constraint firstItem="ltT-Ku-8cT" firstAttribute="top" secondItem="KhB-Ik-Njv" secondAttribute="bottom" constant="20" id="tFh-52-NQ2"/>
- <constraint firstItem="Uof-hc-DnR" firstAttribute="centerX" secondItem="gTr-1R-5qI" secondAttribute="centerX" id="tKf-dh-8PW"/>
- <constraint firstItem="lgy-cp-ZAK" firstAttribute="top" secondItem="ltT-Ku-8cT" secondAttribute="bottom" constant="20" id="vOg-6e-IOQ"/>
- <constraint firstItem="ltT-Ku-8cT" firstAttribute="leading" secondItem="AbV-oR-qrC" secondAttribute="leading" constant="20" id="voL-dH-p00"/>
- <constraint firstItem="vGN-UO-vCk" firstAttribute="top" secondItem="gTr-1R-5qI" secondAttribute="bottom" constant="20" id="xN0-Qd-on6"/>
- <constraint firstItem="h0K-g2-bgQ" firstAttribute="leading" secondItem="gTr-1R-5qI" secondAttribute="leading" id="xbD-Wf-3Ry"/>
- <constraint firstAttribute="trailing" secondItem="vGN-UO-vCk" secondAttribute="trailing" constant="80" id="xrR-Fc-y0P"/>
- <constraint firstItem="KhB-Ik-Njv" firstAttribute="top" secondItem="SyG-hW-jMO" secondAttribute="bottom" constant="20" id="yb8-g2-sOW"/>
</constraints>
<point key="canvasLocation" x="-339" y="177"/>
</view>
<userDefaultsController representsSharedInstance="YES" id="T91-Zn-FQu"/>
+ <stackView distribution="fill" orientation="horizontal" alignment="top" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" id="9Yc-FW-Vun">
+ <rect key="frame" x="0.0" y="0.0" width="200" height="110"/>
+ <autoresizingMask key="autoresizingMask"/>
+ </stackView>
</objects>
<resources>
<image name="ic_picture" width="72" height="72"/>
diff --git a/ui/Base.lproj/ConnectToAccManagerVC.strings b/ui/Base.lproj/ConnectToAccManagerVC.strings
new file mode 100644
index 0000000..21fd562
--- /dev/null
+++ b/ui/Base.lproj/ConnectToAccManagerVC.strings
Binary files differ
diff --git a/ui/Base.lproj/ConnectToAccManagerVC.xib b/ui/Base.lproj/ConnectToAccManagerVC.xib
new file mode 100644
index 0000000..ae68269
--- /dev/null
+++ b/ui/Base.lproj/ConnectToAccManagerVC.xib
@@ -0,0 +1,292 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+ <dependencies>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+ </dependencies>
+ <objects>
+ <customObject id="-2" userLabel="File's Owner" customClass="ConnectToAccManagerVC">
+ <connections>
+ <outlet property="accountManagerField" destination="ogN-U2-aV3" id="53S-Fh-Vx2"/>
+ <outlet property="errorContainer" destination="6VA-hI-6Qt" id="Xco-zx-lKI"/>
+ <outlet property="initialContainer" destination="ewR-mW-q71" id="Pl5-MI-6f2"/>
+ <outlet property="loadingContainer" destination="wiC-KC-19S" id="DF5-Oq-mIv"/>
+ <outlet property="passwordTextField" destination="im9-ma-36i" id="EWJ-kf-ccU"/>
+ <outlet property="progressBar" destination="7oO-gN-XRs" id="5QY-y0-Xsi"/>
+ <outlet property="userNameField" destination="r72-Oy-R7R" id="kkI-2U-O6q"/>
+ <outlet property="view" destination="Hz6-mo-xeY" id="o6c-ep-pkr"/>
+ </connections>
+ </customObject>
+ <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+ <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+ <customView id="Hz6-mo-xeY">
+ <rect key="frame" x="0.0" y="0.0" width="480" height="272"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+ </customView>
+ <view id="ewR-mW-q71" userLabel="Second step">
+ <rect key="frame" x="0.0" y="0.0" width="453" height="176"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES"/>
+ <subviews>
+ <stackView distribution="fill" orientation="vertical" alignment="leading" spacing="15" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="e2T-MI-jQa">
+ <rect key="frame" x="20" y="66" width="413" height="105"/>
+ <subviews>
+ <stackView distribution="fill" orientation="horizontal" alignment="centerY" spacing="4" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="pFz-Cs-6HT">
+ <rect key="frame" x="0.0" y="80" width="361" height="25"/>
+ <subviews>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="hg1-9i-Uhe">
+ <rect key="frame" x="-2" y="4" width="111" height="17"/>
+ <textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Username" id="Y8M-Jf-ek0">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="r72-Oy-R7R">
+ <rect key="frame" x="111" y="2" width="250" height="22"/>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left" placeholderString="" bezelStyle="round" id="Ceg-8h-isB">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ <connections>
+ <binding destination="-2" name="value" keyPath="self.username" id="4PT-VI-Imq"/>
+ </connections>
+ </textField>
+ </subviews>
+ <constraints>
+ <constraint firstAttribute="height" constant="25" id="Q8N-ve-hvr"/>
+ </constraints>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
+ <stackView distribution="fill" orientation="horizontal" alignment="centerY" spacing="4" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ZXg-04-0wN">
+ <rect key="frame" x="0.0" y="40" width="361" height="25"/>
+ <subviews>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="jzD-TH-QCs">
+ <rect key="frame" x="-2" y="4" width="111" height="17"/>
+ <textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Password" id="lea-ie-4Pv">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="im9-ma-36i" customClass="NSSecureTextField">
+ <rect key="frame" x="111" y="2" width="250" height="22"/>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left" placeholderString="" bezelStyle="round" id="CiM-ba-GOc" customClass="NSSecureTextFieldCell">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ <connections>
+ <binding destination="-2" name="value" keyPath="self.password" id="gSk-im-xKL"/>
+ </connections>
+ </textField>
+ </subviews>
+ <constraints>
+ <constraint firstAttribute="height" constant="25" id="HpI-wD-PGc"/>
+ </constraints>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
+ <stackView distribution="fill" orientation="horizontal" alignment="centerY" spacing="4" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bYZ-Nh-QiL">
+ <rect key="frame" x="0.0" y="0.0" width="361" height="25"/>
+ <subviews>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="2Oe-8u-SQl">
+ <rect key="frame" x="-2" y="4" width="111" height="17"/>
+ <textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Account manager" id="CPa-dA-HYD">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ogN-U2-aV3">
+ <rect key="frame" x="111" y="2" width="250" height="22"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="250" id="EPe-a8-KTr"/>
+ </constraints>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" id="cc3-mg-CTY">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ <connections>
+ <binding destination="-2" name="value" keyPath="self.accountManager" id="JAz-x8-68T"/>
+ </connections>
+ </textField>
+ </subviews>
+ <constraints>
+ <constraint firstAttribute="height" constant="25" id="wg7-6c-92f"/>
+ </constraints>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
+ </subviews>
+ <constraints>
+ <constraint firstItem="im9-ma-36i" firstAttribute="leading" secondItem="r72-Oy-R7R" secondAttribute="leading" id="OVa-oe-C51"/>
+ <constraint firstItem="jzD-TH-QCs" firstAttribute="leading" secondItem="hg1-9i-Uhe" secondAttribute="leading" id="PQI-Su-n1c"/>
+ <constraint firstItem="2Oe-8u-SQl" firstAttribute="trailing" secondItem="hg1-9i-Uhe" secondAttribute="trailing" id="RNL-FI-WcO"/>
+ <constraint firstItem="2Oe-8u-SQl" firstAttribute="leading" secondItem="hg1-9i-Uhe" secondAttribute="leading" id="Teg-N9-FRW"/>
+ <constraint firstItem="pFz-Cs-6HT" firstAttribute="leading" secondItem="e2T-MI-jQa" secondAttribute="leading" id="VRJ-r1-1o7"/>
+ <constraint firstItem="ogN-U2-aV3" firstAttribute="leading" secondItem="im9-ma-36i" secondAttribute="leading" id="Va8-qW-yFC"/>
+ <constraint firstItem="im9-ma-36i" firstAttribute="trailing" secondItem="r72-Oy-R7R" secondAttribute="trailing" id="bws-MR-zVY"/>
+ <constraint firstItem="bYZ-Nh-QiL" firstAttribute="leading" secondItem="e2T-MI-jQa" secondAttribute="leading" id="hKZ-wf-e9e"/>
+ <constraint firstItem="ogN-U2-aV3" firstAttribute="trailing" secondItem="im9-ma-36i" secondAttribute="trailing" id="iUF-se-Z0Z"/>
+ <constraint firstItem="ZXg-04-0wN" firstAttribute="leading" secondItem="e2T-MI-jQa" secondAttribute="leading" id="pUF-Wq-E3Y"/>
+ <constraint firstItem="jzD-TH-QCs" firstAttribute="trailing" secondItem="hg1-9i-Uhe" secondAttribute="trailing" id="znI-KE-F34"/>
+ </constraints>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="b3m-TE-gQX">
+ <rect key="frame" x="300" y="13" width="82" height="32"/>
+ <buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="BS9-U6-iDn">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ <string key="keyEquivalent" base64-UTF8="YES">
+Gw
+</string>
+ </buttonCell>
+ <connections>
+ <action selector="dismissViewWithError:" target="-2" id="A9T-qr-iGs"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="DpQ-lc-Pfz">
+ <rect key="frame" x="382" y="13" width="57" height="32"/>
+ <buttonCell key="cell" type="push" title="Ok" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="I8C-B9-2ET">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ <string key="keyEquivalent" base64-UTF8="YES">
+DQ
+</string>
+ </buttonCell>
+ <connections>
+ <action selector="signIn:" target="-2" id="Ufg-ah-y6v"/>
+ <binding destination="-2" name="enabled2" keyPath="self.accountManager.length" previousBinding="pkR-pk-sbp" id="iLk-go-67r">
+ <dictionary key="options">
+ <integer key="NSMultipleValuesPlaceholder" value="-1"/>
+ <integer key="NSNoSelectionPlaceholder" value="-1"/>
+ <integer key="NSNotApplicablePlaceholder" value="-1"/>
+ <integer key="NSNullPlaceholder" value="-1"/>
+ </dictionary>
+ </binding>
+ <binding destination="-2" name="enabled" keyPath="self.password.length" id="pkR-pk-sbp"/>
+ <binding destination="-2" name="enabled3" keyPath="self.username.length" previousBinding="iLk-go-67r" id="T9j-aV-cpi">
+ <dictionary key="options">
+ <integer key="NSMultipleValuesPlaceholder" value="-1"/>
+ <integer key="NSNoSelectionPlaceholder" value="-1"/>
+ <integer key="NSNotApplicablePlaceholder" value="-1"/>
+ <integer key="NSNullPlaceholder" value="-1"/>
+ </dictionary>
+ </binding>
+ </connections>
+ </button>
+ </subviews>
+ <constraints>
+ <constraint firstItem="DpQ-lc-Pfz" firstAttribute="leading" secondItem="b3m-TE-gQX" secondAttribute="trailing" constant="12" id="1EG-d7-dLN"/>
+ <constraint firstItem="DpQ-lc-Pfz" firstAttribute="bottom" secondItem="b3m-TE-gQX" secondAttribute="bottom" id="6QZ-qw-I4D"/>
+ <constraint firstAttribute="bottom" secondItem="b3m-TE-gQX" secondAttribute="bottom" constant="20" id="8eQ-eZ-wIK"/>
+ <constraint firstAttribute="trailing" secondItem="e2T-MI-jQa" secondAttribute="trailing" constant="20" id="9gn-RS-CEO"/>
+ <constraint firstItem="b3m-TE-gQX" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="ewR-mW-q71" secondAttribute="leading" constant="20" symbolic="YES" id="Ejc-TZ-Ych"/>
+ <constraint firstItem="b3m-TE-gQX" firstAttribute="top" secondItem="e2T-MI-jQa" secondAttribute="bottom" constant="25" id="IRb-II-aOp"/>
+ <constraint firstItem="e2T-MI-jQa" firstAttribute="leading" secondItem="ewR-mW-q71" secondAttribute="leading" constant="20" id="JTX-Dm-FlF"/>
+ <constraint firstAttribute="trailing" secondItem="DpQ-lc-Pfz" secondAttribute="trailing" constant="20" id="W7g-6X-JJR"/>
+ <constraint firstItem="e2T-MI-jQa" firstAttribute="top" secondItem="ewR-mW-q71" secondAttribute="top" constant="5" id="rUM-tM-cwM"/>
+ </constraints>
+ <point key="canvasLocation" x="628.5" y="409.5"/>
+ </view>
+ <view misplaced="YES" id="6VA-hI-6Qt" userLabel="ErrorContainer">
+ <rect key="frame" x="0.0" y="0.0" width="453" height="176"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+ <subviews>
+ <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="rKB-ev-Dbs">
+ <rect key="frame" x="18" y="66" width="417" height="38"/>
+ <textFieldCell key="cell" controlSize="mini" sendsActionOnEndEditing="YES" alignment="center" title="An error occured, please check your password and username." id="eJ1-bg-xBl">
+ <font key="font" metaFont="system" size="15"/>
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Bwp-vm-ECn">
+ <rect key="frame" x="380" y="13" width="59" height="32"/>
+ <buttonCell key="cell" type="push" title="OK" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="0hI-Zx-4fT">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ <string key="keyEquivalent" base64-UTF8="YES">
+DQ
+</string>
+ </buttonCell>
+ <connections>
+ <action selector="startAgain:" target="-2" id="7NY-iz-Era"/>
+ </connections>
+ </button>
+ </subviews>
+ <constraints>
+ <constraint firstItem="rKB-ev-Dbs" firstAttribute="centerX" secondItem="6VA-hI-6Qt" secondAttribute="centerX" id="Mvn-zU-Ln9"/>
+ <constraint firstAttribute="bottom" secondItem="Bwp-vm-ECn" secondAttribute="bottom" constant="20" id="SGi-Uj-3Zd"/>
+ <constraint firstItem="Bwp-vm-ECn" firstAttribute="top" secondItem="rKB-ev-Dbs" secondAttribute="bottom" constant="25" id="eRl-lN-aTg"/>
+ <constraint firstAttribute="trailing" secondItem="rKB-ev-Dbs" secondAttribute="trailing" constant="20" id="eag-JI-6vD"/>
+ <constraint firstItem="rKB-ev-Dbs" firstAttribute="leading" secondItem="6VA-hI-6Qt" secondAttribute="leading" constant="20" id="fnd-i4-tY1"/>
+ <constraint firstAttribute="trailing" secondItem="Bwp-vm-ECn" secondAttribute="trailing" constant="20" id="j0Z-Wu-WvH"/>
+ <constraint firstItem="rKB-ev-Dbs" firstAttribute="top" secondItem="6VA-hI-6Qt" secondAttribute="top" constant="25" id="p0K-3V-xdF"/>
+ </constraints>
+ <point key="canvasLocation" x="-12" y="407"/>
+ </view>
+ <customView id="wiC-KC-19S">
+ <rect key="frame" x="0.0" y="0.0" width="453" height="176"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+ <subviews>
+ <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Kz9-Qr-wgj">
+ <rect key="frame" x="55" y="104" width="344" height="17"/>
+ <constraints>
+ <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="340" id="zML-2D-s4M"/>
+ </constraints>
+ <textFieldCell key="cell" controlSize="mini" sendsActionOnEndEditing="YES" alignment="center" title="Connecting..." id="hbE-9q-Hbm">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <progressIndicator wantsLayer="YES" maxValue="100" indeterminate="YES" style="spinning" translatesAutoresizingMaskIntoConstraints="NO" id="7oO-gN-XRs">
+ <rect key="frame" x="179" y="129" width="96" height="32"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="96" id="XdK-Rf-RuR"/>
+ </constraints>
+ </progressIndicator>
+ </subviews>
+ <constraints>
+ <constraint firstItem="Kz9-Qr-wgj" firstAttribute="top" secondItem="7oO-gN-XRs" secondAttribute="bottom" constant="8" id="48x-uc-LIT"/>
+ <constraint firstItem="7oO-gN-XRs" firstAttribute="top" secondItem="wiC-KC-19S" secondAttribute="top" constant="15" id="VJE-sE-zPD"/>
+ <constraint firstItem="7oO-gN-XRs" firstAttribute="centerX" secondItem="wiC-KC-19S" secondAttribute="centerX" id="fk2-lU-sZi"/>
+ <constraint firstItem="Kz9-Qr-wgj" firstAttribute="centerX" secondItem="7oO-gN-XRs" secondAttribute="centerX" id="oBT-21-zbf"/>
+ </constraints>
+ <point key="canvasLocation" x="138.5" y="-23"/>
+ </customView>
+ <userDefaultsController representsSharedInstance="YES" id="FpK-9l-Sr7"/>
+ </objects>
+</document>
diff --git a/ui/Base.lproj/Localizable.strings b/ui/Base.lproj/Localizable.strings
index ac72df2..fc219ae 100644
--- a/ui/Base.lproj/Localizable.strings
+++ b/ui/Base.lproj/Localizable.strings
@@ -147,7 +147,7 @@
"The entered username is available" = "The entered username is available";
/* Text shown to user when his username is invalid to be registered */
-"The entered username is invalid. It must have at least 3 characters and contain only lowercase alphanumeric characters." = "The entered username is invalid. It must have at least 3 characters and contain only lowercase alphanumeric characters.";
+"Invalid username" = "Invalid username";
/* Text shown to user when his username is already registered */
"The entered username is not available" = "The entered username is not available";
@@ -180,7 +180,10 @@
"Select archive" = "Select archive";
/* link account title */
-"Link to an account" = "Link to an account";
+"Import from backup" = "Import from backup";
+
+/* link account title */
+"Import from other device" = "Import from other device";
/* Welcome title */
"Welcome to Ring" = "Welcome to Jami";
diff --git a/ui/Base.lproj/RingWizardChoose.strings b/ui/Base.lproj/RingWizardChoose.strings
index 382a007..0508134 100644
--- a/ui/Base.lproj/RingWizardChoose.strings
+++ b/ui/Base.lproj/RingWizardChoose.strings
Binary files differ
diff --git a/ui/Base.lproj/RingWizardChoose.xib b/ui/Base.lproj/RingWizardChoose.xib
index b087e24..5e8f053 100644
--- a/ui/Base.lproj/RingWizardChoose.xib
+++ b/ui/Base.lproj/RingWizardChoose.xib
@@ -1,24 +1,134 @@
<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="RingWizardChooseVC">
<connections>
- <outlet property="buttonTopConstraint" destination="qRn-oO-10Y" id="3a1-dP-qLm"/>
- <outlet property="createSIPAccount" destination="Ivs-g5-gQs" id="Xdt-qd-UCr"/>
+ <outlet property="connectToManager" destination="HjM-oT-VQj" id="QQQ-T1-GdO"/>
+ <outlet property="createSIPAccount" destination="NBt-Xw-PzN" id="d5d-i7-ZIW"/>
<outlet property="view" destination="uHQ-s7-X3y" id="1wM-Vd-wef"/>
+ <outlet property="viewBottomConstraint" destination="ieX-kW-7To" id="uAE-sO-elJ"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<userDefaultsController representsSharedInstance="YES" id="ck0-Ru-0YG"/>
<view id="uHQ-s7-X3y">
- <rect key="frame" x="0.0" y="0.0" width="525" height="168"/>
+ <rect key="frame" x="0.0" y="0.0" width="525" height="293"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<subviews>
+ <stackView distribution="fill" orientation="vertical" alignment="centerX" spacing="15" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zUs-ma-wCV">
+ <rect key="frame" x="0.0" y="69" width="525" height="219"/>
+ <subviews>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pcF-lX-ex4">
+ <rect key="frame" x="163" y="192" width="200" height="29"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="24" id="kX1-30-jfa"/>
+ </constraints>
+ <buttonCell key="cell" type="bevel" title="Create a Jami account" bezelStyle="regularSquare" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="k1T-a7-yZD">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="createRingAccount:" target="-2" id="Mij-SG-JWQ"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cpk-ql-oGP">
+ <rect key="frame" x="163" y="153" width="200" height="29"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="24" id="OX0-Ne-mlD"/>
+ </constraints>
+ <buttonCell key="cell" type="bevel" title="Import from other device" bezelStyle="regularSquare" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Z9K-mD-ucr">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="importFromDevice:" target="-2" id="xs4-1O-3Jl"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="uHC-M1-ce5">
+ <rect key="frame" x="163" y="114" width="200" height="29"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="24" id="rr1-jU-d3s"/>
+ </constraints>
+ <buttonCell key="cell" type="bevel" title="Import from archive backup" bezelStyle="regularSquare" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="rtw-Db-BWL">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="importFromArchive:" target="-2" id="BSN-e6-wPh"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="lM8-ZM-KcF">
+ <rect key="frame" x="225" y="78" width="76" height="24"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="24" id="U5S-qK-hhV"/>
+ </constraints>
+ <buttonCell key="cell" type="bevel" title="Advanced..." bezelStyle="regularSquare" alignment="center" imageScaling="proportionallyDown" inset="2" id="vCj-67-PGK">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="expandAdwanced:" target="-2" id="4je-Ji-JXL"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="HjM-oT-VQj">
+ <rect key="frame" x="163" y="36" width="200" height="29"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="24" id="iKl-6P-vAW"/>
+ </constraints>
+ <buttonCell key="cell" type="bevel" title="Connect to account manager" bezelStyle="regularSquare" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="HGQ-Kd-WIw">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="connectToAccountManager:" target="-2" id="hRw-zp-0k7"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="NBt-Xw-PzN">
+ <rect key="frame" x="163" y="-3" width="200" height="29"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="24" id="5Wb-L4-VtH"/>
+ </constraints>
+ <buttonCell key="cell" type="bevel" title="Add s new SIP account" bezelStyle="regularSquare" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="yBt-Bv-fi2">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="addSIPAccount:" target="-2" id="dq5-in-s0I"/>
+ </connections>
+ </button>
+ </subviews>
+ <constraints>
+ <constraint firstItem="pcF-lX-ex4" firstAttribute="leading" secondItem="cpk-ql-oGP" secondAttribute="leading" id="33C-i1-fge"/>
+ <constraint firstItem="pcF-lX-ex4" firstAttribute="trailing" secondItem="cpk-ql-oGP" secondAttribute="trailing" id="E7W-8d-RtY"/>
+ <constraint firstItem="HjM-oT-VQj" firstAttribute="trailing" secondItem="cpk-ql-oGP" secondAttribute="trailing" id="G7v-fc-L2p"/>
+ <constraint firstItem="NBt-Xw-PzN" firstAttribute="leading" secondItem="cpk-ql-oGP" secondAttribute="leading" id="O7G-tM-uTj"/>
+ <constraint firstItem="uHC-M1-ce5" firstAttribute="leading" secondItem="cpk-ql-oGP" secondAttribute="leading" id="grO-GC-1mZ"/>
+ <constraint firstItem="uHC-M1-ce5" firstAttribute="trailing" secondItem="cpk-ql-oGP" secondAttribute="trailing" id="j0C-M3-aRu"/>
+ <constraint firstItem="HjM-oT-VQj" firstAttribute="leading" secondItem="cpk-ql-oGP" secondAttribute="leading" id="obP-v5-pam"/>
+ <constraint firstItem="NBt-Xw-PzN" firstAttribute="trailing" secondItem="cpk-ql-oGP" secondAttribute="trailing" id="v60-ul-xbR"/>
+ </constraints>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
<button translatesAutoresizingMaskIntoConstraints="NO" id="UXp-us-Mbl">
<rect key="frame" x="435" y="17" width="72" height="29"/>
<constraints>
@@ -30,7 +140,7 @@
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
- <action selector="onCancel:" target="-2" id="VXk-Vg-8RL"/>
+ <action selector="onCancel:" target="-2" id="uKt-WM-lT9"/>
<binding destination="-2" name="hidden" keyPath="self.isCancelable" id="BJD-kc-nuB">
<dictionary key="options">
<string key="NSValueTransformerName">NSNegateBoolean</string>
@@ -38,73 +148,15 @@
</binding>
</connections>
</button>
- <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pcF-lX-ex4">
- <rect key="frame" x="160" y="131" width="205" height="29"/>
- <constraints>
- <constraint firstAttribute="height" constant="24" id="kX1-30-jfa"/>
- </constraints>
- <buttonCell key="cell" type="bevel" title="Create a Jami account" bezelStyle="regularSquare" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="k1T-a7-yZD">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="system"/>
- </buttonCell>
- <connections>
- <action selector="createRingAccount:" target="-2" id="Mij-SG-JWQ"/>
- </connections>
- </button>
- <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cpk-ql-oGP">
- <rect key="frame" x="160" y="99" width="205" height="29"/>
- <constraints>
- <constraint firstAttribute="height" constant="24" id="OX0-Ne-mlD"/>
- </constraints>
- <buttonCell key="cell" type="bevel" title="Link this device to an account" bezelStyle="regularSquare" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Z9K-mD-ucr">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="system"/>
- </buttonCell>
- <connections>
- <action selector="linkExistingRingAccount:" target="-2" id="q5v-67-9eC"/>
- </connections>
- </button>
- <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="QmU-Ya-gnp">
- <rect key="frame" x="225" y="69" width="76" height="17"/>
- <buttonCell key="cell" type="bevel" title="Advanced..." bezelStyle="regularSquare" alignment="center" imageScaling="proportionallyDown" inset="2" id="9cQ-dy-J3x">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="system"/>
- </buttonCell>
- <connections>
- <action selector="showCreateSIP:" target="-2" id="xh0-2Z-ldO"/>
- <binding destination="-2" name="hidden" keyPath="withAdvancedOptions" id="Wmq-2y-855">
- <dictionary key="options">
- <string key="NSValueTransformerName">NSNegateBoolean</string>
- </dictionary>
- </binding>
- </connections>
- </button>
- <button hidden="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Ivs-g5-gQs">
- <rect key="frame" x="160" y="34" width="205" height="29"/>
- <buttonCell key="cell" type="bevel" title="Add a SIP Account" bezelStyle="regularSquare" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="H7M-ZV-CGK">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="system"/>
- </buttonCell>
- <connections>
- <action selector="addSIPAccount:" target="-2" id="uNW-p8-OEU"/>
- </connections>
- </button>
</subviews>
<constraints>
- <constraint firstItem="cpk-ql-oGP" firstAttribute="top" secondItem="pcF-lX-ex4" secondAttribute="bottom" constant="8" id="5zS-8W-pRW"/>
<constraint firstAttribute="bottom" secondItem="UXp-us-Mbl" secondAttribute="bottom" constant="20" id="AII-Gc-Vvg"/>
- <constraint firstItem="pcF-lX-ex4" firstAttribute="trailing" secondItem="cpk-ql-oGP" secondAttribute="trailing" id="HN8-pn-yp6"/>
- <constraint firstItem="Ivs-g5-gQs" firstAttribute="centerX" secondItem="uHQ-s7-X3y" secondAttribute="centerX" id="IiU-uf-U3H"/>
- <constraint firstItem="cpk-ql-oGP" firstAttribute="centerX" secondItem="uHQ-s7-X3y" secondAttribute="centerX" id="KMQ-q8-0Vy"/>
- <constraint firstItem="QmU-Ya-gnp" firstAttribute="top" secondItem="cpk-ql-oGP" secondAttribute="bottom" constant="16" id="RWv-hw-jF6"/>
+ <constraint firstItem="zUs-ma-wCV" firstAttribute="top" secondItem="uHQ-s7-X3y" secondAttribute="top" constant="5" id="Bil-SW-kfB"/>
+ <constraint firstAttribute="trailing" secondItem="zUs-ma-wCV" secondAttribute="trailing" id="CIO-B9-XTp"/>
+ <constraint firstItem="UXp-us-Mbl" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="uHQ-s7-X3y" secondAttribute="leading" constant="20" symbolic="YES" id="Gyv-ic-n8e"/>
<constraint firstAttribute="trailing" secondItem="UXp-us-Mbl" secondAttribute="trailing" constant="20" id="aKC-JI-SVx"/>
- <constraint firstItem="Ivs-g5-gQs" firstAttribute="top" secondItem="QmU-Ya-gnp" secondAttribute="bottom" constant="8" id="e3J-dh-QV8"/>
- <constraint firstItem="pcF-lX-ex4" firstAttribute="centerX" secondItem="uHQ-s7-X3y" secondAttribute="centerX" id="iq8-Px-R61"/>
- <constraint firstItem="QmU-Ya-gnp" firstAttribute="centerX" secondItem="uHQ-s7-X3y" secondAttribute="centerX" id="kyQ-sv-2I2"/>
- <constraint firstItem="pcF-lX-ex4" firstAttribute="leading" secondItem="cpk-ql-oGP" secondAttribute="leading" id="n6m-l1-sty"/>
- <constraint firstItem="UXp-us-Mbl" firstAttribute="top" secondItem="QmU-Ya-gnp" secondAttribute="bottom" constant="25" id="qRn-oO-10Y"/>
- <constraint firstItem="Ivs-g5-gQs" firstAttribute="leading" secondItem="pcF-lX-ex4" secondAttribute="leading" id="rrB-3i-N0R"/>
- <constraint firstItem="pcF-lX-ex4" firstAttribute="top" secondItem="uHQ-s7-X3y" secondAttribute="top" constant="10" id="v64-PJ-sTS"/>
+ <constraint firstItem="UXp-us-Mbl" firstAttribute="top" secondItem="zUs-ma-wCV" secondAttribute="bottom" constant="25" id="ieX-kW-7To"/>
+ <constraint firstItem="zUs-ma-wCV" firstAttribute="leading" secondItem="uHQ-s7-X3y" secondAttribute="leading" id="x6w-zu-UdN"/>
</constraints>
<point key="canvasLocation" x="-14.5" y="61"/>
</view>
diff --git a/ui/Base.lproj/RingWizardLinkAccount.xib b/ui/Base.lproj/RingWizardLinkAccount.xib
index f315594..4378434 100644
--- a/ui/Base.lproj/RingWizardLinkAccount.xib
+++ b/ui/Base.lproj/RingWizardLinkAccount.xib
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
@@ -9,15 +9,17 @@
<connections>
<outlet property="errorContainer" destination="B0P-LC-JmW" id="lKa-Nb-o79"/>
<outlet property="fileButton" destination="gR3-2L-BlK" id="9CB-3U-Izb"/>
+ <outlet property="filePathContainer" destination="Ve0-g4-7SX" id="hvZ-yn-Lbt"/>
<outlet property="helpArchiveFileContainer" destination="M1j-Dr-kfj" id="S9g-pn-iVd"/>
<outlet property="helpPINContainer" destination="FI2-Q8-dc7" id="OHg-wo-QaV"/>
<outlet property="initialContainer" destination="jR6-WY-o19" id="zJs-xD-OjK"/>
<outlet property="linkButton" destination="xmI-fH-GpH" id="pWU-MH-4Up"/>
<outlet property="loadingContainer" destination="1O6-eM-Cg5" id="AnP-jD-EcD"/>
<outlet property="passwordTextField" destination="VeW-tY-k3K" id="gGe-V6-tzm"/>
+ <outlet property="pinContainer" destination="A6D-qI-ZDb" id="xCK-FP-gRJ"/>
<outlet property="pinTextField" destination="BFR-6z-UlF" id="bZs-kY-zUW"/>
<outlet property="progressBar" destination="MPY-UO-4Bq" id="giG-ll-HSq"/>
- <outlet property="view" destination="kG1-xB-0op" id="gnN-lQ-sTg"/>
+ <outlet property="view" destination="kG1-xB-0op" id="Inm-vF-gDB"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
@@ -81,81 +83,187 @@
<point key="canvasLocation" x="-12" y="401"/>
</view>
<view id="jR6-WY-o19" userLabel="Second step">
- <rect key="frame" x="0.0" y="0.0" width="453" height="201"/>
+ <rect key="frame" x="0.0" y="0.0" width="399" height="162"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<subviews>
- <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="BFR-6z-UlF">
- <rect key="frame" x="20" y="120" width="175" height="22"/>
+ <stackView distribution="fill" orientation="vertical" alignment="leading" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="kfI-nE-fou">
+ <rect key="frame" x="20" y="66" width="359" height="91"/>
+ <subviews>
+ <stackView distribution="fill" orientation="horizontal" alignment="centerY" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Ve0-g4-7SX">
+ <rect key="frame" x="0.0" y="66" width="359" height="25"/>
+ <subviews>
+ <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="XJh-69-hJQ">
+ <rect key="frame" x="-2" y="0.0" width="76" height="25"/>
+ <textFieldCell key="cell" controlSize="mini" sendsActionOnEndEditing="YES" alignment="right" title="Import archive file" id="kXa-FL-Enf">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="gR3-2L-BlK" userLabel="File button">
+ <rect key="frame" x="74" y="-5" width="262" height="32"/>
+ <buttonCell key="cell" type="push" title="Select file" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="XJE-cy-nfQ">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="pickBackupFile:" target="-2" id="Qzv-2L-2Ez"/>
+ </connections>
+ </button>
+ <button horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="RUb-Ti-5Wa">
+ <rect key="frame" x="336" y="-2" width="25" height="25"/>
+ <buttonCell key="cell" type="help" bezelStyle="helpButton" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="fAO-vt-wCG">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="showArchiveFileHelp:" target="-2" id="jB7-Xj-lSX"/>
+ </connections>
+ </button>
+ </subviews>
+ <constraints>
+ <constraint firstAttribute="height" constant="25" id="rTQ-Os-ikS"/>
+ </constraints>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
+ <stackView distribution="fill" orientation="horizontal" alignment="centerY" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="A6D-qI-ZDb">
+ <rect key="frame" x="0.0" y="33" width="359" height="25"/>
+ <subviews>
+ <textField verticalHuggingPriority="750" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Nms-13-N3F">
+ <rect key="frame" x="-2" y="0.0" width="76" height="25"/>
+ <textFieldCell key="cell" controlSize="mini" sendsActionOnEndEditing="YES" alignment="right" title="Enter your PIN" id="3ik-rY-Gig">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="BFR-6z-UlF">
+ <rect key="frame" x="80" y="2" width="250" height="22"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="250" id="kcJ-06-hbr"/>
+ </constraints>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left" placeholderString="" bezelStyle="round" id="5pW-QD-iHi">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ <connections>
+ <binding destination="-2" name="value" keyPath="self.pinValue" id="vVf-hg-sWk">
+ <dictionary key="options">
+ <bool key="NSContinuouslyUpdatesValue" value="YES"/>
+ <string key="NSMultipleValuesPlaceholder">PIN</string>
+ <string key="NSNoSelectionPlaceholder">PIN</string>
+ <string key="NSNotApplicablePlaceholder">PIN</string>
+ <string key="NSNullPlaceholder">PIN</string>
+ </dictionary>
+ </binding>
+ <outlet property="nextKeyView" destination="VeW-tY-k3K" id="fgI-rk-Nuk"/>
+ </connections>
+ </textField>
+ <button horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="fLL-gK-4t4">
+ <rect key="frame" x="336" y="-2" width="25" height="25"/>
+ <buttonCell key="cell" type="help" bezelStyle="helpButton" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="pwF-hR-gRN">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="showPINHelp:" target="-2" id="ydM-Gx-cxG"/>
+ </connections>
+ </button>
+ </subviews>
+ <constraints>
+ <constraint firstAttribute="height" constant="25" id="Huz-H2-tfD"/>
+ </constraints>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
+ <stackView distribution="fill" orientation="horizontal" alignment="centerY" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="eRS-t6-ZLT">
+ <rect key="frame" x="0.0" y="0.0" width="330" height="25"/>
+ <subviews>
+ <textField verticalHuggingPriority="750" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="AGs-mP-zJd">
+ <rect key="frame" x="-2" y="0.0" width="76" height="25"/>
+ <textFieldCell key="cell" controlSize="mini" sendsActionOnEndEditing="YES" alignment="right" title="Enter password" id="U2K-fu-INc">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="VeW-tY-k3K" customClass="NSSecureTextField">
+ <rect key="frame" x="80" y="2" width="250" height="22"/>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left" placeholderString="" bezelStyle="round" id="9k8-c8-GFI" customClass="NSSecureTextFieldCell">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ <connections>
+ <binding destination="-2" name="value" keyPath="self.passwordValue" id="WlR-QM-tK4">
+ <dictionary key="options">
+ <bool key="NSContinuouslyUpdatesValue" value="YES"/>
+ <string key="NSMultipleValuesPlaceholder">Password...</string>
+ <string key="NSNoSelectionPlaceholder">Password...</string>
+ <string key="NSNotApplicablePlaceholder">Password...</string>
+ <string key="NSNullPlaceholder">Password...</string>
+ </dictionary>
+ </binding>
+ <outlet property="nextKeyView" destination="xmI-fH-GpH" id="oQw-CE-3NA"/>
+ </connections>
+ </textField>
+ </subviews>
+ <constraints>
+ <constraint firstAttribute="height" constant="25" id="DX2-Ck-cnL"/>
+ </constraints>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
+ </subviews>
<constraints>
- <constraint firstAttribute="width" constant="175" id="kcJ-06-hbr"/>
+ <constraint firstAttribute="trailing" secondItem="Ve0-g4-7SX" secondAttribute="trailing" id="2D7-CI-osh"/>
+ <constraint firstItem="AGs-mP-zJd" firstAttribute="trailing" secondItem="XJh-69-hJQ" secondAttribute="trailing" id="9LP-4A-HQC"/>
+ <constraint firstItem="BFR-6z-UlF" firstAttribute="trailing" secondItem="VeW-tY-k3K" secondAttribute="trailing" id="DNf-sP-lt1"/>
+ <constraint firstItem="Ve0-g4-7SX" firstAttribute="leading" secondItem="kfI-nE-fou" secondAttribute="leading" id="Hpi-fB-CYW"/>
+ <constraint firstItem="AGs-mP-zJd" firstAttribute="trailing" secondItem="Nms-13-N3F" secondAttribute="trailing" id="Sn7-3x-ntr"/>
+ <constraint firstItem="AGs-mP-zJd" firstAttribute="leading" secondItem="Nms-13-N3F" secondAttribute="leading" id="ViK-BC-N2Q"/>
+ <constraint firstItem="gR3-2L-BlK" firstAttribute="trailing" secondItem="VeW-tY-k3K" secondAttribute="trailing" id="nIa-5o-p82"/>
+ <constraint firstItem="AGs-mP-zJd" firstAttribute="leading" secondItem="XJh-69-hJQ" secondAttribute="leading" id="nu0-jI-vb3"/>
+ <constraint firstItem="gR3-2L-BlK" firstAttribute="leading" secondItem="VeW-tY-k3K" secondAttribute="leading" id="wEx-Fc-BKx"/>
+ <constraint firstItem="BFR-6z-UlF" firstAttribute="leading" secondItem="VeW-tY-k3K" secondAttribute="leading" id="wPI-aJ-MPO"/>
</constraints>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left" placeholderString="" bezelStyle="round" id="5pW-QD-iHi">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- <connections>
- <binding destination="-2" name="value" keyPath="self.pinValue" id="vVf-hg-sWk">
- <dictionary key="options">
- <bool key="NSContinuouslyUpdatesValue" value="YES"/>
- <string key="NSMultipleValuesPlaceholder">PIN</string>
- <string key="NSNoSelectionPlaceholder">PIN</string>
- <string key="NSNotApplicablePlaceholder">PIN</string>
- <string key="NSNullPlaceholder">PIN</string>
- </dictionary>
- </binding>
- <outlet property="nextKeyView" destination="VeW-tY-k3K" id="fgI-rk-Nuk"/>
- </connections>
- </textField>
- <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="VeW-tY-k3K" customClass="NSSecureTextField">
- <rect key="frame" x="20" y="66" width="175" height="22"/>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left" placeholderString="" bezelStyle="round" id="9k8-c8-GFI" customClass="NSSecureTextFieldCell">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- <connections>
- <binding destination="-2" name="value" keyPath="self.passwordValue" id="WlR-QM-tK4">
- <dictionary key="options">
- <bool key="NSContinuouslyUpdatesValue" value="YES"/>
- <string key="NSMultipleValuesPlaceholder">Password...</string>
- <string key="NSNoSelectionPlaceholder">Password...</string>
- <string key="NSNotApplicablePlaceholder">Password...</string>
- <string key="NSNullPlaceholder">Password...</string>
- </dictionary>
- </binding>
- <outlet property="nextKeyView" destination="xmI-fH-GpH" id="oQw-CE-3NA"/>
- </connections>
- </textField>
- <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Nms-13-N3F">
- <rect key="frame" x="18" y="147" width="92" height="17"/>
- <constraints>
- <constraint firstAttribute="height" constant="17" id="lSe-DK-Yre"/>
- </constraints>
- <textFieldCell key="cell" controlSize="mini" sendsActionOnEndEditing="YES" alignment="left" title="Enter your PIN" id="3ik-rY-Gig">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
- <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="AGs-mP-zJd">
- <rect key="frame" x="18" y="93" width="98" height="17"/>
- <textFieldCell key="cell" controlSize="mini" sendsActionOnEndEditing="YES" alignment="left" title="Enter password" id="U2K-fu-INc">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
- <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="tMy-fd-gBJ">
- <rect key="frame" x="213" y="92" width="27" height="17"/>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="center" title="OR" id="1NY-Yu-wH1">
- <font key="font" metaFont="systemSemibold" size="13"/>
- <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="oxG-mq-q2J">
- <rect key="frame" x="292" y="13" width="82" height="32"/>
+ <rect key="frame" x="238" y="13" width="82" height="32"/>
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Pcj-BY-tou">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
@@ -167,16 +275,8 @@
<action selector="dismissViewWithError:" target="-2" id="Cm7-ZN-PlJ"/>
</connections>
</button>
- <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="XJh-69-hJQ">
- <rect key="frame" x="259" y="107" width="114" height="17"/>
- <textFieldCell key="cell" controlSize="mini" sendsActionOnEndEditing="YES" alignment="left" title="Import archive file" id="kXa-FL-Enf">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="xmI-fH-GpH">
- <rect key="frame" x="374" y="13" width="65" height="32"/>
+ <rect key="frame" x="320" y="13" width="65" height="32"/>
<buttonCell key="cell" type="push" title="Link" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="8b8-bt-eAj">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
@@ -189,76 +289,19 @@
<binding destination="-2" name="enabled" keyPath="self.pinValue.length" id="TT6-xW-5yT"/>
</connections>
</button>
- <button horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="fLL-gK-4t4">
- <rect key="frame" x="108" y="143" width="25" height="25"/>
- <buttonCell key="cell" type="help" bezelStyle="helpButton" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="pwF-hR-gRN">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="system"/>
- </buttonCell>
- <connections>
- <action selector="showPINHelp:" target="-2" id="ydM-Gx-cxG"/>
- </connections>
- </button>
- <button horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="RUb-Ti-5Wa">
- <rect key="frame" x="371" y="103" width="25" height="25"/>
- <buttonCell key="cell" type="help" bezelStyle="helpButton" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="fAO-vt-wCG">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="system"/>
- </buttonCell>
- <connections>
- <action selector="showArchiveFileHelp:" target="-2" id="jB7-Xj-lSX"/>
- </connections>
- </button>
- <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ODM-Sx-sdp">
- <rect key="frame" x="25" y="184" width="410" height="17"/>
- <textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="left" title="To link this device to another account, you have two possibilities:" id="06g-zM-5Qz">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
- <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="gR3-2L-BlK" userLabel="File button">
- <rect key="frame" x="255" y="74" width="184" height="32"/>
- <buttonCell key="cell" type="push" title="Select file" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="XJE-cy-nfQ">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="system"/>
- </buttonCell>
- <connections>
- <action selector="pickBackupFile:" target="-2" id="Qzv-2L-2Ez"/>
- </connections>
- </button>
</subviews>
<constraints>
- <constraint firstItem="BFR-6z-UlF" firstAttribute="trailing" secondItem="VeW-tY-k3K" secondAttribute="trailing" id="1ID-zv-PYL"/>
- <constraint firstItem="RUb-Ti-5Wa" firstAttribute="bottom" secondItem="XJh-69-hJQ" secondAttribute="bottom" id="2x3-UD-tb8"/>
- <constraint firstAttribute="trailing" secondItem="gR3-2L-BlK" secondAttribute="trailing" constant="20" id="4Nf-oO-IK4"/>
- <constraint firstItem="AGs-mP-zJd" firstAttribute="leading" secondItem="VeW-tY-k3K" secondAttribute="leading" id="6iU-J0-CSy"/>
- <constraint firstItem="oxG-mq-q2J" firstAttribute="top" secondItem="VeW-tY-k3K" secondAttribute="bottom" constant="25" id="8zw-UL-zJR"/>
+ <constraint firstItem="kfI-nE-fou" firstAttribute="leading" secondItem="jR6-WY-o19" secondAttribute="leading" constant="20" id="18B-S8-ftj"/>
<constraint firstAttribute="bottom" secondItem="oxG-mq-q2J" secondAttribute="bottom" constant="20" id="ADU-Tc-q4Y"/>
- <constraint firstItem="ODM-Sx-sdp" firstAttribute="leading" secondItem="jR6-WY-o19" secondAttribute="leading" constant="27" id="DJR-Vc-UCc"/>
- <constraint firstItem="fLL-gK-4t4" firstAttribute="bottom" secondItem="Nms-13-N3F" secondAttribute="bottom" id="Fxp-OB-p6d"/>
- <constraint firstAttribute="trailing" secondItem="ODM-Sx-sdp" secondAttribute="trailing" constant="20" symbolic="YES" id="GBh-l2-lfB"/>
- <constraint firstItem="ODM-Sx-sdp" firstAttribute="top" secondItem="jR6-WY-o19" secondAttribute="top" id="I6e-eg-sfd"/>
- <constraint firstItem="BFR-6z-UlF" firstAttribute="leading" secondItem="AGs-mP-zJd" secondAttribute="leading" id="Oel-Rn-zjO"/>
- <constraint firstItem="gR3-2L-BlK" firstAttribute="top" secondItem="tMy-fd-gBJ" secondAttribute="bottom" constant="-10" id="Q1w-H3-Y7S"/>
- <constraint firstItem="BFR-6z-UlF" firstAttribute="top" secondItem="Nms-13-N3F" secondAttribute="bottom" constant="5" id="Qta-qN-QLs"/>
+ <constraint firstItem="kfI-nE-fou" firstAttribute="top" secondItem="jR6-WY-o19" secondAttribute="top" constant="5" id="SDN-cw-n7b"/>
+ <constraint firstItem="xmI-fH-GpH" firstAttribute="leading" secondItem="oxG-mq-q2J" secondAttribute="trailing" constant="12" id="WZ5-kT-48s"/>
<constraint firstItem="xmI-fH-GpH" firstAttribute="bottom" secondItem="oxG-mq-q2J" secondAttribute="bottom" id="YIN-cc-lLD"/>
- <constraint firstItem="RUb-Ti-5Wa" firstAttribute="leading" secondItem="XJh-69-hJQ" secondAttribute="trailing" constant="2" id="YUr-Eo-71A"/>
- <constraint firstItem="tMy-fd-gBJ" firstAttribute="centerX" secondItem="jR6-WY-o19" secondAttribute="centerX" id="bCK-6e-lAb"/>
- <constraint firstItem="ODM-Sx-sdp" firstAttribute="trailing" secondItem="xmI-fH-GpH" secondAttribute="trailing" id="ceW-2s-wXT"/>
- <constraint firstItem="Nms-13-N3F" firstAttribute="top" secondItem="ODM-Sx-sdp" secondAttribute="bottom" constant="20" id="d8t-m8-buf"/>
- <constraint firstItem="AGs-mP-zJd" firstAttribute="top" secondItem="BFR-6z-UlF" secondAttribute="bottom" constant="10" id="efa-6f-HaW"/>
- <constraint firstItem="tMy-fd-gBJ" firstAttribute="centerY" secondItem="jR6-WY-o19" secondAttribute="centerY" id="jHr-3x-Ete"/>
- <constraint firstItem="gR3-2L-BlK" firstAttribute="leading" secondItem="tMy-fd-gBJ" secondAttribute="trailing" constant="23" id="nji-vb-Dyh"/>
- <constraint firstItem="Nms-13-N3F" firstAttribute="leading" secondItem="BFR-6z-UlF" secondAttribute="leading" id="pIo-PK-kue"/>
- <constraint firstItem="xmI-fH-GpH" firstAttribute="leading" secondItem="oxG-mq-q2J" secondAttribute="trailing" constant="12" id="qLe-pr-dXi"/>
- <constraint firstItem="fLL-gK-4t4" firstAttribute="leading" secondItem="Nms-13-N3F" secondAttribute="trailing" constant="2" id="sCp-wl-gac"/>
- <constraint firstItem="XJh-69-hJQ" firstAttribute="leading" secondItem="gR3-2L-BlK" secondAttribute="leading" id="u3m-D9-Hr9"/>
- <constraint firstItem="VeW-tY-k3K" firstAttribute="top" secondItem="AGs-mP-zJd" secondAttribute="bottom" constant="5" id="uGT-6M-dos"/>
- <constraint firstItem="Nms-13-N3F" firstAttribute="leading" secondItem="jR6-WY-o19" secondAttribute="leading" constant="20" id="xHj-pP-8t6"/>
- <constraint firstItem="gR3-2L-BlK" firstAttribute="top" secondItem="XJh-69-hJQ" secondAttribute="bottom" constant="5" id="zqv-Nv-muh"/>
+ <constraint firstItem="oxG-mq-q2J" firstAttribute="top" secondItem="kfI-nE-fou" secondAttribute="bottom" constant="25" id="ZVD-8M-oF8"/>
+ <constraint firstAttribute="trailing" secondItem="kfI-nE-fou" secondAttribute="trailing" constant="20" id="bdQ-by-3XD"/>
+ <constraint firstAttribute="trailing" secondItem="xmI-fH-GpH" secondAttribute="trailing" constant="20" id="lvy-rX-kFY"/>
+ <constraint firstItem="oxG-mq-q2J" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="jR6-WY-o19" secondAttribute="leading" constant="20" symbolic="YES" id="x7p-Fo-8wW"/>
</constraints>
- <point key="canvasLocation" x="628.5" y="449.5"/>
+ <point key="canvasLocation" x="615.5" y="456.5"/>
</view>
<customView id="1O6-eM-Cg5">
<rect key="frame" x="0.0" y="0.0" width="355" height="60"/>
diff --git a/ui/Base.lproj/RingWizardNewAccount.strings b/ui/Base.lproj/RingWizardNewAccount.strings
index 85edd19..5da801e 100644
--- a/ui/Base.lproj/RingWizardNewAccount.strings
+++ b/ui/Base.lproj/RingWizardNewAccount.strings
Binary files differ
diff --git a/ui/Base.lproj/RingWizardNewAccount.xib b/ui/Base.lproj/RingWizardNewAccount.xib
index 1d2b2aa..8fd8b6a 100644
--- a/ui/Base.lproj/RingWizardNewAccount.xib
+++ b/ui/Base.lproj/RingWizardNewAccount.xib
@@ -1,187 +1,437 @@
<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="RingWizardNewAccountVC">
<connections>
<outlet property="addProfilePhotoImage" destination="g1K-rU-VmV" id="LKE-YG-q8o"/>
- <outlet property="buttonTopConstraint" destination="Ixn-SY-imD" id="b1a-S1-tkV"/>
+ <outlet property="buttonTopConstraint" destination="s3C-aR-8WF" id="7Gq-0D-898"/>
<outlet property="creationView" destination="gKX-gX-nko" id="NrN-dl-Z6R"/>
<outlet property="displayNameField" destination="99y-na-GTj" id="5q8-Rc-7Hv"/>
<outlet property="helpBlockchainContainer" destination="ViR-CC-taB" id="JfQ-Sn-nC2"/>
<outlet property="helpPasswordContainer" destination="p6j-6c-1y0" id="sbo-6b-zZN"/>
<outlet property="indicatorLookupResult" destination="Osd-Vq-u7C" id="Adn-ta-XTG"/>
- <outlet property="ivLookupResult" destination="kfj-jZ-xal" id="w7y-8W-MWT"/>
<outlet property="loadingView" destination="WWd-Hs-Pwi" id="SX4-nP-C2J"/>
- <outlet property="passwordBox" destination="IxI-Uh-MFB" id="n9b-1Y-ocZ"/>
<outlet property="passwordButton" destination="5ex-9x-0TY" id="Fle-n3-TQC"/>
+ <outlet property="passwordError" destination="Dzm-7R-IHD" id="Jto-8O-1v9"/>
<outlet property="passwordField" destination="ie2-fK-FsB" id="0Q7-CU-mcB"/>
- <outlet property="passwordRepeatCheck" destination="mU4-ba-cip" id="TQH-SX-RRk"/>
<outlet property="passwordRepeatField" destination="tXp-94-ns5" id="iXz-tJ-m7r"/>
<outlet property="photoView" destination="vby-AD-tor" id="uoF-rR-eSf"/>
<outlet property="progressBar" destination="1rt-CR-Wpz" id="UGj-xL-Fp8"/>
+ <outlet property="registeredNameError" destination="U8N-zg-AeT" id="0gI-RR-ngB"/>
<outlet property="registeredNameField" destination="LVv-bg-Ols" id="2Cc-TI-koh"/>
+ <outlet property="repeatPasswordView" destination="KeQ-OT-gkr" id="OQG-8k-ldE"/>
<outlet property="view" destination="SAg-MG-Jl7" id="UND-8y-zHo"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<view id="gKX-gX-nko">
- <rect key="frame" x="0.0" y="0.0" width="400" height="408"/>
+ <rect key="frame" x="0.0" y="0.0" width="577" height="460"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<subviews>
- <button focusRingType="none" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="vby-AD-tor">
- <rect key="frame" x="155" y="259" width="91" height="90"/>
- <constraints>
- <constraint firstAttribute="width" constant="91" id="ELE-xo-8Tx"/>
- <constraint firstAttribute="height" constant="90" id="SD5-rB-QBD"/>
- </constraints>
- <buttonCell key="cell" type="inline" bezelStyle="inline" imagePosition="only" alignment="center" focusRingType="none" imageScaling="proportionallyUpOrDown" inset="2" id="BTW-ug-E0p">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="smallSystemBold"/>
- </buttonCell>
- </button>
- <button verticalHuggingPriority="750" alphaValue="0.29999999999999999" translatesAutoresizingMaskIntoConstraints="NO" id="ajM-4b-k6F" customClass="HoverButton">
- <rect key="frame" x="155" y="259" width="91" height="90"/>
- <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" alignment="center" refusesFirstResponder="YES" transparent="YES" imageScaling="proportionallyDown" inset="2" id="xy7-bc-QCd">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="system"/>
- </buttonCell>
- <userDefinedRuntimeAttributes>
- <userDefinedRuntimeAttribute type="color" keyPath="hoverColor">
- <color key="value" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
- </userDefinedRuntimeAttribute>
- </userDefinedRuntimeAttributes>
- <connections>
- <action selector="editPhoto:" target="-2" id="2Ha-fx-TAe"/>
- </connections>
- </button>
- <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="99y-na-GTj">
- <rect key="frame" x="75" y="217" width="250" height="22"/>
- <constraints>
- <constraint firstAttribute="width" constant="250" id="Bbt-Ht-gth"/>
- <constraint firstAttribute="height" constant="22" id="I4K-hX-jrd"/>
- </constraints>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="center" placeholderString="Enter name" bezelStyle="round" id="gEy-ak-Cgq">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- <connections>
- <outlet property="nextKeyView" destination="b0r-ri-6ZA" id="QvW-eh-Q2d"/>
- </connections>
- </textField>
- <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="g1K-rU-VmV">
- <rect key="frame" x="185" y="289" width="30" height="30"/>
- <constraints>
- <constraint firstAttribute="width" constant="30" id="Jaq-dR-uDc"/>
- <constraint firstAttribute="height" constant="30" id="pcT-zj-yr9"/>
- </constraints>
- <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="ic_picture" id="mZY-aY-Y5g"/>
- </imageView>
- <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Nny-Rd-SVl">
- <rect key="frame" x="18" y="390" width="364" height="18"/>
- <constraints>
- <constraint firstAttribute="height" constant="18" id="DAQ-zH-Dpj"/>
- </constraints>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Profile" id="gki-BR-jc3">
- <font key="font" metaFont="systemSemibold" size="14"/>
- <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
- <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8hq-sG-FEh">
- <rect key="frame" x="18" y="159" width="364" height="17"/>
- <constraints>
- <constraint firstAttribute="height" constant="17" id="h2Y-IA-Cma"/>
- </constraints>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Account" id="qQl-Xn-c88">
- <font key="font" metaFont="systemSemibold" size="13"/>
- <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
- <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="LVv-bg-Ols">
- <rect key="frame" x="73" y="95" width="250" height="22"/>
- <constraints>
- <constraint firstAttribute="width" constant="250" id="6iv-B2-Q5y"/>
- <constraint firstAttribute="height" constant="22" id="lTC-5N-1Sr"/>
- </constraints>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Username..." bezelStyle="round" id="bdC-Uc-Qhs">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- <connections>
- <binding destination="-2" name="value" keyPath="self.registeredName" id="UgM-Zo-2Dy">
- <dictionary key="options">
- <bool key="NSContinuouslyUpdatesValue" value="YES"/>
- <string key="NSMultipleValuesPlaceholder">Username...</string>
- <string key="NSNoSelectionPlaceholder">Username...</string>
- <string key="NSNotApplicablePlaceholder">Username...</string>
- <string key="NSNullPlaceholder">Username...</string>
- <bool key="NSValidatesImmediately" value="YES"/>
- </dictionary>
- </binding>
- <binding destination="-2" name="enabled" keyPath="self.signUpBlockchainState" id="rge-vV-WHn"/>
- <outlet property="delegate" destination="-2" id="WvF-ix-1Nv"/>
- <outlet property="nextKeyView" destination="ie2-fK-FsB" id="R1t-Gl-whB"/>
- </connections>
- </textField>
- <button translatesAutoresizingMaskIntoConstraints="NO" id="5ex-9x-0TY">
- <rect key="frame" x="71" y="64" width="258" height="18"/>
- <constraints>
- <constraint firstAttribute="height" constant="14" id="OY2-xe-H6J"/>
- <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="14" id="jpL-1f-Isg"/>
- </constraints>
- <buttonCell key="cell" type="check" title="Choose password for enhance security" bezelStyle="regularSquare" imagePosition="left" inset="2" id="Cnw-4p-3Uc">
- <behavior key="behavior" pushIn="YES" changeContents="YES" lightByContents="YES"/>
- <font key="font" metaFont="system"/>
- </buttonCell>
- <connections>
- <action selector="togglePasswordButton:" target="-2" id="Q18-mr-DTK"/>
- </connections>
- </button>
- <customView translatesAutoresizingMaskIntoConstraints="NO" id="JGA-h8-Nhd">
- <rect key="frame" x="326" y="95" width="20" height="20"/>
+ <stackView distribution="fill" orientation="vertical" alignment="centerX" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="oR9-WB-ay5">
+ <rect key="frame" x="20" y="66" width="537" height="389"/>
<subviews>
- <progressIndicator wantsLayer="YES" horizontalHuggingPriority="750" verticalHuggingPriority="750" maxValue="100" bezeled="NO" indeterminate="YES" controlSize="small" style="spinning" translatesAutoresizingMaskIntoConstraints="NO" id="Osd-Vq-u7C">
- <rect key="frame" x="0.0" y="2" width="16" height="16"/>
+ <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Nny-Rd-SVl">
+ <rect key="frame" x="-2" y="371" width="541" height="18"/>
<constraints>
- <constraint firstAttribute="height" constant="16" id="N5C-XW-x0D"/>
- <constraint firstAttribute="width" constant="16" id="qJb-WJ-fNn"/>
+ <constraint firstAttribute="height" constant="18" id="DAQ-zH-Dpj"/>
</constraints>
- </progressIndicator>
- <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="kfj-jZ-xal">
- <rect key="frame" x="0.0" y="0.0" width="20" height="20"/>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Profile" id="gki-BR-jc3">
+ <font key="font" metaFont="systemSemibold" size="14"/>
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <customView translatesAutoresizingMaskIntoConstraints="NO" id="CFm-IB-vKH" userLabel="photoWidget">
+ <rect key="frame" x="224" y="272" width="90" height="91"/>
+ <subviews>
+ <button focusRingType="none" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="vby-AD-tor">
+ <rect key="frame" x="0.0" y="0.0" width="90" height="91"/>
+ <buttonCell key="cell" type="inline" bezelStyle="inline" imagePosition="only" alignment="center" focusRingType="none" imageScaling="proportionallyUpOrDown" inset="2" id="BTW-ug-E0p">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="smallSystemBold"/>
+ </buttonCell>
+ </button>
+ <button verticalHuggingPriority="750" alphaValue="0.29999999999999999" translatesAutoresizingMaskIntoConstraints="NO" id="ajM-4b-k6F" customClass="HoverButton">
+ <rect key="frame" x="0.0" y="0.0" width="90" height="91"/>
+ <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" alignment="center" refusesFirstResponder="YES" transparent="YES" imageScaling="proportionallyDown" inset="2" id="xy7-bc-QCd">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <userDefinedRuntimeAttributes>
+ <userDefinedRuntimeAttribute type="color" keyPath="hoverColor">
+ <color key="value" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+ </userDefinedRuntimeAttribute>
+ </userDefinedRuntimeAttributes>
+ <connections>
+ <action selector="editPhoto:" target="-2" id="2Ha-fx-TAe"/>
+ </connections>
+ </button>
+ <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="g1K-rU-VmV">
+ <rect key="frame" x="30" y="31" width="30" height="30"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="30" id="Jaq-dR-uDc"/>
+ <constraint firstAttribute="height" constant="30" id="pcT-zj-yr9"/>
+ </constraints>
+ <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="ic_picture" id="mZY-aY-Y5g"/>
+ </imageView>
+ </subviews>
<constraints>
- <constraint firstAttribute="height" constant="20" id="Ukr-7U-1Lh"/>
- <constraint firstAttribute="width" constant="20" id="XOS-nb-g7U"/>
+ <constraint firstAttribute="bottom" secondItem="vby-AD-tor" secondAttribute="bottom" id="0S0-ZJ-cgE"/>
+ <constraint firstAttribute="height" constant="91" id="3cc-2L-12Y"/>
+ <constraint firstItem="g1K-rU-VmV" firstAttribute="centerX" secondItem="CFm-IB-vKH" secondAttribute="centerX" id="7q9-E4-DjN"/>
+ <constraint firstItem="ajM-4b-k6F" firstAttribute="top" secondItem="vby-AD-tor" secondAttribute="top" id="C40-7A-WWG"/>
+ <constraint firstItem="vby-AD-tor" firstAttribute="leading" secondItem="CFm-IB-vKH" secondAttribute="leading" id="E3v-Cx-7eI"/>
+ <constraint firstItem="ajM-4b-k6F" firstAttribute="trailing" secondItem="vby-AD-tor" secondAttribute="trailing" id="MKk-V8-myM"/>
+ <constraint firstItem="ajM-4b-k6F" firstAttribute="bottom" secondItem="vby-AD-tor" secondAttribute="bottom" id="YhF-lk-bN5"/>
+ <constraint firstAttribute="width" constant="90" id="aaD-ST-dnr"/>
+ <constraint firstItem="ajM-4b-k6F" firstAttribute="leading" secondItem="vby-AD-tor" secondAttribute="leading" id="gTF-UP-I2P"/>
+ <constraint firstItem="g1K-rU-VmV" firstAttribute="centerY" secondItem="CFm-IB-vKH" secondAttribute="centerY" id="jRc-96-73S"/>
+ <constraint firstItem="vby-AD-tor" firstAttribute="top" secondItem="CFm-IB-vKH" secondAttribute="top" id="wox-qC-BiV"/>
+ <constraint firstAttribute="trailing" secondItem="vby-AD-tor" secondAttribute="trailing" id="zMA-DL-Osx"/>
</constraints>
- <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageAlignment="left" imageScaling="proportionallyDown" id="70V-q1-CFT"/>
- </imageView>
+ </customView>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="99y-na-GTj">
+ <rect key="frame" x="144" y="242" width="250" height="22"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="250" id="Bbt-Ht-gth"/>
+ <constraint firstAttribute="height" constant="22" id="I4K-hX-jrd"/>
+ </constraints>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="center" placeholderString="Enter name" bezelStyle="round" id="gEy-ak-Cgq">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ <connections>
+ <outlet property="nextKeyView" destination="b0r-ri-6ZA" id="QvW-eh-Q2d"/>
+ </connections>
+ </textField>
+ <customView translatesAutoresizingMaskIntoConstraints="NO" id="6ql-S3-HrB">
+ <rect key="frame" x="266" y="229" width="5" height="5"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="5" id="Scu-0k-uNE"/>
+ <constraint firstAttribute="height" constant="5" id="a5W-7S-jWp"/>
+ </constraints>
+ </customView>
+ <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8hq-sG-FEh">
+ <rect key="frame" x="-2" y="204" width="541" height="17"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="17" id="h2Y-IA-Cma"/>
+ </constraints>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Account" id="qQl-Xn-c88">
+ <font key="font" metaFont="systemSemibold" size="13"/>
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <customView translatesAutoresizingMaskIntoConstraints="NO" id="lPU-Y9-n5k">
+ <rect key="frame" x="266" y="191" width="5" height="5"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="5" id="28C-4U-DWe"/>
+ <constraint firstAttribute="width" constant="5" id="mv9-Oa-k4K"/>
+ </constraints>
+ </customView>
+ <stackView distribution="fillEqually" orientation="horizontal" alignment="centerY" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="BrF-Yv-f3y">
+ <rect key="frame" x="144" y="158" width="201" height="25"/>
+ <subviews>
+ <button translatesAutoresizingMaskIntoConstraints="NO" id="b0r-ri-6ZA">
+ <rect key="frame" x="-2" y="4" width="176" height="18"/>
+ <constraints>
+ <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="14" id="mK9-B1-XvQ"/>
+ </constraints>
+ <buttonCell key="cell" type="check" title="Register public username" bezelStyle="regularSquare" imagePosition="left" alignment="left" state="on" inset="2" id="AG5-GR-bii">
+ <behavior key="behavior" pushIn="YES" changeContents="YES" lightByContents="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="toggleSignupRing:" target="-2" id="cg6-N8-VNb"/>
+ <binding destination="-2" name="value" keyPath="self.signUpBlockchainState" id="73i-5L-W1I"/>
+ <outlet property="nextKeyView" destination="LVv-bg-Ols" id="jvK-de-mUM"/>
+ </connections>
+ </button>
+ <button horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="WGe-uI-HhQ">
+ <rect key="frame" x="178" y="-2" width="25" height="25"/>
+ <constraints>
+ <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="21" id="MJy-xo-Aku"/>
+ <constraint firstAttribute="height" constant="21" id="bOr-0V-hsn"/>
+ </constraints>
+ <buttonCell key="cell" type="help" bezelStyle="helpButton" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="joF-an-KU7">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="showBlockchainHelp:" target="-2" id="Cdv-Dx-5Ta"/>
+ </connections>
+ </button>
+ </subviews>
+ <constraints>
+ <constraint firstAttribute="height" constant="25" id="iye-qc-zlg"/>
+ </constraints>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
+ <stackView distribution="fill" orientation="vertical" alignment="centerX" spacing="0.0" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ks2-jt-H9F">
+ <rect key="frame" x="116" y="109" width="306" height="41"/>
+ <subviews>
+ <stackView distribution="fill" orientation="horizontal" alignment="centerY" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" translatesAutoresizingMaskIntoConstraints="NO" id="dAU-zf-lXe">
+ <rect key="frame" x="0.0" y="16" width="306" height="25"/>
+ <subviews>
+ <customView translatesAutoresizingMaskIntoConstraints="NO" id="FN9-dz-EvH">
+ <rect key="frame" x="0.0" y="3" width="20" height="20"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="20" id="TDO-FQ-oLZ"/>
+ <constraint firstAttribute="width" constant="20" id="kxD-pP-dBm"/>
+ </constraints>
+ </customView>
+ <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="LVv-bg-Ols">
+ <rect key="frame" x="28" y="2" width="250" height="22"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="250" id="6iv-B2-Q5y"/>
+ <constraint firstAttribute="height" constant="22" id="lTC-5N-1Sr"/>
+ </constraints>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Username..." bezelStyle="round" id="bdC-Uc-Qhs">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ <connections>
+ <binding destination="-2" name="value" keyPath="self.registeredName" id="UgM-Zo-2Dy">
+ <dictionary key="options">
+ <bool key="NSContinuouslyUpdatesValue" value="YES"/>
+ <string key="NSMultipleValuesPlaceholder">Username...</string>
+ <string key="NSNoSelectionPlaceholder">Username...</string>
+ <string key="NSNotApplicablePlaceholder">Username...</string>
+ <string key="NSNullPlaceholder">Username...</string>
+ <bool key="NSValidatesImmediately" value="YES"/>
+ </dictionary>
+ </binding>
+ <binding destination="-2" name="enabled" keyPath="self.signUpBlockchainState" id="rge-vV-WHn"/>
+ <outlet property="delegate" destination="-2" id="WvF-ix-1Nv"/>
+ <outlet property="nextKeyView" destination="ie2-fK-FsB" id="R1t-Gl-whB"/>
+ </connections>
+ </textField>
+ <customView translatesAutoresizingMaskIntoConstraints="NO" id="JGA-h8-Nhd">
+ <rect key="frame" x="286" y="3" width="20" height="20"/>
+ <subviews>
+ <progressIndicator wantsLayer="YES" horizontalHuggingPriority="750" verticalHuggingPriority="750" maxValue="100" bezeled="NO" indeterminate="YES" controlSize="small" style="spinning" translatesAutoresizingMaskIntoConstraints="NO" id="Osd-Vq-u7C">
+ <rect key="frame" x="0.0" y="2" width="16" height="16"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="16" id="N5C-XW-x0D"/>
+ <constraint firstAttribute="width" constant="16" id="qJb-WJ-fNn"/>
+ </constraints>
+ </progressIndicator>
+ </subviews>
+ <constraints>
+ <constraint firstAttribute="width" constant="20" id="IVh-Ql-XWq"/>
+ <constraint firstItem="Osd-Vq-u7C" firstAttribute="leading" secondItem="JGA-h8-Nhd" secondAttribute="leading" id="gMv-ul-7J0"/>
+ <constraint firstItem="Osd-Vq-u7C" firstAttribute="centerY" secondItem="JGA-h8-Nhd" secondAttribute="centerY" id="iOR-Ft-PmR"/>
+ <constraint firstAttribute="height" constant="20" id="rAW-bo-N5h"/>
+ </constraints>
+ <connections>
+ <binding destination="-2" name="hidden" keyPath="self.withBlockchain" id="C1L-aT-rhf">
+ <dictionary key="options">
+ <string key="NSValueTransformerName">NSNegateBoolean</string>
+ </dictionary>
+ </binding>
+ </connections>
+ </customView>
+ </subviews>
+ <constraints>
+ <constraint firstAttribute="height" constant="25" id="s30-zr-JGb"/>
+ </constraints>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
+ <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="U8N-zg-AeT">
+ <rect key="frame" x="126" y="0.0" width="54" height="16"/>
+ <textFieldCell key="cell" lineBreakMode="clipping" id="rCA-Tm-eFe">
+ <font key="font" metaFont="systemLight" size="12"/>
+ <color key="textColor" name="systemRedColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ </subviews>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
+ <stackView distribution="fillEqually" orientation="horizontal" alignment="centerY" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="TOm-jH-fte">
+ <rect key="frame" x="144" y="76" width="283" height="25"/>
+ <subviews>
+ <button translatesAutoresizingMaskIntoConstraints="NO" id="5ex-9x-0TY">
+ <rect key="frame" x="-2" y="4" width="258" height="18"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="14" id="OY2-xe-H6J"/>
+ <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="14" id="jpL-1f-Isg"/>
+ </constraints>
+ <buttonCell key="cell" type="check" title="Choose password for enhance security" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="Cnw-4p-3Uc">
+ <behavior key="behavior" pushIn="YES" changeContents="YES" lightByContents="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="togglePasswordButton:" target="-2" id="Q18-mr-DTK"/>
+ </connections>
+ </button>
+ <button horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="rxZ-gN-ou1">
+ <rect key="frame" x="260" y="-2" width="25" height="25"/>
+ <constraints>
+ <constraint firstAttribute="height" constant="21" id="WAj-GL-p4F"/>
+ <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="21" id="bpK-gh-j1s"/>
+ </constraints>
+ <buttonCell key="cell" type="help" bezelStyle="helpButton" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Ly6-pu-kRm">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="showPasswordHelp:" target="-2" id="DtT-jA-Nfa"/>
+ </connections>
+ </button>
+ </subviews>
+ <constraints>
+ <constraint firstAttribute="height" constant="25" id="uS1-5L-btM"/>
+ </constraints>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
+ <textField verticalHuggingPriority="750" tag="3" translatesAutoresizingMaskIntoConstraints="NO" id="ie2-fK-FsB" customClass="NSSecureTextField">
+ <rect key="frame" x="144" y="46" width="250" height="22"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="250" id="awO-sr-QxG"/>
+ </constraints>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Password..." bezelStyle="round" id="1TO-Ov-S8j" customClass="NSSecureTextFieldCell">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ <connections>
+ <binding destination="-2" name="value" keyPath="self.password" id="JCg-IP-8cg">
+ <dictionary key="options">
+ <bool key="NSContinuouslyUpdatesValue" value="YES"/>
+ <string key="NSMultipleValuesPlaceholder">Password...</string>
+ <string key="NSNoSelectionPlaceholder">Password...</string>
+ <string key="NSNotApplicablePlaceholder">Password...</string>
+ <string key="NSNullPlaceholder">Password...</string>
+ </dictionary>
+ </binding>
+ <outlet property="delegate" destination="-2" id="Gm2-36-8AU"/>
+ <outlet property="nextKeyView" destination="tXp-94-ns5" id="o2j-Ze-hno"/>
+ </connections>
+ </textField>
+ <stackView distribution="fill" orientation="vertical" alignment="centerX" spacing="0.0" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="KeQ-OT-gkr">
+ <rect key="frame" x="144" y="0.0" width="250" height="38"/>
+ <subviews>
+ <textField verticalHuggingPriority="750" tag="4" translatesAutoresizingMaskIntoConstraints="NO" id="tXp-94-ns5" customClass="NSSecureTextField">
+ <rect key="frame" x="0.0" y="16" width="250" height="22"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="250" id="Rdy-kH-1d7"/>
+ </constraints>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Repeat password" bezelStyle="round" id="BCg-5V-Ek4" customClass="NSSecureTextFieldCell">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ <connections>
+ <binding destination="-2" name="value" keyPath="self.repeatPassword" id="93I-zf-xAk">
+ <dictionary key="options">
+ <bool key="NSContinuouslyUpdatesValue" value="YES"/>
+ <string key="NSMultipleValuesPlaceholder">Repeat password...</string>
+ <string key="NSNoSelectionPlaceholder">Repeat password...</string>
+ <string key="NSNotApplicablePlaceholder">Repeat password...</string>
+ <string key="NSNullPlaceholder">Repeat password...</string>
+ </dictionary>
+ </binding>
+ <outlet property="delegate" destination="-2" id="QvZ-sS-1dJ"/>
+ </connections>
+ </textField>
+ <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Dzm-7R-IHD">
+ <rect key="frame" x="98" y="0.0" width="54" height="16"/>
+ <textFieldCell key="cell" lineBreakMode="clipping" id="XZe-oo-yf4">
+ <font key="font" metaFont="systemLight" size="12"/>
+ <color key="textColor" name="systemRedColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ </subviews>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
</subviews>
<constraints>
- <constraint firstItem="kfj-jZ-xal" firstAttribute="leading" secondItem="JGA-h8-Nhd" secondAttribute="leading" id="37J-CM-c9V"/>
- <constraint firstItem="kfj-jZ-xal" firstAttribute="centerY" secondItem="JGA-h8-Nhd" secondAttribute="centerY" id="4J7-Ug-26u"/>
- <constraint firstAttribute="width" constant="20" id="IVh-Ql-XWq"/>
- <constraint firstItem="Osd-Vq-u7C" firstAttribute="leading" secondItem="JGA-h8-Nhd" secondAttribute="leading" id="gMv-ul-7J0"/>
- <constraint firstItem="Osd-Vq-u7C" firstAttribute="centerY" secondItem="JGA-h8-Nhd" secondAttribute="centerY" id="iOR-Ft-PmR"/>
- <constraint firstAttribute="height" constant="20" id="rAW-bo-N5h"/>
+ <constraint firstItem="Nny-Rd-SVl" firstAttribute="leading" secondItem="oR9-WB-ay5" secondAttribute="leading" id="1I7-51-U4Y"/>
+ <constraint firstAttribute="trailing" secondItem="Nny-Rd-SVl" secondAttribute="trailing" id="275-Ma-VP2"/>
+ <constraint firstItem="KeQ-OT-gkr" firstAttribute="leading" secondItem="ie2-fK-FsB" secondAttribute="leading" id="7db-hV-Uc1"/>
+ <constraint firstItem="8hq-sG-FEh" firstAttribute="leading" secondItem="oR9-WB-ay5" secondAttribute="leading" id="E50-HI-A2C"/>
+ <constraint firstAttribute="trailing" secondItem="8hq-sG-FEh" secondAttribute="trailing" id="Hpp-na-aUw"/>
+ <constraint firstItem="5ex-9x-0TY" firstAttribute="leading" secondItem="b0r-ri-6ZA" secondAttribute="leading" id="UJJ-Vb-Ahd"/>
+ <constraint firstItem="KeQ-OT-gkr" firstAttribute="trailing" secondItem="ie2-fK-FsB" secondAttribute="trailing" id="doT-pK-E5a"/>
+ <constraint firstItem="ie2-fK-FsB" firstAttribute="trailing" secondItem="LVv-bg-Ols" secondAttribute="trailing" id="jwz-BZ-cuc"/>
+ <constraint firstItem="ie2-fK-FsB" firstAttribute="leading" secondItem="5ex-9x-0TY" secondAttribute="leading" id="mNE-le-Xhu"/>
</constraints>
- <connections>
- <binding destination="-2" name="hidden" keyPath="self.withBlockchain" id="C1L-aT-rhf">
- <dictionary key="options">
- <string key="NSValueTransformerName">NSNegateBoolean</string>
- </dictionary>
- </binding>
- </connections>
- </customView>
+ <visibilityPriorities>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ <integer value="1000"/>
+ </visibilityPriorities>
+ <customSpacing>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ <real value="3.4028234663852886e+38"/>
+ </customSpacing>
+ </stackView>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="FAG-OH-C4R">
- <rect key="frame" x="305" y="13" width="81" height="32"/>
+ <rect key="frame" x="482" y="13" width="81" height="32"/>
<constraints>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="68" id="iqj-jS-ZaS"/>
</constraints>
@@ -213,7 +463,7 @@
</connections>
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="NHb-Jx-MH0">
- <rect key="frame" x="223" y="13" width="82" height="32"/>
+ <rect key="frame" x="400" y="13" width="82" height="32"/>
<constraints>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="68" id="8UL-X3-Ulx"/>
</constraints>
@@ -228,195 +478,17 @@
<action selector="cancel:" target="-2" id="oao-V9-D0B"/>
</connections>
</button>
- <box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="4oE-Ad-4bY">
- <rect key="frame" x="20" y="367" width="360" height="5"/>
- </box>
- <button translatesAutoresizingMaskIntoConstraints="NO" id="b0r-ri-6ZA">
- <rect key="frame" x="71" y="123" width="176" height="18"/>
- <constraints>
- <constraint firstAttribute="height" constant="14" id="h5X-MI-bBZ"/>
- <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="14" id="mK9-B1-XvQ"/>
- </constraints>
- <buttonCell key="cell" type="check" title="Register public username" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="AG5-GR-bii">
- <behavior key="behavior" pushIn="YES" changeContents="YES" lightByContents="YES"/>
- <font key="font" metaFont="system"/>
- </buttonCell>
- <connections>
- <action selector="toggleSignupRing:" target="-2" id="cg6-N8-VNb"/>
- <binding destination="-2" name="value" keyPath="self.signUpBlockchainState" id="73i-5L-W1I"/>
- <outlet property="nextKeyView" destination="LVv-bg-Ols" id="jvK-de-mUM"/>
- </connections>
- </button>
- <box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="jta-f3-H1W">
- <rect key="frame" x="20" y="194" width="360" height="5"/>
- </box>
- <button horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="WGe-uI-HhQ">
- <rect key="frame" x="246" y="118" width="25" height="25"/>
- <constraints>
- <constraint firstAttribute="width" constant="21" id="MJy-xo-Aku"/>
- <constraint firstAttribute="height" constant="21" id="bOr-0V-hsn"/>
- </constraints>
- <buttonCell key="cell" type="help" bezelStyle="helpButton" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="joF-an-KU7">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="system"/>
- </buttonCell>
- <connections>
- <action selector="showBlockchainHelp:" target="-2" id="Cdv-Dx-5Ta"/>
- </connections>
- </button>
- <button horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="rxZ-gN-ou1">
- <rect key="frame" x="328" y="59" width="25" height="25"/>
- <constraints>
- <constraint firstAttribute="height" constant="21" id="WAj-GL-p4F"/>
- <constraint firstAttribute="width" constant="21" id="bpK-gh-j1s"/>
- </constraints>
- <buttonCell key="cell" type="help" bezelStyle="helpButton" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Ly6-pu-kRm">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="system"/>
- </buttonCell>
- <connections>
- <action selector="showPasswordHelp:" target="-2" id="DtT-jA-Nfa"/>
- </connections>
- </button>
- <box hidden="YES" borderType="none" titlePosition="noTitle" transparent="YES" translatesAutoresizingMaskIntoConstraints="NO" id="IxI-Uh-MFB">
- <rect key="frame" x="70" y="-3" width="279" height="62"/>
- <view key="contentView" id="aqU-x6-mJS">
- <rect key="frame" x="0.0" y="0.0" width="279" height="62"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ie2-fK-FsB" customClass="NSSecureTextField">
- <rect key="frame" x="0.0" y="40" width="250" height="22"/>
- <constraints>
- <constraint firstAttribute="height" constant="22" id="pHJ-7q-GQu"/>
- <constraint firstAttribute="width" constant="250" id="pWh-QR-JoM"/>
- </constraints>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Password..." bezelStyle="round" id="1TO-Ov-S8j" customClass="NSSecureTextFieldCell">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- <connections>
- <binding destination="-2" name="value" keyPath="self.password" id="JCg-IP-8cg">
- <dictionary key="options">
- <bool key="NSContinuouslyUpdatesValue" value="YES"/>
- <string key="NSMultipleValuesPlaceholder">Password...</string>
- <string key="NSNoSelectionPlaceholder">Password...</string>
- <string key="NSNotApplicablePlaceholder">Password...</string>
- <string key="NSNullPlaceholder">Password...</string>
- </dictionary>
- </binding>
- <outlet property="nextKeyView" destination="tXp-94-ns5" id="o2j-Ze-hno"/>
- </connections>
- </textField>
- <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="tXp-94-ns5" customClass="NSSecureTextField">
- <rect key="frame" x="0.0" y="8" width="250" height="22"/>
- <constraints>
- <constraint firstAttribute="width" constant="250" id="d76-Xo-Zpq"/>
- <constraint firstAttribute="height" constant="22" id="ug1-tg-3BY"/>
- </constraints>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Repeat password" bezelStyle="round" id="BCg-5V-Ek4" customClass="NSSecureTextFieldCell">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- <connections>
- <binding destination="-2" name="value" keyPath="self.repeatPassword" id="93I-zf-xAk">
- <dictionary key="options">
- <bool key="NSContinuouslyUpdatesValue" value="YES"/>
- <string key="NSMultipleValuesPlaceholder">Repeat password...</string>
- <string key="NSNoSelectionPlaceholder">Repeat password...</string>
- <string key="NSNotApplicablePlaceholder">Repeat password...</string>
- <string key="NSNullPlaceholder">Repeat password...</string>
- </dictionary>
- </binding>
- </connections>
- </textField>
- <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="mU4-ba-cip">
- <rect key="frame" x="253" y="9" width="20" height="20"/>
- <constraints>
- <constraint firstAttribute="width" constant="20" id="D4O-G0-LqM"/>
- <constraint firstAttribute="height" constant="20" id="Oua-Tw-qkD"/>
- </constraints>
- <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="ic_action_accept" id="QRW-2G-oy5"/>
- <connections>
- <binding destination="-2" name="hidden" keyPath="self.isRepeatPasswordValid" id="coH-eJ-Nvy">
- <dictionary key="options">
- <string key="NSValueTransformerName">NSNegateBoolean</string>
- </dictionary>
- </binding>
- </connections>
- </imageView>
- <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="de8-5s-scH">
- <rect key="frame" x="253" y="9" width="20" height="20"/>
- <constraints>
- <constraint firstAttribute="width" constant="20" id="4rj-Oc-P6W"/>
- <constraint firstAttribute="height" constant="20" id="J3w-4w-iyQ"/>
- </constraints>
- <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="ic_action_cancel" id="FsO-MC-Cje"/>
- <connections>
- <binding destination="-2" name="hidden" keyPath="self.isRepeatPasswordValid" id="5I2-nW-I8P"/>
- </connections>
- </imageView>
- </subviews>
- <constraints>
- <constraint firstItem="mU4-ba-cip" firstAttribute="leading" secondItem="tXp-94-ns5" secondAttribute="trailing" constant="3" id="0qZ-5a-czk"/>
- <constraint firstItem="de8-5s-scH" firstAttribute="centerY" secondItem="tXp-94-ns5" secondAttribute="centerY" id="871-GW-w0y"/>
- <constraint firstItem="tXp-94-ns5" firstAttribute="leading" secondItem="aqU-x6-mJS" secondAttribute="leading" id="AQf-Mo-ZMn"/>
- <constraint firstItem="ie2-fK-FsB" firstAttribute="leading" secondItem="aqU-x6-mJS" secondAttribute="leading" id="NbA-Yd-4HR"/>
- <constraint firstItem="mU4-ba-cip" firstAttribute="centerY" secondItem="tXp-94-ns5" secondAttribute="centerY" id="YuI-c8-uwt"/>
- <constraint firstItem="de8-5s-scH" firstAttribute="leading" secondItem="tXp-94-ns5" secondAttribute="trailing" constant="3" id="gGQ-QZ-sMh"/>
- <constraint firstItem="tXp-94-ns5" firstAttribute="top" secondItem="ie2-fK-FsB" secondAttribute="bottom" constant="10" id="h6L-6k-Ui9"/>
- <constraint firstItem="ie2-fK-FsB" firstAttribute="top" secondItem="aqU-x6-mJS" secondAttribute="top" id="mb7-7q-38J"/>
- </constraints>
- </view>
- <constraints>
- <constraint firstAttribute="height" constant="56" id="vbb-U3-oSx"/>
- </constraints>
- </box>
</subviews>
<constraints>
- <constraint firstItem="Nny-Rd-SVl" firstAttribute="top" secondItem="gKX-gX-nko" secondAttribute="top" id="3Ig-u7-01L"/>
- <constraint firstItem="WGe-uI-HhQ" firstAttribute="centerY" secondItem="b0r-ri-6ZA" secondAttribute="centerY" id="4FT-Ah-t63"/>
- <constraint firstItem="WGe-uI-HhQ" firstAttribute="leading" secondItem="b0r-ri-6ZA" secondAttribute="trailing" constant="3" id="4Km-fL-QuX"/>
- <constraint firstItem="ajM-4b-k6F" firstAttribute="bottom" secondItem="vby-AD-tor" secondAttribute="bottom" id="5tD-Yh-QEo"/>
- <constraint firstItem="8hq-sG-FEh" firstAttribute="leading" secondItem="gKX-gX-nko" secondAttribute="leading" constant="20" id="6Ei-bL-EqF"/>
- <constraint firstAttribute="trailing" secondItem="Nny-Rd-SVl" secondAttribute="trailing" constant="20" id="6bc-Ei-eFR"/>
- <constraint firstItem="vby-AD-tor" firstAttribute="centerX" secondItem="gKX-gX-nko" secondAttribute="centerX" id="8Dl-Bk-xeJ"/>
+ <constraint firstItem="oR9-WB-ay5" firstAttribute="leading" secondItem="gKX-gX-nko" secondAttribute="leading" constant="20" id="6ET-NV-AO8"/>
+ <constraint firstItem="oR9-WB-ay5" firstAttribute="top" secondItem="gKX-gX-nko" secondAttribute="top" constant="5" id="78x-Kv-du4"/>
<constraint firstAttribute="trailing" secondItem="FAG-OH-C4R" secondAttribute="trailing" constant="20" id="9N4-Eq-Msh"/>
- <constraint firstItem="8hq-sG-FEh" firstAttribute="top" secondItem="jta-f3-H1W" secondAttribute="bottom" constant="20" id="A53-b6-S1u"/>
- <constraint firstItem="Nny-Rd-SVl" firstAttribute="leading" secondItem="gKX-gX-nko" secondAttribute="leading" constant="20" id="At4-FW-aZa"/>
- <constraint firstItem="g1K-rU-VmV" firstAttribute="centerX" secondItem="vby-AD-tor" secondAttribute="centerX" id="ERU-oX-yYL"/>
- <constraint firstAttribute="trailing" secondItem="8hq-sG-FEh" secondAttribute="trailing" constant="20" id="EVS-8R-CR0"/>
- <constraint firstItem="IxI-Uh-MFB" firstAttribute="top" secondItem="5ex-9x-0TY" secondAttribute="bottom" constant="9" id="Gb8-rz-rCB"/>
- <constraint firstItem="NHb-Jx-MH0" firstAttribute="top" secondItem="5ex-9x-0TY" secondAttribute="bottom" priority="999" constant="25" id="Ixn-SY-imD"/>
- <constraint firstItem="IxI-Uh-MFB" firstAttribute="leading" secondItem="LVv-bg-Ols" secondAttribute="leading" id="JOv-bC-Hai"/>
- <constraint firstAttribute="trailing" secondItem="4oE-Ad-4bY" secondAttribute="trailing" constant="20" id="K66-8A-h0N"/>
- <constraint firstItem="5ex-9x-0TY" firstAttribute="leading" secondItem="b0r-ri-6ZA" secondAttribute="leading" id="LDM-Ag-YY8"/>
- <constraint firstItem="jta-f3-H1W" firstAttribute="top" secondItem="99y-na-GTj" secondAttribute="bottom" constant="20" id="N6i-8s-rnl"/>
- <constraint firstItem="4oE-Ad-4bY" firstAttribute="top" secondItem="Nny-Rd-SVl" secondAttribute="bottom" constant="20" id="RO6-TB-9e4"/>
- <constraint firstItem="ajM-4b-k6F" firstAttribute="leading" secondItem="vby-AD-tor" secondAttribute="leading" id="SDb-V2-z64"/>
- <constraint firstAttribute="trailing" secondItem="jta-f3-H1W" secondAttribute="trailing" constant="20" id="SX0-7R-MJl"/>
- <constraint firstItem="LVv-bg-Ols" firstAttribute="top" secondItem="b0r-ri-6ZA" secondAttribute="bottom" constant="8" id="T0g-el-LD4"/>
- <constraint firstItem="5ex-9x-0TY" firstAttribute="top" secondItem="LVv-bg-Ols" secondAttribute="bottom" constant="15" id="W3T-Kl-jPq"/>
- <constraint firstItem="JGA-h8-Nhd" firstAttribute="trailing" secondItem="IxI-Uh-MFB" secondAttribute="trailing" id="Y9i-V3-Mb1"/>
+ <constraint firstItem="NHb-Jx-MH0" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="gKX-gX-nko" secondAttribute="leading" constant="20" symbolic="YES" id="Sie-xP-vT0"/>
<constraint firstAttribute="bottom" secondItem="FAG-OH-C4R" secondAttribute="bottom" constant="20" id="YE6-QP-dDj"/>
<constraint firstItem="FAG-OH-C4R" firstAttribute="leading" secondItem="NHb-Jx-MH0" secondAttribute="trailing" constant="12" id="aGL-DS-6od"/>
- <constraint firstItem="ajM-4b-k6F" firstAttribute="top" secondItem="vby-AD-tor" secondAttribute="top" id="c2R-9y-Mht"/>
- <constraint firstItem="rxZ-gN-ou1" firstAttribute="leading" secondItem="5ex-9x-0TY" secondAttribute="trailing" constant="3" id="df6-oe-Yy3"/>
- <constraint firstItem="5ex-9x-0TY" firstAttribute="centerX" secondItem="gKX-gX-nko" secondAttribute="centerX" id="fc7-uh-dz0"/>
- <constraint firstItem="g1K-rU-VmV" firstAttribute="centerY" secondItem="vby-AD-tor" secondAttribute="centerY" id="gKa-0L-f4d"/>
- <constraint firstItem="JGA-h8-Nhd" firstAttribute="bottom" secondItem="LVv-bg-Ols" secondAttribute="bottom" id="gwe-Bw-aG4"/>
<constraint firstAttribute="bottom" secondItem="NHb-Jx-MH0" secondAttribute="bottom" constant="20" id="hOB-yc-j6O"/>
- <constraint firstItem="jta-f3-H1W" firstAttribute="leading" secondItem="gKX-gX-nko" secondAttribute="leading" constant="20" id="hc1-YP-MBT"/>
- <constraint firstItem="vby-AD-tor" firstAttribute="top" secondItem="4oE-Ad-4bY" secondAttribute="bottom" constant="20" id="i51-x5-Dvk"/>
- <constraint firstItem="rxZ-gN-ou1" firstAttribute="centerY" secondItem="5ex-9x-0TY" secondAttribute="centerY" id="ok4-Gq-hzk"/>
- <constraint firstItem="99y-na-GTj" firstAttribute="top" secondItem="vby-AD-tor" secondAttribute="bottom" constant="20" id="r9w-lC-pe3"/>
- <constraint firstItem="b0r-ri-6ZA" firstAttribute="top" secondItem="8hq-sG-FEh" secondAttribute="bottom" constant="20" id="rfm-9m-nQK"/>
- <constraint firstItem="99y-na-GTj" firstAttribute="centerX" secondItem="gKX-gX-nko" secondAttribute="centerX" id="syr-CX-eyE"/>
- <constraint firstItem="ajM-4b-k6F" firstAttribute="trailing" secondItem="vby-AD-tor" secondAttribute="trailing" id="vFJ-PC-TiJ"/>
- <constraint firstItem="JGA-h8-Nhd" firstAttribute="leading" secondItem="LVv-bg-Ols" secondAttribute="trailing" constant="3" id="x8S-ie-153"/>
- <constraint firstItem="LVv-bg-Ols" firstAttribute="leading" secondItem="b0r-ri-6ZA" secondAttribute="leading" id="xrc-me-Vca"/>
- <constraint firstItem="4oE-Ad-4bY" firstAttribute="leading" secondItem="gKX-gX-nko" secondAttribute="leading" constant="20" id="zbc-0N-sAn"/>
+ <constraint firstItem="FAG-OH-C4R" firstAttribute="top" secondItem="oR9-WB-ay5" secondAttribute="bottom" constant="25" id="s3C-aR-8WF"/>
+ <constraint firstAttribute="trailing" secondItem="oR9-WB-ay5" secondAttribute="trailing" constant="20" id="ugE-E9-3e7"/>
</constraints>
<point key="canvasLocation" x="-339" y="205"/>
</view>
@@ -532,8 +604,6 @@
</customView>
</objects>
<resources>
- <image name="ic_action_accept" width="72" height="72"/>
- <image name="ic_action_cancel" width="72" height="72"/>
<image name="ic_picture" width="72" height="72"/>
</resources>
</document>