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 自动生成的方法存根 } }