package com.openfire.view;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.partynetwork.dataprovider.DataProvider.IJsonResultListener;
import com.partynetwork.dataprovider.json.NetworkEntity;
import com.partynetwork.dataprovider.json.struct.Personal_getUserInfoRequest;
import com.partynetwork.dataprovider.json.struct.Personal_getUserInfoResponse;
import com.partynetwork.dataprovider.util.OpenfireUtil;
import com.partynetwork.iparty.R;
import com.partynetwork.iparty.app.AppContext;
import com.partynetwork.iparty.app.common.BitmapManager;
import com.partynetwork.iparty.app.entities.ChartHisBean;
import com.partynetwork.iparty.app.entities.CommonUser;
import com.partynetwork.iparty.app.manager.UserManager;
import com.partynetwork.iparty.info.UserInfo;
public class RecentChartAdapter extends BaseAdapter implements
IJsonResultListener {
private LayoutInflater mInflater;
private List<ChartHisBean> inviteUsers;
private Context context;
private BitmapManager bitmapManager;
public RecentChartAdapter(Context context, List<ChartHisBean> inviteUsers) {
this.context = context;
bitmapManager = new BitmapManager();
mInflater = LayoutInflater.from(context);
this.inviteUsers = inviteUsers;
}
public void setNoticeList(List<ChartHisBean> inviteUsers) {
this.inviteUsers = inviteUsers;
}
@Override
public int getCount() {
return inviteUsers.size();
}
@Override
public Object getItem(int position) {
return inviteUsers.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ChartHisBean notice = (ChartHisBean) getItem(position);
Integer ppCount = notice.getNoticeSum();
ViewHolderx holder = null;
if (convertView == null) {
holder = new ViewHolderx();
if (notice.getNoticeType() == ChartHisBean.SYS_MSG) {
convertView = mInflater.inflate(R.layout.message_item_system,
null);
} else {
convertView = mInflater.inflate(R.layout.message_item_chat,
null);
holder.newContent = (TextView) convertView
.findViewById(R.id.content);
}
holder.newTitle = (TextView) convertView.findViewById(R.id.title);
holder.itemIcon = (ImageView) convertView.findViewById(R.id.icon);
holder.newDate = (TextView) convertView.findViewById(R.id.time);
holder.paopao = (TextView) convertView.findViewById(R.id.number);
convertView.setTag(holder);
} else {
holder = (ViewHolderx) convertView.getTag();
}
if (notice.getNoticeType() == ChartHisBean.SYS_MSG) {
holder.newTitle.setText(notice.getTitle());
} else {
String userId = OpenfireUtil.getUserNameByJid(notice.getFrom());
CommonUser user = null;
user = UserManager.getInstance(context).getUserbyId(userId);
if (user != null) {
bitmapManager
.loadBitmap(user.getUserHeadUrl(), holder.itemIcon);
holder.newTitle.setText(user.getUserName());
} else {
// 发送请求信息接口
Personal_getUserInfoRequest request = new Personal_getUserInfoRequest();
request.setUserId(Integer.parseInt(userId));
AppContext.getInstance().getmDataProvider()
.getJsonFromNetwork(request, this);
}
}
holder.newTitle.setTag(notice.getFrom());
holder.newContent.setText(notice.getContent());
holder.newDate.setText(notice.getNoticeTime().substring(5, 15));
if (ppCount != null && ppCount > 0) {
holder.paopao.setText(ppCount + "");
holder.paopao.setVisibility(View.VISIBLE);
holder.newDate.setVisibility(View.GONE);
} else {
holder.paopao.setVisibility(View.GONE);
holder.newDate.setVisibility(View.VISIBLE);
}
return convertView;
}
public class ViewHolderx {
public ImageView itemIcon;
public TextView newTitle;
public TextView newContent;
public TextView newDate;
public TextView paopao;
}
@Override
public void onNetworkRequest() {
// TODO 自动生成的方法存根
}
@Override
public void onResultSuccess(NetworkEntity entity) {
if (entity.getRequest().getAction()
.equals(new Personal_getUserInfoRequest().getAction())) {
Personal_getUserInfoResponse infoResponse = (Personal_getUserInfoResponse) entity
.getResponse();
UserInfo info = infoResponse.getDetails();
if (info != null) {
CommonUser user = new CommonUser();
user.setUserAge(info.getUserAge());
user.setUserHeadUrl(info.getUserHeadUrl());
user.setUserId(info.getUserId());
user.setUserName(info.getUserName());
user.setUserSex(info.getUserSex());
user.setUserState(info.getUserState());
UserManager.getInstance(context).saveOrUpdateUser(user);
notifyDataSetChanged();
}
}
}
@Override
public void onResultFail(String result) {
// TODO 自动生成的方法存根
}
}