Replace refreshing thread on system time checking
diff --git a/OsmAnd/src/net/osmand/plus/settings/DataStorageHelper.java b/OsmAnd/src/net/osmand/plus/settings/DataStorageHelper.java
index 57ab5b4..fa6fb4a 100644
--- a/OsmAnd/src/net/osmand/plus/settings/DataStorageHelper.java
+++ b/OsmAnd/src/net/osmand/plus/settings/DataStorageHelper.java
@@ -15,6 +15,7 @@
 import java.text.DecimalFormat;
 import java.util.ArrayList;
 
+import static net.osmand.plus.settings.DataStorageFragment.UI_REFRESH_TIME_MS;
 import static net.osmand.plus.settings.DataStorageMemoryItem.Directory;
 import static net.osmand.plus.settings.DataStorageMemoryItem.EXTENSIONS;
 import static net.osmand.plus.settings.DataStorageMemoryItem.PREFIX;
@@ -293,22 +294,7 @@
 		private String[] directoriesToAvoid;
 		private String[] prefixesToAvoid;
 		private String taskKey;
-		private boolean refreshing = false;
-
-		private Runnable refreshingTimer = new Runnable() {
-			
-			@Override
-			public void run() {
-				try {
-					Thread.sleep(DataStorageFragment.UI_REFRESH_TIME_MS);
-				} catch (InterruptedException e) {
-					e.printStackTrace();
-				}
-				refreshing = false;
-				publishProgress();
-			}
-			
-		};
+		private long lastRefreshTime;
 
 		public RefreshMemoryUsedInfo(UpdateMemoryInfoUIAdapter listener, DataStorageMemoryItem otherMemory, File rootDir, String[] directoriesToAvoid, String[] prefixesToAvoid, String taskKey) {
 			this.listener = listener;
@@ -321,6 +307,7 @@
 
 		@Override
 		protected Void doInBackground(DataStorageMemoryItem... items) {
+			lastRefreshTime = System.currentTimeMillis();
 			if (rootDir.canRead()) {
 				calculateMultiTypes(rootDir, items);
 			}
@@ -464,9 +451,10 @@
 		}
 		
 		private void refreshUI() {
-			if (!refreshing) {
-				refreshing = true;
-				new Thread(refreshingTimer).start();
+			long currentTime = System.currentTimeMillis();
+			if ((currentTime - lastRefreshTime) > UI_REFRESH_TIME_MS) {
+				lastRefreshTime = currentTime;
+				publishProgress();
 			}
 		}
 	}