Пример #1
0
        public async void OnDelete(int id)
        {
            //是否登录
            var user = UserShared.GetAccessToken(this.Activity);

            if (user.access_token == "" || user.RefreshTime.AddSeconds(user.expires_in) < DateTime.Now)
            {
                //未登录或清空Token失效
                //清空Token
                UserShared.Update(this.Activity, new AccessToken());
                await SQLiteUtils.Instance().DeleteUserAll();

                Android.Support.V7.App.AlertDialog.Builder dialog = new Android.Support.V7.App.AlertDialog.Builder(this.Activity);
                dialog.SetMessage(Resources.GetString(Resource.String.need_login_tip));
                dialog.SetPositiveButton(Resources.GetString(Resource.String.confirm), delegate
                {
                    StartActivityForResult(new Intent(this.Activity, typeof(AuthorizeActivity)), (int)RequestCode.LoginCode);
                    dialog.Dispose();
                });
                dialog.SetNegativeButton(Resources.GetString(Resource.String.cancel), delegate
                {
                    dialog.Dispose();
                });
                dialog.Create().Show();
            }
            else
            {
                var item  = adapter.GetData().Where(a => a.Id == id).FirstOrDefault();
                var child = recyclerView.FindViewWithTag(item.Id);
                child.FindViewById(Resource.Id.imgDelete).Visibility   = ViewStates.Gone;
                child.FindViewById(Resource.Id.progressBar).Visibility = ViewStates.Visible;
                statusesPresenter.DeleteStatus(user, item.Id);
            }
        }
Пример #2
0
        public bool OnMenuItemClick(IMenuItem item)
        {
            //是否登录
            var user = UserShared.GetAccessToken(this);

            if (user.access_token == "" || user.RefreshTime.AddSeconds(user.expires_in) < DateTime.Now)
            {
                ShowLogin();
            }
            else
            {
                switch (lastSelecteID)
                {
                case Resource.Id.Statuses:
                    StartActivityForResult(new Intent(this, typeof(StatusAddActivity)), (int)RequestCode.StatusAddCode);
                    break;

                case Resource.Id.Question:
                    StartActivityForResult(new Intent(this, typeof(QuestionAddActivity)), (int)RequestCode.QuestionAddCode);
                    break;

                case Resource.Id.bookmarks:
                    StartActivityForResult(new Intent(this, typeof(BookmarkAddActivity)), (int)RequestCode.BookmarkAddCode);
                    break;
                }
            }
            return(true);
        }
        public void PostComment()
        {
            //ÊÇ·ñµÇ¼
            var user = UserShared.GetAccessToken(this);

            if (user.access_token == "" || user.RefreshTime.AddSeconds(user.expires_in) < DateTime.Now)
            {
                ShowLogin();
            }
            else
            {
                var content = txtContent.Text;
                if (content.Length == 0)
                {
                    Toast.MakeText(this, Resources.GetString(Resource.String.comment_tip), ToastLength.Short).Show();
                }
                else if (content.Length < 4)
                {
                    Toast.MakeText(this, Resources.GetString(Resource.String.comment_tip2), ToastLength.Short).Show();
                }
                else
                {
                    txtContent.Enabled    = false;
                    proLoading.Visibility = ViewStates.Visible;
                    btnComment.Visibility = ViewStates.Gone;
                    commentPresenter.PostComment(user, QuestionId, AnswerId, content);
                }
            }
        }
Пример #4
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();
         }
     }
 }
Пример #5
0
 public async void OnClick(View v)
 {
     switch (v.Id)
     {
         case Resource.Id.headerAvatar:
             var token = UserShared.GetAccessToken(this);
             var user = await SQLiteUtils.Instance().QueryUser();
             if (user == null || token == null || token.access_token == "")
             {
                 StartActivityForResult(new Intent(this, typeof(AuthorizeActivity)), (int)RequestCode.LoginCode);
             }
             else
             {
                 if (string.IsNullOrEmpty(user.BlogApp))
                 {
                     Toast.MakeText(this, "未开通博客", ToastLength.Short).Show();
                 }
                 else
                 {
                     BlogActivity.Start(this, user.BlogApp);
                 }
             }
             break;
     }
 }
