Is this your own implementation of the observer pattern? If so, you can change the notify method, for example:
public void notifyObserver(IAction sender) { for (int i = 0; i < observers.size(); i++) { IActionObserver observer = (IActionObserver) observers.get(i); if (observer != sender) observer.update(); } }
and call it like
ActionHolder.getInstance().notifyObserver(this);
Alternatively , you can add a flag to your action class:
private bool sender = false;
set the flag before notification:
sender = true; ActionHolder.getInstance().notifyObserver();
and use this flag in update :
@Override public void update() { if (!sender) { getSubView().setVisibility(View.GONE); } sender = false; }
source share