/**
*
*/
package com.keju.maomao.activity.friendpersonalcenter;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONException;
import org.json.JSONObject;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import com.keju.maomao.AsyncImageLoader;
import com.keju.maomao.Constants;
import com.keju.maomao.R;
import com.keju.maomao.SystemException;
import com.keju.maomao.AsyncImageLoader.ImageCallback;
import com.keju.maomao.activity.base.BaseActivity;
import com.keju.maomao.bean.FriendPersonalCentreBean;
import com.keju.maomao.bean.ResponseBean;
import com.keju.maomao.helper.BusinessHelper;
import com.keju.maomao.util.NetUtil;
import com.keju.maomao.util.SharedPrefUtil;
/**
* 发送礼物界面
*
* @author zhuoyong
* @data 创建时间:2013-12-16 下午5:01:13
*/
public class SendGiftActivity extends BaseActivity implements OnClickListener {
private ImageButton ibLeft;
private Button btnRight;
private TextView tvTitle;
private ArrayList<FriendPersonalCentreBean> giftBean = new ArrayList<FriendPersonalCentreBean>();
private GridView gvGife;
private GiftAdapter adapter;
Display display;
private int receiverId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.send_gift_list);
receiverId = (int) getIntent().getExtras().getInt(Constants.EXTRA_DATA);
display = this.getWindowManager().getDefaultDisplay();
findView();
fillData();
}
private void findView() {
ibLeft = (ImageButton) this.findViewById(R.id.ibLeft);
btnRight = (Button) this.findViewById(R.id.btnRight);
tvTitle = (TextView) this.findViewById(R.id.tvTitle);
gvGife = (GridView) findViewById(R.id.gvGife);
}
private void fillData() {
ibLeft.setImageResource(R.drawable.ic_btn_left);
ibLeft.setOnClickListener(this);
btnRight.setOnClickListener(this);
adapter = new GiftAdapter();
gvGife.setAdapter(adapter);
tvTitle.setText("送个小礼");
if (NetUtil.checkNet(SendGiftActivity.this)) {
new GetGiftTask().execute();
} else {
showShortToast(R.string.NoSignalException);
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.ibLeft:
finish();
break;
default:
break;
}
}
/**
* 获取礼物
*
* */
public class GetGiftTask extends AsyncTask<Void, Void, ResponseBean<FriendPersonalCentreBean>> {
@Override
protected void onPreExecute() {
super.onPreExecute();
showPd(R.string.loading);
}
@Override
protected ResponseBean<FriendPersonalCentreBean> doInBackground(Void... params) {
try {
return new BusinessHelper().getGiftList();
} catch (SystemException e) {
}
return null;
}
@Override
protected void onPostExecute(ResponseBean<FriendPersonalCentreBean> result) {
super.onPostExecute(result);
dismissPd();
if (result != null) {
if (result.getStatus() != Constants.REQUEST_FAILD) {
List<FriendPersonalCentreBean> tempList = result.getObjList();
giftBean.addAll(tempList);
if (tempList.size() > 0) {
adapter.notifyDataSetChanged();
}
}
} else {
showShortToast(R.string.connect_server_exception);
}
}
}
/**
* 礼物图片显示适配
*
* @author zhouyong
*
*/
private class GiftAdapter extends BaseAdapter {
@Override
public int getCount() {
return giftBean.size();
}
@Override
public Object getItem(int position) {
return giftBean.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final FriendPersonalCentreBean bean = giftBean.get(position);
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
convertView = getLayoutInflater().inflate(R.layout.send_gift_item, null);
holder.ivGiftPhoto = (ImageView) convertView.findViewById(R.id.ivGiftPhoto);
holder.tvGiftName = (TextView) convertView.findViewById(R.id.tvGiftName);
holder.tvIntegral = (TextView) convertView.findViewById(R.id.tvIntegral);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
// final ViewHolder holderUse = holder;
int itemWidth = (display.getWidth() - 4 * 10) / 4;
android.view.ViewGroup.LayoutParams param = holder.ivGiftPhoto.getLayoutParams();
param.width = itemWidth;
param.height = itemWidth;
holder.tvGiftName.setText(bean.getName());
holder.tvIntegral.setText(bean.getIntegral()+"积分");
holder.ivGiftPhoto.setLayoutParams(param);
String giftUrl = bean.getGiftPhoto();
holder.ivGiftPhoto.setTag(giftUrl);
Drawable cacheDrawble = AsyncImageLoader.getInstance().loadDrawable(giftUrl, new ImageCallback() {
@Override
public void imageLoaded(Drawable imageDrawable, String imageUrl) {
ImageView image = (ImageView) gvGife.findViewWithTag(imageUrl);
if (image != null) {
if (imageDrawable != null) {
image.setImageDrawable(imageDrawable);
GiftAdapter.this.notifyDataSetChanged();
} else {
image.setImageResource(R.drawable.ic_default);
}
}
}
});
if (cacheDrawble != null) {
holder.ivGiftPhoto.setImageDrawable(cacheDrawble);
} else {
holder.ivGiftPhoto.setImageResource(R.drawable.ic_default);
}
holder.ivGiftPhoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (NetUtil.checkNet(SendGiftActivity.this)) {
new SendGiftTask(bean.getGiftId()).execute();
} else {
showShortToast(R.string.NoSignalException);
}
}
});
return convertView;
}
}
class ViewHolder {
private ImageView ivGiftPhoto;
private TextView tvGiftName, tvIntegral;
}
/***
*
* 发送礼物接口
*
*/
private class SendGiftTask extends AsyncTask<Void, Void, JSONObject> {
private int giftId;
/**
* @param giftId
*/
public SendGiftTask(int giftId) {
this.giftId = giftId;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
showPd(R.string.loading);
}
@Override
protected JSONObject doInBackground(Void... params) {
int senderId = SharedPrefUtil.getUid(SendGiftActivity.this);
try {
return new BusinessHelper().sendGift(senderId, receiverId, giftId);
} catch (SystemException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(JSONObject result) {
super.onPostExecute(result);
dismissPd();
if (result != null) {
try {
if (result.getInt("status") == Constants.REQUEST_SUCCESS) {
showShortToast("发送成功");
} else {
showShortToast("发送失败");
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
showShortToast(R.string.connect_server_exception);
}
}
}
}