Esempio n. 1
0
        public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options)
        {
            if (Uri.TryCreate(url.AbsoluteString, UriKind.Absolute, out var uri) && uri.Scheme.Equals("pawotter") && uri.Host.Equals("app"))
            {
                switch (uri.AbsolutePath)
                {
                case string authorize when Regex.IsMatch(authorize, @"^/authorize?.+"):
                    var refreshToken = MastodonOAuthClient.GetRefreshTokenFromRedirectUri(new Uri(url.AbsoluteString));

                    Logger.Shared.Debug($"Application.OpenUrl: AUTHORIZE (code = {refreshToken})");
                    NSNotificationCenter.DefaultCenter.PostNotificationName(WebViewController.CloseSafariViewControllerNotification, url);
                    break;

                case string home when Regex.IsMatch(home, @"^/home"):
                    Logger.Shared.Debug($"Application.OpenUrl: HOME");

                    break;

                default:
                    Logger.Shared.Debug($"Application.OpenUrl: {uri}");
                    break;
                }
                return(true);
            }
            Logger.Shared.Debug($"Application.OpenUrl: INVALID (uri = {uri})");
            return(false);
        }
Esempio n. 2
0
 public void GetOAuthAuthorizeUriTest(string uri, string code)
 {
     Assert.AreEqual(code, MastodonOAuthClient.GetRefreshTokenFromRedirectUri(new Uri(uri)));
 }