Commit 58f7b2668fe82fd47858e9a0d7abd63cb613ce65
1 parent
db523305
修改有人加入聊天室
Showing
10 changed files
with
299 additions
and
183 deletions
app/libs/libcnliveutil.jar
No preview for this file type
app/src/main/java/com/cnlive/im/adapter/ChatListAdapter.java
| 1 | package com.cnlive.im.adapter; | 1 | package com.cnlive.im.adapter; |
| 2 | 2 | ||
| 3 | +import android.annotation.TargetApi; | ||
| 3 | import android.content.Context; | 4 | import android.content.Context; |
| 5 | +import android.graphics.Color; | ||
| 6 | +import android.os.Build; | ||
| 4 | import android.view.LayoutInflater; | 7 | import android.view.LayoutInflater; |
| 5 | import android.view.View; | 8 | import android.view.View; |
| 6 | import android.view.ViewGroup; | 9 | import android.view.ViewGroup; |
| 7 | import android.widget.BaseAdapter; | 10 | import android.widget.BaseAdapter; |
| 11 | +import android.widget.RelativeLayout; | ||
| 8 | import android.widget.TextView; | 12 | import android.widget.TextView; |
| 9 | 13 | ||
| 10 | import com.cnlive.im.R; | 14 | import com.cnlive.im.R; |
| 11 | -import com.cnlive.libs.util.chat.model.CNMessage; | 15 | +import com.cnlive.im.ui.ChatRoomActivity; |
| 16 | + | ||
| 17 | +import org.json.JSONException; | ||
| 18 | +import org.json.JSONObject; | ||
| 12 | 19 | ||
| 13 | import java.util.ArrayList; | 20 | import java.util.ArrayList; |
| 14 | import java.util.List; | 21 | import java.util.List; |
| @@ -19,12 +26,14 @@ import java.util.List; | @@ -19,12 +26,14 @@ import java.util.List; | ||
| 19 | 26 | ||
| 20 | public class ChatListAdapter extends BaseAdapter { | 27 | public class ChatListAdapter extends BaseAdapter { |
| 21 | 28 | ||
| 22 | - private ArrayList<CNMessage> msgList; | 29 | + private List<ChatRoomActivity.CNMessageInfo> msgList; |
| 23 | private LayoutInflater mInflater = null; | 30 | private LayoutInflater mInflater = null; |
| 31 | + private final RelativeLayout.LayoutParams layoutParams; | ||
| 24 | 32 | ||
| 25 | public ChatListAdapter(Context context) { | 33 | public ChatListAdapter(Context context) { |
| 26 | msgList = new ArrayList<>(); | 34 | msgList = new ArrayList<>(); |
| 27 | mInflater = LayoutInflater.from(context); | 35 | mInflater = LayoutInflater.from(context); |
| 36 | + layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); | ||
| 28 | } | 37 | } |
| 29 | 38 | ||
| 30 | @Override | 39 | @Override |
| @@ -42,45 +51,65 @@ public class ChatListAdapter extends BaseAdapter { | @@ -42,45 +51,65 @@ public class ChatListAdapter extends BaseAdapter { | ||
| 42 | return 0; | 51 | return 0; |
| 43 | } | 52 | } |
| 44 | 53 | ||
| 54 | + @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) | ||
| 45 | @Override | 55 | @Override |
| 46 | public View getView(int position, View convertView, ViewGroup parent) { | 56 | public View getView(int position, View convertView, ViewGroup parent) { |
| 47 | ViewHolder viewHolder; | 57 | ViewHolder viewHolder; |
| 48 | if (convertView == null) { | 58 | if (convertView == null) { |
| 49 | viewHolder = new ViewHolder(); | 59 | viewHolder = new ViewHolder(); |
| 50 | convertView = mInflater.inflate(R.layout.msg_text_view, null); | 60 | convertView = mInflater.inflate(R.layout.msg_text_view, null); |
| 61 | + viewHolder.mRelativeLayout = (RelativeLayout) convertView.findViewById(R.id.re_chat_room); | ||
| 51 | viewHolder.userName = (TextView) convertView.findViewById(R.id.user_name); | 62 | viewHolder.userName = (TextView) convertView.findViewById(R.id.user_name); |
| 52 | viewHolder.msgContent = (TextView) convertView.findViewById(R.id.msg_text); | 63 | viewHolder.msgContent = (TextView) convertView.findViewById(R.id.msg_text); |
| 53 | convertView.setTag(viewHolder); | 64 | convertView.setTag(viewHolder); |
| 54 | } else { | 65 | } else { |
| 55 | viewHolder = (ViewHolder) convertView.getTag(); | 66 | viewHolder = (ViewHolder) convertView.getTag(); |
| 56 | } | 67 | } |
| 57 | - viewHolder.userName.setText(msgList.get(position).getUserInfo().getUserName() == null ? "" : msgList.get(position).getUserInfo().getUserName() + " : "); | ||
| 58 | - viewHolder.msgContent.setText(msgList.get(position).getContent() == null ? "" : msgList.get(position).getContent()); | 68 | + |
| 69 | + if (msgList.get(position).isSendMesageInfo()) { | ||
| 70 | + viewHolder.msgContent.setText(msgList.get(position).getCnMessage().getUserInfo().getUserName() == null ? "" : " : " + msgList.get(position).getCnMessage().getUserInfo().getUserName()); | ||
| 71 | + try { | ||
| 72 | + viewHolder.userName.setText(msgList.get(position).getCnMessage().getContent() == null ? "" : (String) new JSONObject(msgList.get(position).getCnMessage().getContent()).get("message")); | ||
| 73 | + } catch (JSONException e) { | ||
| 74 | + e.printStackTrace(); | ||
| 75 | + } | ||
| 76 | + layoutParams.removeRule(RelativeLayout.ALIGN_PARENT_START); | ||
| 77 | + layoutParams.addRule(RelativeLayout.ALIGN_PARENT_END); | ||
| 78 | + viewHolder.mRelativeLayout.setLayoutParams(layoutParams); | ||
| 79 | + viewHolder.msgContent.setTextColor(Color.parseColor("#d61d0c")); | ||
| 80 | + viewHolder.userName.setTextColor(Color.BLACK); | ||
| 81 | + } else { | ||
| 82 | + viewHolder.userName.setText(msgList.get(position).getCnMessage().getUserInfo().getUserName() == null ? "" : msgList.get(position).getCnMessage().getUserInfo().getUserName() + " : "); | ||
| 83 | + try { | ||
| 84 | + viewHolder.msgContent.setText(msgList.get(position).getCnMessage().getContent() == null ? "" : msgList.get(position).getCnMessage().getContent() == null ? "" : (String) new JSONObject(msgList.get(position).getCnMessage().getContent()).get("message")); | ||
| 85 | + } catch (JSONException e) { | ||
| 86 | + e.printStackTrace(); | ||
| 87 | + } | ||
| 88 | + viewHolder.mRelativeLayout.setLayoutParams(layoutParams); | ||
| 89 | + layoutParams.removeRule(RelativeLayout.ALIGN_PARENT_END); | ||
| 90 | + layoutParams.addRule(RelativeLayout.ALIGN_PARENT_START); | ||
| 91 | + viewHolder.userName.setTextColor(Color.parseColor("#d61d0c")); | ||
| 92 | + viewHolder.msgContent.setTextColor(Color.BLACK); | ||
| 93 | + } | ||
| 94 | + | ||
| 95 | + | ||
| 59 | return convertView; | 96 | return convertView; |
| 60 | 97 | ||
| 61 | } | 98 | } |
| 62 | 99 | ||
| 63 | - public void addMessage(CNMessage msg) { | ||
| 64 | - if (msgList == null) return; | ||
| 65 | - msgList.add(msg); | ||
| 66 | - } | ||
| 67 | 100 | ||
| 68 | - public void updateItems(List<CNMessage> items) { | 101 | + |
| 102 | + public void updateItems(List<ChatRoomActivity.CNMessageInfo> items) { | ||
| 69 | if (items == null) return; | 103 | if (items == null) return; |
| 70 | msgList.clear(); | 104 | msgList.clear(); |
| 71 | msgList.addAll(items); | 105 | msgList.addAll(items); |
| 72 | } | 106 | } |
| 73 | 107 | ||
| 74 | 108 | ||
| 109 | + private class ViewHolder { | ||
| 110 | + TextView userName; | ||
| 111 | + TextView msgContent; | ||
| 112 | + RelativeLayout mRelativeLayout; | ||
| 75 | 113 | ||
| 76 | - | ||
| 77 | - | ||
| 78 | - | ||
| 79 | - | ||
| 80 | - | ||
| 81 | - | ||
| 82 | - public class ViewHolder { | ||
| 83 | - public TextView userName; | ||
| 84 | - public TextView msgContent; | ||
| 85 | } | 114 | } |
| 86 | } | 115 | } |
app/src/main/java/com/cnlive/im/mode/CNMessageModole.java
0 → 100644
| 1 | +package com.cnlive.im.mode; | ||
| 2 | + | ||
| 3 | +/** | ||
| 4 | + * @author 陈硕 | ||
| 5 | + * @time 2017/3/28 10:27 | ||
| 6 | + * @desc ${TODD} | ||
| 7 | + */ | ||
| 8 | +public class CNMessageModole { | ||
| 9 | + | ||
| 10 | + | ||
| 11 | + public CNMessageModole(String message, String type) { | ||
| 12 | + this.message = message; | ||
| 13 | + this.type = type; | ||
| 14 | + } | ||
| 15 | + | ||
| 16 | + /** | ||
| 17 | + * message : Sass | ||
| 18 | + * timestamp : 1.490085670463534E9 | ||
| 19 | + * type : 2 | ||
| 20 | + */ | ||
| 21 | + | ||
| 22 | + private String message; | ||
| 23 | + private String type; | ||
| 24 | + | ||
| 25 | + public String getMessage() { | ||
| 26 | + return message; | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + public void setMessage(String message) { | ||
| 30 | + this.message = message; | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + | ||
| 34 | + public String getType() { | ||
| 35 | + return type; | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + public void setType(String type) { | ||
| 39 | + this.type = type; | ||
| 40 | + } | ||
| 41 | +} |
app/src/main/java/com/cnlive/im/ui/ChatItemActivity.java
app/src/main/java/com/cnlive/im/ui/ChatRoomActivity.java
| @@ -15,12 +15,20 @@ import android.widget.Toast; | @@ -15,12 +15,20 @@ import android.widget.Toast; | ||
| 15 | 15 | ||
| 16 | import com.cnlive.im.R; | 16 | import com.cnlive.im.R; |
| 17 | import com.cnlive.im.adapter.ChatListAdapter; | 17 | import com.cnlive.im.adapter.ChatListAdapter; |
| 18 | +import com.cnlive.im.mode.CNMessageModole; | ||
| 19 | +import com.cnlive.im.util.ToStringUtils; | ||
| 18 | import com.cnlive.libs.util.chat.ChatUtil; | 20 | import com.cnlive.libs.util.chat.ChatUtil; |
| 19 | import com.cnlive.libs.util.chat.base.IChat; | 21 | import com.cnlive.libs.util.chat.base.IChat; |
| 22 | +import com.cnlive.libs.util.chat.model.CNChatRoomInfo; | ||
| 23 | +import com.cnlive.libs.util.chat.model.CNChatRoomMemberInfo; | ||
| 20 | import com.cnlive.libs.util.chat.model.CNMessage; | 24 | import com.cnlive.libs.util.chat.model.CNMessage; |
| 21 | import com.cnlive.libs.util.chat.model.CNUserInfo; | 25 | import com.cnlive.libs.util.chat.model.CNUserInfo; |
| 22 | 26 | ||
| 27 | +import org.json.JSONException; | ||
| 28 | +import org.json.JSONObject; | ||
| 29 | + | ||
| 23 | import java.util.ArrayList; | 30 | import java.util.ArrayList; |
| 31 | +import java.util.List; | ||
| 24 | 32 | ||
| 25 | 33 | ||
| 26 | /** | 34 | /** |
| @@ -30,22 +38,20 @@ import java.util.ArrayList; | @@ -30,22 +38,20 @@ import java.util.ArrayList; | ||
| 30 | */ | 38 | */ |
| 31 | public class ChatRoomActivity extends AppCompatActivity implements View.OnClickListener { | 39 | public class ChatRoomActivity extends AppCompatActivity implements View.OnClickListener { |
| 32 | private static final String TAG = "ChatRoomActivity"; | 40 | private static final String TAG = "ChatRoomActivity"; |
| 33 | - private ArrayList<CNMessage> groupChatOneListMy, groupChatTwoListMy; | ||
| 34 | - private String roomIdOne = "ChatRoom05", roomIdTwo = "ChatRoom06"; | 41 | + private ArrayList<CNMessageInfo> groupChatOneListMy; |
| 42 | + private String roomIdOne = "ChatRoom05"; | ||
| 35 | private EditText editText; | 43 | private EditText editText; |
| 36 | - private Button send_messageOneBtn, send_messageOneTwo; | 44 | + private Button send_messageOneBtn; |
| 37 | private ListView listViewOne; | 45 | private ListView listViewOne; |
| 38 | - private ChatListAdapter chatListAdapterOne, chatListAdapterTwo; | ||
| 39 | - private ListView listViewTwo; | ||
| 40 | - private Button foundChatBtn; | ||
| 41 | - private Button creatChat2Btn; | 46 | + private ChatListAdapter chatListAdapterOne; |
| 47 | + private Button foundChatBtn; | ||
| 42 | private Handler mHandler; | 48 | private Handler mHandler; |
| 43 | private RelativeLayout re_chat; | 49 | private RelativeLayout re_chat; |
| 44 | private LinearLayout lin_user; | 50 | private LinearLayout lin_user; |
| 45 | private EditText user_id, user_name; | 51 | private EditText user_id, user_name; |
| 46 | - private CNUserInfo cnUser; | ||
| 47 | - private Button exit_chat2; | ||
| 48 | private Button exit_chat1; | 52 | private Button exit_chat1; |
| 53 | + private Button chat_info_mationBtn; | ||
| 54 | + public static String user_name_string; | ||
| 49 | 55 | ||
| 50 | 56 | ||
| 51 | @Override | 57 | @Override |
| @@ -61,46 +67,38 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL | @@ -61,46 +67,38 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL | ||
| 61 | ChatUtil.setOnReceiveMessageListener(receiveMessageListener); | 67 | ChatUtil.setOnReceiveMessageListener(receiveMessageListener); |
| 62 | ChatUtil.setKickedOfflineListener(onKickedOfflineListener); | 68 | ChatUtil.setKickedOfflineListener(onKickedOfflineListener); |
| 63 | Intent intent = getIntent(); | 69 | Intent intent = getIntent(); |
| 64 | - String user_name_string = intent.getStringExtra("user_name_string"); | 70 | + user_name_string = intent.getStringExtra("user_name_string"); |
| 65 | String user_id_string = intent.getStringExtra("user_id_string"); | 71 | String user_id_string = intent.getStringExtra("user_id_string"); |
| 66 | - if(user_name_string!=null){ | ||
| 67 | - ChatUtil.login(new CNUserInfo(user_id_string,user_name_string,""),connectListener); | ||
| 68 | - }else { | 72 | + if (user_name_string != null) { |
| 73 | + ChatUtil.login(new CNUserInfo(user_id_string, user_name_string, ""), connectListener); | ||
| 74 | + } else { | ||
| 69 | ChatUtil.logOut(connectListener); | 75 | ChatUtil.logOut(connectListener); |
| 70 | } | 76 | } |
| 77 | + | ||
| 71 | } | 78 | } |
| 72 | 79 | ||
| 73 | 80 | ||
| 74 | private void initUI() { | 81 | private void initUI() { |
| 75 | - exit_chat2 = (Button) findViewById(R.id.exit_chat2); | 82 | + chat_info_mationBtn = (Button) findViewById(R.id.chat_info_mation); |
| 83 | + chat_info_mationBtn.setOnClickListener(this); | ||
| 76 | exit_chat1 = (Button) findViewById(R.id.exit_chat1); | 84 | exit_chat1 = (Button) findViewById(R.id.exit_chat1); |
| 77 | user_id = (EditText) findViewById(R.id.user_ID); | 85 | user_id = (EditText) findViewById(R.id.user_ID); |
| 78 | user_name = (EditText) findViewById(R.id.user_name); | 86 | user_name = (EditText) findViewById(R.id.user_name); |
| 79 | lin_user = (LinearLayout) findViewById(R.id.lin_user); | 87 | lin_user = (LinearLayout) findViewById(R.id.lin_user); |
| 80 | re_chat = (RelativeLayout) findViewById(R.id.re_chat); | 88 | re_chat = (RelativeLayout) findViewById(R.id.re_chat); |
| 81 | - creatChat2Btn = (Button) findViewById(R.id.creatChat2); | ||
| 82 | foundChatBtn = (Button) findViewById(R.id.creatChat); | 89 | foundChatBtn = (Button) findViewById(R.id.creatChat); |
| 83 | listViewOne = (ListView) findViewById(R.id.chat_list_viewOne); | 90 | listViewOne = (ListView) findViewById(R.id.chat_list_viewOne); |
| 84 | - listViewTwo = (ListView) findViewById(R.id.chat_list_viewTwo); | ||
| 85 | editText = (EditText) findViewById(R.id.message_content); | 91 | editText = (EditText) findViewById(R.id.message_content); |
| 86 | send_messageOneBtn = (Button) findViewById(R.id.send_messageOne); | 92 | send_messageOneBtn = (Button) findViewById(R.id.send_messageOne); |
| 87 | - send_messageOneTwo = (Button) findViewById(R.id.send_messageTwo); | ||
| 88 | exit_chat1.setOnClickListener(this); | 93 | exit_chat1.setOnClickListener(this); |
| 89 | - exit_chat2.setOnClickListener(this); | ||
| 90 | foundChatBtn.setOnClickListener(this); | 94 | foundChatBtn.setOnClickListener(this); |
| 91 | send_messageOneBtn.setOnClickListener(this); | 95 | send_messageOneBtn.setOnClickListener(this); |
| 92 | - send_messageOneTwo.setOnClickListener(this); | ||
| 93 | - creatChat2Btn.setOnClickListener(this); | ||
| 94 | groupChatOneListMy = new ArrayList<>(); | 96 | groupChatOneListMy = new ArrayList<>(); |
| 95 | - groupChatTwoListMy = new ArrayList<>(); | ||
| 96 | chatListAdapterOne = new ChatListAdapter(ChatRoomActivity.this); | 97 | chatListAdapterOne = new ChatListAdapter(ChatRoomActivity.this); |
| 97 | - chatListAdapterTwo = new ChatListAdapter(ChatRoomActivity.this); | ||
| 98 | listViewOne.setAdapter(chatListAdapterOne); | 98 | listViewOne.setAdapter(chatListAdapterOne); |
| 99 | - listViewTwo.setAdapter(chatListAdapterTwo); | ||
| 100 | } | 99 | } |
| 101 | 100 | ||
| 102 | 101 | ||
| 103 | - | ||
| 104 | /** | 102 | /** |
| 105 | * 发送消息监听 | 103 | * 发送消息监听 |
| 106 | */ | 104 | */ |
| @@ -115,25 +113,20 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL | @@ -115,25 +113,20 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL | ||
| 115 | 113 | ||
| 116 | @Override | 114 | @Override |
| 117 | public void onSuccess(final CNMessage cnMessage) { | 115 | public void onSuccess(final CNMessage cnMessage) { |
| 118 | - | ||
| 119 | mHandler.post(new Runnable() { | 116 | mHandler.post(new Runnable() { |
| 120 | @Override | 117 | @Override |
| 121 | public void run() { | 118 | public void run() { |
| 119 | + try { | ||
| 120 | + if (((String) new JSONObject(cnMessage.getContent()).get("type")).equals("2")) | ||
| 121 | + return; | ||
| 122 | + } catch (JSONException e) { | ||
| 123 | + e.printStackTrace(); | ||
| 124 | + } | ||
| 122 | if ((roomIdOne).equals(cnMessage.getTargetId())) { | 125 | if ((roomIdOne).equals(cnMessage.getTargetId())) { |
| 123 | - groupChatOneListMy.add(cnMessage); | 126 | + groupChatOneListMy.add(new CNMessageInfo(cnMessage, true)); |
| 124 | chatListAdapterOne.updateItems(groupChatOneListMy); | 127 | chatListAdapterOne.updateItems(groupChatOneListMy); |
| 125 | chatListAdapterOne.notifyDataSetChanged(); | 128 | chatListAdapterOne.notifyDataSetChanged(); |
| 126 | } | 129 | } |
| 127 | - Log.v(TAG, "SendMessageListener SUCCESSES" + cnMessage.getTargetId() + cnMessage.getUserInfo().getUserName()); | ||
| 128 | - | ||
| 129 | - /** | ||
| 130 | - * 连接两个聊天室30015 错误 | ||
| 131 | - */ | ||
| 132 | - if ((roomIdTwo).equals(cnMessage.getTargetId())) { | ||
| 133 | - groupChatTwoListMy.add(cnMessage); | ||
| 134 | - chatListAdapterTwo.updateItems(groupChatTwoListMy); | ||
| 135 | - chatListAdapterTwo.notifyDataSetChanged(); | ||
| 136 | - } | ||
| 137 | 130 | ||
| 138 | } | 131 | } |
| 139 | }); | 132 | }); |
| @@ -147,11 +140,8 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL | @@ -147,11 +140,8 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL | ||
| 147 | @Override | 140 | @Override |
| 148 | public void run() { | 141 | public void run() { |
| 149 | Toast.makeText(ChatRoomActivity.this, s, Toast.LENGTH_SHORT).show(); | 142 | Toast.makeText(ChatRoomActivity.this, s, Toast.LENGTH_SHORT).show(); |
| 150 | - | ||
| 151 | } | 143 | } |
| 152 | }); | 144 | }); |
| 153 | - | ||
| 154 | - | ||
| 155 | } | 145 | } |
| 156 | }; | 146 | }; |
| 157 | 147 | ||
| @@ -173,22 +163,21 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL | @@ -173,22 +163,21 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL | ||
| 173 | mHandler.post(new Runnable() { | 163 | mHandler.post(new Runnable() { |
| 174 | @Override | 164 | @Override |
| 175 | public void run() { | 165 | public void run() { |
| 176 | - if (( roomIdOne).equals(cnMessage.getTargetId())) { | ||
| 177 | - groupChatOneListMy.add(cnMessage); | 166 | + try { |
| 167 | + JSONObject jsonObject = new JSONObject(cnMessage.getContent().toString()); | ||
| 168 | + String type = (String) jsonObject.get("type"); | ||
| 169 | + if ("2".equals(type)) { | ||
| 170 | + Toast.makeText(ChatRoomActivity.this, cnMessage.getUserInfo().getUserName()+"加入聊天室", Toast.LENGTH_SHORT).show(); | ||
| 171 | + return; | ||
| 172 | + } | ||
| 173 | + } catch (JSONException e) { | ||
| 174 | + e.printStackTrace(); | ||
| 175 | + } | ||
| 176 | + { | ||
| 177 | + groupChatOneListMy.add(new CNMessageInfo(cnMessage, false)); | ||
| 178 | chatListAdapterOne.updateItems(groupChatOneListMy); | 178 | chatListAdapterOne.updateItems(groupChatOneListMy); |
| 179 | chatListAdapterOne.notifyDataSetChanged(); | 179 | chatListAdapterOne.notifyDataSetChanged(); |
| 180 | } | 180 | } |
| 181 | - Log.v(TAG, "SendMessageListener SUCCESSES" + cnMessage.getTargetId() + cnMessage.getUserInfo().getUserName()); | ||
| 182 | - | ||
| 183 | - /** | ||
| 184 | - * 连接两个聊天室30015 错误 | ||
| 185 | - */ | ||
| 186 | - if (( roomIdTwo).equals(cnMessage.getTargetId())) { | ||
| 187 | - groupChatTwoListMy.add(cnMessage); | ||
| 188 | - chatListAdapterTwo.updateItems(groupChatTwoListMy); | ||
| 189 | - chatListAdapterTwo.notifyDataSetChanged(); | ||
| 190 | - } | ||
| 191 | - | ||
| 192 | } | 181 | } |
| 193 | }); | 182 | }); |
| 194 | 183 | ||
| @@ -259,6 +248,11 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL | @@ -259,6 +248,11 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL | ||
| 259 | mHandler.post(new Runnable() { | 248 | mHandler.post(new Runnable() { |
| 260 | @Override | 249 | @Override |
| 261 | public void run() { | 250 | public void run() { |
| 251 | + if(i==0){ | ||
| 252 | + String objToJsonString = ToStringUtils.objToJsonString(new CNMessageModole(user_name_string + "加入聊天室", "2")); | ||
| 253 | + ChatUtil.sendMessage(IChat.CHATROOM, roomIdOne, objToJsonString, sendMessageListener); | ||
| 254 | + ++i; | ||
| 255 | + } | ||
| 262 | Toast.makeText(ChatRoomActivity.this, extra, Toast.LENGTH_SHORT).show(); | 256 | Toast.makeText(ChatRoomActivity.this, extra, Toast.LENGTH_SHORT).show(); |
| 263 | 257 | ||
| 264 | } | 258 | } |
| @@ -282,41 +276,42 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL | @@ -282,41 +276,42 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL | ||
| 282 | if (editText.getText().toString().isEmpty()) { | 276 | if (editText.getText().toString().isEmpty()) { |
| 283 | Toast.makeText(this, "不能发送空消息呦~", Toast.LENGTH_SHORT).show(); | 277 | Toast.makeText(this, "不能发送空消息呦~", Toast.LENGTH_SHORT).show(); |
| 284 | } else { | 278 | } else { |
| 285 | - ChatUtil.sendMessage(IChat.CHATROOM, roomIdOne, editText.getText().toString(), sendMessageListener); | ||
| 286 | - editText.setText(""); | ||
| 287 | - } | ||
| 288 | - break; | ||
| 289 | - // 向聊天室2发送消息 | ||
| 290 | - case R.id.send_messageTwo: | ||
| 291 | - //发送聊天室消息 | ||
| 292 | - if (editText.getText().toString().isEmpty()) { | ||
| 293 | - Toast.makeText(this, "不能发送空消息呦~", Toast.LENGTH_SHORT).show(); | ||
| 294 | - } else { | ||
| 295 | - ChatUtil.sendMessage(IChat.CHATROOM, roomIdTwo, editText.getText().toString(), sendMessageListener); | 279 | + String objToJsonString = ToStringUtils.objToJsonString(new CNMessageModole(editText.getText().toString(), "1")); |
| 280 | + Log.v("objToJsonString", objToJsonString); | ||
| 281 | + | ||
| 282 | + | ||
| 283 | + ChatUtil.sendMessage(IChat.CHATROOM, roomIdOne, objToJsonString, sendMessageListener); | ||
| 296 | editText.setText(""); | 284 | editText.setText(""); |
| 297 | } | 285 | } |
| 298 | break; | 286 | break; |
| 299 | - | ||
| 300 | case R.id.creatChat: | 287 | case R.id.creatChat: |
| 301 | ChatUtil.joinChatRoom(roomIdOne, -1, onOperationListener); | 288 | ChatUtil.joinChatRoom(roomIdOne, -1, onOperationListener); |
| 302 | - //加入聊天室2 | ||
| 303 | - case R.id.creatChat2: | ||
| 304 | - // ChatUtil.joinChatRoom(roomIdTwo, -1, onOperationListener); | ||
| 305 | - break; | ||
| 306 | - | ||
| 307 | - case R.id.exit_chat2: | ||
| 308 | - ChatUtil.quitChatRoom(roomIdTwo, onOperationListener); | ||
| 309 | break; | 289 | break; |
| 310 | - | ||
| 311 | case R.id.exit_chat1: | 290 | case R.id.exit_chat1: |
| 312 | ChatUtil.quitChatRoom(roomIdOne, onOperationListener); | 291 | ChatUtil.quitChatRoom(roomIdOne, onOperationListener); |
| 313 | break; | 292 | break; |
| 293 | + case R.id.chat_info_mation: | ||
| 294 | + ChatUtil.getChatRoomInfo(roomIdOne, 30, CNChatRoomInfo.ChatRoomMemberOrder.RC_CHAT_ROOM_MEMBER_ASC, new IChat.CNResultCallback<CNChatRoomInfo>() { | ||
| 295 | + @Override | ||
| 296 | + public void onSuccess(CNChatRoomInfo cnChatRoomInfo) { | ||
| 297 | + List<CNChatRoomMemberInfo> memberInfos = cnChatRoomInfo.getMemberInfo(); | ||
| 298 | + for (CNChatRoomMemberInfo memberInfo : memberInfos) { | ||
| 299 | + String userId = memberInfo.getUserId(); | ||
| 300 | + Log.v("userId", userId); | ||
| 301 | + } | ||
| 302 | + } | ||
| 314 | 303 | ||
| 315 | - } | ||
| 316 | - } | ||
| 317 | - | 304 | + @Override |
| 305 | + public void onError(int i, String s) { | ||
| 306 | + Log.v("userId", i + "" + s); | ||
| 318 | 307 | ||
| 308 | + } | ||
| 309 | + }); | ||
| 310 | + break; | ||
| 319 | 311 | ||
| 312 | + } | ||
| 313 | + } | ||
| 314 | +int i=0; | ||
| 320 | 315 | ||
| 321 | private IChat.OnConnectListener connectListener = new IChat.OnConnectListener() { | 316 | private IChat.OnConnectListener connectListener = new IChat.OnConnectListener() { |
| 322 | @Override | 317 | @Override |
| @@ -329,6 +324,7 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL | @@ -329,6 +324,7 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL | ||
| 329 | @Override | 324 | @Override |
| 330 | public void onSuccess(String s) { | 325 | public void onSuccess(String s) { |
| 331 | Log.e(TAG, "ConnectListener 连接监听" + s); | 326 | Log.e(TAG, "ConnectListener 连接监听" + s); |
| 327 | + | ||
| 332 | Toast.makeText(ChatRoomActivity.this, s, Toast.LENGTH_SHORT).show(); | 328 | Toast.makeText(ChatRoomActivity.this, s, Toast.LENGTH_SHORT).show(); |
| 333 | } | 329 | } |
| 334 | 330 | ||
| @@ -341,4 +337,31 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL | @@ -341,4 +337,31 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL | ||
| 341 | }; | 337 | }; |
| 342 | 338 | ||
| 343 | 339 | ||
| 340 | + public static class CNMessageInfo { | ||
| 341 | + CNMessage cnMessage; | ||
| 342 | + boolean sendMesageInfo; | ||
| 343 | + | ||
| 344 | + public CNMessage getCnMessage() { | ||
| 345 | + return cnMessage; | ||
| 346 | + } | ||
| 347 | + | ||
| 348 | + public void setCnMessage(CNMessage cnMessage) { | ||
| 349 | + this.cnMessage = cnMessage; | ||
| 350 | + } | ||
| 351 | + | ||
| 352 | + public boolean isSendMesageInfo() { | ||
| 353 | + return sendMesageInfo; | ||
| 354 | + } | ||
| 355 | + | ||
| 356 | + public void setSendMesageInfo(boolean sendMesageInfo) { | ||
| 357 | + this.sendMesageInfo = sendMesageInfo; | ||
| 358 | + } | ||
| 359 | + | ||
| 360 | + public CNMessageInfo(CNMessage cnMessage, boolean sendMesageInfo) { | ||
| 361 | + this.cnMessage = cnMessage; | ||
| 362 | + this.sendMesageInfo = sendMesageInfo; | ||
| 363 | + } | ||
| 364 | + } | ||
| 365 | + | ||
| 366 | + | ||
| 344 | } | 367 | } |
app/src/main/java/com/cnlive/im/ui/PrivateChatActivity.java
| @@ -37,7 +37,7 @@ public class PrivateChatActivity extends AppCompatActivity implements View.OnCli | @@ -37,7 +37,7 @@ public class PrivateChatActivity extends AppCompatActivity implements View.OnCli | ||
| 37 | private EditText messageContent; | 37 | private EditText messageContent; |
| 38 | private Button sendMessageBtn; | 38 | private Button sendMessageBtn; |
| 39 | private ChatListAdapter chatListAdapter; | 39 | private ChatListAdapter chatListAdapter; |
| 40 | - private ArrayList<CNMessage> messageList = new ArrayList<>(); | 40 | + private ArrayList<ChatRoomActivity.CNMessageInfo> messageList = new ArrayList<>(); |
| 41 | private CNMessage cnMessage; | 41 | private CNMessage cnMessage; |
| 42 | private LinearLayout linearLayoutUseID; | 42 | private LinearLayout linearLayoutUseID; |
| 43 | private EditText user_id_edit; | 43 | private EditText user_id_edit; |
| @@ -68,7 +68,6 @@ public class PrivateChatActivity extends AppCompatActivity implements View.OnCli | @@ -68,7 +68,6 @@ public class PrivateChatActivity extends AppCompatActivity implements View.OnCli | ||
| 68 | private void initView() { | 68 | private void initView() { |
| 69 | opposite_name_edit = (EditText) findViewById(R.id.opposite_name_edit); | 69 | opposite_name_edit = (EditText) findViewById(R.id.opposite_name_edit); |
| 70 | chatListView = (ListView) findViewById(R.id.private_list_view); | 70 | chatListView = (ListView) findViewById(R.id.private_list_view); |
| 71 | - chatListAdapter = new ChatListAdapter(this); | ||
| 72 | chatListView.setAdapter(chatListAdapter); | 71 | chatListView.setAdapter(chatListAdapter); |
| 73 | messageContent = (EditText) findViewById(R.id.message_content); | 72 | messageContent = (EditText) findViewById(R.id.message_content); |
| 74 | sendMessageBtn = (Button) findViewById(R.id.send_message); | 73 | sendMessageBtn = (Button) findViewById(R.id.send_message); |
| @@ -88,6 +87,8 @@ public class PrivateChatActivity extends AppCompatActivity implements View.OnCli | @@ -88,6 +87,8 @@ public class PrivateChatActivity extends AppCompatActivity implements View.OnCli | ||
| 88 | agree_reject_lin = (LinearLayout) findViewById(R.id.agree_reject_lin); | 87 | agree_reject_lin = (LinearLayout) findViewById(R.id.agree_reject_lin); |
| 89 | vistor_btn = (Button) findViewById(R.id.vistor_Btn); | 88 | vistor_btn = (Button) findViewById(R.id.vistor_Btn); |
| 90 | vistor_btn.setOnClickListener(this); | 89 | vistor_btn.setOnClickListener(this); |
| 90 | + chatListAdapter = new ChatListAdapter(this); | ||
| 91 | + | ||
| 91 | } | 92 | } |
| 92 | 93 | ||
| 93 | 94 | ||
| @@ -205,7 +206,7 @@ public class PrivateChatActivity extends AppCompatActivity implements View.OnCli | @@ -205,7 +206,7 @@ public class PrivateChatActivity extends AppCompatActivity implements View.OnCli | ||
| 205 | } else if (messageList.size() == 0 && cnMessage.getContent().equals("拒绝")) { | 206 | } else if (messageList.size() == 0 && cnMessage.getContent().equals("拒绝")) { |
| 206 | } else if (messageList.size() == 0 && cnMessage.getContent().equals("同意")) { | 207 | } else if (messageList.size() == 0 && cnMessage.getContent().equals("同意")) { |
| 207 | } else { | 208 | } else { |
| 208 | - messageList.add(cnMessage); | 209 | + messageList.add(new ChatRoomActivity.CNMessageInfo(cnMessage,true)); |
| 209 | chatListAdapter.updateItems(messageList); | 210 | chatListAdapter.updateItems(messageList); |
| 210 | chatListAdapter.notifyDataSetChanged(); | 211 | chatListAdapter.notifyDataSetChanged(); |
| 211 | } | 212 | } |
| @@ -242,7 +243,6 @@ public class PrivateChatActivity extends AppCompatActivity implements View.OnCli | @@ -242,7 +243,6 @@ public class PrivateChatActivity extends AppCompatActivity implements View.OnCli | ||
| 242 | 243 | ||
| 243 | } | 244 | } |
| 244 | }; | 245 | }; |
| 245 | - private boolean isvistor = false; | ||
| 246 | //接收消息监听 | 246 | //接收消息监听 |
| 247 | private IChat.OnReceiveMessageListener receiveMessageListener = new IChat.OnReceiveMessageListener() { | 247 | private IChat.OnReceiveMessageListener receiveMessageListener = new IChat.OnReceiveMessageListener() { |
| 248 | @Override | 248 | @Override |
| @@ -261,16 +261,17 @@ public class PrivateChatActivity extends AppCompatActivity implements View.OnCli | @@ -261,16 +261,17 @@ public class PrivateChatActivity extends AppCompatActivity implements View.OnCli | ||
| 261 | Toast.makeText(PrivateChatActivity.this, "对方已经同意了您", Toast.LENGTH_SHORT).show(); | 261 | Toast.makeText(PrivateChatActivity.this, "对方已经同意了您", Toast.LENGTH_SHORT).show(); |
| 262 | sendInfo = 5; | 262 | sendInfo = 5; |
| 263 | } else { | 263 | } else { |
| 264 | - messageList.add(cnMessage); | 264 | + messageList.add(new ChatRoomActivity.CNMessageInfo(cnMessage,false)); |
| 265 | chatListAdapter.updateItems(messageList); | 265 | chatListAdapter.updateItems(messageList); |
| 266 | chatListAdapter.notifyDataSetChanged(); | 266 | chatListAdapter.notifyDataSetChanged(); |
| 267 | } | 267 | } |
| 268 | 268 | ||
| 269 | - | ||
| 270 | } | 269 | } |
| 271 | }); | 270 | }); |
| 272 | 271 | ||
| 273 | } | 272 | } |
| 274 | }; | 273 | }; |
| 274 | + | ||
| 275 | + | ||
| 275 | } | 276 | } |
| 276 | 277 |
app/src/main/java/com/cnlive/im/util/ToStringUtils.java
0 → 100644
| 1 | +package com.cnlive.im.util; | ||
| 2 | + | ||
| 3 | +import com.cnlive.im.mode.CNMessageModole; | ||
| 4 | + | ||
| 5 | +import org.json.JSONException; | ||
| 6 | +import org.json.JSONObject; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | + * @author 陈硕 | ||
| 10 | + * @time 2017/3/28 10:20 | ||
| 11 | + * @desc ${TODD} | ||
| 12 | + */ | ||
| 13 | +public class ToStringUtils { | ||
| 14 | + | ||
| 15 | + | ||
| 16 | + | ||
| 17 | + public static String objToJsonString(CNMessageModole cnMessageModole) { | ||
| 18 | + | ||
| 19 | + // 初始化返回值 | ||
| 20 | + String json = "str_empty"; | ||
| 21 | + | ||
| 22 | + if (cnMessageModole == null) { | ||
| 23 | + return json; | ||
| 24 | + } | ||
| 25 | + | ||
| 26 | + StringBuilder buff = new StringBuilder(); | ||
| 27 | + buff.append("{"); | ||
| 28 | + | ||
| 29 | + | ||
| 30 | + buff.append("message"); | ||
| 31 | + buff.append(":"); | ||
| 32 | + buff.append("\""); | ||
| 33 | + buff.append(cnMessageModole.getMessage() == null ? "" : cnMessageModole.getMessage()); | ||
| 34 | + buff.append("\""); | ||
| 35 | + buff.append(","); | ||
| 36 | + | ||
| 37 | + | ||
| 38 | + buff.append("type"); | ||
| 39 | + buff.append(":"); | ||
| 40 | + buff.append("\""); | ||
| 41 | + buff.append(cnMessageModole.getType() == null ? "" : cnMessageModole.getType()); | ||
| 42 | + buff.append("\""); | ||
| 43 | + | ||
| 44 | + buff.append("}"); | ||
| 45 | + json = buff.toString(); | ||
| 46 | + | ||
| 47 | + | ||
| 48 | + | ||
| 49 | + | ||
| 50 | + | ||
| 51 | + return json; | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + | ||
| 55 | + | ||
| 56 | + | ||
| 57 | + | ||
| 58 | + | ||
| 59 | + public static CNMessageModole JsonStringToobj(String CNMessagejson) throws JSONException { | ||
| 60 | + | ||
| 61 | + | ||
| 62 | + JSONObject jsonObj = new JSONObject(CNMessagejson); | ||
| 63 | + return new CNMessageModole(jsonObj.get("message").toString(), jsonObj.get("type").toString()); | ||
| 64 | + | ||
| 65 | + | ||
| 66 | + | ||
| 67 | + | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + | ||
| 71 | +} |
app/src/main/res/layout/activity_groupchat.xml
| @@ -20,16 +20,10 @@ | @@ -20,16 +20,10 @@ | ||
| 20 | android:orientation="horizontal"> | 20 | android:orientation="horizontal"> |
| 21 | 21 | ||
| 22 | <LinearLayout | 22 | <LinearLayout |
| 23 | - android:layout_width="0dp" | 23 | + android:layout_width="match_parent" |
| 24 | android:layout_height="match_parent" | 24 | android:layout_height="match_parent" |
| 25 | - android:layout_weight="1" | ||
| 26 | android:orientation="vertical"> | 25 | android:orientation="vertical"> |
| 27 | 26 | ||
| 28 | - <TextView | ||
| 29 | - android:layout_width="match_parent" | ||
| 30 | - android:layout_height="wrap_content" | ||
| 31 | - android:gravity="center" | ||
| 32 | - android:text="聊天室一" /> | ||
| 33 | 27 | ||
| 34 | <ListView | 28 | <ListView |
| 35 | android:id="@+id/chat_list_viewOne" | 29 | android:id="@+id/chat_list_viewOne" |
| @@ -40,38 +34,9 @@ | @@ -40,38 +34,9 @@ | ||
| 40 | android:divider="@null" | 34 | android:divider="@null" |
| 41 | android:scrollbars="none" | 35 | android:scrollbars="none" |
| 42 | android:transcriptMode="alwaysScroll" /> | 36 | android:transcriptMode="alwaysScroll" /> |
| 43 | - | ||
| 44 | - </LinearLayout> | ||
| 45 | - | ||
| 46 | - <LinearLayout | ||
| 47 | - android:layout_width="0dp" | ||
| 48 | - android:layout_height="match_parent" | ||
| 49 | - android:layout_weight="1" | ||
| 50 | - android:orientation="vertical"> | ||
| 51 | - | ||
| 52 | - <TextView | ||
| 53 | - android:layout_width="match_parent" | ||
| 54 | - android:layout_height="wrap_content" | ||
| 55 | - android:gravity="center" | ||
| 56 | - android:text="聊天室二" /> | ||
| 57 | - | ||
| 58 | - <ListView | ||
| 59 | - android:id="@+id/chat_list_viewTwo" | ||
| 60 | - android:layout_width="match_parent" | ||
| 61 | - android:layout_height="150dp" | ||
| 62 | - android:layout_above="@+id/edit_layout" | ||
| 63 | - android:layout_alignParentTop="true" | ||
| 64 | - android:layout_toRightOf="@id/chat_list_viewOne" | ||
| 65 | - android:divider="@null" | ||
| 66 | - android:scrollbars="none" | ||
| 67 | - android:transcriptMode="alwaysScroll" /> | ||
| 68 | - | ||
| 69 | </LinearLayout> | 37 | </LinearLayout> |
| 70 | - | ||
| 71 | - | ||
| 72 | </LinearLayout> | 38 | </LinearLayout> |
| 73 | 39 | ||
| 74 | - | ||
| 75 | <LinearLayout | 40 | <LinearLayout |
| 76 | android:id="@+id/edit_layout" | 41 | android:id="@+id/edit_layout" |
| 77 | android:layout_width="match_parent" | 42 | android:layout_width="match_parent" |
| @@ -92,17 +57,9 @@ | @@ -92,17 +57,9 @@ | ||
| 92 | android:layout_height="wrap_content" | 57 | android:layout_height="wrap_content" |
| 93 | android:layout_gravity="center" | 58 | android:layout_gravity="center" |
| 94 | android:layout_weight="0.2" | 59 | android:layout_weight="0.2" |
| 95 | - android:text="聊天室1发送" /> | 60 | + android:text="发送" /> |
| 96 | 61 | ||
| 97 | - | ||
| 98 | - <Button | ||
| 99 | - android:id="@+id/send_messageTwo" | ||
| 100 | - android:layout_width="0dp" | ||
| 101 | - android:layout_height="wrap_content" | ||
| 102 | - android:layout_gravity="center" | ||
| 103 | - android:layout_weight="0.2" | ||
| 104 | - android:text="聊天室2发送" /> | ||
| 105 | - </LinearLayout> | 62 | + </LinearLayout> |
| 106 | 63 | ||
| 107 | <LinearLayout | 64 | <LinearLayout |
| 108 | android:layout_width="match_parent" | 65 | android:layout_width="match_parent" |
| @@ -119,44 +76,30 @@ | @@ -119,44 +76,30 @@ | ||
| 119 | android:id="@+id/creatChat" | 76 | android:id="@+id/creatChat" |
| 120 | android:layout_width="wrap_content" | 77 | android:layout_width="wrap_content" |
| 121 | android:layout_height="wrap_content" | 78 | android:layout_height="wrap_content" |
| 122 | - android:text="加入聊天室1" /> | 79 | + android:text="加入聊天室" /> |
| 123 | 80 | ||
| 124 | <Button | 81 | <Button |
| 125 | - android:id="@+id/creatChat2" | 82 | + android:id="@+id/chat_info_mation" |
| 83 | + android:layout_width="wrap_content" | ||
| 84 | + android:layout_height="wrap_content" | ||
| 85 | + android:layout_weight="1" | ||
| 86 | + android:text="获取聊天室信息" /> | ||
| 87 | + <Button | ||
| 88 | + android:id="@+id/exit_chat1" | ||
| 126 | android:layout_width="wrap_content" | 89 | android:layout_width="wrap_content" |
| 127 | android:layout_height="wrap_content" | 90 | android:layout_height="wrap_content" |
| 128 | - android:text="加入聊天室2" /> | 91 | + android:text="退出聊天室" /> |
| 129 | 92 | ||
| 130 | </LinearLayout> | 93 | </LinearLayout> |
| 131 | 94 | ||
| 132 | - <LinearLayout | ||
| 133 | - android:layout_width="match_parent" | ||
| 134 | - android:layout_height="wrap_content" | ||
| 135 | - android:orientation="horizontal"> | ||
| 136 | 95 | ||
| 137 | 96 | ||
| 138 | - </LinearLayout> | ||
| 139 | 97 | ||
| 140 | - <LinearLayout | ||
| 141 | - android:layout_width="match_parent" | ||
| 142 | - android:layout_height="wrap_content" | ||
| 143 | - android:orientation="horizontal"> | ||
| 144 | 98 | ||
| 145 | - <Button | ||
| 146 | - android:id="@+id/exit_chat1" | ||
| 147 | - android:layout_width="wrap_content" | ||
| 148 | - android:layout_height="wrap_content" | ||
| 149 | - android:text="退出聊天室1" /> | ||
| 150 | 99 | ||
| 151 | - <Button | ||
| 152 | - android:id="@+id/exit_chat2" | ||
| 153 | - android:layout_width="wrap_content" | ||
| 154 | - android:layout_height="wrap_content" | ||
| 155 | - android:text="退出聊天室2" /> | ||
| 156 | 100 | ||
| 157 | 101 | ||
| 158 | 102 | ||
| 159 | - </LinearLayout> | ||
| 160 | </LinearLayout> | 103 | </LinearLayout> |
| 161 | </RelativeLayout> | 104 | </RelativeLayout> |
| 162 | 105 |
app/src/main/res/layout/activity_main.xml
| @@ -8,6 +8,7 @@ | @@ -8,6 +8,7 @@ | ||
| 8 | 8 | ||
| 9 | <Button | 9 | <Button |
| 10 | android:id="@+id/connected" | 10 | android:id="@+id/connected" |
| 11 | + android:background="#e41212" | ||
| 11 | android:layout_width="match_parent" | 12 | android:layout_width="match_parent" |
| 12 | android:layout_height="wrap_content" | 13 | android:layout_height="wrap_content" |
| 13 | android:layout_centerInParent="true" | 14 | android:layout_centerInParent="true" |
app/src/main/res/layout/msg_text_view.xml
| 1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | 2 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| 3 | android:layout_width="match_parent" | 3 | android:layout_width="match_parent" |
| 4 | android:layout_height="match_parent" | 4 | android:layout_height="match_parent" |
| 5 | android:orientation="horizontal"> | 5 | android:orientation="horizontal"> |
| 6 | 6 | ||
| 7 | - <TextView | ||
| 8 | - android:id="@+id/user_name" | 7 | + <RelativeLayout |
| 8 | + android:id="@+id/re_chat_room" | ||
| 9 | android:layout_width="wrap_content" | 9 | android:layout_width="wrap_content" |
| 10 | - android:layout_height="wrap_content" | ||
| 11 | - android:gravity="center_vertical" | ||
| 12 | - android:textColor="#3ce1ff" | ||
| 13 | - android:textSize="14sp" /> | 10 | + android:layout_height="wrap_content"> |
| 14 | 11 | ||
| 15 | - <TextView | ||
| 16 | - android:id="@+id/msg_text" | ||
| 17 | - android:layout_width="wrap_content" | ||
| 18 | - android:layout_height="wrap_content" | ||
| 19 | - android:textColor="@android:color/black" | ||
| 20 | - android:textSize="15sp" /> | ||
| 21 | -</LinearLayout> | ||
| 22 | \ No newline at end of file | 12 | \ No newline at end of file |
| 13 | + <TextView | ||
| 14 | + android:id="@+id/user_name" | ||
| 15 | + android:layout_width="wrap_content" | ||
| 16 | + android:layout_height="wrap_content" | ||
| 17 | + android:gravity="center_vertical" | ||
| 18 | + android:textColor="#d61d0c" | ||
| 19 | + android:textSize="14sp" /> | ||
| 20 | + | ||
| 21 | + <TextView | ||
| 22 | + android:id="@+id/msg_text" | ||
| 23 | + android:layout_width="wrap_content" | ||
| 24 | + android:layout_height="wrap_content" | ||
| 25 | + android:layout_toRightOf="@id/user_name" | ||
| 26 | + android:textColor="@android:color/black" | ||
| 27 | + android:textSize="15sp" /> | ||
| 28 | + </RelativeLayout> | ||
| 29 | + | ||
| 30 | +</RelativeLayout> | ||
| 23 | \ No newline at end of file | 31 | \ No newline at end of file |