Wizard: add remote provisionning view, remove popup

This commit is contained in:
Gautier Pelloux-Prayer 2015-10-26 15:14:14 +01:00
parent 828917bef9
commit 43e3d7ef4e
5 changed files with 108 additions and 34 deletions

View file

@ -39,7 +39,8 @@
@property(nonatomic, strong) IBOutlet UIView *createAccountActivationView;
@property(nonatomic, strong) IBOutlet UIView *linphoneLoginView;
@property(nonatomic, strong) IBOutlet UIView *loginView;
@property(nonatomic, strong) IBOutlet UIView *remoteProvisionningView;
@property(nonatomic, strong) IBOutlet UIView *remoteProvisionningLoginView;
@property(strong, nonatomic) IBOutlet UIView *remoteProvisionningView;
@property(nonatomic, strong) IBOutlet UIImageView *welcomeLogoImage;
@property(nonatomic, strong) IBOutlet UIButton *gotoCreateAccountButton;
@ -62,7 +63,8 @@
- (IBAction)onCreateAccountActivationClick:(id)sender;
- (IBAction)onLinphoneLoginClick:(id)sender;
- (IBAction)onLoginClick:(id)sender;
- (IBAction)onRemoteProvisionningClick:(id)sender;
- (IBAction)onRemoteProvisionningLoginClick:(id)sender;
- (IBAction)onRemoteProvisionningDownloadClick:(id)sender;
- (IBAction)onTransportChange:(id)sender;

View file

