private void ResponseSingleTweet(ClientTweet tweet, UIProperty property) { if (tweet == null) { tweet = new ClientTweet("트윗을 표시할 수 없습니다."); return; } tweet.Init(); if (DataInstence.isShowTweet(tweet, eTweetPanel.eHome) == false) { tweet.Init(); tweet = new ClientTweet("트윗이 뮤트되었습니다."); } property.AddSingleTweet(tweet, tweet.uiProperty.isQtTweet ? tweet.uiProperty : tweet.uiProperty.parentTweet, false); }
//스트리밍에서 호출하게 될 트윗 추가 public void AddTweet(eTweetPanel panel, ClientTweet tweet) { lock (lockObject) { tweet.Init(); //if (DataInstence.CheckIsMe(tweet.user.id))//내트윗일 경우 작업 //{ // DataInstence.UpdateMyScreenName(tweet.user.screen_name);//아이디 변경 체크 // DataInstence.UpdateMyProfilePicture(tweet.user.profile_image_url);//인장 변경 체크 //} if (dicHashs[panel].Contains(tweet.id)) { return; //중복 트윗 } if (DataInstence.isShowTweet(tweet, panel) == false) { return; //트윗 미표시 } bool isShowTweet = true; if (panel == eTweetPanel.eHome) { if (DataInstence.option.MatchHighlight(tweet.originalTweet.text) || tweet.isMention) //하이라이트,멘션 멘션에 추가 { AddTweetData(eTweetPanel.eMention, tweet); } else if (DataInstence.CheckIsMe(tweet.originalTweet.user.id) && tweet.retweeted) //내 트윗 체크(리트윗용) { isShowTweet = DataInstence.option.isShowRetweet; //리트윗을 TL표시할경우 추가 if (isShowTweet && DataInstence.option.isNotiRetweet) //리트윗 멘션함에 오게 할 경우 추가 { AddTweetData(eTweetPanel.eMention, tweet); } //if (DataInstence.CheckIsMe(tweet.user.id) && tweet.retweeted_status != null)//내가 한 리트윗 // Retweet(tweet, true); } } if (isShowTweet) { AddTweetData(panel, tweet); } //if (DataInstence.CheckIsMe(tweet.user.id) && tweet.retweeted_status != null)//리트윗 갱신 // Retweet(tweet, true); } }
public void AddTweet(eTweetPanel panel, List <ClientTweet> listTweet, bool isMore) { if (isMore) //더 불러오기는 순서가 일반과 반대 { for (int i = 0; i < listTweet.Count; i++) //API콜은 역순으로 등록 { listTweet[i].Init(); if (dicHashs[panel].Contains(listTweet[i].id)) { continue; //중복 트윗 } if (DataInstence.isShowTweet(listTweet[i], panel) == false) { continue; //트윗 미표시 } AddTweetData(panel, listTweet[i], isMore); } } else { if (panel == eTweetPanel.eUser) { ClearUserTweet(); //유저트윗 초기화 } for (int i = listTweet.Count - 1; i >= 0; i--) //더 불러오기가 아닌 거 { listTweet[i].Init(); if (dicHashs[panel].Contains(listTweet[i].id)) { continue; //중복 트윗 } if (DataInstence.isShowTweet(listTweet[i], panel) == false) { continue; //트윗 미표시 } AddTweetData(panel, listTweet[i], isMore); } } SortTweet(panel); }