예제 #1
0
 protected override async void OnResume()
 {
     base.OnResume();
     if (ClientId != "" && ClientSercret != "")
     {
         var token = TokenShared.GetAccessToken(this);
         if (token.access_token == "" || token.RefreshTime.AddSeconds(token.expires_in) < DateTime.Now)
         {
             var basic = Square.OkHttp3.Credentials.Basic(Resources.GetString(Resource.String.ClientId), Resources.GetString(Resource.String.ClientSercret));
             splashPresenter.GetAccessToken(TokenShared.GetAccessToken(this), basic);
         }
         else
         {
             var user = UserShared.GetAccessToken(this);
             if (user.access_token != "" && user.RefreshTime.AddSeconds(user.expires_in) < DateTime.Now)
             {
                 Toast.MakeText(this, Resources.GetString(Resource.String.access_token_out_of_date), ToastLength.Long).Show();
             }
             if (user.access_token == "" || user.RefreshTime.AddSeconds(user.expires_in) < DateTime.Now)
             {
                 UserShared.Update(this, new AccessToken());
                 await SQLiteUtils.Instance().DeleteUserAll();
             }
             StartMain();
         }
     }
 }
예제 #2
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetTheme(Resource.Style.AppTheme);
            splashPresenter = new SplashPresenter(this, this);
            var ClientId      = Resources.GetString(Resource.String.ClientId);
            var ClientSercret = Resources.GetString(Resource.String.ClientSercret);

            if (ClientId == "" || ClientSercret == "")
            {
                Toast.MakeText(this, Resources.GetString(Resource.String.client_error), ToastLength.Long).Show();
            }
            else
            {
                var basic = Square.OkHttp3.Credentials.Basic(Resources.GetString(Resource.String.ClientId), Resources.GetString(Resource.String.ClientSercret));
                splashPresenter.GetAccessToken(TokenShared.GetAccessToken(this), basic);

                var user = UserShared.GetAccessToken(this);
                if (user.refresh_token != "")
                {
                    splashPresenter.UserRefreshToken(user, basic);
                }
            }
            RunOnUiThread(() =>
            {
                new Handler().PostDelayed(() =>
                {
                    MainActivity.Start(this);
                    ActivityCompat.FinishAfterTransition(this);
                }, 1000);
            });
        }
예제 #3
0
        public void GetAccessToken(AccessToken token, string basic)
        {
            try
            {
                var param = new List <OkHttpUtils.Param>()
                {
                    new OkHttpUtils.Param("grant_type", "client_credentials")
                };
                OkHttpUtils.Instance(token).Post(ApiUtils.Token, basic, param, async(call, response) =>
                {
                    var code = response.Code();
                    var body = await response.Body().StringAsync();
                    if (code == (int)System.Net.HttpStatusCode.OK)
                    {
                        token             = JsonConvert.DeserializeObject <AccessToken>(body);
                        token.RefreshTime = DateTime.Now;

                        TokenShared.Update(context, token);
                    }
                    else
                    {
                        TokenShared.Update(context, new AccessToken());
                    }
                }, (call, ex) =>
                {
                });
            }
            catch (Exception ex)
            {
            }
        }
예제 #4
0
 public async void OnRefresh()
 {
     if (pageIndex > 1)
     {
         pageIndex = 1;
     }
     await commentPresenter.GetComment(TokenShared.GetAccessToken(this), blogApp, Id, pageIndex);
 }
예제 #5
0
 public async void OnRefresh()
 {
     if (pageIndex > 1)
     {
         pageIndex = 1;
     }
     await answersPresenter.GetAnswers(TokenShared.GetAccessToken(this), Id, pageIndex);
 }
예제 #6
0
 public async void OnRefresh()
 {
     if (pageIndex > 1)
     {
         pageIndex = 1;
     }
     swipeRefreshLayout.Refreshing = true;
     await newsPresenter.GetServiceNews(TokenShared.GetAccessToken(this.Activity), position, pageIndex);
 }
예제 #7
0
        public async void OnRefresh()
        {
            swipeRefreshLayout.Refreshing = true;
            //ÊÇ·ñµÇ¼
            var user = UserShared.GetAccessToken(this);

            if (user.access_token != "" && user.RefreshTime.AddSeconds(user.expires_in) > DateTime.Now)
            {
                await statusPresenter.GetServiceStatus(user, Id);
            }
            await commentPresenter.GetServiceComments(TokenShared.GetAccessToken(this), Id);
        }
예제 #8
0
        public void OnLogin(string code)
        {
            dialog.Show();

            var cientId       = Resources.GetString(Resource.String.ClientId);
            var clientSercret = Resources.GetString(Resource.String.ClientSercret);
            var grant_type    = "authorization_code";
            var redirect_uri  = "https://oauth.cnblogs.com/auth/callback";

            var content = string.Format("client_id={0}&client_secret={1}&grant_type={2}&redirect_uri={3}&code={4}", cientId, clientSercret, grant_type, redirect_uri, code);

            loginPresenter.Login(TokenShared.GetAccessToken(this), content);
        }
