From 06683837fc7ce6dd9aa7cdb66c2944256ae8bffa Mon Sep 17 00:00:00 2001 From: drdev Date: Tue, 25 Aug 2015 04:16:00 +0000 Subject: [PATCH] Fix so toggling off And/Or removes filter below --- .../filters/CardAdvancedFilter.java | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/forge-gui-mobile/src/forge/itemmanager/filters/CardAdvancedFilter.java b/forge-gui-mobile/src/forge/itemmanager/filters/CardAdvancedFilter.java index 0e5e98110f2..b63d50114d2 100644 --- a/forge-gui-mobile/src/forge/itemmanager/filters/CardAdvancedFilter.java +++ b/forge-gui-mobile/src/forge/itemmanager/filters/CardAdvancedFilter.java @@ -239,6 +239,17 @@ public class CardAdvancedFilter extends ItemFilter { } } + private void removeNextFilter(Filter fromFilter) { + int index = scroller.indexOf(fromFilter); + if (index < scroller.getChildCount() - 1) { + Filter nextFilter = (Filter)scroller.getChildAt(index + 1); + fromFilter.btnAnd.setSelected(nextFilter.btnAnd.isSelected()); + fromFilter.btnOr.setSelected(nextFilter.btnOr.isSelected()); + scroller.remove(nextFilter); + scroller.revalidate(); + } + } + private enum FilterOption { NONE("Filter...", null, null, -1, -1), CMC("CMC", ComparableOp.NUMBER_OPS, ComparableOp.EQUALS, 0, 20), @@ -297,15 +308,25 @@ public class CardAdvancedFilter extends ItemFilter { btnAnd = add(new FLabel.Builder().align(HAlignment.CENTER).text("AND").selectable().command(new FEventHandler() { @Override public void handleEvent(FEvent e) { - btnOr.setSelected(false); - addNewFilter(Filter.this); + if (btnAnd.isSelected()) { + btnOr.setSelected(false); + addNewFilter(Filter.this); + } + else { + removeNextFilter(Filter.this); + } } }).build()); btnOr = add(new FLabel.Builder().align(HAlignment.CENTER).text("OR").selectable().command(new FEventHandler() { @Override public void handleEvent(FEvent e) { - btnAnd.setSelected(false); - addNewFilter(Filter.this); + if (btnOr.isSelected()) { + btnAnd.setSelected(false); + addNewFilter(Filter.this); + } + else { + removeNextFilter(Filter.this); + } } }).build()); }