Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
YDL-Component-Medical
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨凯
YDL-Component-Medical
Commits
7f627417
Commit
7f627417
authored
May 06, 2022
by
刘鹏
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/new_dev_4.3.91' into new_dev_4.3.91
# Conflicts: # config.gradle
parents
493da86b
e2c30018
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
404 additions
and
110 deletions
+404
-110
DemoGlobalConfig.java
app/src/main/java/com/ydl/component/base/DemoGlobalConfig.java
+2
-2
build.gradle
build.gradle
+9
-51
config.gradle
config.gradle
+6
-2
build.gradle
m-audioim/build.gradle
+2
-3
AudioHomeActivity.kt
m-audioim/src/main/java/com/ydl/audioim/AudioHomeActivity.kt
+24
-1
YDLavManager.kt
m-audioim/src/main/java/com/ydl/audioim/YDLavManager.kt
+15
-0
ApmEvent.kt
m-audioim/src/main/java/com/ydl/audioim/utils/ApmEvent.kt
+17
-0
ExpertSearchAdapter.kt
m-consultant/src/main/java/com/yidianling/consultant/adapter/ExpertSearchAdapter.kt
+7
-1
consultant_item_tag.xml
m-consultant/src/main/res/layout/consultant_item_tag.xml
+0
-1
dynamicFocusEvent.kt
m-dynamic/src/main/java/com/yidianling/dynamic/event/dynamicFocusEvent.kt
+6
-0
MembersActivity.java
m-dynamic/src/main/java/com/yidianling/dynamic/members/MembersActivity.java
+5
-0
TopicDetailActivity.java
m-dynamic/src/main/java/com/yidianling/dynamic/topic/topicDetail/TopicDetailActivity.java
+5
-0
TrendsDetailActivity.java
m-dynamic/src/main/java/com/yidianling/dynamic/trendsDetail/TrendsDetailActivity.java
+16
-1
HomeBaseImpl.kt
m-home/src/main/java/com/yidianling/home/event/HomeBaseImpl.kt
+13
-2
IHomeBaseEvent.kt
m-home/src/main/java/com/yidianling/home/event/IHomeBaseEvent.kt
+7
-0
HomeAssuageGriefItemView.kt
m-home/src/ydl/java/com/yidianling/home/ui/view/HomeAssuageGriefItemView.kt
+4
-1
home_assuage_grief_item_view.xml
m-home/src/ydl/res/layout/home_assuage_grief_item_view.xml
+1
-0
FirstQuestionBean.kt
m-im/src/main/java/com/yidianling/im/bean/FirstQuestionBean.kt
+15
-0
FirstQuestionAdapter.kt
m-im/src/main/java/com/yidianling/im/ui/adapter/FirstQuestionAdapter.kt
+20
-0
YDLMessageFragment.java
m-im/src/main/java/com/yidianling/uikit/business/session/fragment/YDLMessageFragment.java
+21
-4
InputPanel.java
m-im/src/main/java/com/yidianling/uikit/business/session/module/input/InputPanel.java
+74
-1
ServiceApi.kt
m-im/src/main/java/com/yidianling/uikit/custom/http/ServiceApi.kt
+9
-4
ServiceImpl.kt
m-im/src/main/java/com/yidianling/uikit/custom/http/ServiceImpl.kt
+13
-0
im_item_chat_first_question.xml
m-im/src/main/res/layout/im_item_chat_first_question.xml
+23
-0
im_nim_message_activity_bottom_layout.xml
m-im/src/main/res_uikit/layout/im_nim_message_activity_bottom_layout.xml
+58
-15
im_nim_message_activity_text_layout.xml
m-im/src/main/res_uikit/layout/im_nim_message_activity_text_layout.xml
+19
-20
im_ydl_nim_message_fragment.xml
m-im/src/main/res_uikit/layout/im_ydl_nim_message_fragment.xml
+2
-1
maven_push.gradle
maven_push.gradle
+8
-0
build.gradle
ydl-platform/build.gradle
+1
-0
AliYunRichLogsHelper.kt
ydl-platform/src/main/java/com/ydl/ydlcommon/utils/log/AliYunRichLogsHelper.kt
+2
-0
No files found.
app/src/main/java/com/ydl/component/base/DemoGlobalConfig.java
View file @
7f627417
...
@@ -21,9 +21,9 @@ import java.util.List;
...
@@ -21,9 +21,9 @@ import java.util.List;
public
final
class
DemoGlobalConfig
implements
IConfigModule
{
public
final
class
DemoGlobalConfig
implements
IConfigModule
{
String
APP_DOMAIN
=
"https://api.github.com/"
;
String
APP_DOMAIN
=
"https://api.github.com/"
;
// public static String appEnv = YDLConstants.ENV_AUTO_TEST;
// public static String appEnv = YDLConstants.ENV_AUTO_TEST;
public
static
String
appEnv
=
YDLConstants
.
ENV_TEST
;
//
public static String appEnv = YDLConstants.ENV_TEST;
// public static String appEnv = YDLConstants.ENV_NEW_TEST;//配置未上传到maven库
// public static String appEnv = YDLConstants.ENV_NEW_TEST;//配置未上传到maven库
//
public static String appEnv = YDLConstants.ENV_PROD;
public
static
String
appEnv
=
YDLConstants
.
ENV_PROD
;
@Override
@Override
public
void
injectAppLifecycle
(
@NotNull
Context
context
,
@NotNull
List
<
IAppLifecycles
>
lifecycles
)
{
public
void
injectAppLifecycle
(
@NotNull
Context
context
,
@NotNull
List
<
IAppLifecycles
>
lifecycles
)
{
lifecycles
.
add
(
new
DemoAppLifecycles
());
lifecycles
.
add
(
new
DemoAppLifecycles
());
...
...
build.gradle
View file @
7f627417
apply
from:
"config.gradle"
apply
from:
"config.gradle"
buildscript
{
buildscript
{
ext
.
kotlin_version
=
'1.3.50'
ext
{
ext
{
kotlin_version
=
'1.3.
21
'
kotlin_version
=
'1.3.
50
'
support_version
=
'26.1.0'
support_version
=
'26.1.0'
minSdkVersion
=
21
minSdkVersion
=
21
targetSdkVersion
=
28
targetSdkVersion
=
28
...
@@ -16,50 +15,27 @@ buildscript {
...
@@ -16,50 +15,27 @@ buildscript {
constrait_support_version
=
'1.0.2'
constrait_support_version
=
'1.0.2'
}
}
repositories
{
repositories
{
google
()
//壹点灵android maven私服 开发版
maven
{
url
'http://nexus.yidianling.com/repository/AndroidRepository/'
credentials
{
username
"admin"
password
"fjoi#1+#@"
}
}
maven
{
maven
{
url
'http://nexus.yidianling.com/repository/
AndroidReleases
/'
url
'http://nexus.yidianling.com/repository/
android
/'
credentials
{
credentials
{
username
"admin"
username
"admin"
password
"fjoi#1+#@"
password
"fjoi#1+#@"
}
}
}
}
maven
{
url
'http://maven.aliyun.com/nexus/content/groups/public/'
}
maven
{
url
'http://maven.aliyun.com/nexus/content/groups/public/'
}
mavenCentral
()
// maven {
// url 'https://dl.bintray.com/zouyuhan/maven'
// }
google
()
google
()
jcenter
()
mavenLocal
()
maven
{
url
"https://oss.sonatype.org/content/repositories/snapshots/"
}
// maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
//Umeng sdk maven 地址
maven
{
url
'https://repo1.maven.org/maven2/'
}
}
}
dependencies
{
dependencies
{
classpath
'com.android.tools.build:gradle:3.2.0'
classpath
'com.android.tools.build:gradle:3.2.0'
classpath
"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath
"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath
'com.jakewharton:butterknife-gradle-plugin:8.4.0'
classpath
'com.meituan.android.walle:plugin:1.1.5'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath
'com.meituan.robust:gradle-plugin:0.4.87'
classpath
'com.meituan.robust:auto-patch-plugin:0.4.87'
//bugly 符号表
//bugly 符号表
classpath
'com.tencent.bugly:symtabfileuploader:2.2.1'
classpath
'com.tencent.bugly:symtabfileuploader:2.2.1'
//微信资源混淆
classpath
'com.tencent.mm:AndResGuard-gradle-plugin:1.2.16'
classpath
'com.ydl.plugins:modular:1.0.3'
classpath
'com.ydl.plugins:modular:1.0.3'
classpath
'com.ydl:notracepoint-gradle-plugin:0.0.3'
classpath
'com.ydl:notracepoint-gradle-plugin:0.0.3'
classpath
'com.ydl.plugins:restools:
0
.0.1'
classpath
'com.ydl.plugins:restools:
1
.0.1'
classpath
'com.jakewharton:butterknife-gradle-plugin:9.0.0-rc1'
classpath
'com.jakewharton:butterknife-gradle-plugin:9.0.0-rc1'
}
}
}
}
...
@@ -68,34 +44,16 @@ allprojects {
...
@@ -68,34 +44,16 @@ allprojects {
repositories
{
repositories
{
//壹点灵android maven私服 开发版
//壹点灵android maven私服 开发版
maven
{
maven
{
url
'http://nexus.yidianling.com/repository/AndroidRepository/'
url
'http://nexus.yidianling.com/repository/android/'
credentials
{
username
"admin"
password
"fjoi#1+#@"
}
}
maven
{
url
'http://nexus.yidianling.com/repository/AndroidReleases/'
credentials
{
credentials
{
username
"admin"
username
"admin"
password
"fjoi#1+#@"
password
"fjoi#1+#@"
}
}
}
}
maven
{
url
'http://maven.aliyun.com/nexus/content/groups/public/'
}
maven
{
url
'http://maven.aliyun.com/nexus/content/groups/public/'
}
// maven { url'http://developer.huawei.com/repo/' }
mavenCentral
()
maven
{
url
"https://jitpack.io"
}
maven
{
// url 'https://maven.google.com'
url
'https://dl.google.com/dl/android/maven2/'
}
// maven {
// url 'https://dl.bintray.com/zouyuhan/maven'
// }
google
()
google
()
jcenter
()
mavenLocal
()
maven
{
url
'https://maven.aliyun.com/repository/releases'
}
//Umeng sdk maven 地址
maven
{
url
'https://repo1.maven.org/maven2/'
}
}
}
}
}
...
...
config.gradle
View file @
7f627417
...
@@ -6,9 +6,11 @@ ext {
...
@@ -6,9 +6,11 @@ ext {
// -------------- 业务模块 --------------
// -------------- 业务模块 --------------
//第三步 若干
//第三步 若干
"m-confide"
:
"0.0.49.69"
,
"m-confide"
:
"0.0.49.69"
,
"m-consultant"
:
"0.0.60.
19
"
,
"m-consultant"
:
"0.0.60.
20
"
,
"m-fm"
:
"0.0.30.08"
,
"m-fm"
:
"0.0.30.08"
,
"m-user"
:
"0.0.62.04"
,
"m-user"
:
"0.0.62.04"
,
"m-home"
:
"0.0.23.18"
,
"m-im"
:
"0.0.21.30"
,
"m-home"
:
"0.0.23.35"
,
"m-home"
:
"0.0.23.35"
,
"m-im"
:
"0.0.21.30"
,
"m-im"
:
"0.0.21.30"
,
"m-dynamic"
:
"0.0.7.35"
,
"m-dynamic"
:
"0.0.7.35"
,
...
@@ -92,9 +94,11 @@ ext {
...
@@ -92,9 +94,11 @@ ext {
//第三步 若干
//第三步 若干
"m-confide"
:
"0.0.49.69"
,
"m-confide"
:
"0.0.49.69"
,
"m-consultant"
:
"0.0.60.
19
"
,
"m-consultant"
:
"0.0.60.
20
"
,
"m-fm"
:
"0.0.30.08"
,
"m-fm"
:
"0.0.30.08"
,
"m-user"
:
"0.0.62.04"
,
"m-user"
:
"0.0.62.04"
,
"m-home"
:
"0.0.23.18"
,
"m-im"
:
"0.0.21.30"
,
"m-home"
:
"0.0.23.35"
,
"m-home"
:
"0.0.23.35"
,
"m-im"
:
"0.0.21.30"
,
"m-im"
:
"0.0.21.30"
,
"m-dynamic"
:
"0.0.7.35"
,
"m-dynamic"
:
"0.0.7.35"
,
...
...
m-audioim/build.gradle
View file @
7f627417
...
@@ -75,9 +75,8 @@ dependencies {
...
@@ -75,9 +75,8 @@ dependencies {
kapt
"com.alibaba:arouter-compiler:$arouter_compiler"
kapt
"com.alibaba:arouter-compiler:$arouter_compiler"
api
"com.alibaba:arouter-api:$arouter_api"
api
"com.alibaba:arouter-api:$arouter_api"
api
(
'com.ydl:ydl-av:1.3.4@aar'
){
implementation
"com.ydl:ydl-av:1.3.9"
transitive
=
true
implementation
'com.volcengine:apm_insight:1.4.6.cn'
}
if
(
rootProject
.
ext
.
dev_mode
){
if
(
rootProject
.
ext
.
dev_mode
){
//开发时使用
//开发时使用
...
...
m-audioim/src/main/java/com/ydl/audioim/AudioHomeActivity.kt
View file @
7f627417
...
@@ -34,6 +34,7 @@ import com.ydl.audioim.player.AudioPlayer
...
@@ -34,6 +34,7 @@ import com.ydl.audioim.player.AudioPlayer
import
com.ydl.audioim.presenter.AudioHomePresenterImpl
import
com.ydl.audioim.presenter.AudioHomePresenterImpl
import
com.ydl.audioim.utils.AudioLogUtils
import
com.ydl.audioim.utils.AudioLogUtils
import
com.ydl.audioim.utils.DateUtils
import
com.ydl.audioim.utils.DateUtils
import
com.ydl.audioim.utils.onConfideEvent
import
com.ydl.audioim.widget.AxbConfirmDialog
import
com.ydl.audioim.widget.AxbConfirmDialog
import
com.ydl.audioim.widget.ZDialog
import
com.ydl.audioim.widget.ZDialog
import
com.ydl.webview.H5Params
import
com.ydl.webview.H5Params
...
@@ -55,7 +56,6 @@ import com.ydl.ydlcommon.utils.log.AliYunLogConfig
...
@@ -55,7 +56,6 @@ import com.ydl.ydlcommon.utils.log.AliYunLogConfig
import
com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper
import
com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper
import
com.ydl.ydlcommon.utils.log.LogHelper
import
com.ydl.ydlcommon.utils.log.LogHelper
import
com.ydl.ydlcommon.utils.remind.ToastHelper
import
com.ydl.ydlcommon.utils.remind.ToastHelper
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.user.api.service.IUserService
import
com.yidianling.user.api.service.IUserService
import
de.greenrobot.event.EventBus
import
de.greenrobot.event.EventBus
import
io.agora.rtc.Constants
import
io.agora.rtc.Constants
...
@@ -262,6 +262,7 @@ class AudioHomeActivity :
...
@@ -262,6 +262,7 @@ class AudioHomeActivity :
override
fun
onJoinChannelSuccess
(
channel
:
String
?,
uid
:
Int
,
elapsed
:
Int
)
{
override
fun
onJoinChannelSuccess
(
channel
:
String
?,
uid
:
Int
,
elapsed
:
Int
)
{
super
.
onJoinChannelSuccess
(
channel
,
uid
,
elapsed
)
super
.
onJoinChannelSuccess
(
channel
,
uid
,
elapsed
)
onMeJoined
()
callEventSave
(
"20"
,
"$uid 用户声网加入频道成功:channel=$channel"
)
callEventSave
(
"20"
,
"$uid 用户声网加入频道成功:channel=$channel"
)
LogUtil
.
e
(
"[agora]$uid 用户声网加入频道成功:channel=$channel"
)
LogUtil
.
e
(
"[agora]$uid 用户声网加入频道成功:channel=$channel"
)
...
@@ -349,6 +350,7 @@ class AudioHomeActivity :
...
@@ -349,6 +350,7 @@ class AudioHomeActivity :
super
.
onUserJoined
(
uid
,
elapsed
)
super
.
onUserJoined
(
uid
,
elapsed
)
callEventSave
(
"20"
,
"${uid}加入频道回调"
)
callEventSave
(
"20"
,
"${uid}加入频道回调"
)
LogUtil
.
e
(
"[agora]远端用户/主播加入频道回调"
)
LogUtil
.
e
(
"[agora]远端用户/主播加入频道回调"
)
onPeerJoined
()
AliYunRichLogsHelper
.
getInstance
()
AliYunRichLogsHelper
.
getInstance
()
.
sendRichLog
(
AliYunLogConfig
.
AGORA
,
"远端用户/主播加入频道回调"
)
.
sendRichLog
(
AliYunLogConfig
.
AGORA
,
"远端用户/主播加入频道回调"
)
}
}
...
@@ -795,6 +797,7 @@ class AudioHomeActivity :
...
@@ -795,6 +797,7 @@ class AudioHomeActivity :
fun
rtcCall
()
{
fun
rtcCall
()
{
YDLavManager
.
instances
.
rtcCall
(
listenerUid
,
channelId
,
sendDoctocrMsg
)
YDLavManager
.
instances
.
rtcCall
(
listenerUid
,
channelId
,
sendDoctocrMsg
)
onStartCall
()
}
}
/**
/**
...
@@ -1411,4 +1414,24 @@ class AudioHomeActivity :
...
@@ -1411,4 +1414,24 @@ class AudioHomeActivity :
)
{
)
{
YDLavManager
.
instances
.
callEventSave
(
status
,
res
,
session
,
line
)
YDLavManager
.
instances
.
callEventSave
(
status
,
res
,
session
,
line
)
}
}
private
fun
onStartCall
()
{
val
dimension
=
hashMapOf
(
"conversation"
to
"start_call"
,
"call"
to
"call_start"
)
onConfideEvent
(
dimension
,
channelId
)
}
private
fun
onMeJoined
()
{
val
dimension
=
hashMapOf
(
"conversation"
to
"me_joined"
)
onConfideEvent
(
dimension
,
channelId
)
}
fun
onPeerAccepted
()
{
val
dimension
=
hashMapOf
(
"conversation"
to
"peer_accepted"
,
"call"
to
"call_accepted"
)
onConfideEvent
(
dimension
,
channelId
)
}
private
fun
onPeerJoined
()
{
val
dimension
=
hashMapOf
(
"conversation"
to
"peer_joined"
)
onConfideEvent
(
dimension
,
channelId
)
}
}
}
m-audioim/src/main/java/com/ydl/audioim/YDLavManager.kt
View file @
7f627417
...
@@ -6,6 +6,7 @@ import android.os.Handler
...
@@ -6,6 +6,7 @@ import android.os.Handler
import
android.text.TextUtils
import
android.text.TextUtils
import
android.util.Log
import
android.util.Log
import
com.alibaba.android.arouter.launcher.ARouter
import
com.alibaba.android.arouter.launcher.ARouter
import
com.bytedance.apm.insight.ApmInsightAgent
import
com.google.gson.Gson
import
com.google.gson.Gson
import
com.ydl.audioim.bean.AgoraInvitationBean
import
com.ydl.audioim.bean.AgoraInvitationBean
import
com.ydl.audioim.http.AudioApiRequestUtil
import
com.ydl.audioim.http.AudioApiRequestUtil
...
@@ -13,6 +14,7 @@ import com.ydl.audioim.http.command.ConnectExceptionCommand
...
@@ -13,6 +14,7 @@ import com.ydl.audioim.http.command.ConnectExceptionCommand
import
com.ydl.audioim.router.AudioImIn
import
com.ydl.audioim.router.AudioImIn
import
com.ydl.audioim.utils.AudioLogUtils
import
com.ydl.audioim.utils.AudioLogUtils
import
com.ydl.audioim.utils.AudioLogUtils.Companion.writeAgoraLog
import
com.ydl.audioim.utils.AudioLogUtils.Companion.writeAgoraLog
import
com.ydl.audioim.utils.onConfideEvent
import
com.ydl.consultantim.ConsultantAudioHomeActivity
import
com.ydl.consultantim.ConsultantAudioHomeActivity
import
com.ydl.ydl_av.messge_service.YDLRTMClient
import
com.ydl.ydl_av.messge_service.YDLRTMClient
import
com.ydl.ydl_av.messge_service.bean.RTMMesssage
import
com.ydl.ydl_av.messge_service.bean.RTMMesssage
...
@@ -41,6 +43,7 @@ import io.agora.rtm.RtmStatusCode.ConnectionChangeReason.CONNECTION_CHANGE_REASO
...
@@ -41,6 +43,7 @@ import io.agora.rtm.RtmStatusCode.ConnectionChangeReason.CONNECTION_CHANGE_REASO
import
io.reactivex.Observable
import
io.reactivex.Observable
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.schedulers.Schedulers
import
io.reactivex.schedulers.Schedulers
import
org.json.JSONObject
import
java.util.*
import
java.util.*
import
java.util.concurrent.TimeUnit
import
java.util.concurrent.TimeUnit
...
@@ -99,6 +102,8 @@ class YDLavManager {
...
@@ -99,6 +102,8 @@ class YDLavManager {
"${response?.calleeId}已收到呼叫邀请,频道号${response?.ChannelId}"
"${response?.calleeId}已收到呼叫邀请,频道号${response?.ChannelId}"
)
)
val
dimension
=
hashMapOf
(
"call"
to
"call_received_by_peer"
)
onConfideEvent
(
dimension
,
response
?.
ChannelId
)
val
act
=
ActivityManager
.
getInstance
().
getTopTaskActivity
()
val
act
=
ActivityManager
.
getInstance
().
getTopTaskActivity
()
if
(
act
is
AudioHomeActivity
)
{
if
(
act
is
AudioHomeActivity
)
{
act
.
runOnUiThread
{
act
.
runOnUiThread
{
...
@@ -120,6 +125,7 @@ class YDLavManager {
...
@@ -120,6 +125,7 @@ class YDLavManager {
if
(
act
is
AudioHomeActivity
)
{
if
(
act
is
AudioHomeActivity
)
{
act
.
runOnUiThread
{
act
.
runOnUiThread
{
act
.
joinChannel
()
act
.
joinChannel
()
act
.
onPeerAccepted
()
}
}
}
}
}
}
...
@@ -131,6 +137,8 @@ class YDLavManager {
...
@@ -131,6 +137,8 @@ class YDLavManager {
AliYunLogConfig
.
AGORA
,
AliYunLogConfig
.
AGORA
,
"${response?.calleeId}已拒绝呼叫邀请"
"${response?.calleeId}已拒绝呼叫邀请"
)
)
val
dimension
=
hashMapOf
(
"call"
to
"call_refused"
)
onConfideEvent
(
dimension
,
response
?.
ChannelId
)
val
act
=
ActivityManager
.
getInstance
().
getTopTaskActivity
()
val
act
=
ActivityManager
.
getInstance
().
getTopTaskActivity
()
if
(
act
is
AudioHomeActivity
)
{
if
(
act
is
AudioHomeActivity
)
{
act
.
runOnUiThread
{
act
.
runOnUiThread
{
...
@@ -152,6 +160,8 @@ class YDLavManager {
...
@@ -152,6 +160,8 @@ class YDLavManager {
AliYunLogConfig
.
AGORA
,
AliYunLogConfig
.
AGORA
,
"主叫已取消呼叫邀请"
"主叫已取消呼叫邀请"
)
)
val
dimension
=
hashMapOf
(
"call"
to
"call_canceled"
)
onConfideEvent
(
dimension
,
response
?.
ChannelId
)
val
act
=
ActivityManager
.
getInstance
().
getTopTaskActivity
()
val
act
=
ActivityManager
.
getInstance
().
getTopTaskActivity
()
if
(
act
is
AudioHomeActivity
)
{
if
(
act
is
AudioHomeActivity
)
{
act
.
runOnUiThread
{
act
.
runOnUiThread
{
...
@@ -168,6 +178,11 @@ class YDLavManager {
...
@@ -168,6 +178,11 @@ class YDLavManager {
AliYunLogConfig
.
AGORA
,
AliYunLogConfig
.
AGORA
,
"呼叫${response?.calleeId}用户失败:${response?.response}"
"呼叫${response?.calleeId}用户失败:${response?.response}"
)
)
val
dimension
=
hashMapOf
(
"call"
to
"call_fail"
,
"call_fail"
to
"code${errorCode}"
)
onConfideEvent
(
dimension
,
response
?.
ChannelId
)
val
act
=
ActivityManager
.
getInstance
().
getTopTaskActivity
()
val
act
=
ActivityManager
.
getInstance
().
getTopTaskActivity
()
//专家离线或者30 秒后仍未收到专家响应,重新再邀请一次
//专家离线或者30 秒后仍未收到专家响应,重新再邀请一次
when
(
errorCode
)
{
when
(
errorCode
)
{
...
...
m-audioim/src/main/java/com/ydl/audioim/utils/ApmEvent.kt
0 → 100644
View file @
7f627417
package
com.ydl.audioim.utils
import
com.apm.insight.log.VLog
import
com.bytedance.apm.insight.ApmInsightAgent
import
com.ydl.ydlcommon.modular.ModularServiceManager
import
org.json.JSONObject
internal
fun
onConfideEvent
(
dimension
:
HashMap
<
String
,
String
>,
channel
:
String
?)
{
try
{
val
uid
=
ModularServiceManager
.
getPlatformUserService
()
?.
getUser
()
?.
userId
val
ext
=
JSONObject
(
mapOf
(
"uid"
to
uid
,
"channelId"
to
(
channel
?:
"unknown"
)))
ApmInsightAgent
.
monitorEvent
(
"confide"
,
dimension
,
hashMapOf
(),
ext
)
}
catch
(
throwable
:
Throwable
)
{
VLog
.
e
(
"onConfideEvent"
,
throwable
.
message
)
}
}
\ No newline at end of file
m-consultant/src/main/java/com/yidianling/consultant/adapter/ExpertSearchAdapter.kt
View file @
7f627417
...
@@ -230,7 +230,13 @@ class ExpertSearchAdapter(
...
@@ -230,7 +230,13 @@ class ExpertSearchAdapter(
if
(
it
.
isNotEmpty
()){
if
(
it
.
isNotEmpty
()){
for
(
tag
in
itemBean
.
tagList
){
for
(
tag
in
itemBean
.
tagList
){
val
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
consultant_item_tag
,
holder
.
ll_tags
,
false
)
val
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
consultant_item_tag
,
holder
.
ll_tags
,
false
)
view
.
tvTag
.
text
=
tag
.
tagName
tag
.
tagName
?.
let
{
name
->
if
(
name
.
length
>
4
){
view
.
tvTag
.
text
=
"${name.substring(0,4)}…"
}
else
{
view
.
tvTag
.
text
=
name
}
}
if
(
tag
.
isHigh
==
1
){
if
(
tag
.
isHigh
==
1
){
view
.
tvTag
.
setBackgroundResource
(
R
.
drawable
.
consultant_bg_radius_line_eb892c
)
view
.
tvTag
.
setBackgroundResource
(
R
.
drawable
.
consultant_bg_radius_line_eb892c
)
view
.
tvTag
.
setTextColor
(
ContextCompat
.
getColor
(
context
,
R
.
color
.
color_EB892C
))
view
.
tvTag
.
setTextColor
(
ContextCompat
.
getColor
(
context
,
R
.
color
.
color_EB892C
))
...
...
m-consultant/src/main/res/layout/consultant_item_tag.xml
View file @
7f627417
...
@@ -8,7 +8,6 @@
...
@@ -8,7 +8,6 @@
android:gravity=
"center"
android:gravity=
"center"
android:layout_marginEnd=
"6dp"
android:layout_marginEnd=
"6dp"
android:padding=
"3dp"
android:padding=
"3dp"
android:maxLength=
"5"
android:textColor=
"@color/platform_color_999999"
android:textColor=
"@color/platform_color_999999"
android:textSize=
"10sp"
android:textSize=
"10sp"
tools:text=
"恋爱情感"
/>
tools:text=
"恋爱情感"
/>
m-dynamic/src/main/java/com/yidianling/dynamic/event/dynamicFocusEvent.kt
0 → 100644
View file @
7f627417
package
com.yidianling.dynamic.event
data class
dynamicFocusEvent
(
var
focusState
:
String
)
\ No newline at end of file
m-dynamic/src/main/java/com/yidianling/dynamic/members/MembersActivity.java
View file @
7f627417
...
@@ -42,6 +42,7 @@ import com.yidianling.dynamic.common.net.DynamicApiUtils;
...
@@ -42,6 +42,7 @@ import com.yidianling.dynamic.common.net.DynamicApiUtils;
import
com.yidianling.dynamic.dialog.CancelFocusDialog
;
import
com.yidianling.dynamic.dialog.CancelFocusDialog
;
import
com.yidianling.dynamic.event.BlackEvent
;
import
com.yidianling.dynamic.event.BlackEvent
;
import
com.yidianling.dynamic.event.LoginStateEvent
;
import
com.yidianling.dynamic.event.LoginStateEvent
;
import
com.yidianling.dynamic.event.dynamicFocusEvent
;
import
com.yidianling.dynamic.model.Command
;
import
com.yidianling.dynamic.model.Command
;
import
com.yidianling.dynamic.model.MemberInfoBean
;
import
com.yidianling.dynamic.model.MemberInfoBean
;
import
com.yidianling.dynamic.router.DynamicIn
;
import
com.yidianling.dynamic.router.DynamicIn
;
...
@@ -433,7 +434,9 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene
...
@@ -433,7 +434,9 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene
/**
/**
*
*
*/
*/
@SuppressLint
(
"CheckResult"
)
private
void
Focus
()
{
private
void
Focus
()
{
showProgressDialog
(
""
);
showProgressDialog
(
""
);
Command
.
FocusCmd
cmd
=
new
Command
.
FocusCmd
(
mem_id
,
"1"
);
Command
.
FocusCmd
cmd
=
new
Command
.
FocusCmd
(
mem_id
,
"1"
);
DynamicApiUtils
.
focus
(
cmd
)
DynamicApiUtils
.
focus
(
cmd
)
...
@@ -450,6 +453,7 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene
...
@@ -450,6 +453,7 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene
fans_count
=
(
fans_counti
+
1
)
+
""
;
fans_count
=
(
fans_counti
+
1
)
+
""
;
members_top_user_fensi_num_tv
.
setText
(
"粉丝 "
+
fans_count
);
members_top_user_fensi_num_tv
.
setText
(
"粉丝 "
+
fans_count
);
focus_state
=
"1"
;
focus_state
=
"1"
;
EventBus
.
getDefault
().
post
(
new
dynamicFocusEvent
(
focus_state
));
Drawable
drawable
=
getResources
().
getDrawable
(
R
.
drawable
.
dynamic_ic_expand
);
Drawable
drawable
=
getResources
().
getDrawable
(
R
.
drawable
.
dynamic_ic_expand
);
drawable
.
setBounds
(
0
,
0
,
drawable
.
getMinimumWidth
(),
drawable
.
getMinimumHeight
());
drawable
.
setBounds
(
0
,
0
,
drawable
.
getMinimumWidth
(),
drawable
.
getMinimumHeight
());
members_top_user_focus_ortion_tv
.
setCompoundDrawablePadding
(
20
);
members_top_user_focus_ortion_tv
.
setCompoundDrawablePadding
(
20
);
...
@@ -461,6 +465,7 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene
...
@@ -461,6 +465,7 @@ public class MembersActivity extends BaseActivity implements View.OnClickListene
fans_count
=
(
fans_counti
-
1
)
+
""
;
fans_count
=
(
fans_counti
-
1
)
+
""
;
members_top_user_fensi_num_tv
.
setText
(
"粉丝 "
+
fans_count
);
members_top_user_fensi_num_tv
.
setText
(
"粉丝 "
+
fans_count
);
focus_state
=
"2"
;
focus_state
=
"2"
;
EventBus
.
getDefault
().
post
(
new
dynamicFocusEvent
(
focus_state
));
members_top_user_focus_ortion_tv
.
setCompoundDrawables
(
null
,
null
,
null
,
null
);
members_top_user_focus_ortion_tv
.
setCompoundDrawables
(
null
,
null
,
null
,
null
);
members_top_user_focus_ortion_tv
.
setText
(
"+ 关注"
);
members_top_user_focus_ortion_tv
.
setText
(
"+ 关注"
);
members_top_user_focus_ortion_tv
.
setTextColor
(
getResources
().
getColor
(
R
.
color
.
dynamic_white
));
members_top_user_focus_ortion_tv
.
setTextColor
(
getResources
().
getColor
(
R
.
color
.
dynamic_white
));
...
...
m-dynamic/src/main/java/com/yidianling/dynamic/topic/topicDetail/TopicDetailActivity.java
View file @
7f627417
...
@@ -290,6 +290,11 @@ public class TopicDetailActivity extends BaseMvpActivity<TopicDetailView, TopicD
...
@@ -290,6 +290,11 @@ public class TopicDetailActivity extends BaseMvpActivity<TopicDetailView, TopicD
totalMembers
=
0
;
totalMembers
=
0
;
topicId
=
getIntent
().
getStringExtra
(
"topic_id"
);
topicId
=
getIntent
().
getStringExtra
(
"topic_id"
);
isSplash
=
getIntent
().
getBooleanExtra
(
"isSplash"
,
false
);
isSplash
=
getIntent
().
getBooleanExtra
(
"isSplash"
,
false
);
Bundle
bundle
=
getIntent
().
getBundleExtra
(
"bundle"
);
if
(
bundle
!=
null
)
{
topicId
=
bundle
.
getString
(
"topic_id"
,
"44"
);
isSplash
=
bundle
.
getBoolean
(
"isSplash"
,
false
);
}
adapter
=
new
TopicDetailMemberAdapter
(
this
);
adapter
=
new
TopicDetailMemberAdapter
(
this
);
mFragments
=
new
Fragment
[]{
TrendListInFragment
.
newInstance
(
"1"
,
topicId
,
"default"
,
"0"
),
mFragments
=
new
Fragment
[]{
TrendListInFragment
.
newInstance
(
"1"
,
topicId
,
"default"
,
"0"
),
TrendListInFragment
.
newInstance
(
"2"
,
topicId
,
"default"
,
"0"
)};
TrendListInFragment
.
newInstance
(
"2"
,
topicId
,
"default"
,
"0"
)};
...
...
m-dynamic/src/main/java/com/yidianling/dynamic/trendsDetail/TrendsDetailActivity.java
View file @
7f627417
...
@@ -24,6 +24,7 @@ import android.text.Html;
...
@@ -24,6 +24,7 @@ import android.text.Html;
import
android.text.TextUtils
;
import
android.text.TextUtils
;
import
android.text.TextWatcher
;
import
android.text.TextWatcher
;
import
android.text.style.ImageSpan
;
import
android.text.style.ImageSpan
;
import
android.util.EventLog
;
import
android.view.KeyEvent
;
import
android.view.KeyEvent
;
import
android.view.MotionEvent
;
import
android.view.MotionEvent
;
import
android.view.View
;
import
android.view.View
;
...
@@ -72,6 +73,8 @@ import com.yidianling.dynamic.R2;
...
@@ -72,6 +73,8 @@ import com.yidianling.dynamic.R2;
import
com.yidianling.dynamic.common.browsePictures.BrowsePicturesActivity2
;
import
com.yidianling.dynamic.common.browsePictures.BrowsePicturesActivity2
;
import
com.yidianling.dynamic.common.emoji.EmoticonPickerView
;
import
com.yidianling.dynamic.common.emoji.EmoticonPickerView
;
import
com.yidianling.dynamic.common.emoji.IEmoticonSelectedListener
;
import
com.yidianling.dynamic.common.emoji.IEmoticonSelectedListener
;
import
com.yidianling.dynamic.event.LoginStateEvent
;
import
com.yidianling.dynamic.event.dynamicFocusEvent
;
import
com.yidianling.dynamic.members.MembersActivity
;
import
com.yidianling.dynamic.members.MembersActivity
;
import
com.yidianling.dynamic.model.CommentBean
;
import
com.yidianling.dynamic.model.CommentBean
;
import
com.yidianling.dynamic.model.Reply
;
import
com.yidianling.dynamic.model.Reply
;
...
@@ -95,6 +98,7 @@ import java.util.concurrent.TimeUnit;
...
@@ -95,6 +98,7 @@ import java.util.concurrent.TimeUnit;
import
butterknife.BindView
;
import
butterknife.BindView
;
import
butterknife.ButterKnife
;
import
butterknife.ButterKnife
;
import
butterknife.OnClick
;
import
butterknife.OnClick
;
import
de.greenrobot.event.EventBus
;
import
io.reactivex.Observable
;
import
io.reactivex.Observable
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.disposables.Disposable
;
import
io.reactivex.disposables.Disposable
;
...
@@ -374,6 +378,7 @@ public class TrendsDetailActivity extends BaseMvpActivity<ITrendsDetailView, ITr
...
@@ -374,6 +378,7 @@ public class TrendsDetailActivity extends BaseMvpActivity<ITrendsDetailView, ITr
@Override
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
EventBus
.
getDefault
().
register
(
this
);
setContentView
(
R
.
layout
.
dynamic_activity_trend_details
);
setContentView
(
R
.
layout
.
dynamic_activity_trend_details
);
ButterKnife
.
bind
(
this
);
ButterKnife
.
bind
(
this
);
initDatas
();
initDatas
();
...
@@ -1451,8 +1456,18 @@ public class TrendsDetailActivity extends BaseMvpActivity<ITrendsDetailView, ITr
...
@@ -1451,8 +1456,18 @@ public class TrendsDetailActivity extends BaseMvpActivity<ITrendsDetailView, ITr
if
(
subscribe
!=
null
)
{
if
(
subscribe
!=
null
)
{
subscribe
.
dispose
();
subscribe
.
dispose
();
}
}
EventBus
.
getDefault
().
unregister
(
this
);
}
public
void
onEvent
(
dynamicFocusEvent
event
)
{
// 1已关注 2关注
if
(
event
.
getFocusState
().
equals
(
"1"
)){
tvGuanzhu
.
setVisibility
(
GONE
);
tvGuanzhu
.
setText
(
"已关注"
);
}
else
{
tvGuanzhu
.
setVisibility
(
VISIBLE
);
tvGuanzhu
.
setText
(
"关注"
);
}
}
}
@NonNull
@NonNull
@Override
@Override
public
ITrendsDetailPresenterImpl
createPresenter
()
{
public
ITrendsDetailPresenterImpl
createPresenter
()
{
...
...
m-home/src/main/java/com/yidianling/home/event/HomeBaseImpl.kt
View file @
7f627417
...
@@ -4,10 +4,10 @@ import android.content.Context
...
@@ -4,10 +4,10 @@ import android.content.Context
import
android.content.Intent
import
android.content.Intent
import
android.net.Uri
import
android.net.Uri
import
android.os.Bundle
import
android.os.Bundle
import
androidx.appcompat.app.AppCompatActivity
import
androidx.recyclerview.widget.RecyclerView
import
android.text.TextUtils
import
android.text.TextUtils
import
android.view.View
import
android.view.View
import
androidx.appcompat.app.AppCompatActivity
import
androidx.recyclerview.widget.RecyclerView
import
com.alibaba.android.arouter.launcher.ARouter
import
com.alibaba.android.arouter.launcher.ARouter
import
com.ydl.media.audio.AudioPlayer
import
com.ydl.media.audio.AudioPlayer
import
com.ydl.media.audio.model.Music
import
com.ydl.media.audio.model.Music
...
@@ -23,6 +23,7 @@ import com.ydl.ydlcommon.base.config.HttpConfig
...
@@ -23,6 +23,7 @@ import com.ydl.ydlcommon.base.config.HttpConfig
import
com.ydl.ydlcommon.bean.ShareData
import
com.ydl.ydlcommon.bean.ShareData
import
com.ydl.ydlcommon.data.PlatformRamImpl
import
com.ydl.ydlcommon.data.PlatformRamImpl
import
com.ydl.ydlcommon.modular.ModularServiceManager
import
com.ydl.ydlcommon.modular.ModularServiceManager
import
com.ydl.ydlcommon.modular.ModularServiceManager.provide
import
com.ydl.ydlcommon.router.IYDLRouterConstant
import
com.ydl.ydlcommon.router.IYDLRouterConstant
import
com.ydl.ydlcommon.utils.LogUtil
import
com.ydl.ydlcommon.utils.LogUtil
import
com.ydl.ydlcommon.utils.Utils
import
com.ydl.ydlcommon.utils.Utils
...
@@ -110,6 +111,16 @@ open class HomeBaseImpl : IHomeBaseEvent {
...
@@ -110,6 +111,16 @@ open class HomeBaseImpl : IHomeBaseEvent {
mHomeView
!!
.
getConsultData
(
type
.
id
.
toString
(),
selectPosition
)
mHomeView
!!
.
getConsultData
(
type
.
id
.
toString
(),
selectPosition
)
}
}
override
fun
jumpToTopicDetail
(
topic_id
:
String
)
{
val
bundle
=
Bundle
()
bundle
.
putString
(
"topic_id"
,
topic_id
)
bundle
.
putBoolean
(
"isSplash"
,
false
)
//动态详情
ARouter
.
getInstance
().
build
(
"/topic/detail"
)
.
withBundle
(
"bundle"
,
bundle
)
.
navigation
()
}
private
var
headerView
:
View
?
=
null
private
var
headerView
:
View
?
=
null
var
mContext
:
Context
?
=
null
var
mContext
:
Context
?
=
null
...
...
m-home/src/main/java/com/yidianling/home/event/IHomeBaseEvent.kt
View file @
7f627417
...
@@ -185,4 +185,10 @@ interface IHomeBaseEvent {
...
@@ -185,4 +185,10 @@ interface IHomeBaseEvent {
* @param selectPosition 选中的position
* @param selectPosition 选中的position
*/
*/
fun
getConsultData
(
type
:
HomeHeaderBean
.
ConsultCategoryDateBean
,
selectPosition
:
Int
)
fun
getConsultData
(
type
:
HomeHeaderBean
.
ConsultCategoryDateBean
,
selectPosition
:
Int
)
/*
* 跳转话题详情
*
* */
fun
jumpToTopicDetail
(
topic_id
:
String
)
}
}
\ No newline at end of file
m-home/src/ydl/java/com/yidianling/home/ui/view/HomeAssuageGriefItemView.kt
View file @
7f627417
...
@@ -67,7 +67,10 @@ class HomeAssuageGriefItemView(private val mContext: Context, private var homeEv
...
@@ -67,7 +67,10 @@ class HomeAssuageGriefItemView(private val mContext: Context, private var homeEv
homeModuleAssuageGriefViewTag
.
text
=
bean
?.
askTag
homeModuleAssuageGriefViewTag
.
text
=
bean
?.
askTag
homeModuleAssuageGriefViewCommentsCount
.
text
=
bean
?.
commentsCount
.
toString
()
homeModuleAssuageGriefViewCommentsCount
.
text
=
bean
?.
commentsCount
.
toString
()
homeModuleAssuageGriefViewZanCount
.
text
=
bean
?.
zanCount
.
toString
()
homeModuleAssuageGriefViewZanCount
.
text
=
bean
?.
zanCount
.
toString
()
ll_topic_detail
.
setOnClickListener
{
//跳转话题详情
homeEvent
?.
jumpToTopicDetail
(
bean
.
topicId
.
toString
())
}
/**
/**
* 点赞
* 点赞
...
...
m-home/src/ydl/res/layout/home_assuage_grief_item_view.xml
View file @
7f627417
...
@@ -187,6 +187,7 @@
...
@@ -187,6 +187,7 @@
android:background=
"@drawable/home_assuage_grief_item_view_tab_back"
android:background=
"@drawable/home_assuage_grief_item_view_tab_back"
android:gravity=
"center_vertical"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
android:orientation=
"horizontal"
android:id=
"@+id/ll_topic_detail"
android:paddingLeft=
"@dimen/platform_dp_7"
android:paddingLeft=
"@dimen/platform_dp_7"
android:paddingTop=
"@dimen/platform_dp_4"
android:paddingTop=
"@dimen/platform_dp_4"
android:paddingRight=
"@dimen/platform_dp_7"
android:paddingRight=
"@dimen/platform_dp_7"
...
...
m-im/src/main/java/com/yidianling/im/bean/FirstQuestionBean.kt
0 → 100644
View file @
7f627417
package
com.yidianling.im.bean
/**
* Created by Ykai on 2022/5/6.
*/
data class
FirstQuestionBean
(
var
objects
:
List
<
ContentBean
>
)
data class
ContentBean
(
var
type
:
Int
,
var
content
:
String
,
var
id
:
Long
)
\ No newline at end of file
m-im/src/main/java/com/yidianling/im/ui/adapter/FirstQuestionAdapter.kt
0 → 100644
View file @
7f627417
package
com.yidianling.im.ui.adapter
import
com.chad.library.adapter.base.BaseQuickAdapter
import
com.chad.library.adapter.base.BaseViewHolder
import
com.yidianling.im.R
import
com.yidianling.im.bean.ContentBean
/**
* Created by Ykai on 2022/5/5.
*
* 首问语适配器
*/
class
FirstQuestionAdapter
(
data
:
MutableList
<
ContentBean
>):
BaseQuickAdapter
<
ContentBean
,
BaseViewHolder
>(
R
.
layout
.
im_item_chat_first_question
)
{
override
fun
convert
(
holder
:
BaseViewHolder
,
item
:
ContentBean
)
{
holder
.
setText
(
R
.
id
.
tv_question_name
,
item
.
content
)
}
}
\ No newline at end of file
m-im/src/main/java/com/yidianling/uikit/business/session/fragment/YDLMessageFragment.java
View file @
7f627417
...
@@ -30,6 +30,7 @@ import androidx.appcompat.app.AppCompatActivity;
...
@@ -30,6 +30,7 @@ import androidx.appcompat.app.AppCompatActivity;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.recyclerview.widget.RecyclerView
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.blankj.utilcode.util.SPUtils
;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
import
com.netease.nimlib.sdk.NIMClient
;
import
com.netease.nimlib.sdk.NIMClient
;
import
com.netease.nimlib.sdk.Observer
;
import
com.netease.nimlib.sdk.Observer
;
...
@@ -250,6 +251,7 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
...
@@ -250,6 +251,7 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
}
}
};
};
@SuppressLint
(
"CheckResult"
)
@Override
@Override
public
void
onActivityCreated
(
Bundle
savedInstanceState
)
{
public
void
onActivityCreated
(
Bundle
savedInstanceState
)
{
super
.
onActivityCreated
(
savedInstanceState
);
super
.
onActivityCreated
(
savedInstanceState
);
...
@@ -257,9 +259,6 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
...
@@ -257,9 +259,6 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
titleBar
=
((
YDLBaseMessageActivity
)
getActivity
()).
getTitleBarBottom
();
titleBar
=
((
YDLBaseMessageActivity
)
getActivity
()).
getTitleBarBottom
();
titleBar
.
setTitleLeftDraw
(
getResources
().
getDrawable
(
R
.
drawable
.
loading_01
));
titleBar
.
setTitleLeftDraw
(
getResources
().
getDrawable
(
R
.
drawable
.
loading_01
));
titleBar
.
setTitle
(
"正在连接中..."
);
titleBar
.
setTitle
(
"正在连接中..."
);
if
(
sessionType
==
SessionTypeEnum
.
Team
){
titleBar
.
setRightIcon
(
getContext
().
getDrawable
(
R
.
drawable
.
platform_common_more
));
}
fl_container
=
rootView
.
findViewById
(
R
.
id
.
message_activity_list_view_container
);
fl_container
=
rootView
.
findViewById
(
R
.
id
.
message_activity_list_view_container
);
v_chattips
=
rootView
.
findViewById
(
R
.
id
.
v_chattips
);
v_chattips
=
rootView
.
findViewById
(
R
.
id
.
v_chattips
);
...
@@ -318,9 +317,27 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
...
@@ -318,9 +317,27 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
}
}
//如果是群聊
//如果是群聊
if
(
SessionTypeEnum
.
Team
==
sessionType
){
if
(
SessionTypeEnum
.
Team
==
sessionType
){
titleBar
.
setRightIcon
(
getContext
().
getDrawable
(
R
.
drawable
.
platform_common_more
));
rela_zixun
.
setVisibility
(
View
.
GONE
);
rela_zixun
.
setVisibility
(
View
.
GONE
);
titleBar
.
setTitleRightDraw
(
null
);
titleBar
.
setTitleRightDraw
(
null
);
}
// 判断最近一次发送消息的时间是否大于24小时
long
time
=
System
.
currentTimeMillis
()-
SPUtils
.
getInstance
().
getLong
(
ModularServiceManager
.
INSTANCE
.
provide
(
IUserService
.
class
).
getUserInfo
().
getUid
(),
0L
);
if
(
time
==
0L
||
time
>
24
*
60
*
60
*
1000
){
//如果等于0或者大于则请求首问语接口
// 获取首问语数据
ServiceImpl
.
Companion
.
getInstance
().
getFirstQuestion
()
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
res
->
{
if
(
res
.
code
.
equals
(
"200"
)){
if
(!
res
.
data
.
getObjects
().
isEmpty
()){
inputPanel
.
setFirstQuestion
(
res
.
data
.
getObjects
());
}
}
},
throwable
->
{
ToastUtil
.
toastShort
(
throwable
.
getMessage
());
});
}
}
}
}
...
@@ -429,8 +446,8 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
...
@@ -429,8 +446,8 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
},
throwable
->
{
},
throwable
->
{
});
});
}
}
}
}
/**
/**
* 是否隐藏输入框相关控件
* 是否隐藏输入框相关控件
*/
*/
...
...
m-im/src/main/java/com/yidianling/uikit/business/session/module/input/InputPanel.java
View file @
7f627417
...
@@ -26,7 +26,13 @@ import android.widget.ImageView;
...
@@ -26,7 +26,13 @@ import android.widget.ImageView;
import
android.widget.LinearLayout
;
import
android.widget.LinearLayout
;
import
android.widget.TextView
;
import
android.widget.TextView
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.blankj.utilcode.util.SPUtils
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.netease.nimlib.sdk.NIMClient
;
import
com.netease.nimlib.sdk.NIMClient
;
import
com.netease.nimlib.sdk.media.record.AudioRecorder
;
import
com.netease.nimlib.sdk.media.record.AudioRecorder
;
import
com.netease.nimlib.sdk.media.record.IAudioRecordCallback
;
import
com.netease.nimlib.sdk.media.record.IAudioRecordCallback
;
...
@@ -40,9 +46,13 @@ import com.netease.nimlib.sdk.msg.model.CustomNotificationConfig;
...
@@ -40,9 +46,13 @@ import com.netease.nimlib.sdk.msg.model.CustomNotificationConfig;
import
com.netease.nimlib.sdk.msg.model.IMMessage
;
import
com.netease.nimlib.sdk.msg.model.IMMessage
;
import
com.tbruyelle.rxpermissions2.Permission
;
import
com.tbruyelle.rxpermissions2.Permission
;
import
com.tbruyelle.rxpermissions2.RxPermissions
;
import
com.tbruyelle.rxpermissions2.RxPermissions
;
import
com.ydl.ydlcommon.modular.ModularServiceManager
;
import
com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
;
import
com.yidianling.common.tools.ToastUtil
;
import
com.yidianling.common.tools.ToastUtil
;
import
com.yidianling.im.R
;
import
com.yidianling.im.R
;
import
com.yidianling.im.bean.ContentBean
;
import
com.yidianling.im.event.MultipleSelectedEvent
;
import
com.yidianling.im.event.MultipleSelectedEvent
;
import
com.yidianling.im.ui.adapter.FirstQuestionAdapter
;
import
com.yidianling.nimbase.api.UIKitOptions
;
import
com.yidianling.nimbase.api.UIKitOptions
;
import
com.yidianling.nimbase.api.model.session.SessionCustomization
;
import
com.yidianling.nimbase.api.model.session.SessionCustomization
;
import
com.yidianling.nimbase.business.session.actions.BaseAction
;
import
com.yidianling.nimbase.business.session.actions.BaseAction
;
...
@@ -58,8 +68,10 @@ import com.yidianling.uikit.api.NimUIKit;
...
@@ -58,8 +68,10 @@ import com.yidianling.uikit.api.NimUIKit;
import
com.yidianling.uikit.api.NimUIKitImpl
;
import
com.yidianling.uikit.api.NimUIKitImpl
;
import
com.yidianling.uikit.business.ait.AitTextChangeListener
;
import
com.yidianling.uikit.business.ait.AitTextChangeListener
;
import
com.yidianling.uikit.custom.widget.SafeHelpRemindDialog
;
import
com.yidianling.uikit.custom.widget.SafeHelpRemindDialog
;
import
com.yidianling.user.api.service.IUserService
;
import
java.io.File
;
import
java.io.File
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
de.greenrobot.event.EventBus
;
import
de.greenrobot.event.EventBus
;
...
@@ -112,6 +124,11 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
...
@@ -112,6 +124,11 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
/***贴图表情控件*/
/***贴图表情控件*/
protected
EmoticonPickerView
emoticonPickerView
;
protected
EmoticonPickerView
emoticonPickerView
;
/**首问语相关控件*/
public
ConstraintLayout
clFirstQuestion
;
public
RecyclerView
rvFirstQuestion
;
private
FirstQuestionAdapter
firstQuestionAdapter
;
/***语音*/
/***语音*/
protected
AudioRecorder
audioMessageHelper
;
protected
AudioRecorder
audioMessageHelper
;
private
Chronometer
time
;
private
Chronometer
time
;
...
@@ -148,6 +165,8 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
...
@@ -148,6 +165,8 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
private
Boolean
onlyShowInputTest
=
false
;
//灵犀2.0 点击其他的时候隐藏除输入框以外的其他内容
private
Boolean
onlyShowInputTest
=
false
;
//灵犀2.0 点击其他的时候隐藏除输入框以外的其他内容
private
String
uid
;
/***设置输入框内容*/
/***设置输入框内容*/
public
void
setInputContent
(
String
content
)
{
public
void
setInputContent
(
String
content
)
{
messageEditText
.
setText
(
content
==
null
?
""
:
content
);
messageEditText
.
setText
(
content
==
null
?
""
:
content
);
...
@@ -218,6 +237,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
...
@@ -218,6 +237,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
}
}
private
void
init
()
{
private
void
init
()
{
uid
=
ModularServiceManager
.
INSTANCE
.
provide
(
IUserService
.
class
).
getUserInfo
().
getUid
();
initViews
();
initViews
();
initInputBarListener
();
initInputBarListener
();
initTextEdit
();
initTextEdit
();
...
@@ -276,6 +296,35 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
...
@@ -276,6 +296,35 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
textAudioSwitchLayout
.
setVisibility
(
View
.
GONE
);
textAudioSwitchLayout
.
setVisibility
(
View
.
GONE
);
}
}
initVoice
();
initVoice
();
// 首问语控件初始化
initFirstQuestion
();
}
private
void
initFirstQuestion
()
{
clFirstQuestion
=
view
.
findViewById
(
R
.
id
.
cl_first_question
);
rvFirstQuestion
=
view
.
findViewById
(
R
.
id
.
rv_first_question
);
firstQuestionAdapter
=
new
FirstQuestionAdapter
(
new
ArrayList
<>());
rvFirstQuestion
.
setLayoutManager
(
new
LinearLayoutManager
(
context
));
rvFirstQuestion
.
setAdapter
(
firstQuestionAdapter
);
firstQuestionAdapter
.
setOnItemClickListener
((
adapter
,
view
,
position
)
->
{
String
content
=
firstQuestionAdapter
.
getData
().
get
(
position
).
getContent
();
// 埋点
ActionCountUtils
.
Companion
.
baiDuCountSign3
(
"counselor_consult_page"
,
"quick_language_click"
,
content
,
""
,
""
);
// 根据uid记录每次发消息的时间戳
SPUtils
.
getInstance
().
put
(
uid
,
System
.
currentTimeMillis
());
onTextMessageSendButtonPressed
(
content
);
clFirstQuestion
.
setVisibility
(
View
.
GONE
);
});
}
/**
* 设置首问语数据
* @param data
*/
public
void
setFirstQuestion
(
List
<
ContentBean
>
data
){
clFirstQuestion
.
setVisibility
(
View
.
VISIBLE
);
firstQuestionAdapter
.
getData
().
addAll
(
data
);
firstQuestionAdapter
.
notifyDataSetChanged
();
}
}
private
void
initVoice
()
{
private
void
initVoice
()
{
...
@@ -446,6 +495,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
...
@@ -446,6 +495,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
// 点击edittext,切换键盘和更多布局
// 点击edittext,切换键盘和更多布局
private
void
switchToTextLayout
(
boolean
needShowInput
)
{
private
void
switchToTextLayout
(
boolean
needShowInput
)
{
hideEmojiLayout
();
hideEmojiLayout
();
hideFirstQuestionLayout
();
hideActionPanelLayout
();
hideActionPanelLayout
();
audioRecordBtn
.
setVisibility
(
View
.
GONE
);
audioRecordBtn
.
setVisibility
(
View
.
GONE
);
...
@@ -500,8 +550,10 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
...
@@ -500,8 +550,10 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
* 替换之后最终发送的字符串
* 替换之后最终发送的字符串
*/
*/
private
void
onTextMessageSendButtonClick
()
{
private
void
onTextMessageSendButtonClick
()
{
IMMessage
textMessage
=
createTextMessage
(
sendText
);
// 根据uid记录每次发消息的时间戳
SPUtils
.
getInstance
().
put
(
uid
,
System
.
currentTimeMillis
());
IMMessage
textMessage
=
createTextMessage
(
sendText
);
if
(
container
.
proxy
.
sendMessage
(
textMessage
))
{
if
(
container
.
proxy
.
sendMessage
(
textMessage
))
{
restoreText
(
true
);
restoreText
(
true
);
}
}
...
@@ -605,6 +657,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
...
@@ -605,6 +657,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
messageEditLL
.
setVisibility
(
View
.
GONE
);
messageEditLL
.
setVisibility
(
View
.
GONE
);
hideInputMethod
();
hideInputMethod
();
hideEmojiLayout
();
hideEmojiLayout
();
hideFirstQuestionLayout
();
hideActionPanelLayout
();
hideActionPanelLayout
();
switchToAudioButtonInInputBar
.
setVisibility
(
View
.
GONE
);
switchToAudioButtonInInputBar
.
setVisibility
(
View
.
GONE
);
...
@@ -644,6 +697,16 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
...
@@ -644,6 +697,16 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
}
}
/**
/**
* 隐藏首问语布局
*/
public
void
hideFirstQuestionLayout
(){
uiHandler
.
removeCallbacks
(
showFirstQuestionRunnable
);
if
(
clFirstQuestion
!=
null
)
{
clFirstQuestion
.
setVisibility
(
View
.
GONE
);
}
}
/**
* 隐藏更多布局
* 隐藏更多布局
*/
*/
private
void
hideActionPanelLayout
()
{
private
void
hideActionPanelLayout
()
{
...
@@ -704,6 +767,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
...
@@ -704,6 +767,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
* 显示表情布局
* 显示表情布局
*/
*/
private
void
showEmojiLayout
()
{
private
void
showEmojiLayout
()
{
hideFirstQuestionLayout
();
hideInputMethod
();
hideInputMethod
();
hideActionPanelLayout
();
hideActionPanelLayout
();
hideAudioLayout
();
hideAudioLayout
();
...
@@ -752,6 +816,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
...
@@ -752,6 +816,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
*/
*/
private
void
showActionPanelLayout
()
{
private
void
showActionPanelLayout
()
{
hideEmojiLayout
();
hideEmojiLayout
();
hideFirstQuestionLayout
();
hideInputMethod
();
hideInputMethod
();
uiHandler
.
postDelayed
(
showMoreFuncRunnable
,
SHOW_LAYOUT_DELAY
);
uiHandler
.
postDelayed
(
showMoreFuncRunnable
,
SHOW_LAYOUT_DELAY
);
...
@@ -765,6 +830,13 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
...
@@ -765,6 +830,13 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
}
}
};
};
private
Runnable
showFirstQuestionRunnable
=
new
Runnable
()
{
@Override
public
void
run
()
{
clFirstQuestion
.
setVisibility
(
View
.
VISIBLE
);
}
};
private
Runnable
showMoreFuncRunnable
=
new
Runnable
()
{
private
Runnable
showMoreFuncRunnable
=
new
Runnable
()
{
@Override
@Override
public
void
run
()
{
public
void
run
()
{
...
@@ -875,6 +947,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
...
@@ -875,6 +947,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
hideInputMethod
();
hideInputMethod
();
hideActionPanelLayout
();
hideActionPanelLayout
();
hideEmojiLayout
();
hideEmojiLayout
();
hideFirstQuestionLayout
();
}
}
};
};
}
}
...
...
m-im/src/main/java/com/yidianling/uikit/custom/http/ServiceApi.kt
View file @
7f627417
...
@@ -4,6 +4,7 @@ import com.ydl.ydlcommon.base.config.YDL_DOMAIN
...
@@ -4,6 +4,7 @@ import com.ydl.ydlcommon.base.config.YDL_DOMAIN
import
com.ydl.ydlcommon.base.config.YDL_DOMAIN_JAVA
import
com.ydl.ydlcommon.base.config.YDL_DOMAIN_JAVA
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
import
com.yidianling.im.bean.BusyBean
import
com.yidianling.im.bean.BusyBean
import
com.yidianling.im.bean.FirstQuestionBean
import
com.yidianling.uikit.custom.http.response.*
import
com.yidianling.uikit.custom.http.response.*
import
com.yidianling.uikit.custom.http.response.question.QuestionsInfoBean
import
com.yidianling.uikit.custom.http.response.question.QuestionsInfoBean
import
io.reactivex.Observable
import
io.reactivex.Observable
...
@@ -115,10 +116,13 @@ interface ServiceApi {
...
@@ -115,10 +116,13 @@ interface ServiceApi {
//答题
//答题
@POST
(
"cms/exam/api/v1/exams/{id}/lingxi/answer-question"
)
@POST
(
"cms/exam/api/v1/exams/{id}/lingxi/answer-question"
)
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_JAVA
)
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_JAVA
)
fun
answerQuestion
(
fun
answerQuestion
(
@Path
(
"id"
)
id
:
String
,
@Body
body
:
RequestBody
):
Observable
<
BaseAPIResponse
<
String
>>
@Path
(
"id"
)
id
:
String
,
@Body
body
:
RequestBody
):
Observable
<
BaseAPIResponse
<
String
>>
/**
* 获取首问语
*/
@POST
(
"dmp/v1/clouddata/schemas/lingxi_quick_replies/query"
)
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_JAVA
,
"X-App-Id: crm_cloud"
)
fun
getFirstQuestion
(
@Body
map
:
Map
<
String
,
@JvmSuppressWildcards
Any
>):
Observable
<
BaseAPIResponse
<
FirstQuestionBean
>>
}
}
\ No newline at end of file
m-im/src/main/java/com/yidianling/uikit/custom/http/ServiceImpl.kt
View file @
7f627417
...
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON
...
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
import
com.ydl.ydlnet.YDLHttpUtils
import
com.ydl.ydlnet.YDLHttpUtils
import
com.yidianling.im.bean.BusyBean
import
com.yidianling.im.bean.BusyBean
import
com.yidianling.im.bean.FirstQuestionBean
import
com.yidianling.im.http.ImRetrofitApi
import
com.yidianling.im.http.ImRetrofitApi
import
com.yidianling.uikit.custom.http.response.*
import
com.yidianling.uikit.custom.http.response.*
import
com.yidianling.uikit.custom.http.response.question.QuestionsInfoBean
import
com.yidianling.uikit.custom.http.response.question.QuestionsInfoBean
...
@@ -188,4 +189,15 @@ class ServiceImpl private constructor() {
...
@@ -188,4 +189,15 @@ class ServiceImpl private constructor() {
return
YDLHttpUtils
.
obtainApi
(
ImRetrofitApi
::
class
.
java
).
batchSendCustomizeMessage
(
body
)
return
YDLHttpUtils
.
obtainApi
(
ImRetrofitApi
::
class
.
java
).
batchSendCustomizeMessage
(
body
)
}
}
/**
* 获取首问语
*/
fun
getFirstQuestion
():
Observable
<
BaseAPIResponse
<
FirstQuestionBean
>>
{
val
filterMap
=
HashMap
<
String
,
Any
>()
filterMap
[
"type"
]
=
1
val
map
=
HashMap
<
String
,
Any
>()
map
[
"filter"
]
=
filterMap
return
YDLHttpUtils
.
obtainApi
(
ServiceApi
::
class
.
java
).
getFirstQuestion
(
map
)
}
}
}
\ No newline at end of file
m-im/src/main/res/layout/im_item_chat_first_question.xml
0 → 100644
View file @
7f627417
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:orientation=
"vertical"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<TextView
android:id=
"@+id/tv_question_name"
android:layout_width=
"match_parent"
android:layout_height=
"48dp"
tools:text=
"我感觉自己心里有抑郁倾向"
android:gravity=
"center_vertical"
android:paddingStart=
"12dp"
android:textSize=
"14sp"
android:textColor=
"#16263D"
/>
<View
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
android:background=
"@color/platform_color_F2F2F2"
/>
</LinearLayout>
\ No newline at end of file
m-im/src/main/res_uikit/layout/im_nim_message_activity_bottom_layout.xml
View file @
7f627417
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:id=
"@+id/messageActivityBottomLayout"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:id=
"@+id/messageActivityBottomLayout"
android:layout_height=
"wrap_content"
android:layout_width=
"match_parent"
android:orientation=
"vertical"
>
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<include
layout=
"@layout/im_nim_message_activity_text_layout"
/>
<include
layout=
"@layout/im_nim_message_activity_text_layout"
/>
<com.yidianling.nimbase.business.session.emoji.EmoticonPickerView
android:id=
"@+id/emoticon_picker_view"
<com.yidianling.nimbase.business.session.emoji.EmoticonPickerView
android:layout_width=
"wrap_content"
android:id=
"@+id/emoticon_picker_view"
android:layout_height=
"wrap_content"
android:layout_width=
"wrap_content"
android:visibility=
"gone"
/>
android:layout_height=
"wrap_content"
</LinearLayout>
android:visibility=
"gone"
/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/cl_first_question"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:visibility=
"gone"
android:background=
"@color/white"
android:orientation=
"vertical"
>
<TextView
android:layout_width=
"match_parent"
android:layout_height=
"46dp"
android:gravity=
"center_vertical"
android:paddingStart=
"12dp"
android:text=
"您可以试试这样描述您的问题:"
app:layout_constraintTop_toTopOf=
"parent"
android:textColor=
"@color/platform_color_999999"
android:textSize=
"13sp"
/>
<View
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
app:layout_constraintTop_toTopOf=
"parent"
android:layout_marginTop=
"46dp"
android:background=
"@color/platform_color_F2F2F2"
/>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_first_question"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
app:layout_constraintHeight_default=
"wrap"
app:layout_constraintHeight_max=
"200dp"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
android:layout_marginTop=
"47dp"
app:layout_constraintBottom_toBottomOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
m-im/src/main/res_uikit/layout/im_nim_message_activity_text_layout.xml
View file @
7f627417
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:id=
"@+id/textMessageLayout"
android:id=
"@+id/textMessageLayout"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"56dp"
android:layout_height=
"56dp"
android:background=
"@color/platform_color_F7F7F7"
android:background=
"@color/platform_color_F7F7F7"
android:gravity=
"center_vertical"
>
android:gravity=
"center_vertical"
>
<!--android:paddingTop="@dimen/bottom_component_margin_vertical"-->
<!--android:paddingBottom="@dimen/bottom_component_margin_vertical"-->
<FrameLayout
<FrameLayout
android:id=
"@+id/switchLayout"
android:id=
"@+id/switchLayout"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
...
@@ -42,6 +41,7 @@
...
@@ -42,6 +41,7 @@
<Button
<Button
android:id=
"@+id/audioRecord"
android:id=
"@+id/audioRecord"
style=
"?android:attr/borderlessButtonStyle"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginTop=
"10dp"
android:layout_marginTop=
"10dp"
...
@@ -52,7 +52,6 @@
...
@@ -52,7 +52,6 @@
android:textColor=
"@color/color_3D3D3D"
android:textColor=
"@color/color_3D3D3D"
android:textSize=
"15sp"
android:textSize=
"15sp"
android:textStyle=
"bold"
android:textStyle=
"bold"
style=
"?android:attr/borderlessButtonStyle"
android:visibility=
"gone"
/>
android:visibility=
"gone"
/>
</FrameLayout>
</FrameLayout>
...
@@ -75,10 +74,10 @@
...
@@ -75,10 +74,10 @@
android:layout_gravity=
"center"
android:layout_gravity=
"center"
android:layout_marginLeft=
"10dp"
android:layout_marginLeft=
"10dp"
android:layout_marginRight=
"10dp"
android:layout_marginRight=
"10dp"
android:hint=
"隐私保密,安心咨询"
android:layout_weight=
"1"
android:layout_weight=
"1"
android:autoLink=
"all"
android:autoLink=
"all"
android:background=
"#ffffff"
android:background=
"#ffffff"
android:hint=
"隐私保密,安心咨询"
android:maxHeight=
"72dp"
android:maxHeight=
"72dp"
android:maxLines=
"4"
android:maxLines=
"4"
android:textColorHint=
"#CCCCCC"
android:textColorHint=
"#CCCCCC"
...
@@ -114,17 +113,17 @@
...
@@ -114,17 +113,17 @@
android:scaleType=
"center"
/>
android:scaleType=
"center"
/>
<TextView
<TextView
android:id=
"@+id/buttonSendMessage"
android:id=
"@+id/buttonSendMessage"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_gravity=
"center"
android:background=
"@drawable/platform_bg_radius_5"
android:background=
"@drawable/platform_bg_radius_5"
android:contentDescription=
"@string/im_empty"
android:contentDescription=
"@string/im_empty"
android:gravity=
"center"
android:gravity=
"center"
android:padding=
"5dp"
android:padding=
"5dp"
android:text=
"@string/im_send"
android:text=
"@string/im_send"
android:textColor=
"@color/platform_but_text_color"
android:textColor=
"@color/platform_but_text_color"
android:textSize=
"14sp"
/>
android:textSize=
"14sp"
/>
</FrameLayout>
</FrameLayout>
</RelativeLayout>
</RelativeLayout>
m-im/src/main/res_uikit/layout/im_ydl_nim_message_fragment.xml
View file @
7f627417
...
@@ -613,7 +613,8 @@
...
@@ -613,7 +613,8 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:background=
"@color/white"
android:background=
"@color/white"
android:visibility=
"gone"
/>
android:visibility=
"gone"
/>
<include
<include
layout=
"@layout/im_nim_message_activity_bottom_layout"
/>
layout=
"@layout/im_nim_message_activity_bottom_layout"
/>
</LinearLayout>
</LinearLayout>
maven_push.gradle
View file @
7f627417
...
@@ -5,6 +5,13 @@ def mavenRepositoryUrl = "http://nexus.yidianling.com/repository/AndroidReleases
...
@@ -5,6 +5,13 @@ def mavenRepositoryUrl = "http://nexus.yidianling.com/repository/AndroidReleases
def
getVersionName
()
{
def
getVersionName
()
{
return
hasProperty
(
'VERSION_NAME'
)
?
VERSION_NAME
:
rootProject
.
ext
.
ydlPublishVersion
[
project
.
getName
()]
return
hasProperty
(
'VERSION_NAME'
)
?
VERSION_NAME
:
rootProject
.
ext
.
ydlPublishVersion
[
project
.
getName
()]
}
}
task
sourceJar
(
type:
Jar
){
classifier
=
'source'
from
android
.
sourceSets
.
main
.
java
.
srcDirs
}
artifacts
{
archives
sourceJar
}
afterEvaluate
{
project
->
afterEvaluate
{
project
->
uploadArchives
{
uploadArchives
{
...
@@ -16,6 +23,7 @@ afterEvaluate { project ->
...
@@ -16,6 +23,7 @@ afterEvaluate { project ->
repository
(
url:
mavenRepositoryUrl
)
{
repository
(
url:
mavenRepositoryUrl
)
{
authentication
(
userName:
"admin"
,
password:
"fjoi#1+#@"
)
authentication
(
userName:
"admin"
,
password:
"fjoi#1+#@"
)
}
}
// repository(url:mavenLocal().url)
}
}
}
}
}
}
...
...
ydl-platform/build.gradle
View file @
7f627417
...
@@ -75,6 +75,7 @@ dependencies {
...
@@ -75,6 +75,7 @@ dependencies {
//====================YDL Repository====================
//====================YDL Repository====================
// api rootProject.ext.dependencies["ydl-pushagent"]
// api rootProject.ext.dependencies["ydl-pushagent"]
// api rootProject.ext.dependencies["ydl-hnet"]
// api rootProject.ext.dependencies["ydl-hnet"]
implementation
'com.volcengine:apm_insight:1.4.6.cn'
api
(
rootProject
.
ext
.
dependencies
[
"ydl-notracepoint"
])
{
api
(
rootProject
.
ext
.
dependencies
[
"ydl-notracepoint"
])
{
transitive
=
true
transitive
=
true
exclude
group:
'com.google.code.gson'
,
module:
'gson'
exclude
group:
'com.google.code.gson'
,
module:
'gson'
...
...
ydl-platform/src/main/java/com/ydl/ydlcommon/utils/log/AliYunRichLogsHelper.kt
View file @
7f627417
package
com.ydl.ydlcommon.utils.log
package
com.ydl.ydlcommon.utils.log
import
com.aliyun.sls.android.producer.*
import
com.aliyun.sls.android.producer.*
import
com.apm.insight.log.VLog
import
com.ydl.ydlcommon.base.BaseApp.Companion.getApp
import
com.ydl.ydlcommon.base.BaseApp.Companion.getApp
import
com.ydl.ydlcommon.data.PlatformDataManager.getRam
import
com.ydl.ydlcommon.data.PlatformDataManager.getRam
import
com.ydl.ydlcommon.modular.ModularServiceManager.getPlatformUserService
import
com.ydl.ydlcommon.modular.ModularServiceManager.getPlatformUserService
...
@@ -45,6 +46,7 @@ class AliYunRichLogsHelper {
...
@@ -45,6 +46,7 @@ class AliYunRichLogsHelper {
* @param value 具体的状态值
* @param value 具体的状态值
* */
* */
fun
sendRichLog
(
key
:
String
,
value
:
String
)
{
fun
sendRichLog
(
key
:
String
,
value
:
String
)
{
VLog
.
i
(
key
,
value
)
val
log
=
Log
()
val
log
=
Log
()
val
userInfo
=
getPlatformUserService
()
!!
.
getUser
()
val
userInfo
=
getPlatformUserService
()
!!
.
getUser
()
...
...
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