From e669f4038e65ad17b1ec0df51465ac4019dfec4b Mon Sep 17 00:00:00 2001 From: drdev Date: Fri, 10 Apr 2015 20:58:48 +0000 Subject: [PATCH] Update revealed panel in hand when card zoom closed --- .../screens/match/views/VZoneDisplay.java | 45 ++++++++++++------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/forge-gui-mobile/src/forge/screens/match/views/VZoneDisplay.java b/forge-gui-mobile/src/forge/screens/match/views/VZoneDisplay.java index 32c7f8a2500..2f2548e19f7 100644 --- a/forge-gui-mobile/src/forge/screens/match/views/VZoneDisplay.java +++ b/forge-gui-mobile/src/forge/screens/match/views/VZoneDisplay.java @@ -55,25 +55,38 @@ public class VZoneDisplay extends VCardDisplayArea { break; } } - if (idx >= 0) { //cascade cards back from revealed panel - clearChildren(); - int maxIdx = cardPanels.size() - 1; - int offset = Math.max(idx, maxIdx - idx); - for (int i = offset; i > 0; i--) { - int idx1 = idx - i; - int idx2 = idx + i; - if (idx1 >= 0) { - add(cardPanels.get(idx1)); - } - if (idx2 <= maxIdx) { - add(cardPanels.get(idx2)); - } - } - revealedPanel = cardPanels.get(idx); - add(revealedPanel); + if (idx >= 0) { + setRevealedPanel(idx); } } + private void setRevealedPanel(int idx) { + //cascade cards back from revealed panel + clearChildren(); + int maxIdx = cardPanels.size() - 1; + int offset = Math.max(idx, maxIdx - idx); + for (int i = offset; i > 0; i--) { + int idx1 = idx - i; + int idx2 = idx + i; + if (idx1 >= 0) { + add(cardPanels.get(idx1)); + } + if (idx2 <= maxIdx) { + add(cardPanels.get(idx2)); + } + } + revealedPanel = cardPanels.get(idx); + add(revealedPanel); + } + + @Override + public void setSelectedIndex(int index) { + if (revealedPanel == null) { + super.setSelectedIndex(index); + } + setRevealedPanel(index); + } + @Override public void clear() { revealedPanel = null;