svnno****@sourc*****
svnno****@sourc*****
2010年 12月 26日 (日) 02:28:46 JST
Revision: 1257 http://sourceforge.jp/projects/tween/svn/view?view=rev&revision=1257 Author: kiri_feather Date: 2010-12-26 02:28:46 +0900 (Sun, 26 Dec 2010) Log Message: ----------- 自分のFavイベントも処理できるように Modified Paths: -------------- trunk/Tween/Tween.vb trunk/Tween/Twitter.vb -------------- next part -------------- Modified: trunk/Tween/Tween.vb =================================================================== --- trunk/Tween/Tween.vb 2010-12-25 16:51:08 UTC (rev 1256) +++ trunk/Tween/Tween.vb 2010-12-25 17:28:46 UTC (rev 1257) @@ -2242,48 +2242,7 @@ If rslt.type = WORKERTYPE.ErrorState Then Exit Sub If rslt.type = WORKERTYPE.FavRemove Then - DispSelectedPost() ' 詳細画面書き直し - Dim favTabName As String = _statuses.GetTabByType(TabUsageType.Favorites).TabName - Dim fidx As Integer - If _curTab.Text.Equals(favTabName) Then - If _curList.FocusedItem IsNot Nothing Then - fidx = _curList.FocusedItem.Index - ElseIf _curList.TopItem IsNot Nothing Then - fidx = _curList.TopItem.Index - Else - fidx = 0 - End If - End If - - For Each i As Long In rslt.sIds - _statuses.RemoveFavPost(i) - Next - If _curTab IsNot Nothing AndAlso _curTab.Text.Equals(favTabName) Then - _itemCache = Nothing 'キャッシュ破棄 - _postCache = Nothing - _curPost = Nothing - '_curItemIndex = -1 - End If - For Each tp As TabPage In ListTab.TabPages - If tp.Text = favTabName Then - DirectCast(tp.Tag, DetailsListView).VirtualListSize = _statuses.Tabs(favTabName).AllCount - Exit For - End If - Next - If _curTab.Text.Equals(favTabName) Then - _curList.SelectedIndices.Clear() - If _statuses.Tabs(favTabName).AllCount > 0 Then - If _statuses.Tabs(favTabName).AllCount - 1 > fidx AndAlso fidx > -1 Then - _curList.SelectedIndices.Add(fidx) - Else - _curList.SelectedIndices.Add(_statuses.Tabs(favTabName).AllCount - 1) - End If - If _curList.SelectedIndices.Count > 0 Then - _curList.EnsureVisible(_curList.SelectedIndices(0)) - _curList.FocusedItem = _curList.Items(_curList.SelectedIndices(0)) - End If - End If - End If + Me.RemovePostFromFavTab(rslt.sIds.ToArray) End If 'リストに反映 @@ -2434,6 +2393,50 @@ End Sub + Private Sub RemovePostFromFavTab(ByVal ids As Int64()) + Dim favTabName As String = _statuses.GetTabByType(TabUsageType.Favorites).TabName + Dim fidx As Integer + If _curTab.Text.Equals(favTabName) Then + If _curList.FocusedItem IsNot Nothing Then + fidx = _curList.FocusedItem.Index + ElseIf _curList.TopItem IsNot Nothing Then + fidx = _curList.TopItem.Index + Else + fidx = 0 + End If + End If + + For Each i As Long In ids + _statuses.RemoveFavPost(i) + Next + If _curTab IsNot Nothing AndAlso _curTab.Text.Equals(favTabName) Then + _itemCache = Nothing 'キャッシュ破棄 + _postCache = Nothing + _curPost = Nothing + '_curItemIndex = -1 + End If + For Each tp As TabPage In ListTab.TabPages + If tp.Text = favTabName Then + DirectCast(tp.Tag, DetailsListView).VirtualListSize = _statuses.Tabs(favTabName).AllCount + Exit For + End If + Next + If _curTab.Text.Equals(favTabName) Then + _curList.SelectedIndices.Clear() + If _statuses.Tabs(favTabName).AllCount > 0 Then + If _statuses.Tabs(favTabName).AllCount - 1 > fidx AndAlso fidx > -1 Then + _curList.SelectedIndices.Add(fidx) + Else + _curList.SelectedIndices.Add(_statuses.Tabs(favTabName).AllCount - 1) + End If + If _curList.SelectedIndices.Count > 0 Then + _curList.EnsureVisible(_curList.SelectedIndices(0)) + _curList.FocusedItem = _curList.Items(_curList.SelectedIndices(0)) + End If + End If + End If + + End Sub Private Sub GetTimeline(ByVal WkType As WORKERTYPE, ByVal fromPage As Integer, ByVal toPage As Integer, ByVal tabName As String) If Not IsNetworkAvailable() Then Exit Sub @@ -9981,6 +9984,9 @@ _postCache = Nothing DirectCast(_curTab.Tag, DetailsListView).Update() End If + If ev.Event = "unfavorite" AndAlso ev.Username.ToLower.Equals(tw.Username.ToLower) Then + RemovePostFromFavTab(New Int64() {ev.Id}) + End If End If End Sub Modified: trunk/Tween/Twitter.vb =================================================================== --- trunk/Tween/Twitter.vb 2010-12-25 16:51:08 UTC (rev 1256) +++ trunk/Tween/Twitter.vb 2010-12-25 17:28:46 UTC (rev 1257) @@ -2899,22 +2899,30 @@ End If evt.Target = "" Case "favorite", "unfavorite" - If evt.Username.ToLower.Equals(_uid) Then Exit Sub evt.Target = eventData.TargetObject.Text evt.Id = eventData.TargetObject.Id If TabInformations.GetInstance.ContainsKey(eventData.TargetObject.Id) Then Dim post As PostClass = TabInformations.GetInstance.Item(eventData.TargetObject.Id) If eventData.Event = "favorite" Then - post.FavoritedCount += 1 - If Not TabInformations.GetInstance.GetTabByType(TabUsageType.Favorites).Contains(post.Id) Then - post.IsRead = False + If evt.Username.ToLower.Equals(_uid) Then + post.IsFav = True TabInformations.GetInstance.GetTabByType(TabUsageType.Favorites).Add(post.Id, post.IsRead, False) Else - TabInformations.GetInstance.SetRead(False, TabInformations.GetInstance.GetTabByType(TabUsageType.Favorites).TabName, TabInformations.GetInstance.GetTabByType(TabUsageType.Favorites).IndexOf(post.Id)) + post.FavoritedCount += 1 + If Not TabInformations.GetInstance.GetTabByType(TabUsageType.Favorites).Contains(post.Id) Then + post.IsRead = False + TabInformations.GetInstance.GetTabByType(TabUsageType.Favorites).Add(post.Id, post.IsRead, False) + Else + TabInformations.GetInstance.SetRead(False, TabInformations.GetInstance.GetTabByType(TabUsageType.Favorites).TabName, TabInformations.GetInstance.GetTabByType(TabUsageType.Favorites).IndexOf(post.Id)) + End If End If Else - post.FavoritedCount -= 1 - If post.FavoritedCount < 0 Then post.FavoritedCount = 0 + If evt.Username.ToLower.Equals(_uid) Then + post.IsFav = False + Else + post.FavoritedCount -= 1 + If post.FavoritedCount < 0 Then post.FavoritedCount = 0 + End If End If End If Case "list_member_added", "list_member_removed"