Commit a2f78463 authored by sheteng's avatar sheteng

修复频道返回没有值

parent 31ce8e95
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<map> <map>
<entry key="..\:/ccwangluo/ccim_sdk_android/app/src/main/res/layout/activity_login.xml" value="0.1612008072653885" /> <entry key="..\:/ccwangluo/ccim_sdk_android/app/src/main/res/layout/activity_login.xml" value="0.1612008072653885" />
<entry key="..\:/ccwangluo/ccim_sdk_android/app/src/main/res/layout/activity_main2.xml" value="0.1612008072653885" /> <entry key="..\:/ccwangluo/ccim_sdk_android/app/src/main/res/layout/activity_main2.xml" value="0.1612008072653885" />
<entry key="..\:/ccwangluo/ccim_sdk_android/app/src/main/res/layout/msg_row_item.xml" value="0.2617753623188406" />
<entry key="..\:/project/ccwangluoIm/app/src/main/res/layout/activity_connect.xml" value="0.3170289855072464" /> <entry key="..\:/project/ccwangluoIm/app/src/main/res/layout/activity_connect.xml" value="0.3170289855072464" />
<entry key="..\:/project/ccwangluoIm/app/src/main/res/layout/activity_connect_channel.xml" value="0.26403985507246375" /> <entry key="..\:/project/ccwangluoIm/app/src/main/res/layout/activity_connect_channel.xml" value="0.26403985507246375" />
<entry key="..\:/project/ccwangluoIm/app/src/main/res/layout/activity_login.xml" value="0.322463768115942" /> <entry key="..\:/project/ccwangluoIm/app/src/main/res/layout/activity_login.xml" value="0.322463768115942" />
......
...@@ -71,11 +71,11 @@ public class ChannelMsgAdapter extends BaseAdapter { ...@@ -71,11 +71,11 @@ public class ChannelMsgAdapter extends BaseAdapter {
} }
MessageContent messageContent = dataList.get(position); MessageContent messageContent = dataList.get(position);
mHolder.msg_content.setVisibility(View.VISIBLE); mHolder.msg_content.setVisibility(View.VISIBLE);
mHolder.msg_content_send.setVisibility(View.GONE); // mHolder.msg_content_send.setVisibility(View.GONE);
if (messageContent.getMsgType()== MessageContent.MessageType.MESSAGE_TYPE_TEXT) { if (messageContent.getMsgType()== MessageContent.MessageType.MESSAGE_TYPE_TEXT) {
mHolder.msg_content.setText(messageContent.getContent()); mHolder.msg_content.setText(messageContent.getContent());
} else { } else {
mHolder.msg_content.setText("语音消息"); mHolder.msg_content.setText(messageContent.getVoiceContent());
} }
convertView.setOnClickListener(new View.OnClickListener() { convertView.setOnClickListener(new View.OnClickListener() {
@Override @Override
......
...@@ -9,6 +9,7 @@ import androidx.lifecycle.Observer; ...@@ -9,6 +9,7 @@ import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelProvider;
import com.ccwangluo.ccim.CCIMClient; import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.RecordAutoSendCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback; import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.modle.Contact; import com.ccwangluo.ccim.modle.Contact;
import com.ccwangluo.ccim.modle.MessageContent; import com.ccwangluo.ccim.modle.MessageContent;
...@@ -97,12 +98,10 @@ public class ConnectActivity extends AppCompatActivity { ...@@ -97,12 +98,10 @@ public class ConnectActivity extends AppCompatActivity {
}); });
} }
if (event.getAction() == MotionEvent.ACTION_DOWN) { if (event.getAction() == MotionEvent.ACTION_DOWN) {
CCIMClient.getInstance().startRecordAudioMessage(ConnectActivity.this,contact.getContactUserId(), contact.getContactUserName(), new ResultEventCallback<MessageContent>() { CCIMClient.getInstance().startRecordAudioMessage(ConnectActivity.this, contact.getContactUserId(), contact.getContactUserName(), new ResultEventCallback<Void>() {
@Override @Override
public void onSuccess(MessageContent unused) { public void onSuccess(Void unused) {
if (unused != null){
loginViewModel.addPrivateMsg(unused);
}
isSuccess = true; isSuccess = true;
} }
...@@ -111,6 +110,18 @@ public class ConnectActivity extends AppCompatActivity { ...@@ -111,6 +110,18 @@ public class ConnectActivity extends AppCompatActivity {
isSuccess = false; isSuccess = false;
ToastUtil.show(getApplication(), errorCode + ""); ToastUtil.show(getApplication(), errorCode + "");
} }
}, new RecordAutoSendCallback() {
@Override
public void onSuccess(MessageContent t) {
loginViewModel.addPrivateMsg(t);
}
@Override
public void onFailed(int errorCode) {
}
}); });
} }
......
...@@ -9,6 +9,7 @@ import androidx.lifecycle.Observer; ...@@ -9,6 +9,7 @@ import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelProvider;
import com.ccwangluo.ccim.CCIMClient; import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.RecordAutoSendCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback; import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.modle.MessageContent; import com.ccwangluo.ccim.modle.MessageContent;
import com.ccwangluo.im.adapter.ChannelMsgAdapter; import com.ccwangluo.im.adapter.ChannelMsgAdapter;
...@@ -110,19 +111,27 @@ public class ConnectChannelActivity extends AppCompatActivity { ...@@ -110,19 +111,27 @@ public class ConnectChannelActivity extends AppCompatActivity {
}); });
} }
if (event.getAction() == MotionEvent.ACTION_DOWN) { if (event.getAction() == MotionEvent.ACTION_DOWN) {
CCIMClient.getInstance().startRecordChannelAudioMessage(ConnectChannelActivity.this,channelId, new ResultEventCallback<MessageContent>() { CCIMClient.getInstance().startRecordChannelAudioMessage(ConnectChannelActivity.this, channelId,
new ResultEventCallback<Void>() {
@Override @Override
public void onSuccess(MessageContent unused) { public void onSuccess(Void unused) {
if (unused != null){
loginViewModel.addPrivateMsg(unused);
}
isSuccess = true; isSuccess = true;
} }
@Override @Override
public void onFailed(int errorCode) { public void onFailed(int errorCode) {
isSuccess = false; isSuccess = false;
ToastUtil.show(ConnectChannelActivity.this,errorCode + ""); ToastUtil.show(ConnectChannelActivity.this, errorCode + "");
}
}, new RecordAutoSendCallback() {
@Override
public void onSuccess(MessageContent t) {
loginViewModel.addChannelMsg(t);
}
@Override
public void onFailed(int errorCode) {
} }
}); });
} }
......
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:hint="ip" android:hint="ip"
android:text="10.17.4.207" android:text="106.15.237.67"
android:imeActionLabel="@string/action_sign_in_short" android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionDone" android:imeOptions="actionDone"
android:selectAllOnFocus="true" android:selectAllOnFocus="true"
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
android:layout_height="wrap_content"/> android:layout_height="wrap_content"/>
<TextView <TextView
android:visibility="gone"
android:layout_margin="10dp" android:layout_margin="10dp"
android:gravity="end" android:gravity="end"
android:id="@+id/msg_content_send" android:id="@+id/msg_content_send"
......
...@@ -11,6 +11,7 @@ import androidx.annotation.NonNull; ...@@ -11,6 +11,7 @@ import androidx.annotation.NonNull;
import com.ccwangluo.ccim.listener.OnClientConnectListener; import com.ccwangluo.ccim.listener.OnClientConnectListener;
import com.ccwangluo.ccim.listener.OnConnectListener; import com.ccwangluo.ccim.listener.OnConnectListener;
import com.ccwangluo.ccim.listener.OnPushMsgListener; import com.ccwangluo.ccim.listener.OnPushMsgListener;
import com.ccwangluo.ccim.listener.RecordAutoSendCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback; import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.manage.CallBackManager; import com.ccwangluo.ccim.manage.CallBackManager;
import com.ccwangluo.ccim.manage.ChannelManager; import com.ccwangluo.ccim.manage.ChannelManager;
...@@ -54,7 +55,7 @@ public class CCIMClient { ...@@ -54,7 +55,7 @@ public class CCIMClient {
private static ContactManager contactManager; private static ContactManager contactManager;
private static ChannelManager channelManager; private static ChannelManager channelManager;
private static MessageManager messageManager; private static MessageManager messageManager;
private static Long userId; private static User user;
private static boolean isConnected = false; //链接状态 private static boolean isConnected = false; //链接状态
private Long lastSendTimemillis = 0L; //上次发送消息时间,用于时间间隔 private Long lastSendTimemillis = 0L; //上次发送消息时间,用于时间间隔
private int maxSendMsgInterval = 0; private int maxSendMsgInterval = 0;
...@@ -92,7 +93,7 @@ public class CCIMClient { ...@@ -92,7 +93,7 @@ public class CCIMClient {
} }
public void initSDK(Context context, String appKey, String userName, String extData, Long userId, Long ts, String sign, String server, OnConnectListener resultCallback) { public void initSDK(Context context, String appKey, String userName, String extData, Long userId, Long ts, String sign, String server, OnConnectListener resultCallback) {
this.userId = userId; this.user = new User(userId,userName,extData);
messageManager.init(context, userId); messageManager.init(context, userId);
socketManager.initChat(context, appKey, userName, extData, userId, ts, sign, server, new OnClientConnectListener() { socketManager.initChat(context, appKey, userName, extData, userId, ts, sign, server, new OnClientConnectListener() {
@Override @Override
...@@ -171,7 +172,7 @@ public class CCIMClient { ...@@ -171,7 +172,7 @@ public class CCIMClient {
MessageContent message = pushPrivateMsgRes1.getMessage(); MessageContent message = pushPrivateMsgRes1.getMessage();
Long senderUserId = message.getSenderUserId(); Long senderUserId = message.getSenderUserId();
contactManager.putContactDialog(senderUserId, null); contactManager.putContactDialog(senderUserId, null);
pushPrivateMsgRes1.getMessage().setReciveUserId(userId); pushPrivateMsgRes1.getMessage().setReciveUserId(user.getUserId());
pushMsgListener.pushPrivateMsg(pushPrivateMsgRes1.getMessage()); pushMsgListener.pushPrivateMsg(pushPrivateMsgRes1.getMessage());
messageManager.pushNewMessage(pushPrivateMsgRes1.getMessage()); messageManager.pushNewMessage(pushPrivateMsgRes1.getMessage());
} }
...@@ -225,7 +226,8 @@ public class CCIMClient { ...@@ -225,7 +226,8 @@ public class CCIMClient {
Push.PushContactNewReqResponse pushContactNewReqRes = chatResponseMessage.getPushContactNewReqRes(); Push.PushContactNewReqResponse pushContactNewReqRes = chatResponseMessage.getPushContactNewReqRes();
String username = pushContactNewReqRes.getContactNewReq().getUsername(); String username = pushContactNewReqRes.getContactNewReq().getUsername();
Long id = pushContactNewReqRes.getContactNewReq().getUserId(); Long id = pushContactNewReqRes.getContactNewReq().getUserId();
pushMsgListener.pushContactNewReq(new User(id, username)); String extData = pushContactNewReqRes.getContactNewReq().getExtData();
pushMsgListener.pushContactNewReq(new User(id, username,extData));
} }
if (chatResponseMessage.hasPushUserDeletedRes()) { if (chatResponseMessage.hasPushUserDeletedRes()) {
...@@ -470,20 +472,33 @@ public class CCIMClient { ...@@ -470,20 +472,33 @@ public class CCIMClient {
/** /**
* 开始录音 * 开始录音
*/ */
public void startRecordAudioMessage(Context context,Long receiveUserId, String receiveUserName, ResultEventCallback<MessageContent> resultCallback) { public void startRecordAudioMessage(Context context, Long receiveUserId, String receiveUserName, ResultEventCallback<Void> resultCallback, RecordAutoSendCallback callback) {
PermissionUtils.check(context, Manifest.permission.RECORD_AUDIO, new ResultEventCallback<Void>() { PermissionUtils.check(context, Manifest.permission.RECORD_AUDIO, new ResultEventCallback<Void>() {
@Override @Override
public void onSuccess(Void o) { public void onSuccess(Void o) {
MediaHelper.getInstance().prepare(cachePath, maxAudioDuration, resultCallback); MediaHelper.getInstance().prepare(cachePath, maxAudioDuration, resultCallback);
handler.postDelayed(new Runnable() { runnable = new Runnable() {
@Override @Override
public void run() { public void run() {
logger.info("time out ,auto send");
Long release = MediaHelper.getInstance().release(); Long release = MediaHelper.getInstance().release();
if (release / 1000 >= maxAudioDuration) { if (release / 1000 >= maxAudioDuration) {
uploadAndSendMessage(receiveUserId, receiveUserName, resultCallback); uploadAndSendMessage(receiveUserId, receiveUserName, new ResultEventCallback<MessageContent>() {
@Override
public void onSuccess(MessageContent messageContent) {
callback.onSuccess(messageContent);
} }
@Override
public void onFailed(int errorCode) {
callback.onFailed(errorCode);
}
});
} }
},maxAudioDuration * 1000L); runnable = null;
}
};
handler.postDelayed(runnable,maxAudioDuration * 1000L);
} }
@Override @Override
...@@ -529,23 +544,38 @@ public class CCIMClient { ...@@ -529,23 +544,38 @@ public class CCIMClient {
}); });
} }
private Runnable runnable;
/** /**
* 开始录音 * 开始录音
*/ */
public void startRecordChannelAudioMessage(Context context,Long channelID, ResultEventCallback<MessageContent> resultCallback) { public void startRecordChannelAudioMessage(Context context,Long channelID, ResultEventCallback<Void> resultCallback,RecordAutoSendCallback callback) {
PermissionUtils.check(context, Manifest.permission.RECORD_AUDIO, new ResultEventCallback<Void>() { PermissionUtils.check(context, Manifest.permission.RECORD_AUDIO, new ResultEventCallback<Void>() {
@Override @Override
public void onSuccess(Void o) { public void onSuccess(Void o) {
MediaHelper.getInstance().prepare(cachePath, maxAudioDuration, resultCallback); MediaHelper.getInstance().prepare(cachePath, maxAudioDuration, resultCallback);
handler.postDelayed(new Runnable() { runnable = new Runnable() {
@Override @Override
public void run() { public void run() {
logger.info("time out ,auto send");
Long release = MediaHelper.getInstance().release(); Long release = MediaHelper.getInstance().release();
if (release / 1000 >= maxAudioDuration) { if (release / 1000 >= maxAudioDuration) {
uploadAndSendChannelMessage(channelID, resultCallback); uploadAndSendChannelMessage(channelID, new ResultEventCallback<MessageContent>() {
@Override
public void onSuccess(MessageContent messageContent) {
callback.onSuccess(messageContent);
} }
@Override
public void onFailed(int errorCode) {
callback.onFailed(errorCode);
}
});
} }
},maxAudioDuration * 1000L); runnable = null;
}
};
handler.postDelayed(runnable,maxAudioDuration * 1000L);
} }
@Override @Override
...@@ -581,6 +611,10 @@ public class CCIMClient { ...@@ -581,6 +611,10 @@ public class CCIMClient {
} }
private boolean checkAudio(ResultEventCallback<MessageContent> callback) { private boolean checkAudio(ResultEventCallback<MessageContent> callback) {
if (runnable != null){
handler.removeCallbacks(runnable);
runnable = null;
}
Long release = MediaHelper.getInstance().release(); Long release = MediaHelper.getInstance().release();
if (release < minAudioDuration) { if (release < minAudioDuration) {
callback.onFailed(ErrorCode.VOICE_TOO_SHORT); callback.onFailed(ErrorCode.VOICE_TOO_SHORT);
......
package com.ccwangluo.ccim.listener;
import com.ccwangluo.ccim.modle.MessageContent;
public interface RecordAutoSendCallback {
void onSuccess(MessageContent t);
void onFailed(int errorCode);
}
...@@ -160,7 +160,7 @@ public class MessageManager { ...@@ -160,7 +160,7 @@ public class MessageManager {
@Override @Override
public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) { public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) {
if (chatResponseMessage.hasSendChannelMsgRes()) { if (chatResponseMessage.hasSendChannelMsgRes()) {
Message.SendMessageResponse sendMsgRes = chatResponseMessage.getSendMsgRes(); Message.SendChannelMessageResponse sendMsgRes = chatResponseMessage.getSendChannelMsgRes();
long msgId = sendMsgRes.getMsgId(); long msgId = sendMsgRes.getMsgId();
MessageContent message = new MessageContent(); MessageContent message = new MessageContent();
String text = content; String text = content;
......
...@@ -159,15 +159,19 @@ public class SocketManager { ...@@ -159,15 +159,19 @@ public class SocketManager {
private void pulseData(Long frequency) { private void pulseData(Long frequency) {
Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder(); Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder();
builder.setHeartbeatReq(Chat.HeartbeatRequest.getDefaultInstance()); builder.setHeartbeatReq(Chat.HeartbeatRequest.getDefaultInstance());
if (socketClient != null) {
socketClient.heartBeat(frequency, builder.build()); socketClient.heartBeat(frequency, builder.build());
} }
}
public int sendRequest(Chat.ChatRequestMessage.Builder reqBuilder) { public int sendRequest(Chat.ChatRequestMessage.Builder reqBuilder) {
int idPlus = idPlus(); int idPlus = idPlus();
Common.RequestMessageHeader header = Common.RequestMessageHeader.newBuilder().setVersion(version).setSeq(idPlus).build(); Common.RequestMessageHeader header = Common.RequestMessageHeader.newBuilder().setVersion(version).setSeq(idPlus).build();
reqBuilder.setHeader(header); reqBuilder.setHeader(header);
logger.info(reqBuilder.build().toString()); logger.info(reqBuilder.build().toString());
if (socketClient != null) {
socketClient.sendMsg(reqBuilder.build()); socketClient.sendMsg(reqBuilder.build());
}
return idPlus; return idPlus;
} }
...@@ -179,8 +183,10 @@ public class SocketManager { ...@@ -179,8 +183,10 @@ public class SocketManager {
} }
public void disConnect() { public void disConnect() {
if (socketClient != null) {
socketClient.destroy(); socketClient.destroy();
} }
}
public void initServer(String ip, int port) { public void initServer(String ip, int port) {
SERVER_IP = ip; SERVER_IP = ip;
......
...@@ -2,9 +2,10 @@ package com.ccwangluo.ccim.modle; ...@@ -2,9 +2,10 @@ package com.ccwangluo.ccim.modle;
public class User { public class User {
public User(Long userId, String username) { public User(Long userId, String username,String extData) {
this.userId = userId; this.userId = userId;
this.username = username; this.username = username;
this.extData = extData;
} }
private Long userId; private Long userId;
......
...@@ -36,7 +36,7 @@ public class MediaHelper { ...@@ -36,7 +36,7 @@ public class MediaHelper {
/** /**
* 准备录音 * 准备录音
*/ */
public void prepare(String path, int maxAudioDuration, ResultEventCallback<MessageContent> resultCallback) { public void prepare(String path, int maxAudioDuration, ResultEventCallback<Void> resultCallback) {
try { try {
if (mMediaRecorder != null) { if (mMediaRecorder != null) {
cancel(); cancel();
...@@ -73,7 +73,6 @@ public class MediaHelper { ...@@ -73,7 +73,6 @@ public class MediaHelper {
*/ */
public Long release() { public Long release() {
if (mMediaRecorder != null) { if (mMediaRecorder != null) {
mMediaRecorder.stop();
mMediaRecorder.reset(); mMediaRecorder.reset();
mMediaRecorder.release(); mMediaRecorder.release();
mMediaRecorder = null; mMediaRecorder = null;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment