Ver código fonte

Merge branch 'developer' of https://gitlab.com/Arisono/SkWeiChat-Baidu into developer

LiuJie 9 anos atrás
pai
commit
17b9406153

+ 1 - 1
WeiChat/src/main/java/com/sk/weichat/ui/groupchat/GroupChatFragment.java

@@ -163,7 +163,7 @@ public class GroupChatFragment extends EasyFragment {
 	}
 
 	private void interMucChat(String roomJid, String roomName) {
-		Log.d("roamer","加入群聊");
+		Log.i("gongpengmingGRO","加入群聊");
 		Intent intent = new Intent(getActivity(), MucChatActivity.class);
 		intent.putExtra(AppConstant.EXTRA_USER_ID, roomJid);
 		intent.putExtra(AppConstant.EXTRA_NICK_NAME, roomName);

+ 1 - 1
WeiChat/src/main/java/com/sk/weichat/ui/message/ChatActivity.java

@@ -624,7 +624,7 @@ public class ChatActivity extends ActionBackActivity
 
     //TODO 发送卡片
     public void sendCard(String ObjectId) {
-        this.objectId = ObjectId;
+            this.objectId = ObjectId;
 //        ChatMessage message = new ChatMessage();
 //        message.setType(XmppMessage.TYPE_CARD);
 //        message.setFromUserName(mLoginNickName);

+ 93 - 18
WeiChat/src/main/java/com/sk/weichat/ui/message/MucChatActivity.java

@@ -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) {

+ 1 - 1
WeiChat/src/main/java/com/sk/weichat/ui/message/SelectCardActivity.java

@@ -167,7 +167,7 @@ public class SelectCardActivity extends BaseActivity {
     private class ListViewAdapter extends BaseAdapter {
         @Override
         public int getCount() {
-            return mFriendList.size()+1;
+            return mFriendList.size();
         }
 
         @Override