internal static void HideIfPurposeIs(MsaAuthPurpose purpose) { if (lastDialogPurpose == purpose) { Hide(); } }
internal static async Task <MsaAuthResult> ShowAsync(Context context, MsaAuthPurpose purpose, string oauthUrl) { authenticateTcs = new TaskCompletionSource <MsaAuthResult>(); lastDialogPurpose = purpose; authDialog = new Dialog(context, Android.Resource.Style.ThemeLightNoTitleBarFullScreen); authDialog.CancelEvent += (ss, ee) => { authenticateTcs.TrySetResult(MsaAuthResult.CancelledByUser); }; var linearLayout = new LinearLayout(authDialog.Context); webView = new WebView(authDialog.Context); linearLayout.AddView(webView); authDialog.SetContentView(linearLayout); webView.SetWebChromeClient(new WebChromeClient()); webView.Settings.JavaScriptEnabled = true; webView.Settings.DomStorageEnabled = true; webView.LoadUrl(oauthUrl); webView.SetWebViewClient(new MsaWebViewClient(context, purpose)); authDialog.Show(); authDialog.SetCancelable(true); return(await authenticateTcs.Task); }
internal static async Task <MsaAuthResult> ShowAsync(Context context, MsaAuthPurpose purpose) { if (purpose == MsaAuthPurpose.App) { string url = "https://login.live.com/oauth20_authorize.srf?redirect_uri=https://login.live.com/oauth20_desktop.srf&response_type=code&client_id=" + Config.Secrets.ClientId2 + "&scope=User.Read+wl.offline_access"; return(await ShowAsync(context, purpose, url)); } else { throw new InvalidOperationException("AuthenticateDialog.Show() can't determine url"); } }
internal static async Task <MsaAuthResult> ShowAsync(Context context, MsaAuthPurpose purpose) { if (purpose == MsaAuthPurpose.App) { string url = $"{Constants.ServerAddress}/v3/Authenticate/Graph"; lastDialogPurpose = purpose; return(await ShowAsync(context, purpose, url)); } else { throw new InvalidOperationException("AuthenticateDialog.Show() can't determine url"); } }
public MsaWebViewClient(Context _context, MsaAuthPurpose _purpose) { purpose = _purpose; context = _context; }