End SyncLock
End Function
- Public Function SubmitUpdate(ByRef soundFile As String, ByRef notifyPosts As PostClass(), ByRef isMentionIncluded As Boolean) As Integer
+ Public Function SubmitUpdate(ByRef soundFile As String, ByRef notifyPosts As PostClass(), ByRef isMentionIncluded As Boolean, ByVal isUserStream As Boolean) As Integer
'注:メインスレッドから呼ぶこと
SyncLock LockObj
If _notifyPosts Is Nothing Then
End If
tb.AddSubmit(isMentionIncluded) '振分確定(各タブに反映)
Next
- Me.SortPosts()
+ If Not isUserStream OrElse Me.SortMode <> IdComparerClass.ComparerMode.Id Then
+ Me.SortPosts()
+ End If
soundFile = _soundFile
_soundFile = ""
Private Sub Add(ByVal ID As Long, ByVal Read As Boolean)
If Me._ids.Contains(ID) Then Exit Sub
- Me._ids.Add(ID)
+ If Me.Sorter.Mode = IdComparerClass.ComparerMode.Id Then
+ If Me.Sorter.Order = SortOrder.Ascending Then
+ Me._ids.Add(ID)
+ Else
+ Me._ids.Insert(0, ID)
+ End If
+ Else
+ Me._ids.Add(ID)
+ End If
If Not Read AndAlso Me._unreadManage Then
Me._unreadCount += 1
Public Sub AddSubmit(ByRef isMentionIncluded As Boolean)
If _tmpIds.Count = 0 Then Exit Sub
+ _tmpIds.Sort(Function(x As TemporaryId, y As TemporaryId) x.Id.CompareTo(y.Id))
For Each tId As TemporaryId In _tmpIds
If Me.TabType = TabUsageType.Mentions AndAlso TabInformations.GetInstance.Item(tId.Id).IsReply Then isMentionIncluded = True
Me.Add(tId.Id, tId.Read)
#End If
End Sub
- Private Sub RefreshTimeline()
+ Private Sub RefreshTimeline(ByVal isUserStream As Boolean)
'スクロール制御準備
Dim smode As Integer = -1 '-1:制御しない,-2:最新へ,その他:topitem使用
Dim topId As Long = GetScrollPos(smode)
Dim soundFile As String = ""
Dim addCount As Integer = 0
Dim isMention As Boolean = False
- addCount = _statuses.SubmitUpdate(soundFile, notifyPosts, isMention)
+ addCount = _statuses.SubmitUpdate(soundFile, notifyPosts, isMention, isUserStream)
If _endingFlag Then Exit Sub
rslt.type = WORKERTYPE.FavAdd OrElse _
rslt.type = WORKERTYPE.FavRemove OrElse _
rslt.type = WORKERTYPE.Related Then
- RefreshTimeline() 'リスト反映
+ RefreshTimeline(False) 'リスト反映
End If
Select Case rslt.type
For Each tb As TabPage In ListTab.TabPages
DirectCast(tb.Tag, DetailsListView).VirtualListSize = _statuses.Tabs(tb.Text).AllCount
Next
- Me.RefreshTimeline()
+ Me.RefreshTimeline(True)
End Sub
Private Sub tw_NewPostFromStream()
Try
If InvokeRequired AndAlso Not IsDisposed Then
- Invoke(New MethodInvoker(AddressOf RefreshTimeline))
+ Invoke(New Action(Of Boolean)(AddressOf RefreshTimeline), True)
Exit Sub
End If
Catch ex As ObjectDisposedException