forked from mirrors/linphone-iphone
assistant: update to latest version
This commit is contained in:
parent
e83bc9ac54
commit
3e470460c8
8 changed files with 641 additions and 647 deletions
|
|
@ -43,6 +43,7 @@
|
|||
@property(nonatomic, strong) IBOutlet UIView *createAccountView;
|
||||
@property(nonatomic, strong) IBOutlet UIView *createAccountActivateEmailView;
|
||||
@property(nonatomic, strong) IBOutlet UIView *linphoneLoginView;
|
||||
@property(strong, nonatomic) IBOutlet UIView *linkAccountView;
|
||||
@property(nonatomic, strong) IBOutlet UIView *loginView;
|
||||
@property(nonatomic, strong) IBOutlet UIView *remoteProvisioningLoginView;
|
||||
@property(strong, nonatomic) IBOutlet UIView *remoteProvisioningView;
|
||||
|
|
@ -55,7 +56,6 @@
|
|||
@property(nonatomic, strong) IBOutlet UIButton *gotoRemoteProvisioningButton;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UILabel *accountLabel;
|
||||
@property (weak, nonatomic) IBOutlet UIButton *countryButton;
|
||||
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *createAccountNextButtonPositionConstraint;
|
||||
|
||||
+ (NSString *)errorForStatus:(LinphoneAccountCreatorStatus)status;
|
||||
|
|
@ -78,6 +78,7 @@
|
|||
- (IBAction)onRemoteProvisioningLoginClick:(id)sender;
|
||||
- (IBAction)onRemoteProvisioningDownloadClick:(id)sender;
|
||||
- (IBAction)onCreateAccountCheckActivatedClick:(id)sender;
|
||||
- (IBAction)onLinkAccountClick:(id)sender;
|
||||
|
||||
- (IBAction)onFormSwitchToggle:(id)sender;
|
||||
- (IBAction)onCountryCodeClick:(id)sender;
|
||||
|
|
|
|||
|
|
@ -50,6 +50,8 @@ typedef enum _ViewElement {
|
|||
ViewElement_Username_Label = 120,
|
||||
ViewElement_NextButton = 130,
|
||||
|
||||
ViewElement_PhoneButton = 150,
|
||||
|
||||
ViewElement_UsernameFormView = 181,
|
||||
ViewElement_EmailFormView = 182,
|
||||
} ViewElement;
|
||||
|
|
@ -94,14 +96,6 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
|
||||
#pragma mark - ViewController Functions
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
_countryButton.layer.borderWidth = .8;
|
||||
_countryButton.layer.borderColor = _countryButton.backgroundColor.CGColor;
|
||||
_countryButton.layer.cornerRadius = 4.f;
|
||||
_countryButton.layer.masksToBounds = YES;
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
|
||||
|
|
@ -367,7 +361,7 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
[self fitContent];
|
||||
|
||||
// also force next button alignement on create account page
|
||||
if (currentView == _createAccountView) {
|
||||
if ([self findView:ViewElement_PhoneButton inView:currentView ofType:UIButton.class]) {
|
||||
CTTelephonyNetworkInfo *networkInfo = [CTTelephonyNetworkInfo new];
|
||||
CTCarrier *carrier = networkInfo.subscriberCellularProvider;
|
||||
NSDictionary *country = [CountryListViewController countryWithIso:carrier.isoCountryCode];
|
||||
|
|
@ -394,6 +388,12 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
[self onFormSwitchToggle:nil];
|
||||
}
|
||||
|
||||
UIButton *countryButton = [self findButton:ViewElement_PhoneButton];
|
||||
countryButton.layer.borderWidth = .8;
|
||||
countryButton.layer.borderColor = countryButton.backgroundColor.CGColor;
|
||||
countryButton.layer.cornerRadius = 4.f;
|
||||
countryButton.layer.masksToBounds = YES;
|
||||
|
||||
[self prepareErrorLabels];
|
||||
|
||||
}
|
||||
|
|
@ -446,6 +446,8 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
if ([view isKindOfClass:UIAssistantTextField.class]) {
|
||||
[(UIAssistantTextField *)view setText:@""];
|
||||
((UIAssistantTextField *)view).canShowError = NO;
|
||||
} else if (view.tag == ViewElement_PhoneButton) {
|
||||
[(UIButton *)view setTitle:NSLocalizedString(@"Select your country", nil) forState:UIControlStateNormal];
|
||||
} else {
|
||||
for (UIView *subview in view.subviews) {
|
||||
[AssistantView cleanTextField:subview];
|
||||
|
|
@ -492,19 +494,21 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
[createPhone showError:[AssistantView errorForStatus:LinphoneAccountCreatorPhoneNumberInvalid]
|
||||
when:^BOOL(NSString *inputEntry) {
|
||||
UIAssistantTextField* countryCodeField = [self findTextField:ViewElement_PhoneCC];
|
||||
NSString* prefix = countryCodeField.text.length > 0 ? [countryCodeField.text substringFromIndex:1] : nil;
|
||||
NSString *prefix = (inputEntry.length > 0 && countryCodeField.text.length > 0)
|
||||
? [countryCodeField.text substringFromIndex:1]
|
||||
: nil;
|
||||
LinphoneAccountCreatorStatus s =
|
||||
linphone_account_creator_set_phone_number(account_creator, inputEntry.length > 0 ? inputEntry.UTF8String : NULL, prefix.UTF8String);
|
||||
if (s != LinphoneAccountCreatorOK) linphone_account_creator_set_phone_number(account_creator, NULL, NULL);
|
||||
|
||||
// if phone is empty and username is empty, this is wrong
|
||||
if (linphone_account_creator_get_username(account_creator) == NULL) {
|
||||
s = LinphoneAccountCreatorPhoneNumberTooShort;
|
||||
if (s != LinphoneAccountCreatorOK) {
|
||||
linphone_account_creator_set_phone_number(account_creator, NULL, NULL);
|
||||
// if phone is empty and username is empty, this is wrong
|
||||
if (linphone_account_creator_get_username(account_creator) == NULL) {
|
||||
s = LinphoneAccountCreatorPhoneNumberTooShort;
|
||||
}
|
||||
}
|
||||
|
||||
createPhone.errorLabel.text = [AssistantView errorForStatus:s];
|
||||
|
||||
|
||||
return s != LinphoneAccountCreatorOK;
|
||||
}];
|
||||
|
||||
|
|
@ -674,18 +678,69 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
}
|
||||
}
|
||||
|
||||
- (void)genericError {
|
||||
UIAlertView *errorView = [[UIAlertView alloc]
|
||||
initWithTitle:NSLocalizedString(@"Account creation issue", nil)
|
||||
message:NSLocalizedString(@"Your account could not be created, please try again later.", nil)
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"Continue", nil)
|
||||
otherButtonTitles:nil, nil];
|
||||
- (NSString *)stringForError:(const char *)err {
|
||||
#define IS(x) (strcmp(err, #x) == 0)
|
||||
if
|
||||
IS(ERROR_ACCOUNT_ALREADY_ACTIVATED)
|
||||
return NSLocalizedString(@"This account is already activated.", nil);
|
||||
if
|
||||
IS(ERROR_ACCOUNT_ALREADY_IN_USE)
|
||||
return NSLocalizedString(@"This account is already in use.", nil);
|
||||
if
|
||||
IS(ERROR_ACCOUNT_DOESNT_EXIST)
|
||||
return NSLocalizedString(@"This account does not exist.", nil);
|
||||
if
|
||||
IS(ERROR_ACCOUNT_NOT_ACTIVATED)
|
||||
return NSLocalizedString(@"This account is not activated yet.", nil);
|
||||
if
|
||||
IS(ERROR_ALIAS_ALREADY_IN_USE)
|
||||
return NSLocalizedString(@"This alias is already used.", nil);
|
||||
if
|
||||
IS(ERROR_ALIAS_DOESNT_EXIST)
|
||||
return NSLocalizedString(@"This alias does not exist.", nil);
|
||||
if
|
||||
IS(ERROR_EMAIL_ALREADY_IN_USE)
|
||||
return NSLocalizedString(@"This email address is already used.", nil);
|
||||
if
|
||||
IS(ERROR_EMAIL_DOESNT_EXIST)
|
||||
return NSLocalizedString(@"This email does not exist.", nil);
|
||||
if
|
||||
IS(ERROR_KEY_DOESNT_MATCH)
|
||||
return NSLocalizedString(@"The confirmation code is invalid.", nil);
|
||||
if
|
||||
IS(ERROR_PASSWORD_DOESNT_MATCH)
|
||||
return NSLocalizedString(@"Passwords do not match.", nil);
|
||||
if
|
||||
IS(ERROR_PHONE_ISNT_E164)
|
||||
return NSLocalizedString(@"Your phone number is invalid.", nil);
|
||||
|
||||
if (!linphone_core_is_network_reachable(LC))
|
||||
return NSLocalizedString(@"There is no network connection available, enable "
|
||||
@"WIFI or WWAN prior to configure an account",
|
||||
nil);
|
||||
|
||||
return NSLocalizedString(@"Unknown error, please try again later", nil);
|
||||
}
|
||||
|
||||
- (void)showErrorPopup:(const char *)err {
|
||||
UIAlertView *errorView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Account configuration issue", nil)
|
||||
message:[self stringForError:err]
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"Cancel", nil)
|
||||
otherButtonTitles:nil, nil];
|
||||
[errorView show];
|
||||
}
|
||||
|
||||
- (void)isAccountUsed:(LinphoneAccountCreatorStatus)status {
|
||||
if (currentView == _createAccountView) {
|
||||
- (void)isAccountUsed:(LinphoneAccountCreatorStatus)status withResp:(const char *)resp {
|
||||
if (currentView == _linphoneLoginView) {
|
||||
if (status == LinphoneAccountCreatorAccountExistWithAlias) {
|
||||
[self configureProxyConfig];
|
||||
} else if (status == LinphoneAccountCreatorAccountExist) {
|
||||
[self changeView:_linkAccountView back:NO animation:YES];
|
||||
} else {
|
||||
[self showErrorPopup:resp];
|
||||
}
|
||||
} else {
|
||||
if (status == LinphoneAccountCreatorAccountExist || status == LinphoneAccountCreatorAccountExistWithAlias) {
|
||||
ViewElement ve = ([self findTextField:ViewElement_Username].isVisible) ? ViewElement_Username : ViewElement_Phone;
|
||||
[[self findTextField:ve] showError:NSLocalizedString(@"This account already exists.", nil)];
|
||||
|
|
@ -693,30 +748,20 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
} else if (status == LinphoneAccountCreatorAccountNotExist) {
|
||||
linphone_account_creator_create_account(account_creator);
|
||||
} else {
|
||||
[self genericError];
|
||||
}
|
||||
} else if (currentView == _linphoneLoginView) {
|
||||
[self findTextField:ViewElement_PhoneCC].enabled =
|
||||
[self findTextField:ViewElement_Phone].enabled =
|
||||
[self findTextField:ViewElement_DisplayName].enabled =
|
||||
[self findTextField:ViewElement_Password].enabled = (status == LinphoneAccountCreatorAccountExist);
|
||||
if (status == LinphoneAccountCreatorAccountExistWithAlias) {
|
||||
[self findButton:ViewElement_NextButton].enabled = YES;
|
||||
} else {
|
||||
[self shouldEnableNextButton];
|
||||
[self showErrorPopup:resp];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Account creator callbacks
|
||||
|
||||
void assistant_is_account_used(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status) {
|
||||
void assistant_is_account_used(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status, const char *resp) {
|
||||
AssistantView *thiz = (__bridge AssistantView *)(linphone_account_creator_get_user_data(creator));
|
||||
thiz.waitView.hidden = YES;
|
||||
[thiz isAccountUsed:status];
|
||||
[thiz isAccountUsed:status withResp:resp];
|
||||
}
|
||||
|
||||
void assistant_create_account(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status) {
|
||||
void assistant_create_account(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status, const char *resp) {
|
||||
AssistantView *thiz = (__bridge AssistantView *)(linphone_account_creator_get_user_data(creator));
|
||||
thiz.waitView.hidden = YES;
|
||||
if (status == LinphoneAccountCreatorAccountCreated) {
|
||||
|
|
@ -726,42 +771,37 @@ void assistant_create_account(LinphoneAccountCreator *creator, LinphoneAccountCr
|
|||
[thiz changeView:thiz.createAccountActivateEmailView back:FALSE animation:TRUE];
|
||||
}
|
||||
} else {
|
||||
[thiz genericError];
|
||||
[thiz showErrorPopup:resp];
|
||||
}
|
||||
}
|
||||
|
||||
void assistant_recover_phone_account(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status) {
|
||||
void assistant_recover_phone_account(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status,
|
||||
const char *resp) {
|
||||
AssistantView *thiz = (__bridge AssistantView *)(linphone_account_creator_get_user_data(creator));
|
||||
thiz.waitView.hidden = YES;
|
||||
if (status == LinphoneAccountCreatorOK) {
|
||||
[thiz changeView:thiz.createAccountActivateSMSView back:FALSE animation:TRUE];
|
||||
} else {
|
||||
[thiz genericError];
|
||||
[thiz showErrorPopup:resp];
|
||||
}
|
||||
}
|
||||
|
||||
void assistant_activate_account(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status) {
|
||||
void assistant_activate_account(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status,
|
||||
const char *resp) {
|
||||
AssistantView *thiz = (__bridge AssistantView *)(linphone_account_creator_get_user_data(creator));
|
||||
thiz.waitView.hidden = YES;
|
||||
if (status == LinphoneAccountCreatorAccountActivated) {
|
||||
[thiz configureProxyConfig];
|
||||
} else if (status == LinphoneAccountCreatorAccountNotActivated) {
|
||||
UIAlertView *errorView = [[UIAlertView alloc]
|
||||
initWithTitle:NSLocalizedString(@"Account activation issue", nil)
|
||||
message:NSLocalizedString(@"Your account could not be activated, please check SMS code.", nil)
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"Continue", nil)
|
||||
otherButtonTitles:nil, nil];
|
||||
[errorView show];
|
||||
} else if (status == LinphoneAccountCreatorAccountAlreadyActivated) {
|
||||
// in case we are actually trying to link account, let's try it now
|
||||
linphone_account_creator_activate_phone_number_link(creator);
|
||||
} else {
|
||||
[thiz genericError];
|
||||
[thiz showErrorPopup:resp];
|
||||
}
|
||||
}
|
||||
|
||||
void assistant_is_account_activated(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status) {
|
||||
void assistant_is_account_activated(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status,
|
||||
const char *resp) {
|
||||
AssistantView *thiz = (__bridge AssistantView *)(linphone_account_creator_get_user_data(creator));
|
||||
thiz.waitView.hidden = YES;
|
||||
if (status == LinphoneAccountCreatorAccountActivated) {
|
||||
|
|
@ -781,39 +821,29 @@ void assistant_is_account_activated(LinphoneAccountCreator *creator, LinphoneAcc
|
|||
}];
|
||||
[alert show];
|
||||
} else {
|
||||
[thiz genericError];
|
||||
[thiz showErrorPopup:resp];
|
||||
}
|
||||
}
|
||||
|
||||
void assistant_link_phone_number_with_account(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status) {
|
||||
void assistant_link_phone_number_with_account(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status,
|
||||
const char *resp) {
|
||||
AssistantView *thiz = (__bridge AssistantView *)(linphone_account_creator_get_user_data(creator));
|
||||
thiz.waitView.hidden = YES;
|
||||
if (status == LinphoneAccountCreatorOK) {
|
||||
[thiz changeView:thiz.createAccountActivateSMSView back:FALSE animation:TRUE];
|
||||
} else {
|
||||
UIAlertView *errorView = [[UIAlertView alloc]
|
||||
initWithTitle:NSLocalizedString(@"Account link issue", nil)
|
||||
message:NSLocalizedString(@"Could not link your phone number with your account, please try again later.", nil)
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"Continue", nil)
|
||||
otherButtonTitles:nil, nil];
|
||||
[errorView show];
|
||||
[thiz showErrorPopup:resp];
|
||||
}
|
||||
}
|
||||
|
||||
void assistant_activate_phone_number_link(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status) {
|
||||
void assistant_activate_phone_number_link(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status,
|
||||
const char *resp) {
|
||||
AssistantView *thiz = (__bridge AssistantView *)(linphone_account_creator_get_user_data(creator));
|
||||
thiz.waitView.hidden = YES;
|
||||
if (status == LinphoneAccountCreatorOK) {
|
||||
[thiz configureProxyConfig];
|
||||
} else {
|
||||
UIAlertView *errorView = [[UIAlertView alloc]
|
||||
initWithTitle:NSLocalizedString(@"Account link issue", nil)
|
||||
message:NSLocalizedString(@"Could not link your phone number with your account, please try again later.", nil)
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"Continue", nil)
|
||||
otherButtonTitles:nil, nil];
|
||||
[errorView show];
|
||||
[thiz showErrorPopup:resp];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -827,11 +857,6 @@ void assistant_activate_phone_number_link(LinphoneAccountCreator *creator, Linph
|
|||
- (void)textFieldDidEndEditing:(UITextField *)textField {
|
||||
UIAssistantTextField *atf = (UIAssistantTextField *)textField;
|
||||
[atf textFieldDidEndEditing:atf];
|
||||
|
||||
if (textField.tag == ViewElement_Username && currentView == _linphoneLoginView) {
|
||||
linphone_account_creator_is_account_used(account_creator);
|
||||
}
|
||||
|
||||
[self shouldEnableNextButton];
|
||||
}
|
||||
|
||||
|
|
@ -942,21 +967,25 @@ void assistant_activate_phone_number_link(LinphoneAccountCreator *creator, Linph
|
|||
});
|
||||
}
|
||||
|
||||
- (IBAction)onLinkAccountClick:(id)sender {
|
||||
ONCLICKBUTTON(sender, 100, {
|
||||
_waitView.hidden = NO;
|
||||
linphone_account_creator_link_phone_number_with_account(account_creator);
|
||||
});
|
||||
}
|
||||
|
||||
- (IBAction)onLinphoneLoginClick:(id)sender {
|
||||
ONCLICKBUTTON(sender, 100, {
|
||||
_waitView.hidden = NO;
|
||||
|
||||
NSString *phone = [self findTextField:ViewElement_Phone].text;
|
||||
if (phone.length > 0) {
|
||||
linphone_account_creator_link_phone_number_with_account(account_creator);
|
||||
} else {
|
||||
if ((linphone_account_creator_get_phone_number(account_creator) != NULL)
|
||||
&& [self findTextField:ViewElement_Password].text.length == 0) {
|
||||
linphone_account_creator_recover_phone_account(account_creator);
|
||||
} else {
|
||||
[self configureProxyConfig];
|
||||
}
|
||||
}
|
||||
if ((linphone_account_creator_get_phone_number(account_creator) != NULL) &&
|
||||
linphone_account_creator_get_password(account_creator) == NULL) {
|
||||
linphone_account_creator_recover_phone_account(account_creator);
|
||||
} else {
|
||||
// check if account is already linked with a phone number.
|
||||
// if not, propose it to the user
|
||||
linphone_account_creator_is_account_used(account_creator);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -1011,7 +1040,11 @@ void assistant_activate_phone_number_link(LinphoneAccountCreator *creator, Linph
|
|||
emailView.hidden = !emailSwitch.isOn;
|
||||
|
||||
UIAssistantTextField* countryCodeField = [self findTextField:ViewElement_PhoneCC];
|
||||
usernameSwitch.enabled = _countryButton.enabled = countryCodeField.enabled = countryCodeField.userInteractionEnabled = [self findTextField:ViewElement_Phone].userInteractionEnabled = [self findTextField:ViewElement_Phone].enabled = !emailSwitch.isOn;
|
||||
UIButton *phoneButton =
|
||||
(UIButton *)[self findView:ViewElement_PhoneButton inView:currentView ofType:UIButton.class];
|
||||
usernameSwitch.enabled = phoneButton.enabled = countryCodeField.enabled = countryCodeField.userInteractionEnabled =
|
||||
[self findTextField:ViewElement_Phone].userInteractionEnabled = [self findTextField:ViewElement_Phone].enabled =
|
||||
!emailSwitch.isOn;
|
||||
|
||||
[self refreshYourUsername];
|
||||
|
||||
|
|
@ -1043,7 +1076,10 @@ void assistant_activate_phone_number_link(LinphoneAccountCreator *creator, Linph
|
|||
UIAssistantTextField* countryCodeField = [self findTextField:ViewElement_PhoneCC];
|
||||
NSDictionary *c = [CountryListViewController countryWithCountryCode:countryCodeField.text];
|
||||
if (c || force) {
|
||||
[_countryButton setTitle:c ? [c objectForKey:@"name"] : NSLocalizedString(@"Unknown country code", nil) forState:UIControlStateNormal];
|
||||
UIButton *phoneButton =
|
||||
(UIButton *)[self findView:ViewElement_PhoneButton inView:currentView ofType:UIButton.class];
|
||||
[phoneButton setTitle:c ? [c objectForKey:@"name"] : NSLocalizedString(@"Unknown country code", nil)
|
||||
forState:UIControlStateNormal];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1087,7 +1123,9 @@ void assistant_activate_phone_number_link(LinphoneAccountCreator *creator, Linph
|
|||
#pragma mark - select country delegate
|
||||
|
||||
- (void)didSelectCountry:(NSDictionary *)country{
|
||||
[_countryButton setTitle:[country objectForKey:@"name"] forState:UIControlStateNormal];
|
||||
UIButton *phoneButton =
|
||||
(UIButton *)[self findView:ViewElement_PhoneButton inView:currentView ofType:UIButton.class];
|
||||
[phoneButton setTitle:[country objectForKey:@"name"] forState:UIControlStateNormal];
|
||||
UIAssistantTextField* countryCodeField = [self findTextField:ViewElement_PhoneCC];
|
||||
countryCodeField.text = countryCodeField.lastText = [country objectForKey:@"code"];
|
||||
phone_number_length = [[country objectForKey:@"phone_length"] integerValue];
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,8 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10117" systemVersion="15G31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11198.2" systemVersion="15G31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11161"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ShopView">
|
||||
|
|
@ -11,7 +12,6 @@
|
|||
<outlet property="accountProductDescription" destination="Ubj-Hn-QQP" id="itS-zY-QnV"/>
|
||||
<outlet property="accountProductPrice" destination="Hhk-KZ-LpO" id="rao-hi-s4Y"/>
|
||||
<outlet property="accountProductTitle" destination="8CD-Y8-Ad3" id="29E-MO-OgE"/>
|
||||
<outlet property="landscapeView" destination="sVO-4a-t1s" id="9ye-NV-onQ"/>
|
||||
<outlet property="portraitView" destination="HJH-1o-RXN" id="Hoa-uk-q9s"/>
|
||||
<outlet property="view" destination="HJH-1o-RXN" id="OKD-FI-yhX"/>
|
||||
</connections>
|
||||
|
|
@ -22,24 +22,24 @@
|
|||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view tag="1" contentMode="scaleToFill" id="HJH-1o-RXN">
|
||||
<rect key="frame" x="0.0" y="66" width="375" height="601"/>
|
||||
<frame key="frameInset" minY="66"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view tag="2" contentMode="scaleToFill" id="Whz-oo-Pwx" userLabel="topBar">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
||||
<frame key="frameInset" minX="0.0%" width="100.00%" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" tag="3" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="h54-RV-eE6" userLabel="backgroundColor">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
||||
<frame key="frameInset" height="100.00%"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="ETk-tB-ZNl" userLabel="dialerBackButton" customClass="UIIconButton">
|
||||
<rect key="frame" x="299" y="0.0" width="76" height="66"/>
|
||||
<frame key="frameInset" minY="0.0%" width="20.27%" height="100.00%"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Add contact"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" image="dialer_back_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<state key="disabled" image="dialer_back_disabled.png"/>
|
||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
||||
|
|
@ -48,42 +48,42 @@
|
|||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SHOP" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="iNt-9d-7si" userLabel="titleLabel">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
||||
<frame key="frameInset" minX="0.0%" minY="0.0%" width="100.00%" height="100.00%"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="27"/>
|
||||
<color key="textColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<color key="textColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
</view>
|
||||
<view clipsSubviews="YES" multipleTouchEnabled="YES" tag="6" contentMode="scaleToFill" id="er6-WR-NP1">
|
||||
<rect key="frame" x="0.0" y="66" width="375" height="535"/>
|
||||
<frame key="frameInset" minY="66" height="535"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Product description" lineBreakMode="wordWrap" numberOfLines="4" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Ubj-Hn-QQP" userLabel="productDescription">
|
||||
<rect key="frame" x="16" y="35" width="209" height="50"/>
|
||||
<frame key="frameInset" minX="16" minY="35" width="58.22%" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="0bU-UW-3nR" userLabel="purchaseButton">
|
||||
<rect key="frame" x="303" y="31" width="72" height="30"/>
|
||||
<frame key="frameInset" minY="31" width="72" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<state key="normal" title="Buy"/>
|
||||
<connections>
|
||||
<action selector="onPurchaseButtonClick:" destination="-1" eventType="touchUpInside" id="ZX7-nC-4Mi"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Product title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" highlighted="YES" adjustsFontSizeToFit="NO" id="8CD-Y8-Ad3" userLabel="productTitle">
|
||||
<rect key="frame" x="16" y="11" width="289" height="21"/>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Product title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" highlighted="YES" adjustsFontSizeToFit="NO" id="8CD-Y8-Ad3" userLabel="productTitle">
|
||||
<frame key="frameInset" minX="16" minY="11" width="80.50%" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0.5 €" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Hhk-KZ-LpO">
|
||||
<rect key="frame" x="258" y="35" width="55" height="21"/>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0.5 €" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Hhk-KZ-LpO">
|
||||
<frame key="frameInset" minY="35" width="55" height="21" maxX="62"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
|
|
@ -92,140 +92,12 @@
|
|||
</subviews>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<point key="canvasLocation" x="235.5" y="318.5"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="FcM-rg-Qrt" userLabel="iphone6MetricsView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="667" height="375"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view tag="1" contentMode="scaleToFill" id="sVO-4a-t1s">
|
||||
<rect key="frame" x="0.0" y="66" width="667" height="309"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view tag="2" contentMode="scaleToFill" id="OGe-ZS-scH" userLabel="topBar">
|
||||
<rect key="frame" x="0.0" y="0.0" width="667" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" tag="3" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="Vi5-Wh-iOm" userLabel="backgroundColor">
|
||||
<rect key="frame" x="0.0" y="0.0" width="667" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="vX8-wO-ZEN" userLabel="dialerBackButton" customClass="UIIconButton">
|
||||
<rect key="frame" x="532" y="0.0" width="135" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Add contact"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" image="dialer_back_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="dialer_back_disabled.png"/>
|
||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
||||
<connections>
|
||||
<action selector="onDialerBackClick:" destination="-1" eventType="touchUpInside" id="vfB-jG-YPr"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ABOUT" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="wKp-iH-ojJ" userLabel="titleLabel">
|
||||
<rect key="frame" x="0.0" y="0.0" width="667" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="27"/>
|
||||
<color key="textColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
</view>
|
||||
<view clipsSubviews="YES" multipleTouchEnabled="YES" tag="6" contentMode="scaleToFill" id="Wvv-4f-Oa6">
|
||||
<rect key="frame" x="0.0" y="66" width="667" height="243"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" tag="7" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_C.png" id="UBx-Gi-qTi" userLabel="backgroundColor">
|
||||
<rect key="frame" x="0.0" y="0.0" width="667" height="178"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" tag="8" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="splashscreen.png" id="UhZ-5i-eU5" userLabel="logoImage">
|
||||
<rect key="frame" x="8" y="8" width="212" height="161"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" tag="9" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LINPHONE" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.10000000149011612" id="fss-Tl-kRy" userLabel="nameLabel">
|
||||
<rect key="frame" x="228" y="16" width="439" height="47"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="41"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" tag="10" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.10000000149011612" id="ASG-VC-Riv" userLabel="descLabel">
|
||||
<rect key="frame" x="228" y="71" width="439" height="34"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<attributedString key="attributedText">
|
||||
<fragment content="The ">
|
||||
<attributes>
|
||||
<color key="NSColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<font key="NSFont" size="26" name="HelveticaNeue"/>
|
||||
<paragraphStyle key="NSParagraphStyle" alignment="center" lineBreakMode="truncatingTail" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
|
||||
</attributes>
|
||||
</fragment>
|
||||
<fragment content="libre">
|
||||
<attributes>
|
||||
<color key="NSColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<font key="NSFont" size="26" name="HelveticaNeue-Italic"/>
|
||||
<paragraphStyle key="NSParagraphStyle" alignment="center" lineBreakMode="truncatingTail" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
|
||||
</attributes>
|
||||
</fragment>
|
||||
<fragment content=" SIP client">
|
||||
<attributes>
|
||||
<color key="NSColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<font key="NSFont" size="26" name="HelveticaNeue"/>
|
||||
<paragraphStyle key="NSParagraphStyle" alignment="center" lineBreakMode="truncatingTail" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
|
||||
</attributes>
|
||||
</fragment>
|
||||
</attributedString>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" tag="11" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Linphone iPhone 3.0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="oYk-ih-BBi" userLabel="appVersionLabel">
|
||||
<rect key="frame" x="228" y="115" width="439" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" red="0.88235294119999996" green="0.88235294119999996" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" tag="12" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Linphone Core 3.9.0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="g2W-u5-yxg" userLabel="libVersionLabel">
|
||||
<rect key="frame" x="228" y="144" width="439" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" red="0.88235294119999996" green="0.88235294119999996" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" tag="13" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="https://www.linphone.org" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="uis-xz-Qsa" userLabel="siteURLLabel">
|
||||
<rect key="frame" x="0.0" y="177" width="333" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" tag="14" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="7" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="ToT-OI-B2F" userLabel="licenseLabel">
|
||||
<rect key="frame" x="333" y="177" width="334" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<string key="text">GNU General Public License V2
|
||||
© 2010-2016 Belledonne Communications</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
|
||||
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
||||
<point key="canvasLocation" x="801.5" y="280.5"/>
|
||||
</view>
|
||||
<tapGestureRecognizer id="l7c-wq-pii" userLabel="onLinkTap">
|
||||
<connections>
|
||||
<action selector="onLinkTap:" destination="-1" id="Ay5-Uz-RDo"/>
|
||||
|
|
@ -233,11 +105,14 @@
|
|||
</tapGestureRecognizer>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="color_C.png" width="2" height="2"/>
|
||||
<image name="color_E.png" width="2" height="2"/>
|
||||
<image name="color_F.png" width="2" height="2"/>
|
||||
<image name="dialer_back_default.png" width="27" height="27"/>
|
||||
<image name="dialer_back_disabled.png" width="27" height="27"/>
|
||||
<image name="splashscreen.png" width="181" height="165"/>
|
||||
</resources>
|
||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
||||
<simulatedStatusBarMetrics key="statusBar"/>
|
||||
<simulatedOrientationMetrics key="orientation"/>
|
||||
<simulatedScreenMetrics key="destination" type="retina4_7.fullscreen"/>
|
||||
</simulatedMetricsContainer>
|
||||
</document>
|
||||
|
|
|
|||
|
|
@ -315,7 +315,7 @@
|
|||
0867D690FE84028FC02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0700;
|
||||
LastUpgradeCheck = 0800;
|
||||
};
|
||||
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "XMLRPC" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
|
|
|
|||
|
|
@ -3114,7 +3114,7 @@
|
|||
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0730;
|
||||
LastUpgradeCheck = 0800;
|
||||
TargetAttributes = {
|
||||
1D6058900D05DD3D006BFB54 = {
|
||||
DevelopmentTeam = Z2V957B3D6;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0800"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0800"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue