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; }); }); }
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; }); }); }