From cb0101fc5205fc649b7f4e1fb30f1cf059612b3c Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Sat, 30 Oct 2021 04:58:45 +0800 Subject: [PATCH] [Mobile] Auto optimize card art when importing --- forge-core/src/main/java/forge/deck/Deck.java | 26 +++++++++++++------ .../src/forge/deck/FDeckImportDialog.java | 1 + 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/forge-core/src/main/java/forge/deck/Deck.java b/forge-core/src/main/java/forge/deck/Deck.java index a7818c1b3e2..c95e9811925 100644 --- a/forge-core/src/main/java/forge/deck/Deck.java +++ b/forge-core/src/main/java/forge/deck/Deck.java @@ -266,7 +266,7 @@ public class Deck extends DeckBase implements Iterable> cardsWithNoEdition = new EnumMap<>(DeckSection.class); + List mainCards = new ArrayList<>(); + for (Entry e: getMain()) + mainCards.add(e.getKey().getName()); + cardsWithNoEdition.put(DeckSection.Main, getAllCardNamesWithNoSpecifiedEdition(mainCards)); + optimiseCardArtSelectionInDeckSections(cardsWithNoEdition, false); + } private ArrayList getAllCardNamesWithNoSpecifiedEdition(List cardsInSection) { ArrayList cardNamesWithNoEdition = new ArrayList<>(); List> cardRequests = CardPool.processCardList(cardsInSection); @@ -364,7 +372,7 @@ public class Deck extends DeckBase implements Iterable> cardsWithNoEdition) { + private void optimiseCardArtSelectionInDeckSections(Map> cardsWithNoEdition, boolean multiArtPrint) { StaticData data = StaticData.instance(); // Get current Card Art Preference Settings boolean isCardArtPreferenceLatestArt = data.cardArtPreferenceIsLatest(); @@ -397,13 +405,13 @@ public class Deck extends DeckBase implements Iterable 1) addAlternativeCardPrintInPoolWithMultipleArt(card, pool, totalToAdd, artCount); else diff --git a/forge-gui-mobile/src/forge/deck/FDeckImportDialog.java b/forge-gui-mobile/src/forge/deck/FDeckImportDialog.java index 03066c6dff3..dbf63820498 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckImportDialog.java +++ b/forge-gui-mobile/src/forge/deck/FDeckImportDialog.java @@ -118,6 +118,7 @@ public class FDeckImportDialog extends FDialog { FThreads.invokeInEdtLater(new Runnable() { @Override public void run() { + deck.optimizeMainCardArt(); hide(); callback.run(deck); }