From f4e90e1d389729c820e75b14aa110648eee7decd Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Wed, 24 Sep 2025 13:47:12 +0800 Subject: [PATCH] fix NoSuchMethodError on older Android - closes #8771 - closes #8770 --- .../forge/gamemodes/planarconquest/ConquestData.java | 4 ++-- .../forge/gamemodes/planarconquest/ConquestUtil.java | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestData.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestData.java index 0ed47c54c12..778f989cab3 100644 --- a/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestData.java +++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestData.java @@ -294,8 +294,8 @@ public final class ConquestData { commandersUsingCard.append("\n").append(CardTranslation.getTranslatedName(commander.getName())); } } - - if (!commandersUsingCard.isEmpty()) { + // Android API StringBuilder isEmpty() is unavailable. https://developer.android.com/reference/java/lang/StringBuilder + if (commandersUsingCard.length() != 0) { SOptionPane.showMessageDialog(Localizer.getInstance().getMessage("lblCommandersCardCannotBeExiledByCard", CardTranslation.getTranslatedName(card.getName()), commandersUsingCard), title, SOptionPane.INFORMATION_ICON); return false; } diff --git a/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestUtil.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestUtil.java index 59b3221349f..19912f1e05f 100644 --- a/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestUtil.java +++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestUtil.java @@ -147,11 +147,13 @@ public class ConquestUtil { } //Move editions of cards already in the deck to the front. Map editionStats = currentDeck.getAllCardsInASinglePool().getCardEditionStatistics(true); + // use flatMap instead of mapMulti for Android 13 and below + //https://developer.android.com/reference/java/util/stream/Stream#mapMulti List out = planes.stream() - .mapMulti((p, c) -> p.getEditions().forEach(c)) - .filter(CardEdition::hasBasicLands) - .sorted(Comparator.comparing(e -> editionStats.getOrDefault(e, 0))) - .collect(Collectors.toList()); + .flatMap(p -> p.getEditions().stream()) + .filter(CardEdition::hasBasicLands) + .sorted(Comparator.comparing(e -> editionStats.getOrDefault(e, 0))) + .collect(Collectors.toList()); return out; }