From 63411c5978204583b5656e5371d47de0f8a49e5d Mon Sep 17 00:00:00 2001
From: Li <None>
Date: Fri, 15 Jan 2021 13:38:06 +0800
Subject: [PATCH] Replace 'clear all server statistic' function from Flag to
 Method
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

将清除统计数据提取成方法
---
 v2rayN/v2rayN/Forms/MainForm.cs            |  4 +--
 v2rayN/v2rayN/Handler/StatisticsHandler.cs | 39 +++++++++++-----------
 2 files changed, 21 insertions(+), 22 deletions(-)

diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs
index 3068b337..54dfd491 100644
--- a/v2rayN/v2rayN/Forms/MainForm.cs
+++ b/v2rayN/v2rayN/Forms/MainForm.cs
@@ -663,9 +663,9 @@ namespace v2rayN.Forms
 
         private void menuClearStatistic_Click(object sender, EventArgs e)
         {
-            if (statistics != null && statistics.Enable)
+            if (statistics != null)
             {
-                statistics.ClearStatistic = true;
+                statistics.ClearAllServerStatistics();
             }
         }
 
diff --git a/v2rayN/v2rayN/Handler/StatisticsHandler.cs b/v2rayN/v2rayN/Handler/StatisticsHandler.cs
index 6fb71b94..de013922 100644
--- a/v2rayN/v2rayN/Handler/StatisticsHandler.cs
+++ b/v2rayN/v2rayN/Handler/StatisticsHandler.cs
@@ -30,10 +30,6 @@ namespace v2rayN.Handler
             get; set;
         }
 
-        public bool ClearStatistic
-        {
-            get; set;
-        }
 
         public List<ServerStatItem> Statistic
         {
@@ -65,7 +61,6 @@ namespace v2rayN.Handler
             config_ = config;
             Enable = config.enableStatistics;
             UpdateUI = false;
-            ClearStatistic = false;
             updateFunc_ = update;
             exitFlag_ = false;
 
@@ -132,21 +127,6 @@ namespace v2rayN.Handler
                             serverStatItem.totalUp += up;
                             serverStatItem.totalDown += down;
 
-                            if (ClearStatistic)
-                            {
-                                foreach (ServerStatItem item in serverStatistics_.server)
-                                {
-                                    item.todayUp = 0;
-                                    item.todayDown = 0;
-                                    item.totalUp = 0;
-                                    item.totalDown = 0;
-                                    updateFunc_(up, down, new List<ServerStatItem> { item });
-                                }
-
-                                ClearStatistic = false;
-
-                            }
-
                             if (UpdateUI)
                             {
                                 updateFunc_(up, down, new List<ServerStatItem> { serverStatItem });
@@ -212,6 +192,25 @@ namespace v2rayN.Handler
             }
         }
 
+        public void ClearAllServerStatistics()
+        {
+            if (serverStatistics_ != null)
+            {
+                foreach (var item in serverStatistics_.server)
+                {
+                    item.todayUp = 0;
+                    item.todayDown = 0;
+                    item.totalUp = 0;
+                    item.totalDown = 0;
+                    // update ui display to zero
+                    updateFunc_(0, 0, new List<ServerStatItem> { item });
+                }
+
+                // update statistic json file
+                SaveToFile();
+            }
+        }
+
         private ServerStatItem GetServerStatItem(string itemId)
         {
             long ticks = DateTime.Now.Date.Ticks;