Пример #6
0
        public async void PostBookmark()
        {
            //是否登录
            var user = UserShared.GetAccessToken(this);

            if (user.access_token == "" || user.RefreshTime.AddSeconds(user.expires_in) < DateTime.Now)
            {
                //未登录或清空Token失效
                //清空Token
                UserShared.Update(this, new AccessToken());
                await SQLiteUtils.Instance().DeleteUserAll();

                Android.Support.V7.App.AlertDialog.Builder dialog = new Android.Support.V7.App.AlertDialog.Builder(this);
                dialog.SetMessage(Resources.GetString(Resource.String.need_login_tip));
                dialog.SetPositiveButton(Resources.GetString(Resource.String.confirm), delegate
                {
                    StartActivityForResult(new Intent(this, typeof(LoginActivity)), (int)RequestCode.LoginCode);
                    dialog.Dispose();
                });
                dialog.SetNegativeButton(Resources.GetString(Resource.String.cancel), delegate
                {
                    dialog.Dispose();
                });
                dialog.Create().Show();
            }
            else
            {
                var linkurl = txtLinkUrl.Text;
                var title   = txtTitle.Text;
                var tags    = txtTags.Text;
                var content = txtContent.Text;
                if (linkurl.Length == 0)
                {
                    Toast.MakeText(this, "请输入网址", ToastLength.Short).Show();
                }
                else if (linkurl.Length < 3)
                {
                    Toast.MakeText(this, "网址的内容太少了,至少3个字吧", ToastLength.Short).Show();
                }
                else if (title.Length == 0)
                {
                    Toast.MakeText(this, "请输入标题", ToastLength.Short).Show();
                }
                else if (title.Length < 3)
                {
                    Toast.MakeText(this, "标题的内容太少了,至少3个字吧", ToastLength.Short).Show();
                }
                else
                {
                    dialog.SetMessage(Resources.GetString(Resource.String.addstatusing));
                    dialog.Show();

                    bookmark.LinkUrl = linkurl;
                    bookmark.Summary = content;
                    bookmark.Tags    = tags.Split(',').ToList();
                    bookmark.Title   = title;
                    bookmarkPresenter.BookmarkAdd(user, bookmark);
                }
            }
        }
Пример #7
0
        public void UserRefreshToken(AccessToken token, string basic)
        {
            try
            {
                var param = new List <OkHttpUtils.Param>()
                {
                    new OkHttpUtils.Param("grant_type", "refresh_token"),
                    new OkHttpUtils.Param("refresh_token", token.refresh_token)
                };

                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;

                        UserShared.Update(context, token);
                    }
                    else
                    {
                        UserShared.Update(context, new AccessToken());
                    }
                }, (call, ex) =>
                {
                });
            }
            catch (Exception ex)
            {
            }
        }
Пример #8
0
        public async void OnLoadMoreRequested()
        {
            swipeRefreshLayout.Enabled = false;
            await blogPresenter.GetServiceBlog(UserShared.GetAccessToken(this), blogApp);

            await blogPresenter.GetServiceBlogPosts(UserShared.GetAccessToken(this), blogApp, pageIndex);
        }
Пример #9
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);
            });
        }
Пример #10
0
 public void CheckAnswersUserSuccess()
 {
     handler.Post(() =>
     {
         var content = txtContent.Text;
         answersPresenter.AnswersAdd(UserShared.GetAccessToken(this), questionId, content);
     });
 }
Пример #11
0
 public async void GetServiceData()
 {
     if (pageIndex > 1)
     {
         pageIndex = 1;
     }
     swipeRefreshLayout.Refreshing = true;
     await bookmarksPresenter.GetServiceBookmarks(UserShared.GetAccessToken(this.Activity), pageIndex);
 }
Пример #12
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);
        }
