OSDN Git Service

タイマーが赤のままになることがあるのを直す
authorKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Tue, 17 Feb 2015 12:15:27 +0000 (21:15 +0900)
committerKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Tue, 17 Feb 2015 12:15:27 +0000 (21:15 +0900)
バージョン1.9で直したことになっているが、直っていないのであらためて
直した。

KancolleSniffer/Sniffer.cs

index 3976036..9ba6d80 100644 (file)
@@ -437,6 +437,13 @@ namespace KancolleSniffer
 \r
         public TimeSpan Rest { get; private set; }\r
 \r
+        public bool IsFinished\r
+        {\r
+            get { return _endTime != DateTime.MinValue && Rest <= _spare; }\r
+        }\r
+\r
+        public bool NeedRing { get; set; }\r
+\r
         public RingTimer(int spare = 60)\r
         {\r
             _spare = TimeSpan.FromSeconds(spare);\r
@@ -452,8 +459,6 @@ namespace KancolleSniffer
         public void SetEndTime(DateTime time)\r
         {\r
             _endTime = time;\r
-            if (_endTime == DateTime.MinValue)\r
-                IsFinished = false;\r
         }\r
 \r
         public void Update()\r
@@ -463,16 +468,12 @@ namespace KancolleSniffer
                 Rest = TimeSpan.Zero;\r
                 return;\r
             }\r
+            var prev = Rest;\r
             Rest = _endTime - DateTime.Now;\r
             if (Rest < TimeSpan.Zero)\r
                 Rest = TimeSpan.Zero;\r
-            if (Rest > _spare || IsFinished)\r
-                return;\r
-            IsFinished = true;\r
-            NeedRing = true;\r
+            if (prev > _spare && _spare >= Rest)\r
+                NeedRing = true;\r
         }\r
-\r
-        public bool IsFinished { get; private set; }\r
-        public bool NeedRing { get; set; }\r
     }\r
 }
\ No newline at end of file