package net.dev123.yibo.service.task;
import java.util.List;
import net.dev123.commons.Paging;
import net.dev123.commons.util.ListUtil;
import net.dev123.entity.BaseUser;
import net.dev123.mblog.MicroBlog;
import net.dev123.mblog.entity.User;
import net.dev123.yibo.UserQuickSelectorActivity;
import net.dev123.yibo.common.GlobalVars;
import net.dev123.yibo.db.LocalAccount;
import net.dev123.yibo.db.TaskDao;
import net.dev123.yibo.service.adapter.UserQuickSelectorListAdapter;
import android.os.AsyncTask;
public class UserQuickSelectorRecentTask extends AsyncTask<Void, Void, List<? extends BaseUser>> {
private static final String TAG = "UserQuickSelectorTask";
private MicroBlog microBlog = null;
private UserQuickSelectorActivity context;
private UserQuickSelectorListAdapter adapter = null;
private Paging<User> paging;
private LocalAccount account;
public UserQuickSelectorRecentTask(UserQuickSelectorListAdapter adapter) {
this.adapter = adapter;
this.context = (UserQuickSelectorActivity)adapter.getContext();
this.account = adapter.getAccount();
this.microBlog = GlobalVars.getMicroBlog(account);
}
@Override
protected void onPreExecute() {
context.showLoadingFooter();
}
@Override
protected List<? extends BaseUser> doInBackground(Void... params) {
if (adapter == null || microBlog == null) {
return null;
}
List<? extends BaseUser> userList = null;
TaskDao dao = new TaskDao(context);
paging = adapter.getPaging();
if (paging.hasNext()) {
paging.moveToNext();
userList = dao.findRecentContact(account, paging);
}
return userList;
}
@Override
protected void onPostExecute(List<? extends BaseUser> result) {
if (ListUtil.isNotEmpty(result)) {
adapter.addCacheToDivider(null, (List<User>) result);
} else {
adapter.notifyDataSetChanged();
}
if (paging.hasNext()) {
((UserQuickSelectorActivity)context).showMoreFooter();
} else {
((UserQuickSelectorActivity)context).showNoMoreFooter();
}
}
}