Пример #13
0
        public async void PostQuestion()
        {
            //是否登录
            var user = UserShared.GetAccessToken(this);

            if (user.access_token == "" || user.RefreshTime.AddSeconds(user.expires_in) < DateTime.Now)
            {
                //未登录或清空Token失效
                //清空Token
                UserShared.Update(this, new AccessToken());
                await SQLiteUtils.Instance().DeleteUserAll();

                Android.Support.V7.App.AlertDialog.Builder dialog = new Android.Support.V7.App.AlertDialog.Builder(this);
                dialog.SetMessage(Resources.GetString(Resource.String.need_login_tip));
                dialog.SetPositiveButton(Resources.GetString(Resource.String.confirm), delegate
                {
                    StartActivityForResult(new Intent(this, typeof(AuthorizeActivity)), (int)RequestCode.LoginCode);
                    dialog.Dispose();
                });
                dialog.SetNegativeButton(Resources.GetString(Resource.String.cancel), delegate
                {
                    dialog.Dispose();
                });
                dialog.Create().Show();
            }
            else
            {
                var title   = txtTitle.Text;
                var tags    = txtTags.Text;
                var content = txtContent.Text;
                if (title.Length == 0)
                {
                    Toast.MakeText(this, "请输入标题", ToastLength.Short).Show();
                }
                else if (title.Length < 3)
                {
                    Toast.MakeText(this, "标题的内容太少了,至少3个字吧", ToastLength.Short).Show();
                }
                else if (content.Length == 0)
                {
                    Toast.MakeText(this, "请输入提问内容", ToastLength.Short).Show();
                }
                else if (content.Length < 3)
                {
                    Toast.MakeText(this, "提问内容太少了,至少3个字吧", ToastLength.Short).Show();
                }
                else
                {
                    dialog.SetMessage(Resources.GetString(Resource.String.addstatusing));
                    dialog.Show();
                    questionPresenter.QuestionAdd(user, title, content, tags, 1);
                }
            }
        }
Пример #14
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);
        }
Пример #15
0
        public async void OnRefresh()
        {
            if (pageIndex > 1)
            {
                pageIndex = 1;
            }
            swipeRefreshLayout.Refreshing = true;

            await blogPresenter.GetServiceBlog(UserShared.GetAccessToken(this), blogApp);

            await blogPresenter.GetServiceBlogPosts(UserShared.GetAccessToken(this), blogApp, pageIndex);
        }
Пример #16
0
        /// <summary>
        /// 获取登录状态
        /// </summary>
        /// <returns></returns>
        public bool GetLoginStatus()
        {
            //判断是否登录失效
            var user = UserShared.GetAccessToken(context);

            if (user.access_token == "" || user.RefreshTime.AddSeconds(user.expires_in) < DateTime.Now)
            {
                DeleteUser();
                loginStatus = false;
            }
            else
            {
                loginStatus = true;
            }
            return(loginStatus);
        }
Пример #17
0
        public bool OnMenuItemClick(IMenuItem item)
        {
            //ÊÇ·ñµÇ¼
            var user = UserShared.GetAccessToken(this);

            if (user.access_token == "" || user.RefreshTime.AddSeconds(user.expires_in) < DateTime.Now)
            {
                ShowLogin();
            }
            else
            {
                Intent intent = new Intent(this, typeof(QuestionAnswersAddActivity));
                intent.PutExtra("id", Id);
                StartActivityForResult(intent, (int)RequestCode.QuestionAnswersAddCode);
            }
            return(true);
        }
        public void OnDelete(int commentId)
        {
            //ÊÇ·ñµÇ¼
            var user = UserShared.GetAccessToken(this);

            if (user.access_token == "" || user.RefreshTime.AddSeconds(user.expires_in) < DateTime.Now)
            {
                ShowLogin();
            }
            else
            {
                var item  = adapter.GetData().Where(a => a.CommentID == commentId).FirstOrDefault();
                var child = recyclerView.FindViewWithTag(commentId);
                child.FindViewById(Resource.Id.imgDelete).Visibility   = ViewStates.Gone;
                child.FindViewById(Resource.Id.progressBar).Visibility = ViewStates.Visible;
                commentPresenter.DeleteComment(user, QuestionId, AnswerId, item.CommentID);
            }
        }
