package org.wordpress.android.ui.notifications;
import android.content.Context;
import android.util.Log;
import com.android.volley.VolleyError;
import com.wordpress.rest.RestRequest.ErrorListener;
import com.wordpress.rest.RestRequest.Listener;
import org.json.JSONObject;
import org.wordpress.android.WordPress;
class FollowListener implements FollowRow.OnFollowListener {
protected Context currentContent = null;
public FollowListener(Context currentContent) {
super();
this.currentContent = currentContent;
}
class FollowResponseHandler implements Listener, ErrorListener {
private FollowRow mRow;
private String mSiteId;
private boolean mShouldFollow;
FollowResponseHandler(FollowRow row, String siteId, boolean shouldFollow) {
mRow = row;
mSiteId = siteId;
mShouldFollow = shouldFollow;
disableButton();
}
@Override
public void onResponse(JSONObject response) {
if (mRow.isSiteId(mSiteId)) {
mRow.setFollowing(mShouldFollow);
}
enableButton();
}
@Override
public void onErrorResponse(VolleyError error) {
enableButton();
Log.d("WPNotifications",
String.format("Failed to follow the blog: %s ", error));
}
public void disableButton() {
if (mRow.isSiteId(mSiteId)) {
mRow.getFollowButton().setEnabled(false);
}
}
public void enableButton() {
if (mRow.isSiteId(mSiteId)) {
mRow.getFollowButton().setEnabled(true);
}
}
}
@Override
public void onFollow(final FollowRow row, final String siteId) {
FollowResponseHandler handler = new FollowResponseHandler(row, siteId,
true);
WordPress.restClient.followSite(siteId, handler, handler);
}
@Override
public void onUnfollow(final FollowRow row, final String siteId) {
FollowResponseHandler handler = new FollowResponseHandler(row, siteId,
false);
WordPress.restClient.unfollowSite(siteId, handler, handler);
}
}