package in.srain.cube.demo.event; import in.srain.cube.app.lifecycle.LifeCycleComponent; public class DemoSimpleEventHandler implements LifeCycleComponent { private boolean mRegistered = false; public DemoSimpleEventHandler register() { if (!mRegistered) { mRegistered = true; EventCenter.getInstance().register(this); } return this; } public synchronized DemoSimpleEventHandler tryToUnregister() { if (mRegistered) { mRegistered = false; EventCenter.getInstance().unregister(this); } return this; } public synchronized DemoSimpleEventHandler tryToRegisterIfNot() { register(); return this; } @Override public void onBecomesVisibleFromTotallyInvisible() { } @Override public void onBecomesPartiallyInvisible() { } @Override public void onBecomesVisible() { register(); } @Override public void onBecomesTotallyInvisible() { } @Override public void onDestroy() { tryToUnregister(); } }