OSDN Git Service

Twitter.GetFavoritesApiメソッドのmore引数が機能していない不具合を修正 (thx @kakk0u!)
authorKimura Youichi <kim.upsilon@bucyou.net>
Sun, 20 Nov 2016 04:41:23 +0000 (13:41 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sun, 20 Nov 2016 04:44:33 +0000 (13:44 +0900)
https://github.com/opentween/OpenTween/issues/41

OpenTween/Models/FavoritesTabModel.cs
OpenTween/Resources/ChangeLog.txt
OpenTween/Twitter.cs

index 10983eb..924e1a5 100644 (file)
@@ -56,7 +56,7 @@ namespace OpenTween.Models
 
             progress.Report(Properties.Resources.GetTimelineWorker_RunWorkerCompletedText19);
 
-            await tw.GetFavoritesApi(read, backward)
+            await tw.GetFavoritesApi(read, this, backward)
                 .ConfigureAwait(false);
 
             TabInformations.GetInstance().DistributePosts();
index bee89b0..eab0094 100644 (file)
@@ -11,6 +11,7 @@
  * FIX: ツイートの削除時に「(DELETED)」の表示がされなくなっていた不具合を修正
  * FIX: 「自分がRTした自分のツイート」に削除機能を使用すると、RTの取り消しではなくRT元のツイートが削除される不具合を修正 (thx @a4lg!)
   - 同現象に対して v1.3.5 で適切に修正できていなかった不具合です
+ * FIX: Favoritesタブの「前のデータを取得」が通常の更新と同じ挙動になる不具合を修正 (thx @kakk0u!)
 
 ==== Ver 1.3.5(2016/10/01)
  * NEW: 140文字を越えるツイートの表示に対応しました
index c229b1e..b562b7e 100644 (file)
@@ -888,12 +888,16 @@ namespace OpenTween
             return minimumId;
         }
 
-        private void CreateFavoritePostsFromJson(TwitterStatus[] items, bool read)
+        private long? CreateFavoritePostsFromJson(TwitterStatus[] items, bool read)
         {
             var favTab = TabInformations.GetInstance().GetTabByType(MyCommon.TabUsageType.Favorites);
+            long? minimumId = null;
 
             foreach (var status in items)
             {
+                if (minimumId == null || minimumId.Value > status.Id)
+                    minimumId = status.Id;
+
                 //二重取得回避
                 lock (LockObj)
                 {
@@ -906,6 +910,8 @@ namespace OpenTween
 
                 TabInformations.GetInstance().AddPost(post);
             }
+
+            return minimumId;
         }
 
         public async Task GetListStatus(bool read, ListTimelineTabModel tab, bool more, bool startup)
@@ -1225,16 +1231,28 @@ namespace OpenTween
             CreateDirectMessagesFromJson(messages, gType, read);
         }
 
-        public async Task GetFavoritesApi(bool read, bool more)
+        public async Task GetFavoritesApi(bool read, FavoritesTabModel tab, bool backward)
         {
             this.CheckAccountState();
 
-            var count = GetApiResultCount(MyCommon.WORKERTYPE.Favorites, more, false);
+            var count = GetApiResultCount(MyCommon.WORKERTYPE.Favorites, backward, false);
 
-            var statuses = await this.Api.FavoritesList(count)
-                .ConfigureAwait(false);
+            TwitterStatus[] statuses;
+            if (backward)
+            {
+                statuses = await this.Api.FavoritesList(count, maxId: tab.OldestId)
+                    .ConfigureAwait(false);
+            }
+            else
+            {
+                statuses = await this.Api.FavoritesList(count)
+                    .ConfigureAwait(false);
+            }
+
+            var minimumId = this.CreateFavoritePostsFromJson(statuses, read);
 
-            CreateFavoritePostsFromJson(statuses, read);
+            if (minimumId != null)
+                tab.OldestId = minimumId.Value;
         }
 
         private string ReplaceTextFromApi(string text, TwitterEntities entities)