Пример #19
0
        public void OnEdit(int position)
        {
            //ÊÇ·ñµÇ¼
            var user = UserShared.GetAccessToken(this.Activity);

            if (user.access_token == "" || user.RefreshTime.AddSeconds(user.expires_in) < DateTime.Now)
            {
                ShowLogin();
            }
            else
            {
                var item   = adapter.GetItem(position);
                var intent = new Intent(this.Activity, typeof(BookmarkEditActivity));
                intent.PutExtra("id", item.WzLinkId);
                intent.PutExtra("position", position);
                StartActivityForResult(intent, (int)RequestCode.BookmarkEditCode);
            }
        }
Пример #20
0
        public void OnDelete(int id)
        {
            //ÊÇ·ñµÇ¼
            var user = UserShared.GetAccessToken(this.Activity);

            if (user.access_token == "" || user.RefreshTime.AddSeconds(user.expires_in) < DateTime.Now)
            {
                ShowLogin();
            }
            else
            {
                var item  = adapter.GetData().Where(a => a.WzLinkId == id).FirstOrDefault();
                var child = recyclerView.FindViewWithTag(item.WzLinkId.ToString());
                child.FindViewById(Resource.Id.imgDelete).Visibility   = ViewStates.Gone;
                child.FindViewById(Resource.Id.progressBar).Visibility = ViewStates.Visible;
                bookmarksPresenter.DeleteBookmarkAsync(user, item.WzLinkId);
            }
        }
Пример #21
0
 public async void ShowLogin()
 {
     //未登录或清空Token失效
     //清空Token
     UserShared.Update(this, new AccessToken());
     await SQLiteUtils.Instance().DeleteUserAll();
     Android.Support.V7.App.AlertDialog.Builder dialog = new Android.Support.V7.App.AlertDialog.Builder(this);
     dialog.SetMessage(Resources.GetString(Resource.String.need_login_tip));
     dialog.SetPositiveButton(Resources.GetString(Resource.String.confirm), delegate
     {
         StartActivityForResult(new Intent(this, typeof(AuthorizeActivity)), (int)RequestCode.LoginCode);
         dialog.Dispose();
     });
     dialog.SetNegativeButton(Resources.GetString(Resource.String.cancel), delegate
     {
         dialog.Dispose();
     });
     dialog.Create().Show();
 }
Пример #22
0
        public async void OnClick(View v)
        {
            switch (v.Id)
            {
            case Resource.Id.headerAvatar:
                var token = UserShared.GetAccessToken(this);
                if (token == null || token.access_token == "")
                {
                    StartActivityForResult(new Intent(this, typeof(LoginActivity)), (int)RequestCode.LoginCode);
                }
                else
                {
                    var user = await SQLiteUtils.Instance().QueryUser();

                    BlogActivity.Start(this, user.BlogApp);
                }
                break;
            }
        }
Пример #23
0
        public async void PostComment()
        {
            //ÊÇ·ñµÇ¼
            var user = UserShared.GetAccessToken(this);

            if (user.access_token == "" || user.RefreshTime.AddSeconds(user.expires_in) < DateTime.Now)
            {
                //δµÇ¼»òÇå¿ÕTokenʧЧ
                //Çå¿ÕToken
                UserShared.Update(this, new AccessToken());
                await SQLiteUtils.Instance().DeleteUserAll();

                Android.Support.V7.App.AlertDialog.Builder dialog = new Android.Support.V7.App.AlertDialog.Builder(this);
                dialog.SetMessage(Resources.GetString(Resource.String.need_login_tip));
                dialog.SetPositiveButton(Resources.GetString(Resource.String.confirm), delegate
                {
                    StartActivityForResult(new Intent(this, typeof(LoginActivity)), (int)RequestCode.LoginCode);
                    dialog.Dispose();
                });
                dialog.SetNegativeButton(Resources.GetString(Resource.String.cancel), delegate
                {
                    dialog.Dispose();
                });
                dialog.Create().Show();
            }
            else
            {
                var content = txtContent.Text;
                if (content.Length > 0)
                {
                    txtContent.Enabled    = false;
                    proLoading.Visibility = ViewStates.Visible;
                    btnComment.Visibility = ViewStates.Gone;
                    commentPresenter.PostComment(user, blogApp, Id, content);
                }
                else
                {
                    Toast.MakeText(this, Resources.GetString(Resource.String.comment_tip), ToastLength.Short).Show();
                }
            }
        }
