package com.dg.libs.rest.callbacks; import android.util.Log; import com.dg.libs.rest.domain.ResponseStatus; public class BoundCallback<T> implements HttpCallback<T> { private static final String TAG = BoundCallback.class.getSimpleName(); private HttpCallback<T> callback; private boolean isRegistered = true; public BoundCallback(HttpCallback<T> callback) { this.callback = callback; } public void unregister() { isRegistered = false; } public boolean isRegistered() { return isRegistered; } @Override public void onSuccess(T responseData, ResponseStatus responseStatus) { if (isRegistered) { callback.onSuccess(responseData, responseStatus); } else { Log.d(TAG, "callback is unregistered, wont be called"); } } @Override public void onHttpError(ResponseStatus responseStatus) { if (isRegistered) { callback.onHttpError(responseStatus); } else { Log.d(TAG, "callback is unregistered, wont be called"); } } }