package com.kaixin.android.menu;
import java.io.InputStream;
import org.json.JSONArray;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.kaixin.android.KXApplication;
import com.kaixin.android.R;
import com.kaixin.android.common.Constants;
import com.kaixin.android.result.FriendsBirthdayResult;
import com.kaixin.android.result.GiftResult;
import com.kaixin.android.ui.base.FlipperLayout.OnOpenListener;
import com.kaixin.android.ui.base.MyGridView;
import com.kaixin.android.ui.base.MyListView;
import com.kaixin.android.utils.CommonUtils;
import com.kaixin.android.utils.ImageUtil;
import com.kaixin.android.utils.TextUtil;
import com.nostra13.universalimageloader.core.ImageLoader;
/**
* 菜单礼物类
*
* @author gyz
*
*/
public class Gifts {
private Context mContext;
private KXApplication mKXApplication;
private View mGifts;
private Button mMenu;
private Button mGift;
private ImageView mMore;
private MyGridView mDisplay;
private MyListView mFriendsList;
private OnOpenListener mOnOpenListener;
public Gifts(Context context, KXApplication application) {
mContext = context;
mKXApplication = application;
mGifts = LayoutInflater.from(context).inflate(R.layout.gifts, null);
findViewById();
setListener();
init();
}
private void findViewById() {
mMenu = (Button) mGifts.findViewById(R.id.gifts_menu);
mGift = (Button) mGifts.findViewById(R.id.gifts_gift);
mMore = (ImageView) mGifts.findViewById(R.id.gifts_more);
mDisplay = (MyGridView) mGifts.findViewById(R.id.gifts_display);
mFriendsList = (MyListView) mGifts
.findViewById(R.id.gifts_friends_list);
if(!CommonUtils.isNetWorkConnected(mKXApplication)){
mGifts.findViewById(R.id.warnning_layout).setVisibility(View.VISIBLE);
}else{
mGifts.findViewById(R.id.warnning_layout).setVisibility(View.GONE);
}
}
private void setListener() {
mMenu.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (mOnOpenListener != null) {
mOnOpenListener.open();
}
}
});
mGift.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// 暂时不做任何操作
}
});
mMore.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// 暂时不做任何操作
}
});
}
private void init() {
// 获取礼物数据
getGifts();
// 获取好友生日数据
getFriendsBirthday();
// 添加适配器
mDisplay.setAdapter(new GiftAdapter());
mFriendsList.setAdapter(new BirthdayAdapter());
}
/**
* 获取礼物数据
*/
private void getGifts() {
if (mKXApplication.mGiftResults.isEmpty()) {
InputStream inputStream;
try {
inputStream = mContext.getAssets().open("data/gifts.KX");
String json = new TextUtil(mKXApplication)
.readTextFile(inputStream);
JSONArray array = new JSONArray(json);
GiftResult result = null;
for (int i = 0; i < array.length(); i++) {
result = new GiftResult();
result.setGid(array.getJSONObject(i).getString("gid"));
result.setName(array.getJSONObject(i).getString("name"));
result.setContent(array.getJSONObject(i).getString(
"content"));
mKXApplication.mGiftResults.add(result);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 获取好友生日数据
*/
private void getFriendsBirthday() {
if (mKXApplication.mMyFriendsBirthdayResults.isEmpty()) {
InputStream inputStream;
try {
inputStream = mContext.getAssets().open(
"data/my_friendsbirthday.KX");
String json = new TextUtil(mKXApplication)
.readTextFile(inputStream);
JSONArray array = new JSONArray(json);
FriendsBirthdayResult result = null;
for (int i = 0; i < array.length(); i++) {
result = new FriendsBirthdayResult();
result.setUid(array.getJSONObject(i).getString("uid"));
result.setName(array.getJSONObject(i).getString("name"));
result.setAvatar(array.getJSONObject(i).getInt("avatar"));
result.setBirthday_date(array.getJSONObject(i).getString(
"birthday_date"));
mKXApplication.mMyFriendsBirthdayResults.add(result);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
private class GiftAdapter extends BaseAdapter {
public int getCount() {
return 8;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(
R.layout.gifts_item, null);
holder = new ViewHolder();
holder.image = (ImageView) convertView
.findViewById(R.id.gifts_item_image);
holder.title = (TextView) convertView
.findViewById(R.id.gifts_item_title);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
GiftResult result = mKXApplication.mGiftResults.get(position);
holder.image.setImageBitmap(mKXApplication.getGift(result.getGid()
+ ".jpg"));
holder.title.setText(result.getName());
return convertView;
}
class ViewHolder {
ImageView image;
TextView title;
}
}
private class BirthdayAdapter extends BaseAdapter {
public int getCount() {
return mKXApplication.mMyFriendsBirthdayResults.size();
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(
R.layout.gifts_birthday_item, null);
holder = new ViewHolder();
holder.avatar = (ImageView) convertView
.findViewById(R.id.gifts_birthday_item_avatar);
holder.name = (TextView) convertView
.findViewById(R.id.gifts_birthday_item_name);
holder.date = (TextView) convertView
.findViewById(R.id.gifts_birthday_item_date);
holder.send = (Button) convertView
.findViewById(R.id.gifts_birthday_item_send);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
FriendsBirthdayResult result = mKXApplication.mMyFriendsBirthdayResults
.get(position);
// holder.avatar.setImageBitmap(mKXApplication.getAvatar(result
// .getAvatar()));
ImageLoader.getInstance().displayImage(Constants.getImageUrl() + result.getAvatar(), holder.avatar, ImageUtil.getOption());
holder.name.setText(result.getName());
holder.date.setText(result.getBirthday_date());
holder.send.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
}
});
return convertView;
}
class ViewHolder {
ImageView avatar;
TextView name;
TextView date;
Button send;
}
}
public View getView() {
return mGifts;
}
public void setOnOpenListener(OnOpenListener onOpenListener) {
mOnOpenListener = onOpenListener;
}
}