partial void OnContinue(MonoMac.Foundation.NSObject sender) {
ServerCredentials credentials = new ServerCredentials() {
UserName = UserText.StringValue,
Password = PasswordText.StringValue,
Address = new Uri(AddressText.StringValue),
Binding = (this.Controller.saved_binding == null) ? ServerCredentials.BindingBrowser : this.Controller.saved_binding
};
WarnText.StringValue = string.Empty;
AddressText.Enabled = false;
UserText.Enabled = false;
PasswordText.Enabled = false;
ContinueButton.Enabled = false;
CancelButton.Enabled = false;
// monomac bug: animation GUI effect will cause GUI to hang, when backend thread is busy
// LoginProgress.StartAnimation(this);
Thread check = new Thread(() => {
var result = SetupController.GetRepositories(credentials);
if (result.Repositories != null) {
this.Controller.repositories = result.Repositories.WithoutHiddenOnce();
} else {
this.Controller.repositories = null;
}
InvokeOnMainThread(delegate {
if (this.Controller.repositories == null) {
AddressText.StringValue = result.Credentials.Address.ToString();
WarnText.StringValue = this.Controller.GetConnectionsProblemWarning(result.FailedException);
AddressText.Enabled = true;
UserText.Enabled = true;
PasswordText.Enabled = true;
ContinueButton.Enabled = true;
CancelButton.Enabled = true;
} else {
RemoveEvent();
Controller.Add1PageCompleted(result.Credentials.Address, result.Credentials.Binding, credentials.UserName, credentials.Password.ToString());
}
LoginProgress.StopAnimation(this);
});
});
check.Start();
}