예제 #9
0
        public async void OnRefresh()
        {
            if (lastKeyWords != "")
            {
                if (pageIndex > 1)
                {
                    pageIndex = 1;
                }
                swipeRefreshLayout.Refreshing = true;
                swipeRefreshLayout.Enabled    = true;

                await searchPresenter.Search(TokenShared.GetAccessToken(this.Activity), position, lastKeyWords, pageIndex);
            }
        }
예제 #10
0
        public void OnClick(View v)
        {
            switch (v.Id)
            {
            case Resource.Id.login:
                var account  = editAccount.Text;
                var password = editPassword.Text;
                if (account.Trim() == "")
                {
                    Toast.MakeText(this, Resources.GetString(Resource.String.need_account), ToastLength.Short).Show();
                    return;
                }
                if (password.Trim() == "")
                {
                    Toast.MakeText(this, Resources.GetString(Resource.String.need_password), ToastLength.Short).Show();
                    return;
                }
                //var publicKey = Resources.GetString(Resource.String.PublicKey);
                var publicKey = "";
                if (publicKey == "")
                {
                    Toast.MakeText(this, Resources.GetString(Resource.String.publicKey_error), ToastLength.Short).Show();
                    return;
                }
                RSAUtils rsaUtils = new RSAUtils(publicKey);
                dialog.SetMessage(Resources.GetString(Resource.String.logining));
                dialog.Show();

                var basic = Square.OkHttp3.Credentials.Basic(Resources.GetString(Resource.String.ClientId), Resources.GetString(Resource.String.ClientSercret));

                loginPresenter.LoginAsync(TokenShared.GetAccessToken(this), basic, rsaUtils.Encrypt(account), rsaUtils.Encrypt(password));
                break;

            default:
                InputMethodManager imm = (InputMethodManager)GetSystemService(Context.InputMethodService);
                imm.HideSoftInputFromWindow(editPassword.WindowToken, 0);
                SetResult(Result.Canceled);
                ActivityCompat.FinishAfterTransition(this);
                break;
            }
        }
예제 #11
0
 public async void OnLoadMoreRequested()
 {
     swipeRefreshLayout.Enabled = false;
     await commentPresenter.GetComment(TokenShared.GetAccessToken(this), blogApp, Id, pageIndex);
 }
 public async void OnRefresh()
 {
     swipeRefreshLayout.Refreshing = true;
     await commentPresenter.GetServiceComments(TokenShared.GetAccessToken(this), AnswerId);
 }
예제 #13
0
 public async void OnLoadMoreRequested()
 {
     swipeRefreshLayout.Enabled = false;
     await searchPresenter.Search(TokenShared.GetAccessToken(this.Activity), position, lastKeyWords, pageIndex);
 }
예제 #14
0
 public async void OnRefresh()
 {
     swipeRefreshLayout.Refreshing = true;
     await questionPresenter.GetServiceQuestion(TokenShared.GetAccessToken(this), Id);
 }
예제 #15
0
 public async void OnLoadMoreRequested()
 {
     await articlesPresenter.GetServiceKbArticles(TokenShared.GetAccessToken(this.Activity), pageIndex);
 }
예제 #16
0
 public async void OnLoadMoreRequested()
 {
     swipeRefreshLayout.Enabled = false;
     await newsPresenter.GetServiceNews(TokenShared.GetAccessToken(this.Activity), position, pageIndex);
 }
예제 #17
0
        public async void GetServiceData()
        {
            if (pageIndex > 1)
            {
                pageIndex = 1;
            }
            swipeRefreshLayout.Refreshing = true;

            await statusesPresenter.GetServiceStatus(position > 0?UserShared.GetAccessToken(this.Activity) : TokenShared.GetAccessToken(this.Activity), position, pageIndex);
        }
예제 #18
0
 public async void OnRefresh()
 {
     swipeRefreshLayout.Refreshing = true;
     await kbarticlePresenter.GetServiceKbArticle(TokenShared.GetAccessToken(this), Id);
 }
예제 #19
0
 public async void OnLoadMoreRequested()
 {
     swipeRefreshLayout.Enabled = false;
     await statusesPresenter.GetServiceStatus(position > 0?UserShared.GetAccessToken(this.Activity) : TokenShared.GetAccessToken(this.Activity), position, pageIndex);
 }
예제 #20
0
 public void GetAccessTokenSuccess(AccessToken token)
 {
     TokenShared.Update(this, token);
     StartMain();
 }
예제 #21
0
 public async void OnLoadMoreRequested()
 {
     swipeRefreshLayout.Enabled = false;
     await answersPresenter.GetAnswers(TokenShared.GetAccessToken(this), Id, pageIndex);
 }