|
Packit |
1fb8d4 |
/*
|
|
Packit |
1fb8d4 |
Credentials input controller
|
|
Packit Service |
5a9772 |
|
|
Packit |
1fb8d4 |
Copyright 2013 Thincast Technologies GmbH, Author: Martin Fleisz
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
Packit Service |
5a9772 |
If a copy of the MPL was not distributed with this file, You can obtain one at
|
|
Packit Service |
5a9772 |
http://mozilla.org/MPL/2.0/.
|
|
Packit |
1fb8d4 |
*/
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#import "CredentialsInputController.h"
|
|
Packit |
1fb8d4 |
#import "RDPSession.h"
|
|
Packit |
1fb8d4 |
#import "Utils.h"
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
@implementation CredentialsInputController
|
|
Packit |
1fb8d4 |
|
|
Packit Service |
5a9772 |
- (id)initWithNibName:(NSString *)nibNameOrNil
|
|
Packit Service |
5a9772 |
bundle:(NSBundle *)nibBundleOrNil
|
|
Packit Service |
5a9772 |
session:(RDPSession *)session
|
|
Packit Service |
5a9772 |
params:(NSMutableDictionary *)params
|
|
Packit |
1fb8d4 |
{
|
|
Packit Service |
5a9772 |
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
|
|
Packit Service |
5a9772 |
if (self)
|
|
Packit Service |
5a9772 |
{
|
|
Packit Service |
5a9772 |
_session = session;
|
|
Packit Service |
5a9772 |
_params = params;
|
|
Packit Service |
5a9772 |
[self setModalPresentationStyle:UIModalPresentationFormSheet];
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
// on iphone we have the problem that the buttons are hidden by the keyboard
|
|
Packit Service |
5a9772 |
// we solve this issue by registering keyboard notification handlers and adjusting the
|
|
Packit Service |
5a9772 |
// scrollview accordingly
|
|
Packit Service |
5a9772 |
if (IsPhone())
|
|
Packit Service |
5a9772 |
{
|
|
Packit Service |
5a9772 |
[[NSNotificationCenter defaultCenter] addObserver:self
|
|
Packit Service |
5a9772 |
selector:@selector(keyboardWillShow:)
|
|
Packit Service |
5a9772 |
name:UIKeyboardWillShowNotification
|
|
Packit Service |
5a9772 |
object:nil];
|
|
Packit Service |
5a9772 |
[[NSNotificationCenter defaultCenter] addObserver:self
|
|
Packit Service |
5a9772 |
selector:@selector(keyboardWillHide:)
|
|
Packit Service |
5a9772 |
name:UIKeyboardWillHideNotification
|
|
Packit Service |
5a9772 |
object:nil];
|
|
Packit Service |
5a9772 |
}
|
|
Packit Service |
5a9772 |
}
|
|
Packit Service |
5a9772 |
return self;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
- (void)viewDidLoad
|
|
Packit |
1fb8d4 |
{
|
|
Packit Service |
5a9772 |
[super viewDidLoad];
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
// set localized strings
|
|
Packit Service |
5a9772 |
[_lbl_message
|
|
Packit Service |
5a9772 |
setText:NSLocalizedString(
|
|
Packit Service |
5a9772 |
@"Please provide the missing user information in order to proceed and login.",
|
|
Packit Service |
5a9772 |
@"Credentials input view message")];
|
|
Packit Service |
5a9772 |
[_textfield_username
|
|
Packit Service |
5a9772 |
setPlaceholder:NSLocalizedString(@"Username", @"Credentials Input Username hint")];
|
|
Packit Service |
5a9772 |
[_textfield_password
|
|
Packit Service |
5a9772 |
setPlaceholder:NSLocalizedString(@"Password", @"Credentials Input Password hint")];
|
|
Packit Service |
5a9772 |
[_textfield_domain
|
|
Packit Service |
5a9772 |
setPlaceholder:NSLocalizedString(@"Domain", @"Credentials Input Domain hint")];
|
|
Packit Service |
5a9772 |
[_btn_login setTitle:NSLocalizedString(@"Login", @"Login Button")
|
|
Packit Service |
5a9772 |
forState:UIControlStateNormal];
|
|
Packit Service |
5a9772 |
[_btn_cancel setTitle:NSLocalizedString(@"Cancel", @"Cancel Button")
|
|
Packit Service |
5a9772 |
forState:UIControlStateNormal];
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
// init scrollview content size
|
|
Packit Service |
5a9772 |
[_scroll_view setContentSize:[_scroll_view frame].size];
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
// set params in the view
|
|
Packit Service |
5a9772 |
[_textfield_username setText:[_params valueForKey:@"username"]];
|
|
Packit Service |
5a9772 |
[_textfield_password setText:[_params valueForKey:@"password"]];
|
|
Packit Service |
5a9772 |
[_textfield_domain setText:[_params valueForKey:@"domain"]];
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
- (void)viewDidUnload
|
|
Packit |
1fb8d4 |
{
|
|
Packit Service |
5a9772 |
[super viewDidUnload];
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
- (void)viewDidDisappear:(BOOL)animated
|
|
Packit |
1fb8d4 |
{
|
|
Packit Service |
5a9772 |
[super viewDidDisappear:animated];
|
|
Packit Service |
5a9772 |
// set signal
|
|
Packit Service |
5a9772 |
[[_session uiRequestCompleted] signal];
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
|
|
Packit |
1fb8d4 |
{
|
|
Packit Service |
5a9772 |
return YES;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
- (void)dealloc
|
|
Packit |
1fb8d4 |
{
|
|
Packit Service |
5a9772 |
[super dealloc];
|
|
Packit Service |
5a9772 |
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#pragma mark -
|
|
Packit |
1fb8d4 |
#pragma mark iOS Keyboard Notification Handlers
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
- (void)keyboardWillShow:(NSNotification *)notification
|
|
Packit Service |
5a9772 |
{
|
|
Packit Service |
5a9772 |
CGRect keyboardEndFrame =
|
|
Packit Service |
5a9772 |
[[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
|
|
Packit Service |
5a9772 |
CGRect keyboardFrame = [[self view] convertRect:keyboardEndFrame toView:nil];
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
[UIView beginAnimations:nil context:NULL];
|
|
Packit Service |
5a9772 |
[UIView setAnimationCurve:[[[notification userInfo]
|
|
Packit Service |
5a9772 |
objectForKey:UIKeyboardAnimationCurveUserInfoKey] intValue]];
|
|
Packit Service |
5a9772 |
[UIView
|
|
Packit Service |
5a9772 |
setAnimationDuration:[[[notification userInfo]
|
|
Packit Service |
5a9772 |
objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]];
|
|
Packit |
1fb8d4 |
CGRect frame = [_scroll_view frame];
|
|
Packit Service |
5a9772 |
frame.size.height -= keyboardFrame.size.height;
|
|
Packit |
1fb8d4 |
[_scroll_view setFrame:frame];
|
|
Packit Service |
5a9772 |
[UIView commitAnimations];
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
- (void)keyboardWillHide:(NSNotification *)notification
|
|
Packit |
1fb8d4 |
{
|
|
Packit Service |
5a9772 |
CGRect keyboardEndFrame =
|
|
Packit Service |
5a9772 |
[[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
|
|
Packit Service |
5a9772 |
CGRect keyboardFrame = [[self view] convertRect:keyboardEndFrame toView:nil];
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
[UIView beginAnimations:nil context:NULL];
|
|
Packit Service |
5a9772 |
[UIView setAnimationCurve:[[[notification userInfo]
|
|
Packit Service |
5a9772 |
objectForKey:UIKeyboardAnimationCurveUserInfoKey] intValue]];
|
|
Packit Service |
5a9772 |
[UIView
|
|
Packit Service |
5a9772 |
setAnimationDuration:[[[notification userInfo]
|
|
Packit Service |
5a9772 |
objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]];
|
|
Packit |
1fb8d4 |
CGRect frame = [_scroll_view frame];
|
|
Packit Service |
5a9772 |
frame.size.height += keyboardFrame.size.height;
|
|
Packit |
1fb8d4 |
[_scroll_view setFrame:frame];
|
|
Packit Service |
5a9772 |
[UIView commitAnimations];
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#pragma mark - Action handlers
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
- (IBAction)loginPressed:(id)sender
|
|
Packit |
1fb8d4 |
{
|
|
Packit Service |
5a9772 |
// read input back in
|
|
Packit Service |
5a9772 |
[_params setValue:[_textfield_username text] forKey:@"username"];
|
|
Packit Service |
5a9772 |
[_params setValue:[_textfield_password text] forKey:@"password"];
|
|
Packit Service |
5a9772 |
[_params setValue:[_textfield_domain text] forKey:@"domain"];
|
|
Packit Service |
5a9772 |
[_params setValue:[NSNumber numberWithBool:YES] forKey:@"result"];
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
// dismiss controller
|
|
Packit Service |
5a9772 |
[self dismissModalViewControllerAnimated:YES];
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
- (IBAction)cancelPressed:(id)sender
|
|
Packit |
1fb8d4 |
{
|
|
Packit Service |
5a9772 |
[_params setValue:[NSNumber numberWithBool:NO] forKey:@"result"];
|
|
Packit Service |
5a9772 |
|
|
Packit Service |
5a9772 |
// dismiss controller
|
|
Packit Service |
5a9772 |
[self dismissModalViewControllerAnimated:YES];
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
@end
|