[Tween-svn] [1257] 自分のFavイベントも処理できるように

アーカイブの一覧に戻る

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"



Tween-svn メーリングリストの案内
アーカイブの一覧に戻る