diff --git a/CHANGELOG.txt b/CHANGELOG.txt index f15a5e270..8a5ce1435 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -4,6 +4,7 @@ * NEW: Cookie使用時のReplyタブの更新に対応(/statuses/mentions_timeline.json 廃止に伴う対応) * NEW: Cookie使用時のFavoritesタブの更新に対応 * NEW: Cookie使用時のFav追加・削除に対応 + * NEW: ステータスバーに各タブの更新回数(起動時からの回数)の表示を追加 * NEW: 設定画面の更新間隔ページに24時間分の取得回数目安の表示を追加 * CHG: 更新間隔の初期設定を変更 * FIX: Cookie使用時にツイート検索の言語指定が効かない不具合を修正 diff --git a/OpenTween/Models/TabModel.cs b/OpenTween/Models/TabModel.cs index 5989444e0..e5dc4e1d8 100644 --- a/OpenTween/Models/TabModel.cs +++ b/OpenTween/Models/TabModel.cs @@ -113,11 +113,15 @@ public PostClass? AnchorPost set => this.AnchorStatusId = value?.StatusId; } + public int UpdateCount + => this.updateCount; + private IndexedSortedSet ids = new(); private ConcurrentQueue addQueue = new(); private readonly ConcurrentQueue removeQueue = new(); private SortedSet unreadIds = new(); private List selectedStatusIds = new(); + private int updateCount = 0; private readonly object lockObj = new(); @@ -450,5 +454,8 @@ public IEnumerable SearchPostsAll(Func stringComparer, int st } } } + + public void IncrementUpdateCount() + => Interlocked.Increment(ref this.updateCount); } } diff --git a/OpenTween/Properties/Resources.Designer.cs b/OpenTween/Properties/Resources.Designer.cs index e89cb6dfb..e6bfc1a04 100644 --- a/OpenTween/Properties/Resources.Designer.cs +++ b/OpenTween/Properties/Resources.Designer.cs @@ -2589,6 +2589,15 @@ internal static string SetStatusLabelText3 { } } + /// + /// [更新: {0:#,0}] に類似しているローカライズされた文字列を検索します。 + /// + internal static string SetStatusLabelText4 { + get { + return ResourceManager.GetString("SetStatusLabelText4", resourceCulture); + } + } + /// /// 「認証開始」ボタンを押すとブラウザが開きます。「連携アプリを認証」し、表示されたPINを画面上部に入力後、「Finish」ボタンを押してください。認証せずに終了してもよろしいですか? に類似しているローカライズされた文字列を検索します。 /// diff --git a/OpenTween/Properties/Resources.en.resx b/OpenTween/Properties/Resources.en.resx index a0fd66aac..62d612824 100644 --- a/OpenTween/Properties/Resources.en.resx +++ b/OpenTween/Properties/Resources.en.resx @@ -257,6 +257,7 @@ Available service: {1} [Tab: {0}/{1} All: {2}/{3} (Reply: {4})] [Spd: Pst {5}/ Fav {6}/ TL {7}] [Interval: -] ] + [Updates: {0:#,0}] Press [Start Authentication] button and [Authorize App]. Key in PIN then press [Finish] button. Will you exit application without validating your account? Failed to write settings to {0}. diff --git a/OpenTween/Properties/Resources.resx b/OpenTween/Properties/Resources.resx index 3e3c8656e..f9cab82d6 100644 --- a/OpenTween/Properties/Resources.resx +++ b/OpenTween/Properties/Resources.resx @@ -289,6 +289,7 @@ [タブ: {0}/{1} 全体: {2}/{3} (返信: {4})] [時速: 投 {5}/ ☆ {6}/ 流 {7}] [間隔: -] ] + [更新: {0:#,0}] 「認証開始」ボタンを押すとブラウザが開きます。「連携アプリを認証」し、表示されたPINを画面上部に入力後、「Finish」ボタンを押してください。認証せずに終了してもよろしいですか? {0} での設定の書き込みに失敗しました。 diff --git a/OpenTween/Tween.cs b/OpenTween/Tween.cs index 3f7878b76..89e3dd61e 100644 --- a/OpenTween/Tween.cs +++ b/OpenTween/Tween.cs @@ -1303,6 +1303,7 @@ private async Task RefreshTabAsync(TabModel tab, bool backward) { this.RefreshTasktrayIcon(); await Task.Run(() => tab.RefreshAsync(this.tw, backward, this.initial, this.workerProgress)); + tab.IncrementUpdateCount(); } catch (WebApiException ex) { @@ -6938,6 +6939,8 @@ private string GetStatusLabelText() { slbl.Append(this.settings.Common.TimelinePeriod + Properties.Resources.SetStatusLabelText3); } + slbl.Append(" "); + slbl.AppendFormat(Properties.Resources.SetStatusLabelText4, this.CurrentTab.UpdateCount); return slbl.ToString(); }