package com.kaixin.android.activity;
import java.util.HashMap;
import java.util.Map;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.TypedValue;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.kaixin.android.KXActivity;
import com.kaixin.android.R;
import com.kaixin.android.common.Constants;
import com.kaixin.android.result.GiftResult;
import com.kaixin.android.utils.ActivityForResultUtil;
import com.kaixin.android.utils.TextUtil;
import com.nostra13.universalimageloader.core.ImageLoader;
/**
* 送礼物类
*
* @author gyz
*
*/
public class SendGiftActivity extends KXActivity {
private Button mCancel;
private Button mHandsel;
private LinearLayout mFriendsList;
private EditText mMessage;
private ImageView mMessageLine1;
private ImageView mMessageLine2;
private ImageView mAddGift;
private CheckBox mSendType;
private CheckBox mSendSMS;
// 是否已经选择礼物
private boolean mIsSelectGift;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sendgift_activity);
findViewById();
setListener();
init();
}
private void findViewById() {
mCancel = (Button) findViewById(R.id.sendgift_cancel);
mHandsel = (Button) findViewById(R.id.sendgift_handsel);
mFriendsList = (LinearLayout) findViewById(R.id.sendgift_friends_list);
mMessage = (EditText) findViewById(R.id.sendgift_message);
mMessageLine1 = (ImageView) findViewById(R.id.sendgift_message_line1);
mMessageLine2 = (ImageView) findViewById(R.id.sendgift_message_line2);
mAddGift = (ImageView) findViewById(R.id.sendgift_add_gift);
mSendType = (CheckBox) findViewById(R.id.sendgift_send_type);
mSendSMS = (CheckBox) findViewById(R.id.sendgift_send_sms);
}
private void setListener() {
mCancel.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//关闭当前界面
finish();
}
});
mHandsel.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//判断是否显示礼物,如果选择了则显示发送成功并关闭当前界面否则则显示对话框提示
if (mIsSelectGift) {
Toast.makeText(SendGiftActivity.this, "礼物发送成功",
Toast.LENGTH_SHORT).show();
finish();
} else {
new AlertDialog.Builder(SendGiftActivity.this)
.setTitle("OOXX")
.setIcon(android.R.drawable.ic_dialog_alert)
.setMessage("请选择礼物")
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int which) {
dialog.dismiss();
}
}).create().show();
}
}
});
mMessage.addTextChangedListener(new TextWatcher() {
//当文本修改时调用
public void onTextChanged(CharSequence s, int start, int before,
int count) {
//根据内容的行数添加文本线
int lineCount = mMessage.getLineCount();
switch (lineCount) {
case 1:
mMessageLine2.setVisibility(View.GONE);
break;
case 2:
mMessageLine2.setVisibility(View.VISIBLE);
break;
}
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void afterTextChanged(Editable s) {
}
});
mFriendsList.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//跳转到选择好友
startActivityForResult(new Intent(SendGiftActivity.this,
SelectFriendsActivity.class),
ActivityForResultUtil.REQUESTCODE_SELECTFRIENDS);
}
});
mAddGift.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//跳转到选择礼物
startActivityForResult(new Intent(SendGiftActivity.this,
SelectGiftActivity.class),
ActivityForResultUtil.REQUESTCODE_SELECTGIFT);
}
});
mSendType.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// 暂时不做任何操作
}
});
mSendSMS.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// 暂时不做任何操作
}
});
}
private void init() {
//初始化显示一条线
mMessageLine1.setVisibility(View.VISIBLE);
mMessageLine2.setVisibility(View.GONE);
//获取当前接收礼物的好友的ID、姓名以及头像
String uid = getIntent().getStringExtra("uid");
String name = getIntent().getStringExtra("name");
int avatar = getIntent().getIntExtra("avatar", -1);
//添加到送礼物列表中
Map<String, String> map = new HashMap<String, String>();
map.put("uid", uid);
map.put("name", name);
map.put("avatar", String.valueOf(avatar));
mKXApplication.mGiftFriendsList.put(uid, map);
// 更新头像列表
initFriendsList();
}
/**
* 修改头像框显示内容
*/
private void initFriendsList() {
mFriendsList.removeAllViews();
for (Map.Entry<String, Map<String, String>> entry : mKXApplication.mGiftFriendsList
.entrySet()) {
ImageView imageView = getImageView();
// imageView.setImageBitmap(mKXApplication.getAvatar(Integer
// .parseInt(entry.getValue().get("avatar"))));
ImageLoader.getInstance().displayImage(Constants.getImageUrl() + entry.getValue().get("avatar"), imageView);
mFriendsList.addView(imageView);
mFriendsList.invalidate();
}
ImageView imageView = getImageView();
imageView.setImageBitmap(BitmapFactory.decodeResource(getResources(),
R.drawable.gifts_add));
mFriendsList.addView(imageView);
mFriendsList.invalidate();
}
/**
* 获取头像框控件
*
* @return
*/
private ImageView getImageView() {
ImageView imageView = new ImageView(SendGiftActivity.this);
int widthAndHeight = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 30, getResources()
.getDisplayMetrics());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
widthAndHeight, widthAndHeight);
imageView.setLayoutParams(params);
imageView.setPadding(4, 4, 4, 4);
return imageView;
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case ActivityForResultUtil.REQUESTCODE_SELECTGIFT:
if (resultCode == RESULT_OK) {
//获取礼物成功后,显示获取的礼物的内容和显示图片
mIsSelectGift = true;
GiftResult result = data.getParcelableExtra("result");
mAddGift.setImageBitmap(mKXApplication.getGift(result.getGid()
+ ".jpg"));
mMessage.setText(new TextUtil(mKXApplication).replace(result
.getContent()));
}
break;
case ActivityForResultUtil.REQUESTCODE_SELECTFRIENDS:
if (resultCode == RESULT_OK) {
// 更新头像列表
initFriendsList();
}
break;
}
}
protected void onDestroy() {
super.onDestroy();
mKXApplication.mGiftFriendsList.clear();
}
}