package com.shejiaomao.weibo.service.task;
import java.util.List;
import android.content.Context;
import android.os.AsyncTask;
import android.widget.Toast;
import com.cattong.commons.LibException;
import com.cattong.commons.Logger;
import com.cattong.commons.Paging;
import com.cattong.commons.util.ListUtil;
import com.cattong.entity.BaseUser;
import com.cattong.weibo.Weibo;
import com.cattong.weibo.entity.Group;
import com.shejiaomao.common.ResourceBook;
import com.shejiaomao.weibo.common.GlobalVars;
import com.shejiaomao.weibo.db.GroupDao;
import com.shejiaomao.weibo.db.LocalAccount;
import com.shejiaomao.weibo.service.adapter.HomePageGroupListAdapter;
public class HomePageGroupTask extends AsyncTask<Void, Void, List<Group>> {
private static final String TAG = "GroupTask";
private Weibo microBlog = null;
private Context context;
private HomePageGroupListAdapter adapter;
private LocalAccount account;
private boolean hasChange;
private String resultMsg;
public HomePageGroupTask(Context context, HomePageGroupListAdapter adapter) {
this.context = context;
this.adapter = adapter;
this.account = adapter.getAccount();
this.microBlog = GlobalVars.getMicroBlog(account);
this.hasChange = false;
}
@Override
protected void onPreExecute() {
}
@Override
protected List<Group> doInBackground(Void... params) {
if (microBlog == null) {
return null;
}
List<Group> groupList = null;
Paging<Group> paging = new Paging<Group>();
//paging.setPageSize(Constants.)
try {
BaseUser user = account.getUser();
groupList = microBlog.getGroups(
user.getUserId(), paging);
} catch (LibException e) {
Logger.debug(TAG, "Task", e);
resultMsg = ResourceBook.getResultCodeValue(e.getErrorCode(), context);
paging.moveToPrevious();
}
if (ListUtil.isNotEmpty(groupList)) {
GroupDao dao = new GroupDao(context);
hasChange = dao.merge(account, groupList);
}
return groupList;
}
@Override
protected void onPostExecute(List<Group> result) {
if (adapter.getCount() <= 0 || hasChange) {
adapter.addGroupList(result);
}
if (resultMsg != null) {
Toast.makeText(context, resultMsg, Toast.LENGTH_LONG).show();
}
}
}