Commit a2f78463 authored by sheteng's avatar sheteng

修复频道返回没有值

parent 31ce8e95
......@@ -5,6 +5,7 @@
<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_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_channel.xml" value="0.26403985507246375" />
<entry key="..\:/project/ccwangluoIm/app/src/main/res/layout/activity_login.xml" value="0.322463768115942" />
......
......@@ -71,11 +71,11 @@ public class ChannelMsgAdapter extends BaseAdapter {
}
MessageContent messageContent = dataList.get(position);
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) {
mHolder.msg_content.setText(messageContent.getContent());
} else {
mHolder.msg_content.setText("语音消息");
mHolder.msg_content.setText(messageContent.getVoiceContent());
}
convertView.setOnClickListener(new View.OnClickListener() {
@Override
......
......@@ -9,6 +9,7 @@ import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.RecordAutoSendCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.modle.Contact;
import com.ccwangluo.ccim.modle.MessageContent;
......@@ -97,12 +98,10 @@ public class ConnectActivity extends AppCompatActivity {
});
}
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
public void onSuccess(MessageContent unused) {
if (unused != null){
loginViewModel.addPrivateMsg(unused);
}
public void onSuccess(Void unused) {
isSuccess = true;
}
......@@ -111,6 +110,18 @@ public class ConnectActivity extends AppCompatActivity {
isSuccess = false;
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;
import androidx.lifecycle.ViewModelProvider;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.RecordAutoSendCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.modle.MessageContent;
import com.ccwangluo.im.adapter.ChannelMsgAdapter;
......@@ -110,19 +111,27 @@ public class ConnectChannelActivity extends AppCompatActivity {
});
}
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
public void onSuccess(MessageContent unused) {
if (unused != null){
loginViewModel.addPrivateMsg(unused);
}
public void onSuccess(Void unused) {
isSuccess = true;
}
@Override
public void onFailed(int errorCode) {
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 @@
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:hint="ip"
android:text="10.17.4.207"
android:text="106.15.237.67"
android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionDone"
android:selectAllOnFocus="true"
......
......@@ -12,7 +12,6 @@
android:layout_height="wrap_content"/>
<TextView
android:visibility="gone"
android:layout_margin="10dp"
android:gravity="end"
android:id="@+id/msg_content_send"
......
......@@ -11,6 +11,7 @@ import androidx.annotation.NonNull;
import com.ccwangluo.ccim.listener.OnClientConnectListener;
import com.ccwangluo.ccim.listener.OnConnectListener;
import com.ccwangluo.ccim.listener.OnPushMsgListener;
import com.ccwangluo.ccim.listener.RecordAutoSendCallback;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.manage.CallBackManager;
import com.ccwangluo.ccim.manage.ChannelManager;
......@@ -54,7 +55,7 @@ public class CCIMClient {
private static ContactManager contactManager;
private static ChannelManager channelManager;
private static MessageManager messageManager;
private static Long userId;
private static User user;
private static boolean isConnected = false; //链接状态
private Long lastSendTimemillis = 0L; //上次发送消息时间,用于时间间隔
private int maxSendMsgInterval = 0;
......@@ -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) {
this.userId = userId;
this.user = new User(userId,userName,extData);
messageManager.init(context, userId);
socketManager.initChat(context, appKey, userName, extData, userId, ts, sign, server, new OnClientConnectListener() {
@Override
......@@ -171,7 +172,7 @@ public class CCIMClient {
MessageContent message = pushPrivateMsgRes1.getMessage();
Long senderUserId = message.getSenderUserId();
contactManager.putContactDialog(senderUserId, null);
pushPrivateMsgRes1.getMessage().setReciveUserId(userId);
pushPrivateMsgRes1.getMessage().setReciveUserId(user.getUserId());
pushMsgListener.pushPrivateMsg(pushPrivateMsgRes1.getMessage());
messageManager.pushNewMessage(pushPrivateMsgRes1.getMessage());
}
......@@ -225,7 +226,8 @@ public class CCIMClient {
Push.PushContactNewReqResponse pushContactNewReqRes = chatResponseMessage.getPushContactNewReqRes();
String username = pushContactNewReqRes.getContactNewReq().getUsername();
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()) {
......@@ -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>() {
@Override
public void onSuccess(Void o) {
MediaHelper.getInstance().prepare(cachePath, maxAudioDuration, resultCallback);
handler.postDelayed(new Runnable() {
runnable = new Runnable() {
@Override
public void run() {
logger.info("time out ,auto send");
Long release = MediaHelper.getInstance().release();
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
......@@ -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>() {
@Override
public void onSuccess(Void o) {
MediaHelper.getInstance().prepare(cachePath, maxAudioDuration, resultCallback);
handler.postDelayed(new Runnable() {
runnable = new Runnable() {
@Override
public void run() {
logger.info("time out ,auto send");
Long release = MediaHelper.getInstance().release();
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
......@@ -581,6 +611,10 @@ public class CCIMClient {
}
private boolean checkAudio(ResultEventCallback<MessageContent> callback) {
if (runnable != null){
handler.removeCallbacks(runnable);
runnable = null;
}
Long release = MediaHelper.getInstance().release();
if (release < minAudioDuration) {
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 {
@Override
public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) {
if (chatResponseMessage.hasSendChannelMsgRes()) {
Message.SendMessageResponse sendMsgRes = chatResponseMessage.getSendMsgRes();
Message.SendChannelMessageResponse sendMsgRes = chatResponseMessage.getSendChannelMsgRes();
long msgId = sendMsgRes.getMsgId();
MessageContent message = new MessageContent();
String text = content;
......
......@@ -159,15 +159,19 @@ public class SocketManager {
private void pulseData(Long frequency) {
Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder();
builder.setHeartbeatReq(Chat.HeartbeatRequest.getDefaultInstance());
if (socketClient != null) {
socketClient.heartBeat(frequency, builder.build());
}
}
public int sendRequest(Chat.ChatRequestMessage.Builder reqBuilder) {
int idPlus = idPlus();
Common.RequestMessageHeader header = Common.RequestMessageHeader.newBuilder().setVersion(version).setSeq(idPlus).build();
reqBuilder.setHeader(header);
logger.info(reqBuilder.build().toString());
if (socketClient != null) {
socketClient.sendMsg(reqBuilder.build());
}
return idPlus;
}
......@@ -179,8 +183,10 @@ public class SocketManager {
}
public void disConnect() {
if (socketClient != null) {
socketClient.destroy();
}
}
public void initServer(String ip, int port) {
SERVER_IP = ip;
......
......@@ -2,9 +2,10 @@ package com.ccwangluo.ccim.modle;
public class User {
public User(Long userId, String username) {
public User(Long userId, String username,String extData) {
this.userId = userId;
this.username = username;
this.extData = extData;
}
private Long userId;
......
......@@ -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 {
if (mMediaRecorder != null) {
cancel();
......@@ -73,7 +73,6 @@ public class MediaHelper {
*/
public Long release() {
if (mMediaRecorder != null) {
mMediaRecorder.stop();
mMediaRecorder.reset();
mMediaRecorder.release();
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