From 9110d11d5c24d60a7e3928d54aac6c090633bca2 Mon Sep 17 00:00:00 2001 From: Michael Kamensky Date: Sat, 29 Aug 2020 09:05:41 +0300 Subject: [PATCH] - Add the Select All button to spell shop inventory when the UI allows it (landscape mode, running on desktop). --- .../screens/quest/QuestSpellShopScreen.java | 1 + .../java/forge/itemmanager/ItemManagerModel.java | 16 ++++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java index 2e9b00b9cc6..9127fac826d 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java @@ -24,6 +24,7 @@ import forge.itemmanager.filters.ItemFilter; import forge.menu.FDropDownMenu; import forge.menu.FMenuItem; import forge.model.FModel; +import forge.properties.ForgeConstants; import forge.quest.QuestSpellShop; import forge.quest.QuestUtil; import forge.screens.TabPageScreen; diff --git a/forge-gui/src/main/java/forge/itemmanager/ItemManagerModel.java b/forge-gui/src/main/java/forge/itemmanager/ItemManagerModel.java index 32064447e4d..37f2681157f 100644 --- a/forge-gui/src/main/java/forge/itemmanager/ItemManagerModel.java +++ b/forge-gui/src/main/java/forge/itemmanager/ItemManagerModel.java @@ -21,6 +21,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; +import java.util.Iterator; import java.util.Map.Entry; import forge.item.InventoryItem; @@ -132,7 +133,7 @@ public final class ItemManagerModel { //Manages sorting orders for multiple depths of sorting public final class CascadeManager { - private final List colsToSort = new ArrayList<>(3); + private final List colsToSort = Collections.synchronizedList(new ArrayList<>(3)); private Sorter sorter = null; // Adds a column to sort cascade list. @@ -188,12 +189,15 @@ public final class ItemManagerModel { private Sorter createSorter() { final List> oneColSorters = new ArrayList<>(maxSortDepth); - for (final ItemColumn col : colsToSort) { - oneColSorters.add(new ItemPoolSorter<>( - col.getFnSort(), - col.getConfig().getSortState().equals(SortState.ASC))); + synchronized (colsToSort) { + final Iterator it = colsToSort.iterator(); + while (it.hasNext()) { + final ItemColumn col = it.next(); + oneColSorters.add(new ItemPoolSorter<>( + col.getFnSort(), + col.getConfig().getSortState().equals(SortState.ASC))); + } } - return new Sorter(oneColSorters); }