package com.example.mortar.nodes; import android.support.annotation.NonNull; import android.util.Log; import com.zhuinden.servicetree.ServiceTree; import com.zhuinden.simplestack.BackstackManager; import com.zhuinden.simplestack.StateChange; /** * Created by Zhuinden on 2017.05.14.. */ public class NodeClearManager implements BackstackManager.StateChangeCompletionListener { private static final String TAG = "NodeClearManager"; private final ServiceTree serviceTree; private final NodeStateManager nodeStateManager; public NodeClearManager(ServiceTree serviceTree, NodeStateManager nodeStateManager) { this.serviceTree = serviceTree; this.nodeStateManager = nodeStateManager; } @Override public void stateChangeCompleted(@NonNull StateChange stateChange) { for(Object previousKey : stateChange.getPreviousState()) { if(!stateChange.getNewState().contains(previousKey) && serviceTree.hasNodeWithKey(previousKey)) { Log.i(TAG, "Destroying [" + previousKey + " ]"); nodeStateManager.clearStatesForKey(previousKey); serviceTree.removeNodeAndChildren(serviceTree.getNode(previousKey)); } } } }