diff --git a/forge-gui-mobile/src/forge/card/CardZoom.java b/forge-gui-mobile/src/forge/card/CardZoom.java index 0b1bf9aa059..20d5ff8118e 100644 --- a/forge-gui-mobile/src/forge/card/CardZoom.java +++ b/forge-gui-mobile/src/forge/card/CardZoom.java @@ -27,7 +27,7 @@ public class CardZoom extends FOverlay { private static final CardZoom cardZoom = new CardZoom(); private static List items; - private static int currentIndex; + private static int currentIndex, initialIndex; private static CardView currentCard, prevCard, nextCard; private static boolean zoomMode = true; private static boolean oneCardView = false; @@ -49,6 +49,7 @@ public class CardZoom extends FOverlay { items = items0; activateHandler = activateHandler0; currentIndex = currentIndex0; + initialIndex = currentIndex0; currentCard = getCardView(items.get(currentIndex)); prevCard = currentIndex > 0 ? getCardView(items.get(currentIndex - 1)) : null; nextCard = currentIndex < items.size() - 1 ? getCardView(items.get(currentIndex + 1)) : null; @@ -67,6 +68,18 @@ public class CardZoom extends FOverlay { private CardZoom() { } + @Override + public void setVisible(boolean visible0) { + if (this.isVisible() == visible0) { return; } + + super.setVisible(visible0); + + //update selected index when hidden if current index is different than initial index + if (!visible0 && activateHandler != null && currentIndex != initialIndex) { + activateHandler.setSelectedIndex(currentIndex); + } + } + private static void incrementCard(int dir) { if (dir > 0) { if (currentIndex == items.size() - 1) { return; } @@ -227,6 +240,7 @@ public class CardZoom extends FOverlay { public static interface ActivateHandler { String getActivateAction(int index); + void setSelectedIndex(int index); void activate(int index); } } diff --git a/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java b/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java index f7fd0c575a5..ed72cd2dd19 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VCardDisplayArea.java @@ -183,6 +183,13 @@ public abstract class VCardDisplayArea extends VDisplayArea implements ActivateH return MatchController.instance.getGameController().getActivateDescription(orderedCards.get(index)); } + @Override + public void setSelectedIndex(int index) { + //just scroll card into view + final CardAreaPanel cardPanel = CardAreaPanel.get(orderedCards.get(index)); + scrollIntoView(cardPanel); + } + @Override public void activate(int index) { final CardAreaPanel cardPanel = CardAreaPanel.get(orderedCards.get(index));