package com.quickblox.sample.chat.utils.qb.callback; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import com.quickblox.core.QBEntityCallback; import com.quickblox.core.exception.QBResponseException; public class QbEntityCallbackTwoTypeWrapper<T, R> implements QBEntityCallback<T> { protected static final Handler mainThreadHandler = new Handler(Looper.getMainLooper()); protected QBEntityCallback<R> callback; public QbEntityCallbackTwoTypeWrapper(QBEntityCallback<R> callback) { this.callback = callback; } @Override public void onSuccess(T t, Bundle bundle) { // Do nothing, we want to trigger callback with another data type } @Override public void onError(QBResponseException error) { onErrorInMainThread(error); } protected void onSuccessInMainThread(final R result, final Bundle bundle) { mainThreadHandler.post(new Runnable() { @Override public void run() { callback.onSuccess(result, bundle); } }); } protected void onErrorInMainThread(final QBResponseException error) { mainThreadHandler.post(new Runnable() { @Override public void run() { callback.onError(error); } }); } }