package org.cnodejs.android.md.presenter.implement;
import android.app.Activity;
import android.support.annotation.NonNull;
import org.cnodejs.android.md.model.api.ApiClient;
import org.cnodejs.android.md.model.api.DefaultCallback;
import org.cnodejs.android.md.model.entity.Reply;
import org.cnodejs.android.md.model.entity.Result;
import org.cnodejs.android.md.model.storage.LoginShared;
import org.cnodejs.android.md.presenter.contract.IReplyPresenter;
import org.cnodejs.android.md.ui.view.IReplyView;
import okhttp3.Headers;
public class ReplyPresenter implements IReplyPresenter {
private final Activity activity;
private final IReplyView replyView;
public ReplyPresenter(@NonNull Activity activity, @NonNull IReplyView replyView) {
this.activity = activity;
this.replyView = replyView;
}
@Override
public void upReplyAsyncTask(@NonNull final Reply reply) {
ApiClient.service.upReply(reply.getId(), LoginShared.getAccessToken(activity)).enqueue(new DefaultCallback<Result.UpReply>(activity) {
@Override
public boolean onResultOk(int code, Headers headers, Result.UpReply result) {
if (result.getAction() == Reply.UpAction.up) {
reply.getUpList().add(LoginShared.getId(getActivity()));
} else if (result.getAction() == Reply.UpAction.down) {
reply.getUpList().remove(LoginShared.getId(getActivity()));
}
replyView.onUpReplyOk(reply);
return false;
}
});
}
}