package com.fanxin.app.fx; import java.util.HashMap; import java.util.Map; import com.fanxin.app.Constant; import com.fanxin.app.MYApplication; import com.fanxin.app.R; import com.fanxin.app.activity.BaseActivity; import com.fanxin.app.db.UserDao; import com.fanxin.app.domain.User; import com.fanxin.app.fx.others.LoadDataFromServer; import com.fanxin.app.fx.others.LoadUserAvatar; import com.fanxin.app.fx.others.LoadDataFromServer.DataCallBack; import com.fanxin.app.fx.others.LoadUserAvatar.ImageDownloadedCallBack; import com.fanxin.app.fx.others.LocalUserInfo; import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import com.easemob.util.HanziToPinyin; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; public class UserInfoActivity extends BaseActivity { private LoadUserAvatar avatarLoader; boolean is_friend = false; String hxid; @SuppressLint("SdCardPath") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_userinfo); avatarLoader = new LoadUserAvatar(this, "/sdcard/fanxin/"); Button btn_sendmsg = (Button) this.findViewById(R.id.btn_sendmsg); ImageView iv_avatar = (ImageView) this.findViewById(R.id.iv_avatar); ImageView iv_sex = (ImageView) this.findViewById(R.id.iv_sex); TextView tv_name = (TextView) this.findViewById(R.id.tv_name); final String nick = this.getIntent().getStringExtra("nick"); final String avatar = this.getIntent().getStringExtra("avatar"); String sex = this.getIntent().getStringExtra("sex"); hxid = this.getIntent().getStringExtra("hxid"); if (nick != null && avatar != null && sex != null && hxid != null) { tv_name.setText(nick); if (sex.equals("1")) { iv_sex.setImageResource(R.drawable.ic_sex_male); } else if (sex.equals("2")) { iv_sex.setImageResource(R.drawable.ic_sex_female); } else { iv_sex.setVisibility(View.GONE); } if (MYApplication.getInstance().getContactList() .containsKey(hxid)) { is_friend = true; btn_sendmsg.setText("发消息"); } showUserAvatar(iv_avatar, avatar); } btn_sendmsg.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(hxid.equals(LocalUserInfo.getInstance(getApplicationContext()).getUserInfo("hxid"))){ Toast.makeText(getApplicationContext(), "不能和自己聊天。。", Toast.LENGTH_SHORT).show(); return ; } if (is_friend) { Intent intent = new Intent(); intent.putExtra("userId", hxid); intent.putExtra("userAvatar", avatar); intent.putExtra("userNick", nick); intent.setClass(UserInfoActivity.this, ChatActivity.class); startActivity(intent); } else { Intent intent = new Intent(); intent.putExtra("hxid", hxid); // intent.putExtra("avatar", avatar); // intent.putExtra("nick", nick); intent.setClass(UserInfoActivity.this, AddFriendsFinalActivity.class); startActivity(intent); } } }); Button btn_new= (Button) this.findViewById(R.id.btn_new); btn_new.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(hxid.equals(LocalUserInfo.getInstance(getApplicationContext()).getUserInfo("hxid"))){ Toast.makeText(getApplicationContext(), "不能和自己聊天。。", Toast.LENGTH_SHORT).show(); return ; } Intent intent = new Intent(); intent.putExtra("userId", hxid); intent.putExtra("userNick", nick); intent.putExtra("userAvatar", avatar); intent.setClass(UserInfoActivity.this, ChatActivity.class); startActivity(intent); } }); refresh(); } private void showUserAvatar(ImageView iamgeView, String avatar) { final String url_avatar = Constant.URL_Avatar + avatar; iamgeView.setTag(url_avatar); if (url_avatar != null && !url_avatar.equals("")) { Bitmap bitmap = avatarLoader.loadImage(iamgeView, url_avatar, new ImageDownloadedCallBack() { @Override public void onImageDownloaded(ImageView imageView, Bitmap bitmap) { if (imageView.getTag() == url_avatar) { imageView.setImageBitmap(bitmap); } } }); if (bitmap != null) iamgeView.setImageBitmap(bitmap); } } public void back(View view) { finish(); } @SuppressLint("DefaultLocale") protected void setUserHearder(String username, User user) { String headerName = null; if (!TextUtils.isEmpty(user.getNick())) { headerName = user.getNick(); } else { headerName = user.getUsername(); } headerName = headerName.trim(); if (username.equals(Constant.NEW_FRIENDS_USERNAME)) { user.setHeader(""); } else if (Character.isDigit(headerName.charAt(0))) { user.setHeader("#"); } else { user.setHeader(HanziToPinyin.getInstance() .get(headerName.substring(0, 1)).get(0).target.substring(0, 1).toUpperCase()); char header = user.getHeader().toLowerCase().charAt(0); if (header < 'a' || header > 'z') { user.setHeader("#"); } } } private void refresh(){ Map<String, String> map = new HashMap<String, String>(); map.put("uid", hxid); LoadDataFromServer task = new LoadDataFromServer( UserInfoActivity.this, Constant.URL_Search_User, map); task.getData(new DataCallBack() { @Override public void onDataCallBack(JSONObject data) { try { int code = data.getInteger("code"); if (code == 1) { JSONObject json = data.getJSONObject("user"); String hxid = json.getString("hxid"); String fxid = json.getString("fxid"); String nick = json.getString("nick"); String avatar = json.getString("avatar"); String sex = json.getString("sex"); String region = json.getString("region"); String sign = json.getString("sign"); String tel = json.getString("tel"); User user = new User(); user.setFxid(fxid); user.setUsername(hxid); user.setBeizhu(""); user.setNick(nick); user.setRegion(region); user.setSex(sex); user.setTel(tel); user.setSign(sign); user.setAvatar(avatar); setUserHearder(hxid, user); UserDao dao = new UserDao(UserInfoActivity.this); dao.saveContact(user); MYApplication.getInstance().getContactList().put(hxid, user); } } catch (JSONException e) { e.printStackTrace(); } } }); } }