void InitAK(AKFResponseType responseType, bool forced = false) { if (accountKit == null || forced) { accountKit = new AKFAccountKit(responseType); } }
public Task <IAKFAccount> GetCurrentAccount(AKFResponseType responseType) { var taskCompletionSource = new TaskCompletionSource <IAKFAccount>(); InitAK(responseType); Task.Delay(100).ContinueWith(delegate { accountKit.RequestAccount((obj, error) => { if (error != null) { taskCompletionSource.SetException(new NSErrorException(error)); return; } var account = obj as IAKFAccount; if (obj == null) { return; } taskCompletionSource.SetResult(account); }); }); return(taskCompletionSource.Task); }
public Task <string> LoginWithAccountKit(AKFLoginType type, AKFResponseType responseType) { InitAK(responseType); loginTaskCompletionSource?.TrySetCanceled(); loginTaskCompletionSource = new TaskCompletionSource <string>(); pendingLoginViewController = type == AKFLoginType.Phone ? accountKit.ViewControllerForPhoneLogin() : accountKit.ViewControllerForEmailLogin(); var loginViewController = (pendingLoginViewController as IAKFViewController); if (loginViewController != null) { loginViewController.WeakDelegate = this; loginViewController.EnableSendToFacebook = true; } NSOperationQueue.MainQueue.BeginInvokeOnMainThread(() => { var vcInContext = GetTopMostController(); vcInContext.PresentViewController(pendingLoginViewController, true, null); }); return(loginTaskCompletionSource.Task); }
public Task <IAKFAccount> GetCurrentAccount(AKFResponseType responseType) { var taskCompletionSource = new TaskCompletionSource <IAKFAccount>(); InitAK(responseType); accountKit.RequestAccount((obj, error) => { if (error != null) { taskCompletionSource.SetResult(null); return; } var account = obj as IAKFAccount; taskCompletionSource.SetResult(account); }); return(taskCompletionSource.Task); }