From c3ea8ddd7ac6d2bc2aad8b3ba3e1202567fc464b Mon Sep 17 00:00:00 2001
From: Oleg Agafonov <jaydi85@gmail.com>
Date: Fri, 21 Dec 2018 17:53:24 +0400
Subject: [PATCH] UI: added images cache reset after downloads finish (no more
 xmage restart for new images);

---
 .../card/images/DownloadPicturesService.java  |  3 ++
 .../mage/plugins/card/images/ImageCache.java  | 30 +++++++++++--------
 2 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPicturesService.java b/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPicturesService.java
index 29db91b289..c4f4c6f024 100644
--- a/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPicturesService.java
+++ b/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPicturesService.java
@@ -653,6 +653,9 @@ public class DownloadPicturesService extends DefaultBoundedRangeModel implements
 
         // stop
         reloadCardsToDownload(uiDialog.getSetsCombo().getSelectedItem().toString());
+
+        // reset images cache
+        ImageCache.clearCache();
     }
 
     static String convertStreamToString(InputStream is) {
diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/images/ImageCache.java b/Mage.Client/src/main/java/org/mage/plugins/card/images/ImageCache.java
index 2edf005832..a3aac320d4 100644
--- a/Mage.Client/src/main/java/org/mage/plugins/card/images/ImageCache.java
+++ b/Mage.Client/src/main/java/org/mage/plugins/card/images/ImageCache.java
@@ -3,15 +3,6 @@ package org.mage.plugins.card.images;
 import com.google.common.base.Function;
 import com.google.common.collect.ComputationException;
 import com.google.common.collect.MapMaker;
-import java.awt.*;
-import java.awt.geom.RoundRectangle2D;
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import javax.imageio.ImageIO;
 import mage.client.constants.Constants;
 import mage.client.dialog.PreferencesDialog;
 import mage.client.util.TransformedImageCache;
@@ -23,13 +14,23 @@ import org.apache.log4j.Logger;
 import org.mage.plugins.card.dl.sources.DirectLinksForDownload;
 import org.mage.plugins.card.utils.CardImageUtils;
 
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.geom.RoundRectangle2D;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
 /**
  * This class stores ALL card images in a cache with soft values. this means
  * that the images may be garbage collected when they are not needed any more,
  * but will be kept as long as possible.
- *
+ * <p>
  * Key format: "[cardname]#[setname]#[type]#[collectorID]#[param]"
- *
+ * <p>
  * where param is:
  * <ul>
  * <li>size of image</li>
@@ -228,6 +229,10 @@ public final class ImageCache {
         });
     }
 
+    public static void clearCache() {
+        IMAGE_CACHE.clear();
+    }
+
     public static String getFilePath(CardView card, int width) {
         String key = getKey(card, card.getName(), Integer.toString(width));
         boolean usesVariousArt = false;
@@ -389,7 +394,7 @@ public final class ImageCache {
         return getImage(getKey(card, card.getName(), ""));
     }
 
-//    public static BufferedImage getImageFaceOriginal(CardView card) {
+    //    public static BufferedImage getImageFaceOriginal(CardView card) {
 //        return getFaceImage(getFaceKey(card, card.getName(), card.getExpansionSetCode()));
 //    }
     public static BufferedImage getImageOriginalAlternateName(CardView card) {
@@ -472,6 +477,7 @@ public final class ImageCache {
 //        return alternateName + "#" + card.getExpansionSetCode() + "#" +card.getType()+ "#" + card.getCardNumber() + "#"
 //                + (card.getTokenSetCode() == null ? "":card.getTokenSetCode());
 //    }
+
     /**
      * Load image from file
      *