示例#1
0
    public void Upvote(int tabIndex)
    {
        if (!this.PreCheck())
        {
            return;
        }
        if (this.Upvoting)
        {
            MsgController.ShowMsg(SFST.T.Sharing_Wait_Request);
            return;
        }
        string ID = this.pages[tabIndex].ID;

        this.Upvoting = true;
        VotePacket toSend = new VotePacket
        {
            vote   = true,
            voteOn = ID
        };

        GameTracker.Tracker.client.AuthedRequest(toSend, delegate(DefaultPacket r)
        {
            SyncContext.RunOnUI(delegate
            {
                if (r.Success)
                {
                    VoteResponse voteResponse = r.ToTargetPacket <VoteResponse>();
                    Debug.Log(voteResponse.Action);
                    if (voteResponse.Action == "VOTE_PLACED")
                    {
                        MsgController.ShowMsg(SFST.T.Sharing_Vote_Placed);
                    }
                    else
                    {
                        MsgController.ShowMsg(SFST.T.Sharing_Vote_Revoked);
                    }
                    this.ReloadPage(delegate
                    {
                        RocketPost post = this.GetPost(ID);
                        if (post != null)
                        {
                            post.PlayAnimation();
                        }
                    });
                }
                else
                {
                    MsgController.ShowMsg(SFST.T.Sharing_Vote_Failed);
                }
                this.Upvoting = false;
            });
        });
    }
示例#2
0
 public void LoadPage(string category, int pageNum, Action doAfter, Action <string> onFail = null)
 {
     if (!this.CheckConnection())
     {
         return;
     }
     if (this.requestingPage)
     {
         return;
     }
     this.requestingPage = true;
     this.pages.Clear();
     ThreadPool.QueueUserWorkItem(delegate(object s)
     {
         CategoryRequestPacket toSend = new CategoryRequestPacket
         {
             Page     = pageNum,
             Category = new SharingCategory(category)
         };
         GameTracker.Tracker.client.AuthedRequest(toSend, delegate(DefaultPacket r)
         {
             Debug.Log("Got response!");
             if (r.Success)
             {
                 CategoryResponsePacket categoryResponsePacket = r.ToTargetPacket <CategoryResponsePacket>();
                 this.pagesIDS = categoryResponsePacket.onPage;
                 for (int i = 0; i < this.rocketPostReference.Length; i++)
                 {
                     int unreffedNum = int.Parse(i.ToString());
                     RocketPost post = this.rocketPostReference[i];
                     if (i >= categoryResponsePacket.onPage.Count)
                     {
                         SyncContext.RunOnUI(new Action(post.HidePage));
                     }
                     else
                     {
                         string targetRocket           = categoryResponsePacket.onPage[i];
                         DownloadRequestPacket toSend2 = new DownloadRequestPacket
                         {
                             targetRocket = targetRocket
                         };
                         GameTracker.Tracker.client.AuthedRequest(toSend2, delegate(DefaultPacket resp)
                         {
                             SyncContext.RunOnUI(delegate
                             {
                                 if (resp.Success)
                                 {
                                     RocketResponsePacket rocketResponsePacket = resp.ToTargetPacket <RocketResponsePacket>();
                                     CLRocket response       = rocketResponsePacket.response;
                                     this.pages[unreffedNum] = response;
                                     Debug.Log(string.Concat(new object[]
                                     {
                                         "setting ",
                                         unreffedNum,
                                         " to ",
                                         response.ID
                                     }));
                                     post.LoadPage(response.Title, response.ID, response.Score, response.LocalUpvote, response.LocalDownvote, response.CanDelete);
                                     post.LoadImage(response.JSON);
                                 }
                             });
                         });
                     }
                 }
                 SyncContext.RunOnUI(doAfter);
             }
             else
             {
                 SyncContext.RunOnUI(new Action(this.HidePosts));
                 Debug.Log(r.Error);
                 if (onFail != null)
                 {
                     SyncContext.RunOnUI <string>(onFail, r.Error);
                 }
             }
             this.requestingPage  = false;
             this.currentCategory = category;
         });
     });
 }