|
|
@@ -22,12 +22,15 @@ import android.view.MenuItem;
|
|
|
import android.widget.TextView;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
+import com.android.volley.Response;
|
|
|
+import com.android.volley.VolleyError;
|
|
|
import com.ipaulpro.afilechooser.FileUtils;
|
|
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
|
|
import com.sk.weichat.AppConstant;
|
|
|
import com.sk.weichat.MyApplication;
|
|
|
import com.sk.weichat.R;
|
|
|
import com.sk.weichat.bean.Friend;
|
|
|
+import com.sk.weichat.bean.User;
|
|
|
import com.sk.weichat.bean.message.ChatMessage;
|
|
|
import com.sk.weichat.bean.message.XmppMessage;
|
|
|
import com.sk.weichat.broadcast.MsgBroadcast;
|
|
|
@@ -48,6 +51,10 @@ import com.sk.weichat.view.ChatBottomView.ChatBottomListener;
|
|
|
import com.sk.weichat.view.ChatContentView;
|
|
|
import com.sk.weichat.view.ChatContentView.MessageEventListener;
|
|
|
import com.sk.weichat.view.PullDownListView;
|
|
|
+import com.sk.weichat.volley.FastVolley;
|
|
|
+import com.sk.weichat.volley.ObjectResult;
|
|
|
+import com.sk.weichat.volley.Result;
|
|
|
+import com.sk.weichat.volley.StringJsonObjectRequest;
|
|
|
import com.sk.weichat.xmpp.CoreService;
|
|
|
import com.sk.weichat.xmpp.CoreService.CoreServiceBinder;
|
|
|
import com.sk.weichat.xmpp.ListenerManager;
|
|
|
@@ -57,7 +64,9 @@ import com.sk.weichat.xmpp.listener.MucListener;
|
|
|
|
|
|
import java.io.File;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.UUID;
|
|
|
|
|
|
/**
|
|
|
@@ -77,11 +86,11 @@ public class MucChatActivity extends ActionBackActivity
|
|
|
private Handler mHandler = new Handler();
|
|
|
private CoreService mService;
|
|
|
private boolean mHasSend = false;// 有没有发送过消息,发送过需要更新界面
|
|
|
-
|
|
|
+ private FastVolley mFastVolley;
|
|
|
private String mUseId;// 当前聊天对象的UserId
|
|
|
private String mNickName;// 当前聊天对象的昵称(房间就是房间名称)
|
|
|
private boolean isGroupChat;// 是否是群聊
|
|
|
-
|
|
|
+private static String MUC_ChAT_ACT="MucChatActivity";
|
|
|
private boolean isError = false;
|
|
|
|
|
|
private Friend mFriend;
|
|
|
@@ -278,6 +287,8 @@ public class MucChatActivity extends ActionBackActivity
|
|
|
if (isError) {
|
|
|
return;
|
|
|
}
|
|
|
+ if (mFastVolley!=null )
|
|
|
+ mFastVolley.cancelAll(MUC_ChAT_ACT);
|
|
|
mChatBottomView.recordCancel();
|
|
|
ListenerManager.getInstance().removeChatMessageListener(this);
|
|
|
ListenerManager.getInstance().removeMucListener(this);
|
|
|
@@ -630,19 +641,28 @@ public class MucChatActivity extends ActionBackActivity
|
|
|
mChatContentView.notifyDataSetInvalidated(true);
|
|
|
sendMessage(message);
|
|
|
}
|
|
|
+ private String objectId;
|
|
|
+ //TODO 发送卡片
|
|
|
+ public void sendCard(String ObjectId) {
|
|
|
+ this.objectId = ObjectId;
|
|
|
+// ChatMessage message = new ChatMessage();
|
|
|
+// message.setType(XmppMessage.TYPE_CARD);
|
|
|
+// message.setFromUserName(mLoginNickName);
|
|
|
+// message.setFromUserId(mLoginUserId);
|
|
|
+// message.setTimeSend(TimeUtils.sk_time_current_time());
|
|
|
+ //TODO 选择名片用户
|
|
|
+ Intent intent = new Intent(this, SelectCardActivity.class);
|
|
|
+// intent.setAction("");
|
|
|
+ startActivityForResult(intent, REQUEST_CODE_SELECT_CARD);
|
|
|
+ //TODO 以下在返回里写
|
|
|
+
|
|
|
+// message.setObjectId(ObjectId);
|
|
|
+// message.setContent(MyApplication.getInstance().mLoginUser.getSex() + "");// 性别
|
|
|
+ // 0表示女,1表示男
|
|
|
+// mChatMessages.add(message);
|
|
|
+// mChatContentView.notifyDataSetInvalidated(true);
|
|
|
+// sendMessage(message);
|
|
|
|
|
|
- public void sendCard() {
|
|
|
- ChatMessage message = new ChatMessage();
|
|
|
- message.setType(XmppMessage.TYPE_CARD);
|
|
|
- message.setFromUserName(mLoginNickName);
|
|
|
- message.setFromUserId(mLoginUserId);
|
|
|
- message.setTimeSend(TimeUtils.sk_time_current_time());
|
|
|
- message.setObjectId(mLoginUserId);
|
|
|
- message.setContent(MyApplication.getInstance().mLoginUser.getSex() + "");// 性别
|
|
|
- // 0表示女,1表示男
|
|
|
- mChatMessages.add(message);
|
|
|
- mChatContentView.notifyDataSetInvalidated(true);
|
|
|
- sendMessage(message);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -697,7 +717,7 @@ public class MucChatActivity extends ActionBackActivity
|
|
|
|
|
|
@Override
|
|
|
public void clickCard() {
|
|
|
- sendCard();
|
|
|
+ sendCard(mLoginUserId);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -775,7 +795,7 @@ public class MucChatActivity extends ActionBackActivity
|
|
|
private static final int REQUEST_CODE_SELECT_VIDE0 = 3;
|
|
|
private static final int REQUEST_CODE_SELECT_FILE = 4;
|
|
|
private static final int REQUEST_CODE_SELECT_Locate = 5;
|
|
|
-
|
|
|
+ private static final int REQUEST_CODE_SELECT_CARD = 6;
|
|
|
@Override
|
|
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
|
if (requestCode == REQUEST_CODE_CAPTURE_PHOTO) {// 拍照返回
|
|
|
@@ -843,9 +863,64 @@ public class MucChatActivity extends ActionBackActivity
|
|
|
} else {
|
|
|
ToastUtil.showToast(mContext, "请把定位开启!");
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
+ }else if (requestCode == REQUEST_CODE_SELECT_CARD && resultCode == RESULT_OK) {//选择名片返回
|
|
|
+ Friend card = (Friend) data.getSerializableExtra("card");
|
|
|
+
|
|
|
+ ChatMessage message = new ChatMessage();
|
|
|
+ message.setType(XmppMessage.TYPE_CARD);
|
|
|
+ message.setFromUserName(card.getNickName());
|
|
|
+ message.setCardId(card.getUserId());
|
|
|
+ message.setFromUserId(mLoginUserId);
|
|
|
+ message.setMySend(true);
|
|
|
+ message.setTimeSend(TimeUtils.sk_time_current_time());
|
|
|
+ message.setObjectId(objectId);
|
|
|
+
|
|
|
+ loadCardInfo(card.getUserId(), message);
|
|
|
+
|
|
|
+ mChatMessages.add(message);
|
|
|
+ mChatContentView.notifyDataSetInvalidated(true);
|
|
|
+// message.setContent(MyApplication.getInstance().mLoginUser.getSex() + "");// 性别
|
|
|
+// // 0表示女,1表示男
|
|
|
+// sendMessage(message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ private void loadCardInfo(String userId, final ChatMessage message) {
|
|
|
+ //TODO 发送名片时候 访问网络获取性别
|
|
|
+ mFastVolley = MyApplication.getInstance().getFastVolley();
|
|
|
+ Map<String, String> params = new HashMap<String, String>();
|
|
|
+ params.put("access_token", MyApplication.getInstance().mAccessToken);
|
|
|
+ params.put("userId", userId);
|
|
|
+ Log.i("LoginInfo", "发送网络数据:userid=" + userId);
|
|
|
+ StringJsonObjectRequest<User> request = new StringJsonObjectRequest<User>(mConfig.USER_GET_URL,
|
|
|
+ new Response.ErrorListener() {
|
|
|
+ @Override
|
|
|
+ public void onErrorResponse(VolleyError arg0) {
|
|
|
+ Log.i("gongpengming", "获取失败");
|
|
|
+ message.setContent(-1 + "");// 当失败时候显示保密
|
|
|
+ // 0表示女,1表示男
|
|
|
+ sendMessage(message);
|
|
|
+ }
|
|
|
+ }, new StringJsonObjectRequest.Listener<User>() {
|
|
|
|
|
|
+ @Override
|
|
|
+ public void onResponse(ObjectResult<User> result) {
|
|
|
+
|
|
|
+ boolean success = Result.defaultParser(mContext, result, true);
|
|
|
+ if (success && result.getData() != null) {
|
|
|
+ User mUser = result.getData();
|
|
|
+ message.setContent(mUser.getSex()+ "");// 成功时候显示性别
|
|
|
+ // 0表示女,1表示男
|
|
|
+ sendMessage(message);
|
|
|
+ } else {
|
|
|
+ Log.i("gongpengming", "获取失败");
|
|
|
+ message.setContent(-1+ "");// 当失败时候显示保密
|
|
|
+ // 0表示女,1表示男
|
|
|
+ sendMessage(message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, User.class, params);
|
|
|
+ mFastVolley.addDefaultRequest(MUC_ChAT_ACT , request);
|
|
|
+ }
|
|
|
/**************************** MUC Listener ********************/
|
|
|
@Override
|
|
|
public void onDeleteMucRoom(String toUserId) {
|