Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
ccim_sdk_android
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sheteng
ccim_sdk_android
Commits
a2f78463
Commit
a2f78463
authored
Jun 20, 2022
by
sheteng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复频道返回没有值
parent
31ce8e95
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
111 additions
and
43 deletions
+111
-43
.idea/misc.xml
.idea/misc.xml
+1
-0
app/src/main/java/com/ccwangluo/im/adapter/ChannelMsgAdapter.java
...main/java/com/ccwangluo/im/adapter/ChannelMsgAdapter.java
+2
-2
app/src/main/java/com/ccwangluo/im/ui/dashboard/ConnectActivity.java
...n/java/com/ccwangluo/im/ui/dashboard/ConnectActivity.java
+16
-5
app/src/main/java/com/ccwangluo/im/ui/notifications/ConnectChannelActivity.java
...ccwangluo/im/ui/notifications/ConnectChannelActivity.java
+24
-15
app/src/main/res/layout/activity_login.xml
app/src/main/res/layout/activity_login.xml
+1
-1
app/src/main/res/layout/msg_row_item.xml
app/src/main/res/layout/msg_row_item.xml
+0
-1
ccim/src/main/java/com/ccwangluo/ccim/CCIMClient.java
ccim/src/main/java/com/ccwangluo/ccim/CCIMClient.java
+46
-12
ccim/src/main/java/com/ccwangluo/ccim/listener/RecordAutoSendCallback.java
...a/com/ccwangluo/ccim/listener/RecordAutoSendCallback.java
+8
-0
ccim/src/main/java/com/ccwangluo/ccim/manage/MessageManager.java
...c/main/java/com/ccwangluo/ccim/manage/MessageManager.java
+1
-1
ccim/src/main/java/com/ccwangluo/ccim/manage/SocketManager.java
...rc/main/java/com/ccwangluo/ccim/manage/SocketManager.java
+9
-3
ccim/src/main/java/com/ccwangluo/ccim/modle/User.java
ccim/src/main/java/com/ccwangluo/ccim/modle/User.java
+2
-1
ccim/src/main/java/com/ccwangluo/ccim/util/MediaHelper.java
ccim/src/main/java/com/ccwangluo/ccim/util/MediaHelper.java
+1
-2
No files found.
.idea/misc.xml
View file @
a2f78463
...
...
@@ -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"
/>
...
...
app/src/main/java/com/ccwangluo/im/adapter/ChannelMsgAdapter.java
View file @
a2f78463
...
...
@@ -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
...
...
app/src/main/java/com/ccwangluo/im/ui/dashboard/ConnectActivity.java
View file @
a2f78463
...
...
@@ -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
)
{
}
});
}
...
...
app/src/main/java/com/ccwangluo/im/ui/notifications/ConnectChannelActivity.java
View file @
a2f78463
...
...
@@ -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,21 +111,29 @@ public class ConnectChannelActivity extends AppCompatActivity {
});
}
if
(
event
.
getAction
()
==
MotionEvent
.
ACTION_DOWN
)
{
CCIMClient
.
getInstance
().
startRecordChannelAudioMessage
(
ConnectChannelActivity
.
this
,
channelId
,
new
ResultEventCallback
<
MessageContent
>()
{
@Override
public
void
onSuccess
(
MessageContent
unused
)
{
if
(
unused
!=
null
){
loginViewModel
.
addPrivateMsg
(
unused
);
}
isSuccess
=
true
;
}
@Override
public
void
onFailed
(
int
errorCode
)
{
isSuccess
=
false
;
ToastUtil
.
show
(
ConnectChannelActivity
.
this
,
errorCode
+
""
);
}
});
CCIMClient
.
getInstance
().
startRecordChannelAudioMessage
(
ConnectChannelActivity
.
this
,
channelId
,
new
ResultEventCallback
<
Void
>()
{
@Override
public
void
onSuccess
(
Void
unused
)
{
isSuccess
=
true
;
}
@Override
public
void
onFailed
(
int
errorCode
)
{
isSuccess
=
false
;
ToastUtil
.
show
(
ConnectChannelActivity
.
this
,
errorCode
+
""
);
}
},
new
RecordAutoSendCallback
()
{
@Override
public
void
onSuccess
(
MessageContent
t
)
{
loginViewModel
.
addChannelMsg
(
t
);
}
@Override
public
void
onFailed
(
int
errorCode
)
{
}
});
}
return
false
;
...
...
app/src/main/res/layout/activity_login.xml
View file @
a2f78463
...
...
@@ -69,7 +69,7 @@
android:layout_height=
"wrap_content"
android:layout_marginTop=
"8dp"
android:hint=
"ip"
android:text=
"10
.17.4.20
7"
android:text=
"10
6.15.237.6
7"
android:imeActionLabel=
"@string/action_sign_in_short"
android:imeOptions=
"actionDone"
android:selectAllOnFocus=
"true"
...
...
app/src/main/res/layout/msg_row_item.xml
View file @
a2f78463
...
...
@@ -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"
...
...
ccim/src/main/java/com/ccwangluo/ccim/CCIMClient.java
View file @
a2f78463
...
...
@@ -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
.
user
Id
=
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
(
user
Id
);
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
>
resultC
allback
)
{
public
void
startRecordAudioMessage
(
Context
context
,
Long
receiveUserId
,
String
receiveUserName
,
ResultEventCallback
<
Void
>
resultCallback
,
RecordAutoSendCallback
c
allback
)
{
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
);
}
});
}
runnable
=
null
;
}
},
maxAudioDuration
*
1000L
);
};
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
>
resultC
allback
)
{
public
void
startRecordChannelAudioMessage
(
Context
context
,
Long
channelID
,
ResultEventCallback
<
Void
>
resultCallback
,
RecordAutoSendCallback
c
allback
)
{
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
);
}
});
}
runnable
=
null
;
}
},
maxAudioDuration
*
1000L
);
};
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
);
...
...
ccim/src/main/java/com/ccwangluo/ccim/listener/RecordAutoSendCallback.java
0 → 100644
View file @
a2f78463
package
com.ccwangluo.ccim.listener
;
import
com.ccwangluo.ccim.modle.MessageContent
;
public
interface
RecordAutoSendCallback
{
void
onSuccess
(
MessageContent
t
);
void
onFailed
(
int
errorCode
);
}
ccim/src/main/java/com/ccwangluo/ccim/manage/MessageManager.java
View file @
a2f78463
...
...
@@ -160,7 +160,7 @@ public class MessageManager {
@Override
public
void
onSuccess
(
Chat
.
ChatResponseMessage
chatResponseMessage
)
{
if
(
chatResponseMessage
.
hasSendChannelMsgRes
())
{
Message
.
Send
MessageResponse
sendMsgRes
=
chatResponseMessage
.
getSend
MsgRes
();
Message
.
Send
ChannelMessageResponse
sendMsgRes
=
chatResponseMessage
.
getSendChannel
MsgRes
();
long
msgId
=
sendMsgRes
.
getMsgId
();
MessageContent
message
=
new
MessageContent
();
String
text
=
content
;
...
...
ccim/src/main/java/com/ccwangluo/ccim/manage/SocketManager.java
View file @
a2f78463
...
...
@@ -159,7 +159,9 @@ public class SocketManager {
private
void
pulseData
(
Long
frequency
)
{
Chat
.
ChatRequestMessage
.
Builder
builder
=
Chat
.
ChatRequestMessage
.
newBuilder
();
builder
.
setHeartbeatReq
(
Chat
.
HeartbeatRequest
.
getDefaultInstance
());
socketClient
.
heartBeat
(
frequency
,
builder
.
build
());
if
(
socketClient
!=
null
)
{
socketClient
.
heartBeat
(
frequency
,
builder
.
build
());
}
}
public
int
sendRequest
(
Chat
.
ChatRequestMessage
.
Builder
reqBuilder
)
{
...
...
@@ -167,7 +169,9 @@ public class SocketManager {
Common
.
RequestMessageHeader
header
=
Common
.
RequestMessageHeader
.
newBuilder
().
setVersion
(
version
).
setSeq
(
idPlus
).
build
();
reqBuilder
.
setHeader
(
header
);
logger
.
info
(
reqBuilder
.
build
().
toString
());
socketClient
.
sendMsg
(
reqBuilder
.
build
());
if
(
socketClient
!=
null
)
{
socketClient
.
sendMsg
(
reqBuilder
.
build
());
}
return
idPlus
;
}
...
...
@@ -179,7 +183,9 @@ public class SocketManager {
}
public
void
disConnect
()
{
socketClient
.
destroy
();
if
(
socketClient
!=
null
)
{
socketClient
.
destroy
();
}
}
public
void
initServer
(
String
ip
,
int
port
)
{
...
...
ccim/src/main/java/com/ccwangluo/ccim/modle/User.java
View file @
a2f78463
...
...
@@ -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
;
...
...
ccim/src/main/java/com/ccwangluo/ccim/util/MediaHelper.java
View file @
a2f78463
...
...
@@ -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
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment