/**
*
*/
package com.gmail.charleszq.picorner.task.ig;
import java.util.ArrayList;
import java.util.List;
import org.jinstagram.AdvancedInstagram;
import org.jinstagram.entity.common.Pagination;
import org.jinstagram.entity.users.feed.UserFeed;
import org.jinstagram.entity.users.feed.UserFeedData;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import com.gmail.charleszq.picorner.BuildConfig;
import com.gmail.charleszq.picorner.PicornerApplication;
import com.gmail.charleszq.picorner.SPUtil;
import com.gmail.charleszq.picorner.model.Author;
import com.gmail.charleszq.picorner.task.AbstractContextAwareTask;
import com.gmail.charleszq.picorner.utils.IConstants;
import com.gmail.charleszq.picorner.utils.InstagramHelper;
/**
* @author charles(charleszq@gmail.com)
*
*/
public class InstagramGetFollowingListTask extends
AbstractContextAwareTask<Void, Integer, List<Author>> {
public InstagramGetFollowingListTask(Context ctx) {
super(ctx);
}
@Override
protected List<Author> doInBackground(Void... params) {
PicornerApplication app = (PicornerApplication) ((Activity) mContext)
.getApplication();
String igUserId = SPUtil.getInstagramUserId(mContext);
AdvancedInstagram ig = InstagramHelper.getInstance()
.getAuthedInstagram(app.getInstagramAuthToken());
List<Author> users = new ArrayList<Author>();
try {
UserFeed uf = ig.getUserFollowList(Long.parseLong(igUserId));
processUserDataFeed(uf,users);
Pagination page = uf.getPagination();
while( page != null && page.getNextUrl() != null ) {
uf = ig.getUserNextPage(page, IConstants.DEF_IG_PAGE_SIZE);
processUserDataFeed(uf,users);
}
} catch (Exception e) {
if (BuildConfig.DEBUG)
Log.w(TAG,
"error to instagram following list: " + e.getMessage()); //$NON-NLS-1$
}
return users;
}
private void processUserDataFeed(UserFeed uf, List<Author> users) {
for (UserFeedData ufd : uf.getUserList()) {
Author a = new Author();
a.setUserId(String.valueOf(ufd.getId()));
a.setUserName(ufd.getUserName());
a.setBuddyIconUrl(ufd.getProfilePictureUrl());
users.add(a);
}
}
}