Пример #24
0
 public void LoginSuccess(AccessToken token, UserModel user)
 {
     handler.Post(() =>
     {
         if (dialog.IsShowing)
         {
             dialog.Dismiss();
         }
         if (token.access_token != null && token.access_token != "" && user != null && user.UserId != null)
         {
             UserShared.Update(this, token);
             Toast.MakeText(this, Resources.GetString(Resource.String.login_success), ToastLength.Short).Show();
             SetResult(Result.Ok);
             this.Finish();
         }
         else
         {
             Toast.MakeText(this, Resources.GetString(Resource.String.load_failed), ToastLength.Short).Show();
         }
     });
 }
Пример #25
0
        public async void PostComment()
        {
            //ÊÇ·ñµÇ¼
            var user = UserShared.GetAccessToken(this);

            if (user.access_token == "" || user.RefreshTime.AddSeconds(user.expires_in) < DateTime.Now)
            {
                //δµÇ¼»òÇå¿ÕTokenʧЧ
                //Çå¿ÕToken
                UserShared.Update(this, new AccessToken());
                await SQLiteUtils.Instance().DeleteUserAll();

                Android.Support.V7.App.AlertDialog.Builder dialog = new Android.Support.V7.App.AlertDialog.Builder(this);
                dialog.SetMessage(Resources.GetString(Resource.String.need_login_tip));
                dialog.SetPositiveButton(Resources.GetString(Resource.String.confirm), delegate
                {
                    StartActivityForResult(new Intent(this, typeof(AuthorizeActivity)), (int)RequestCode.LoginCode);
                    dialog.Dispose();
                });
                dialog.SetNegativeButton(Resources.GetString(Resource.String.cancel), delegate
                {
                    dialog.Dispose();
                });
                dialog.Create().Show();
            }
            else
            {
                var content = txtContent.Text;
                if (content.Length > 0)
                {
                    dialog.SetMessage(Resources.GetString(Resource.String.addstatusing));
                    dialog.Show();
                    statusPresenter.StatusAdd(user, content, checkIsPrivate.Checked);
                }
                else
                {
                    Toast.MakeText(this, Resources.GetString(Resource.String.addstatus_tip), ToastLength.Short).Show();
                }
            }
        }
Пример #26
0
        public void PostAnswers()
        {
            //ÊÇ·ñµÇ¼
            var user = UserShared.GetAccessToken(this);

            if (user.access_token == "" || user.RefreshTime.AddSeconds(user.expires_in) < DateTime.Now)
            {
                ShowLogin();
            }
            else
            {
                var content = txtContent.Text;
                if (content.Length > 0)
                {
                    dialog.SetMessage(Resources.GetString(Resource.String.addstatusing));
                    dialog.Show();
                    answersPresenter.CheckAnswersByUser(user, questionId);
                }
                else
                {
                    Toast.MakeText(this, Resources.GetString(Resource.String.addstatus_tip), ToastLength.Short).Show();
                }
            }
        }
Пример #27
0
 public async void OnLoadMoreRequested()
 {
     swipeRefreshLayout.Enabled = false;
     await statusesPresenter.GetServiceStatus(position > 0?UserShared.GetAccessToken(this.Activity) : TokenShared.GetAccessToken(this.Activity), position, pageIndex);
 }
Пример #28
0
 /// <summary>
 /// 删除用户信息
 /// </summary>
 public async void DeleteUser()
 {
     UserShared.Update(context, new AccessToken());
     await SQLiteUtils.Instance().DeleteUserAll();
 }
Пример #29
0
 public async void OnLoadMoreRequested()
 {
     await bookmarksPresenter.GetServiceBookmarks(UserShared.GetAccessToken(this.Activity), pageIndex);
 }