@ -37,6 +37,7 @@ typedef enum _ViewElement {
ViewElement_Domain = 104,
ViewElement_Transport = 105,
ViewElement_Username_Label = 106,
ViewElement_URL = 107,
ViewElement_NextButton = 130,
} ViewElement;
@ -104,7 +105,7 @@ static UICompositeViewDescription *compositeDescription = nil;
[LinphoneUtils adjustFontSize:_linphoneLoginView mult:2.22f];
[LinphoneUtils adjustFontSize:_loginView mult:2.22f];
[LinphoneUtils adjustFontSize:_createAccountActivationView mult:2.22f];
[LinphoneUtils adjustFontSize:_remoteProvisionningView mult:2.22f];
[LinphoneUtils adjustFontSize:_remoteProvisionningLoginView mult:2.22f];
}
}
@ -311,7 +312,7 @@ static UICompositeViewDescription *compositeDescription = nil;
}
}
[self changeView:_remoteProvisionningView back:FALSE animation:TRUE];
[self changeView:_remoteProvisionningLoginView back:FALSE animation:TRUE];
linphone_proxy_config_destroy(default_conf);
}
@ -322,7 +323,7 @@ static UICompositeViewDescription *compositeDescription = nil;
[AssistantView cleanTextField:_linphoneLoginView];
[AssistantView cleanTextField:_loginView];
[AssistantView cleanTextField:_createAccountActivationView];
[AssistantView cleanTextField:_remoteProvisionningView];
[AssistantView cleanTextField:_remoteProvisionningLoginView];
}
- (void)displayUsernameAsPhoneOrUsername {
@ -597,19 +598,10 @@ void assistant_validation_tested(LinphoneAccountCreator *creator, LinphoneAccoun
}
- (IBAction)onGotoRemoteProvisionningClick:(id)sender {
UIAlertView *remoteInput = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Enter provisioning URL", @"")
message:@""
delegate:self
cancelButtonTitle:NSLocalizedString(@"Cancel", @"")
otherButtonTitles:NSLocalizedString(@"Fetch", @""), nil];
remoteInput.alertViewStyle = UIAlertViewStylePlainTextInput;
UITextField *prov_url = [remoteInput textFieldAtIndex:0];
prov_url.keyboardType = UIKeyboardTypeURL;
prov_url.text = [[LinphoneManager instance] lpConfigStringForKey:@"config-uri" forSection:@"misc"];
prov_url.placeholder = @"URL";
[remoteInput show];
nextView = _remoteProvisionningView;
[self loadAssistantConfig:@"assistant_remote.rc"];
[self findTextField:ViewElement_URL].text =
[[LinphoneManager instance] lpConfigStringForKey:@"config-uri" forSection:@"misc"];
}
- (IBAction)onCreateAccountClick:(id)sender {
@ -632,11 +624,27 @@ void assistant_validation_tested(LinphoneAccountCreator *creator, LinphoneAccoun
linphone_account_creator_test_validation(account_creator);
}
- (IBAction)onRemoteProvisionningClick:(id)sender {
- (IBAction)onRemoteProvisionningLoginClick:(id)sender {
_waitView.hidden = NO;
[self addProxyConfig:linphone_account_creator_configure(account_creator)];
}
- (IBAction)onRemoteProvisionningDownloadClick:(id)sender {
NSString *url = [self findTextField:ViewElement_URL].text;
if ([url length] > 0) {
// missing prefix will result in http:// being used
if ([url rangeOfString:@"://"].location == NSNotFound) {
url = [NSString stringWithFormat:@"http://%@", url];
}
LOGI(@"Should use remote provisioning URL %@", url);
linphone_core_set_provisioning_uri([LinphoneManager getLc], [url UTF8String]);
[_waitView setHidden:false];
[[LinphoneManager instance] resetLinphoneCore];
}
}
- (IBAction)onTransportChange:(id)sender {
UISegmentedControl *transports = sender;
NSString *type = [transports titleForSegmentAtIndex:[transports selectedSegmentIndex]];

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14F27" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14F1021" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
@ -15,7 +15,8 @@
<outlet property="gotoRemoteProvisionningButton" destination="Kbn-dL-C5h" id="pgT-y6-qKj"/>
<outlet property="linphoneLoginView" destination="52" id="9NX-6W-50g"/>
<outlet property="loginView" destination="56" id="bJH-N8-uPi"/>
<outlet property="remoteProvisionningView" destination="xVK-hL-6pe" id="kgd-JJ-OWw"/>
<outlet property="remoteProvisionningLoginView" destination="xVK-hL-6pe" id="P3u-Oo-Hzd"/>
<outlet property="remoteProvisionningView" destination="Zuh-Sd-pcd" id="qQP-F4-FMX"/>
<outlet property="welcomeView" destination="33" id="46a-AR-5mN"/>
</connections>
</placeholder>
@ -503,7 +504,70 @@
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<point key="canvasLocation" x="626.5" y="862"/>
</view>
<view contentMode="scaleToFill" id="xVK-hL-6pe" userLabel="remoteProvisionningView">
<view contentMode="scaleToFill" id="Zuh-Sd-pcd" userLabel="remoteProvisionningView">
<rect key="frame" x="0.0" y="0.0" width="375" height="562"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="REMOTE PROVISIONNING" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="dpv-8C-qt6" userLabel="titleLabel">
<rect key="frame" x="36" y="34" width="302" height="59"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
<accessibility key="accessibilityConfiguration" label="Account setup assistant"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
<size key="shadowOffset" width="-1" height="-1"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Please enter your provisionning URL" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" minimumFontSize="10" id="hEy-Xe-afq" userLabel="subtitleLabel">
<rect key="frame" x="36" y="100" width="302" height="29"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
<accessibility key="accessibilityConfiguration" label="Account setup assistant"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
<size key="shadowOffset" width="-1" height="-1"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" tag="106" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="URL" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="0tr-gN-2Ce" userLabel="urlLabel">
<rect key="frame" x="38" y="165" width="299" height="14"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" red="0.50196078430000002" green="0.50196078430000002" blue="0.50196078430000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" tag="107" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" adjustsFontSizeToFit="NO" minimumFontSize="10" id="Ffg-Of-xyh" userLabel="urlField" customClass="UIAssistantTextField">
<rect key="frame" x="38" y="187" width="299" height="30"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" red="0.88235294119999996" green="0.88235294119999996" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<accessibility key="accessibilityConfiguration" label="Username"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="URL"/>
<connections>
<outlet property="delegate" destination="-1" id="8Fl-mE-8Sb"/>
</connections>
</textField>
<button opaque="NO" tag="130" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="eM0-bn-v3C" userLabel="downloadButton" customClass="UIRoundBorderedButton">
<rect key="frame" x="38" y="418" width="299" height="71"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
<accessibility key="accessibilityConfiguration" label="Login linphone.org account">
<bool key="isElement" value="YES"/>
</accessibility>
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="13"/>
<state key="normal" title="DOWNLOAD">
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
</state>
<state key="disabled">
<color key="titleColor" red="0.76862745099999996" green="0.76862745099999996" blue="0.76862745099999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<connections>
<action selector="onRemoteProvisionningDownloadClick:" destination="-1" eventType="touchUpInside" id="P1f-AL-8Xt"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<nil key="simulatedStatusBarMetrics"/>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<point key="canvasLocation" x="209.5" y="1470"/>
</view>
<view contentMode="scaleToFill" id="xVK-hL-6pe" userLabel="remoteProvisionningLoginView">
<rect key="frame" x="0.0" y="0.0" width="375" height="562"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
@ -579,7 +643,7 @@
<outlet property="delegate" destination="-1" id="6Mx-mR-LQx"/>
</connections>
</textField>
<button opaque="NO" tag="130" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="eKs-or-rqw" userLabel="remoteProvisionningButton" customClass="UIRoundBorderedButton">
<button opaque="NO" tag="130" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="eKs-or-rqw" userLabel="remoteProvisionningLoginButton" customClass="UIRoundBorderedButton">
<rect key="frame" x="38" y="418" width="299" height="71"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
<accessibility key="accessibilityConfiguration" label="Login linphone.org account">
@ -593,14 +657,14 @@
<color key="titleColor" red="0.76862745099999996" green="0.76862745099999996" blue="0.76862745099999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<connections>
<action selector="onRemoteProvisionningClick:" destination="-1" eventType="touchUpInside" id="zsx-GM-Pjh"/>
<action selector="onRemoteProvisionningLoginClick:" destination="-1" eventType="touchUpInside" id="11g-KH-emH"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<nil key="simulatedStatusBarMetrics"/>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<point key="canvasLocation" x="1038.5" y="862"/>
<point key="canvasLocation" x="631.5" y="1470"/>
</view>
</objects>
<simulatedMetricsContainer key="defaultSimulatedMetrics">

View file

@ -182,7 +182,7 @@
</subviews>
</view>
<label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="No conversation." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="p7C-WH-uR1" userLabel="emptyTableLabel">
<rect key="frame" x="0.0" y="0.0" width="375" height="453"/>
<rect key="frame" x="0.0" y="33" width="375" height="453"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>

View file

@ -29,14 +29,6 @@
- (void)viewDidLoad {
_sideMenuEntries = [[NSMutableArray alloc] init];
[_sideMenuEntries
addObject:[[SideMenuEntry alloc] initWithTitle:NSLocalizedString(@"Settings", nil)
tapBlock:^() {
[PhoneMainView.instance
changeCurrentView:SettingsView.compositeViewDescription
push:NO
animated:NO];
}]];
[_sideMenuEntries
addObject:[[SideMenuEntry alloc] initWithTitle:NSLocalizedString(@"Assistant", nil)
tapBlock:^() {
@ -45,6 +37,14 @@
push:NO
animated:NO];
}]];
[_sideMenuEntries
addObject:[[SideMenuEntry alloc] initWithTitle:NSLocalizedString(@"Settings", nil)
tapBlock:^() {
[PhoneMainView.instance
changeCurrentView:SettingsView.compositeViewDescription
push:NO
animated:NO];
}]];
[_sideMenuEntries addObject:[[SideMenuEntry alloc] initWithTitle:NSLocalizedString(@"About", nil)
tapBlock:^() {
[PhoneMainView.instance