package com.ccxt.whl.activity;
import java.util.List;
import java.util.Map;
import org.apache.http.Header;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.ccxt.whl.Constant;
import com.ccxt.whl.DemoApplication;
import com.ccxt.whl.R;
import com.ccxt.whl.db.UserDao;
import com.ccxt.whl.domain.User;
import com.ccxt.whl.gushi.User_gushi_Activity;
import com.ccxt.whl.utils.CommonUtils;
import com.ccxt.whl.utils.DeviceUuidFactory;
import com.ccxt.whl.utils.HttpRestClient;
import com.ccxt.whl.utils.ImageOptions;
import com.ccxt.whl.utils.JSONHelper;
import com.ccxt.whl.utils.JsonToMapList;
import com.easemob.chat.EMChatManager;
import com.easemob.chat.EMContactManager;
import com.easemob.chat.EMConversation;
import com.easemob.chat.EMMessage;
import com.easemob.chat.TextMessageBody;
import com.easemob.exceptions.EaseMobException;
import com.loopj.android.http.BaseJsonHttpResponseHandler;
import com.loopj.android.http.RequestParams;
import com.nostra13.universalimageloader.core.ImageLoader;
/**
* 设置界面
*
* @author Administrator
*
*/
public class Userinfo extends BaseActivity implements OnClickListener {
/**********************************新增用户信息*****************************************/
/**
* 用户头像imageView
*/
private ImageView iv_userinfo_photo;
/**
* 用户昵称
*/
private TextView tv_userinfo_nicheng;
/**
* 用户性别
*/
private TextView tv_userinfo_xingbie;
/**
* 用户年龄
*/
private TextView tv_userinfo_nianling;
/**
* 用户地区
*/
private TextView tv_userinfo_chengshi;
/**
* 用户职业
*/
private TextView tv_userinfo_zhiye;
/**
* 用户签名
*/
private TextView tv_userinfo_qianming;
/**
* 用户在哪动态
*/
private TextView tv_userinfo_zainadongtai;
private String UserPic = null;
private String UserNickName = null;
private String UserSex = null;
private String UserAge = null;
private String UserArea = null;
private String UserZaina = null;
private String UserZhiye = null;
private String UserQianming = null;
private Button btn_huihua;
private Button btn_add_f;
private Button btn_lahei;
private Button btn_jubao;
private String userId = null;//用户唯一id
public static final int REQUEST_CODE_ADD_TO_CONTACT = 226;
public static final int REQUEST_CODE_ADD_TO_BLACKLIST = 225;
private ProgressDialog progressDialog;
private LinearLayout about_gushi;
private TextView ta_tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_userinfo);
iv_userinfo_photo = (ImageView)findViewById(R.id.iv_userinfo_photo);
tv_userinfo_nicheng = (TextView)findViewById(R.id.tv_userinfo_nicheng);
tv_userinfo_xingbie = (TextView)findViewById(R.id.tv_userinfo_xingbie);
tv_userinfo_nianling = (TextView)findViewById(R.id.tv_userinfo_nianling);
tv_userinfo_chengshi = (TextView)findViewById(R.id.tv_userinfo_chengshi);
tv_userinfo_zainadongtai = (TextView)findViewById(R.id.tv_userinfo_zainadongtai);
//--
tv_userinfo_zhiye = (TextView)findViewById(R.id.tv_userinfo_zhiye);
tv_userinfo_qianming = (TextView)findViewById(R.id.tv_userinfo_qianming);
btn_huihua = (Button)findViewById(R.id.btn_huihua);
btn_add_f = (Button)findViewById(R.id.btn_add_f);
btn_lahei = (Button)findViewById(R.id.btn_lahei);
btn_jubao = (Button)findViewById(R.id.btn_jubao);
about_gushi = (LinearLayout)findViewById(R.id.about_gushi);
ta_tv = (TextView)findViewById(R.id.ta_tv);
userId = getIntent().getStringExtra("userId");
//判断是否是自己
if(userId.equals(DemoApplication.getInstance().getUser())){
ta_tv.setText("我的故事");
btn_huihua.setVisibility(View.GONE);
btn_add_f.setVisibility(View.GONE);
btn_lahei.setVisibility(View.GONE);
btn_jubao.setVisibility(View.GONE);
}
//判断是否是好友,如果是就把加好友隐藏
if(DemoApplication.getInstance().getContactList().containsKey(userId)){
btn_add_f.setVisibility(View.GONE);
}
//判断是否是小客服或者是管理员,如果是就把加好友 和拉黑隐藏
if(userId.equals(Constant.KEFU)||userId.equals("admin")){
btn_add_f.setVisibility(View.GONE);
btn_lahei.setVisibility(View.GONE);
btn_jubao.setVisibility(View.GONE);
}
about_gushi.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
startActivity(new Intent(Userinfo.this , User_gushi_Activity.class).putExtra("userId", userId));
}
});
UserPic = getIntent().getStringExtra("headurl");
UserNickName = getIntent().getStringExtra("nickname");
UserSex = getIntent().getStringExtra("UserSex");
UserAge = getIntent().getStringExtra("UserAge");
UserArea = getIntent().getStringExtra("UserArea");
UserZaina = getIntent().getStringExtra("UserZaina");
if(CommonUtils.isNullOrEmpty(UserSex)&&CommonUtils.isNullOrEmpty(UserAge)
&&CommonUtils.isNullOrEmpty(UserArea)&&CommonUtils.isNullOrEmpty(UserZaina)
||CommonUtils.isNullOrEmpty(UserZhiye)||CommonUtils.isNullOrEmpty(UserQianming)){
RequestParams params = new RequestParams();
params.add("f_user", DemoApplication.getInstance().getUser());
params.add("user", userId);
DeviceUuidFactory uuid = new DeviceUuidFactory(this);
String uid = uuid.getDeviceUuid().toString();
params.add("uid", uid);//新增设备请求
HttpRestClient.get(Constant.USER_URL_I, params, new BaseJsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers,
String rawJsonResponse, Object response) {
// TODO Auto-generated method stub
if(!CommonUtils.isNullOrEmpty(rawJsonResponse)){
Map<String, Object> lm = JsonToMapList.getMap(rawJsonResponse);
if(lm.get("status").toString() != null && lm.get("status").toString().equals("yes")){
if(!CommonUtils.isNullOrEmpty(lm.get("result").toString())){
Map<String, Object> result = JsonToMapList.getMap(lm.get("result").toString());
UserNickName = result.get("nickname").toString();
UserPic = result.get("headurl").toString();
UserSex = result.get("sex").toString();
UserAge = result.get("age").toString();
UserArea = result.get("city").toString();
UserZaina = result.get("zaina").toString();
UserZhiye = result.get("zhiye").toString();
UserQianming = result.get("qianming").toString();
ImageLoader.getInstance().displayImage(UserPic, iv_userinfo_photo, ImageOptions.getOptions());
tv_userinfo_nicheng.setText(UserNickName);
tv_userinfo_xingbie.setText(UserSex.equals("1")? "男":"女");
tv_userinfo_nianling.setText(UserAge);
tv_userinfo_chengshi.setText(UserArea);
tv_userinfo_zainadongtai.setText(UserZaina);
tv_userinfo_zhiye.setText(UserZhiye);
tv_userinfo_qianming.setText(UserQianming);
//Log.d(TAG,"nickname_tmp and headurl_tmp "+nickname_tmp+" "+headurl_tmp);
/*User user_temp = new User();
user_temp.setUsername(user.getUsername());
user_temp.setNick(nickname_tmp);
user_temp.setHeaderurl(headurl_tmp);
dao.saveContact(user_temp);*/
}
}
}
}
@Override
public void onFailure(int statusCode, Header[] headers,
Throwable throwable, String rawJsonData,
Object errorResponse) {
// TODO Auto-generated method stub
}
@Override
protected Object parseResponse(String rawJsonData,
boolean isFailure) throws Throwable {
// TODO Auto-generated method stub
return null;
}
});
}else{
tv_userinfo_xingbie.setText(UserSex.equals("1")? "男":"女");
tv_userinfo_nianling.setText(UserAge);
tv_userinfo_chengshi.setText(UserArea);
tv_userinfo_zainadongtai.setText(UserZaina);
}
ImageLoader.getInstance().displayImage(UserPic, iv_userinfo_photo, ImageOptions.getOptions());
tv_userinfo_nicheng.setText(UserNickName);
btn_huihua.setOnClickListener(this);
btn_add_f.setOnClickListener(this);
btn_lahei.setOnClickListener(this);
btn_jubao.setOnClickListener(this);
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
switch (arg0.getId()) {
case R.id.btn_huihua:
Intent intent = new Intent(this, ChatActivity.class);
intent.putExtra("userId", userId);
/****缺少判断是否已经插入数据库****/
User local_user = new User();
local_user.setUsername(userId);
local_user.setNick(UserNickName);
local_user.setHeaderurl(UserPic);
UserDao userdao = new UserDao(this);
userdao.saveContact_m(local_user);
startActivity(intent);
break;
case R.id.btn_add_f:
Intent intent_add = new Intent(this, AlertDialog.class);
intent_add.putExtra("msg", "添加好友");
intent_add.putExtra("editTextShow", true);
intent_add.putExtra("cancel", true);
//intent.putExtra("position", position);
startActivityForResult(intent_add,Userinfo.REQUEST_CODE_ADD_TO_CONTACT);
break;
case R.id.btn_lahei:
Intent intent_del = new Intent(this, AlertDialog.class);
intent_del.putExtra("msg", "移入到黑名单?");
intent_del.putExtra("cancel", true);
//intent_del.putExtra("position", position);
startActivityForResult(intent_del,Userinfo.REQUEST_CODE_ADD_TO_BLACKLIST);
break;
case R.id.btn_jubao:
String username = DemoApplication.getInstance().getUser();
EMConversation conversation = EMChatManager.getInstance().getConversation(userId);//获取和对方通话消息的20条
String startMsgId = conversation.getLastMessage().getMsgId();
//System.out.println("startMsgId"+startMsgId);
int msgcount = conversation.getMsgCount();
List<EMMessage> messages ;
if(msgcount<20){
messages = conversation.loadMoreMsgFromDB(startMsgId, 20);
messages.add(conversation.getLastMessage()) ;
}else{
messages = conversation.loadMoreMsgFromDB(startMsgId, msgcount);
messages.add(conversation.getLastMessage()) ;
}
//System.out.println(JSONHelper.toJSON(messages));
//conversation.getLastMessage();
conversation.loadMoreMsgFromDB(startMsgId, 1);
/*****/
try {
EMContactManager.getInstance().addUserToBlackList(userId, true);
//Toast.makeText(getApplicationContext(), "移入黑名单成功", 0).show();
} catch (EaseMobException e) {
e.printStackTrace();
//Toast.makeText(getApplicationContext(), "移入黑名单失败", 0).show();
}
RequestParams params = new RequestParams();
params.add("f_user", username);
params.add("user", userId);
DeviceUuidFactory uuid = new DeviceUuidFactory(this);
String uid = uuid.getDeviceUuid().toString();
params.add("uid", uid);//新增设备请求
params.add("black_content",JSONHelper.toJSON(messages));//新增黑名单内容
HttpRestClient.get(Constant.USER_BLACK, params, new BaseJsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers,
String rawJsonResponse, Object response) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "举报成功", 0).show();
}
@Override
public void onFailure(int statusCode, Header[] headers,
Throwable throwable, String rawJsonData,
Object errorResponse) {
// TODO Auto-generated method stub
}
@Override
protected Object parseResponse(String rawJsonData, boolean isFailure)
throws Throwable {
// TODO Auto-generated method stub
return null;
}
});/**/
break;
default:
break;
}
}
/**
* onActivityResult
*/
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) { // 清空消息
if (requestCode == REQUEST_CODE_ADD_TO_CONTACT) { // 加好友
//EMMessage deleteMsg = (EMMessage) adapter.getItem(data.getIntExtra("position", -1));
String sendstr = data.getStringExtra("edittext");
if(CommonUtils.isNullOrEmpty(sendstr)){
sendstr = "打招呼";
}
//addUserToBlacklist(deleteMsg.getFrom());
addContact(userId,sendstr);
}else if(requestCode == REQUEST_CODE_ADD_TO_BLACKLIST){
//EMMessage deleteMsg = (EMMessage) adapter.getItem(data.getIntExtra("position", -1));
addUserToBlacklist(userId);
}
}
}
/**
* 添加contact
* @param view
*/
public void addContact(final String user ,final String msg){
//if(DemoApplication.getInstance().getUserName().equals(nameText.getText().toString())){
if(DemoApplication.getInstance().getUser().equals(user)){
startActivity(new Intent(this, AlertDialog.class).putExtra("msg", "不能添加自己"));
return;
}
if(DemoApplication.getInstance().getContactList().containsKey(user)){
startActivity(new Intent(this, AlertDialog.class).putExtra("msg", "此用户已是你的好友"));
return;
}
progressDialog = new ProgressDialog(this);
progressDialog.setMessage("正在发送请求...");
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.show();
new Thread(new Runnable() {
public void run() {
try {
//demo写死了个reason,实际应该让用户手动填入
EMContactManager.getInstance().addContact(user, msg);
runOnUiThread(new Runnable() {
public void run() {
progressDialog.dismiss();
Toast.makeText(getApplicationContext(), "发送请求成功,等待对方验证", 1).show();
}
});
} catch (final Exception e) {
runOnUiThread(new Runnable() {
public void run() {
progressDialog.dismiss();
Toast.makeText(getApplicationContext(), "请求添加好友失败:" + e.getMessage(), 1).show();
}
});
}
}
}).start();
}
/**
* 加入到黑名单
*
* @param username
*/
private void addUserToBlacklist(String username) {
try {
EMContactManager.getInstance().addUserToBlackList(username, true);
Toast.makeText(getApplicationContext(), "移入黑名单成功", 0).show();
} catch (EaseMobException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "移入黑名单失败", 0).show();
}
/*RequestParams params = new RequestParams();
params.add("f_user", DemoApplication.getInstance().getUser());
params.add("user", userId);
DeviceUuidFactory uuid = new DeviceUuidFactory(this);
String uid = uuid.getDeviceUuid().toString();
params.add("uid", uid);//新增设备请求
HttpRestClient.get(Constant.USER_BLACK, params, new BaseJsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers,
String rawJsonResponse, Object response) {
// TODO Auto-generated method stub
}
@Override
public void onFailure(int statusCode, Header[] headers,
Throwable throwable, String rawJsonData,
Object errorResponse) {
// TODO Auto-generated method stub
}
@Override
protected Object parseResponse(String rawJsonData, boolean isFailure)
throws Throwable {
// TODO Auto-generated method stub
return null;
}
});*/
}
/**
* 返回
*
* @param view
*/
public void back(View view) {
finish();
}
/****
*
* @param view
*/
public void onSendTxtMsg(String content) {
try {
//创建一个消息
EMMessage msg = EMMessage.createSendMessage(EMMessage.Type.TXT);
//设置消息的接收方
msg.setReceipt("bot");
//设置消息内容。本消息类型为文本消息。
msg.addBody(new TextMessageBody("我正在浏览你的主页"));
//发送消息
EMChatManager.getInstance().sendMessage(msg);
} catch (Exception e) {
e.printStackTrace();
}
}
}