diff --git a/app/src/main/java/org/toop/app/widget/complex/ViewWidget.java b/app/src/main/java/org/toop/app/widget/complex/ViewWidget.java index a72c8f9..59aa184 100644 --- a/app/src/main/java/org/toop/app/widget/complex/ViewWidget.java +++ b/app/src/main/java/org/toop/app/widget/complex/ViewWidget.java @@ -59,14 +59,32 @@ public abstract class ViewWidget extends StackWidget { previous = null; } - public void replacePrevious(int index) { - if (previous == null) { - return; - } + public void removeIndexFromPreviousChain(int index) { + ViewWidget view = previous; - while (index > 0 && previous.previous != null) { - previous = previous.previous; + while (index > 0 && view != null) { index--; + + if (index == 0) { + if (view.previous != null && view.previous.previous != null) { + view.previous = view.previous.previous; + } + } + + view = view.previous; + } + } + + public void removeViewFromPreviousChain(ViewWidget view) { + int index = 0; + + while (previous != null) { + index++; + + if (previous == view) { + removeIndexFromPreviousChain(index); + break; + } } }