From: Kimura Youichi Date: Fri, 3 May 2024 18:28:10 +0000 (+0900) Subject: FavoritesTabModel.OldestIdの型を PostId? に変更 X-Git-Tag: OpenTween_v3.14.0^2~40^2~1 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=a53e8952b0b97c16f8cf13c4ff97acb56cedf5cb;p=opentween%2Fopen-tween.git FavoritesTabModel.OldestIdの型を PostId? に変更 --- diff --git a/OpenTween.Tests/Api/TwitterApiTest.cs b/OpenTween.Tests/Api/TwitterApiTest.cs index ed211717..58e754ce 100644 --- a/OpenTween.Tests/Api/TwitterApiTest.cs +++ b/OpenTween.Tests/Api/TwitterApiTest.cs @@ -884,7 +884,7 @@ namespace OpenTween.Api using var twitterApi = new TwitterApi(); twitterApi.ApiConnection = mock.Object; - await twitterApi.FavoritesList(200, maxId: 900L, sinceId: 100L); + await twitterApi.FavoritesList(200, maxId: new("900"), sinceId: new("100")); mock.VerifyAll(); } diff --git a/OpenTween/Api/TwitterApi.cs b/OpenTween/Api/TwitterApi.cs index b8e46a72..0db253ef 100644 --- a/OpenTween/Api/TwitterApi.cs +++ b/OpenTween/Api/TwitterApi.cs @@ -724,7 +724,7 @@ namespace OpenTween.Api return response.ReadAsLazyJson(); } - public async Task FavoritesList(int? count = null, long? maxId = null, long? sinceId = null) + public async Task FavoritesList(int? count = null, TwitterStatusId? maxId = null, TwitterStatusId? sinceId = null) { var param = new Dictionary { @@ -736,9 +736,9 @@ namespace OpenTween.Api if (count != null) param["count"] = count.ToString(); if (maxId != null) - param["max_id"] = maxId.ToString(); + param["max_id"] = maxId.Id; if (sinceId != null) - param["since_id"] = sinceId.ToString(); + param["since_id"] = sinceId.Id; var request = new GetRequest { diff --git a/OpenTween/Models/FavoritesTabModel.cs b/OpenTween/Models/FavoritesTabModel.cs index 1f2020a0..fc6d502e 100644 --- a/OpenTween/Models/FavoritesTabModel.cs +++ b/OpenTween/Models/FavoritesTabModel.cs @@ -43,7 +43,7 @@ namespace OpenTween.Models public override MyCommon.TabUsageType TabType => MyCommon.TabUsageType.Favorites; - public long OldestId { get; set; } = long.MaxValue; + public PostId? OldestId { get; set; } public string? CursorTop { get; set; } diff --git a/OpenTween/Twitter.cs b/OpenTween/Twitter.cs index 378fd41c..f9dbc5fc 100644 --- a/OpenTween/Twitter.cs +++ b/OpenTween/Twitter.cs @@ -909,20 +909,22 @@ namespace OpenTween return minimumId; } - private long? CreateFavoritePostsFromJson(TwitterStatus[] items, bool firstLoad) + private PostId? CreateFavoritePostsFromJson(TwitterStatus[] items, bool firstLoad) { var favTab = TabInformations.GetInstance().FavoriteTab; - long? minimumId = null; + PostId? minimumId = null; foreach (var status in items) { - if (minimumId == null || minimumId.Value > status.Id) - minimumId = status.Id; + var statusId = new TwitterStatusId(status.IdStr); + + if (minimumId == null || minimumId > statusId) + minimumId = statusId; // 二重取得回避 lock (this.lockObj) { - if (favTab.Contains(new TwitterStatusId(status.IdStr))) + if (favTab.Contains(statusId)) continue; } @@ -1329,7 +1331,7 @@ namespace OpenTween { if (backward) { - statuses = await this.Api.FavoritesList(count, maxId: tab.OldestId) + statuses = await this.Api.FavoritesList(count, maxId: tab.OldestId as TwitterStatusId) .ConfigureAwait(false); } else @@ -1342,7 +1344,7 @@ namespace OpenTween var minimumId = this.CreateFavoritePostsFromJson(statuses, firstLoad); if (minimumId != null) - tab.OldestId = minimumId.Value; + tab.OldestId = minimumId; } ///