OSDN Git Service

PostClass.CreatedAtの型をDateTimeUtcに変更
[opentween/open-tween.git] / OpenTween / Models / HomeTabModel.cs
index 4969124..627fa9c 100644 (file)
@@ -32,6 +32,7 @@ using System.Linq;
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
+using OpenTween.Setting;
 
 namespace OpenTween.Models
 {
@@ -44,7 +45,7 @@ namespace OpenTween.Models
 
         // 流速計測用
         private int tweetsPerHour = 0;
-        private ConcurrentDictionary<DateTime, int> tweetsTimestamps = new ConcurrentDictionary<DateTime, int>();
+        private ConcurrentDictionary<DateTimeUtc, int> tweetsTimestamps = new ConcurrentDictionary<DateTimeUtc, int>();
 
         public HomeTabModel() : this(MyCommon.DEFAULTTAB.RECENT)
         {
@@ -63,10 +64,10 @@ namespace OpenTween.Models
         public override async Task RefreshAsync(Twitter tw, bool backward, bool startup, IProgress<string> progress)
         {
             bool read;
-            if (!SettingCommon.Instance.UnreadManage)
+            if (!SettingManager.Common.UnreadManage)
                 read = true;
             else
-                read = startup && SettingCommon.Instance.Read;
+                read = startup && SettingManager.Common.Read;
 
             progress.Report(string.Format(Properties.Resources.GetTimelineWorker_RunWorkerCompletedText5, backward ? -1 : 1));
 
@@ -74,7 +75,7 @@ namespace OpenTween.Models
                 .ConfigureAwait(false);
 
             // 新着時未読クリア
-            if (SettingCommon.Instance.ReadOldPosts)
+            if (SettingManager.Common.ReadOldPosts)
                 TabInformations.GetInstance().SetReadHomeTab();
 
             TabInformations.GetInstance().DistributePosts();
@@ -85,9 +86,9 @@ namespace OpenTween.Models
         /// <summary>
         /// タイムラインに追加された発言件数を反映し、タイムラインの流速を更新します
         /// </summary>
-        private void UpdateTimelineSpeed(DateTime postCreatedAt)
+        private void UpdateTimelineSpeed(DateTimeUtc postCreatedAt)
         {
-            var now = DateTime.Now;
+            var now = DateTimeUtc.Now;
 
             // 1 時間以上前の時刻は追加しない
             var oneHour = TimeSpan.FromHours(1);
@@ -96,20 +97,19 @@ namespace OpenTween.Models
 
             this.tweetsTimestamps.AddOrUpdate(postCreatedAt, 1, (k, v) => v + 1);
 
-            var removeKeys = new List<DateTime>();
+            var removeKeys = new List<DateTimeUtc>();
             var tweetsInWindow = 0;
-            foreach (var pair in this.tweetsTimestamps)
+            foreach (var (timestamp, count) in this.tweetsTimestamps)
             {
-                if (now - pair.Key > oneHour)
-                    removeKeys.Add(pair.Key);
+                if (now - timestamp > oneHour)
+                    removeKeys.Add(timestamp);
                 else
-                    tweetsInWindow += pair.Value;
+                    tweetsInWindow += count;
             }
             Interlocked.Exchange(ref this.tweetsPerHour, tweetsInWindow);
 
-            int _;
             foreach (var key in removeKeys)
-                this.tweetsTimestamps.TryRemove(key, out _);
+                this.tweetsTimestamps.TryRemove(key, out var _);
         }
     }
 }