Commit d1384bdb by 万齐军

Merge branch 'feat/qj/confide_2.0' into 'd/v_confide_2.0'

Feat/qj/confide 2.0

See merge request app_android_lib/YDL-Component!50
parents fd17312f baaabd67
package com.ydl.component.service.web
import android.webkit.JavascriptInterface
import androidx.fragment.app.FragmentActivity
import com.google.gson.Gson
import com.ydl.confide.api.ConfideRoute
import com.ydl.confide.api.IConfideService
import com.ydl.js_module.manager.WebViewRouterManager
import com.ydl.webview.H5JsBean
import com.ydl.webview.IJavascriptHandler
import com.ydl.ydl_router.manager.YDLRouterManager
import com.ydl.ydlcommon.base.BaseActivityMgr
import com.ydl.ydlcommon.base.config.HttpConfig
import com.ydl.ydlcommon.modular.ModularServiceManager
import com.ydl.ydlcommon.modular.findRouteService
import com.ydl.ydlcommon.utils.log.LogHelper
import com.yidianling.common.tools.LogUtil
import com.yidianling.user.UserHelper
......@@ -385,6 +391,15 @@ class WebJavascriptHandler : IJavascriptHandler{
"get_next_doctor"->{
wvEnventPro?.getNextExpertStatus(jsData.cmd?.params?.doctorId.toString(),jsData.cmd?.params?.title,jsData.cmd?.params?.uid.toString())
}
"show_popup_window" -> {
val doctorId = jsData.cmd?.params?.doctorId?.toString()
val confideId = jsData.cmd?.params?.confidedId
val topActivity = BaseActivityMgr.INST.getTopActivity()
if (topActivity is FragmentActivity && doctorId != null && confideId != null) {
val url = HttpConfig.MH5_URL + ConfideRoute.h5ConfideIntro(confideId)
findRouteService(IConfideService::class.java)?.showExpertDetailDialog(topActivity, url, doctorId)
}
}
}
}
}
......@@ -5,18 +5,18 @@ ext {
ydlPublishVersion = [
// -------------- 业务模块 --------------
//第三步 若干
"m-confide" : "0.0.49.82",
"m-confide" : "0.0.49.83",
"m-consultant" : "0.0.60.21",
"m-fm" : "0.0.30.08",
"m-user" : "0.0.62.04",
"m-home" : "0.0.23.44",
"m-home" : "0.0.23.60",
"m-im" : "0.0.21.45",
"m-dynamic" : "0.0.7.37",
"m-article" : "0.0.0.10",
"m-muse" : "0.0.28.28",
"m-tests" : "0.0.24.18",
"m-course" : "0.0.43.37",
"m-course" : "0.0.43.38",
//-------------- 业务模块 API 层 --------------
"m-audioim-api" : "0.0.6",
......@@ -38,10 +38,10 @@ ext {
"ydl-platform" : "0.0.41.13",
//第二步 若干
"ydl-webview" : "0.0.38.76",
"ydl-webview" : "0.0.38.80",
"ydl-media" : "0.0.21.45",
"ydl-pay" : "0.0.18.19",
"m-audioim" : "0.0.49.29.92",
"m-audioim" : "0.0.49.29.93",
"ydl-flutter-base": "0.0.14.38",
//以下 几乎不会动
......@@ -91,18 +91,18 @@ ext {
// -------------- 业务模块 --------------
//第三步 若干
"m-confide" : "0.0.49.82",
"m-confide" : "0.0.49.83",
"m-consultant" : "0.0.60.21",
"m-fm" : "0.0.30.08",
"m-user" : "0.0.62.04",
"m-home" : "0.0.23.41",
"m-home" : "0.0.23.60",
"m-im" : "0.0.21.45",
"m-dynamic" : "0.0.7.37",
"m-article" : "0.0.0.8",
"m-muse" : "0.0.28.28",
"m-tests" : "0.0.24.18",
"m-course" : "0.0.43.37",
"m-course" : "0.0.43.38",
//-------------- 业务模块 API 层 --------------
"m-audioim-api" : "0.0.6",
"m-confide-api" : "0.0.2.14",
......@@ -122,10 +122,10 @@ ext {
"ydl-platform" : "0.0.41.13",
//第二步 若干
"ydl-webview" : "0.0.38.76",
"ydl-webview" : "0.0.38.80",
"ydl-media" : "0.0.21.45",
"ydl-pay" : "0.0.18.19",
"m-audioim" : "0.0.49.29.92",
"m-audioim" : "0.0.49.29.93",
"ydl-flutter-base": "0.0.14.38",
//以下 几乎不会动
......
......@@ -459,6 +459,7 @@ class AudioHomeActivity :
//权限申请
requestPermission()
ActionCountUtils.record("call_phone_page", "call_phone_page_visit", "0", "1")
}
......@@ -588,6 +589,7 @@ class AudioHomeActivity :
}
//静音开启
rl_mute_on_off.setOnClickListener {
ActionCountUtils.record("call_phone_page", "call_phone_icon_click", "0", "2")
if (iv_mute_on_off.isSelected) {
iv_mute_on_off.isSelected = false
iv_mute_on_off.setImageResource(R.drawable.audiohome_muteoff)
......@@ -602,6 +604,7 @@ class AudioHomeActivity :
}
//切换线路
ll_changeRoute.setOnClickListener {
ActionCountUtils.record("call_phone_page", "call_phone_icon_click", "0", "4")
showChooseDialog(1)
}
//挂断
......@@ -610,6 +613,7 @@ class AudioHomeActivity :
//防止连击
return@setOnClickListener
}
ActionCountUtils.record("call_phone_page", "call_phone_icon_click", "0", "1")
if (isConnectSuccess) {
writeAgoraLog("已接通:主叫主动挂断")
AliYunRichLogsHelper.getInstance()
......@@ -632,6 +636,7 @@ class AudioHomeActivity :
}
//免提
iv_hands_free.setOnClickListener {
ActionCountUtils.record("call_phone_page", "call_phone_icon_click", "0", "3")
if (iv_hands_free.isSelected) {
iv_hands_free.isSelected = false
iv_hands_free.setImageResource(R.drawable.audioim_img_hands_free_unuse)
......@@ -755,7 +760,7 @@ class AudioHomeActivity :
if (remainTime <= 0) {
waittingStatus()
} else {
tv_change_time_counter.text = "${remainTime}s"
tv_change_time_counter.text = "转传统电话(${remainTime}s)"
}
if (remainTime<=20){
......
......@@ -21,6 +21,7 @@ import com.tencent.smtt.export.external.interfaces.JsResult
import com.tencent.smtt.sdk.*
import com.ydl.confide.R
import com.ydl.confide.home.http.ConfideHomeApi
import com.ydl.confide.router.PhoneCallIn
import com.ydl.utils.WebUrlParamsUtils
import com.ydl.webview.ProgressWebView
import com.ydl.webview.TellData
......@@ -146,6 +147,9 @@ class ConfideBottomSheetDialogFragment : BottomSheetDialogFragment() {
val isLogin = findRouteService(IUserService::class.java)?.isLogin() ?: false
first_order.visibility = if (isLogin) View.GONE else View.VISIBLE
layoutCall.setOnClickListener {
if (!PhoneCallIn.loginByOneKeyLogin(requireContext(), true)) {
return@setOnClickListener
}
callJsFun(wv_content, "listenCallClick()")
}
layoutChange.setOnClickListener {
......@@ -215,7 +219,11 @@ class ConfideBottomSheetDialogFragment : BottomSheetDialogFragment() {
}
}
}
fun updateChange(doctorId: String,title:String,uid: String){
fun updateChange(doctorId: String,title:String, uid: String) {
if (doctorId == "0") {//没有下一位了
layoutChange.visibility = View.GONE
return
}
this.uid=uid
text_title.text=title
confideProgress.visibility=View.GONE
......
......@@ -219,6 +219,15 @@ class ConfideHomeActivity : BaseLceActivity<IConfideHomeContract.View,IConfideHo
}
}
override fun onResume() {
super.onResume()
//登录了回来之后就不显示了
val isLogin = (findRouteService(IUserService::class.java)?.isLogin()) ?: false
if (isLogin) {
findViewById<View>(R.id.confide_Free).visibility = View.GONE
}
}
/**
* 初始化状态栏位置
......
......@@ -277,9 +277,10 @@ class ConfideHomeEventImpl(context: Context, var confideHomeView: IConfideHomeCo
* 私聊
*/
override fun toChatForMsg(doctorId: String?) {
if (null != mContext && mContext is Activity){
PhoneCallIn.loginByOneKeyLogin(mContext as Activity,true)
return
if (null != mContext && mContext is Activity) {
if (!PhoneCallIn.loginByOneKeyLogin(mContext as Activity, true)) {
return
}
}
if (mContext is AppCompatActivity && !TextUtils.isEmpty(doctorId)) {
PhoneCallIn.startChat(mContext as AppCompatActivity, doctorId!!, 0x001, 0)
......
......@@ -254,21 +254,22 @@ class ConfideHomeRecommendView(var view: IConfideHomeContract.View, context: Con
return
}
var i = 0
for (tag in bodyBean.confidedTag!!) {
val sb = StringBuilder()
for (tag in bodyBean.confidedTag) {
if (i > 4) break
var params = LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, dp16)
params.setMargins(0, 0, dp4, 0)
var textView = TextView(context)
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10f)
textView.setTextColor(Color.parseColor("#808080"))
textView.gravity = Gravity.CENTER
textView.setPadding(dp3, 0, dp3, 0)
textView.setBackgroundResource(R.drawable.confide_bg_tag)
textView.layoutParams = params
textView.text = tag
flowlayout_tag.addView(textView)
sb.append(tag).append(" | ")
i++
}
sb.setLength(sb.length - 3)
val params = LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, dp16)
params.setMargins(0, 0, dp4, 0)
val textView = TextView(context)
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12f)
textView.setTextColor(Color.parseColor("#9495A0"))
textView.gravity = Gravity.CENTER
textView.layoutParams = params
textView.text = sb.toString()
flowlayout_tag.addView(textView)
}
/**
......
......@@ -39,6 +39,8 @@ internal class IntroAdapter(
private var dispose: Disposable? = null
private val keySp = "check_network_continue"
init {
lifecycleOwner.lifecycle.addObserver(this)
}
......@@ -80,10 +82,17 @@ internal class IntroAdapter(
internal fun checkNetwork() {
if (!ConfideNetworkUtil.isWifi(context)) {
val lastCheck = context.getSharedPreferences("temp_test", Context.MODE_PRIVATE).getLong(keySp, 0)
val duration = System.currentTimeMillis() - lastCheck
if (duration < 24 * 60 * 60 * 1000) {
return
}
val dialog = CommonDialog.create(context)
.setTitle(context.getString(R.string.confide_tip))
.setMessage(context.getString(R.string.confide_video_wifi_tip))
.setLeftOnclick("继续播放") {
context.getSharedPreferences("temp_test", Context.MODE_PRIVATE).edit()
.putLong(keySp, System.currentTimeMillis()).apply()
hasAgreePlayWithoutWiFi = true
for (entry in videoViews.entries) {
val value = entry.value
......@@ -99,8 +108,11 @@ internal class IntroAdapter(
.setLeftButton_color(R.color.platform_but_text_color_selected)
.setRightButton_color(R.color.platform_text_bright_color)
.setRightClick("取消") {
if (context is Activity) {
context.onBackPressed()
for (entry in videoViews.entries) {
val value = entry.value
if (value.canPause()) {
value.pause()
}
}
}
.setCancelAble(true)
......@@ -137,6 +149,7 @@ internal class IntroAdapter(
private fun onResume() {
val ijkVideoView = videoViews[curPos]
ijkVideoView?.start()
onLoadDialStatus(curPos)
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:endColor="#33000000"
android:startColor="#00000000" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:bottomRightRadius="6dp"/>
<solid android:color="#BBC1CD" />
<solid android:color="#B3BBC1CD" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:bottomRightRadius="6dp"/>
<solid android:color="#FF994B"/>
<solid android:color="#CCFF994B"/>
</shape>
\ No newline at end of file
......@@ -5,9 +5,6 @@
<corners
android:radius="8dp"/>
<solid android:color="#eaffffff"/>
<stroke android:width="0.5dp"
android:color="#cccccc"/>
<solid android:color="#ffffff"/>
</shape>
\ No newline at end of file
......@@ -4,4 +4,7 @@
<gradient
android:endColor="#48CC95"
android:startColor="#61CEAC" />
<stroke
android:width="1dp"
android:color="#69FFFFFF" />
</shape>
\ No newline at end of file
......@@ -4,4 +4,7 @@
<gradient
android:endColor="#BBC1CD"
android:startColor="#D5D6D7" />
<stroke
android:width="1dp"
android:color="#69FFFFFF" />
</shape>
\ No newline at end of file
......@@ -4,4 +4,7 @@
<gradient
android:endColor="#FF994B"
android:startColor="#F6B37F" />
<stroke
android:width="1dp"
android:color="#69FFFFFF" />
</shape>
\ No newline at end of file
......@@ -52,7 +52,7 @@
app:shapeBg="@{0x26000000}"
app:shapeRadius="@{15}"
app:shapeStrokeWidth="@{1}"
app:shapeStrokeColor="@{0xFFFFFFFF}" />
app:shapeStrokeColor="@{0x69FFFFFF}" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
......@@ -22,7 +22,6 @@
android:id="@+id/quick_consult_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
......@@ -31,6 +30,7 @@
android:orientation="horizontal"
android:paddingLeft="@dimen/platform_dp_8"
android:paddingTop="1dp"
android:elevation="2dp"
android:paddingBottom="1dp"
android:paddingRight="@dimen/platform_dp_8"
android:visibility="gone"
......
......@@ -11,7 +11,7 @@
android:layout_height="wrap_content"
app:cardElevation="0dp"
app:cardCornerRadius="6dp"
android:layout_marginTop="@dimen/platform_dp_15"
android:layout_marginTop="@dimen/platform_dp_24"
android:layout_marginStart="@dimen/platform_dp_15"
android:id="@+id/img_bg"
app:layout_constraintStart_toStartOf="parent"
......@@ -162,10 +162,11 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:layout_marginRight="16dp"
android:text="50元/25分钟"
android:textSize="@dimen/platform_sp_12"
app:layout_constraintStart_toEndOf="@id/flowlayout_tag"
app:layout_constraintTop_toBottomOf="@+id/ll_confide_data"/>
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/ll_confide_data" />
<TextView
android:id="@+id/tv_content"
......@@ -183,6 +184,7 @@
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
>
......
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rl_confide_title_layout"
android:layout_width="match_parent"
android:layout_height="48dp"
......@@ -42,44 +41,44 @@
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="2dp"
android:drawableTop="@drawable/ic_action_confide_order"
android:drawablePadding="4dp"
android:gravity="center"
android:text="订单"
android:textColor="@color/_9"
android:textSize="7sp"
android:textSize="8sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toLeftOf="@+id/img_customer"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintRight_toLeftOf="@+id/img_customer"/>
<TextView
android:id="@+id/img_customer"
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="2dp"
android:drawableTop="@drawable/ic_action_confide_customer"
android:drawablePadding="4dp"
android:gravity="center"
android:text="客服"
android:textColor="@color/_9"
android:textSize="7sp"
android:textSize="8sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toLeftOf="@+id/img_help"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintRight_toLeftOf="@+id/img_help" />
<TextView
android:id="@+id/img_help"
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="2dp"
android:drawableTop="@drawable/ic_action_confide_help"
android:drawablePadding="4dp"
android:gravity="center"
android:text="帮助"
android:textColor="@color/_9"
android:textSize="7sp"
android:textSize="8sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintRight_toRightOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout>
......@@ -70,7 +70,7 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/tvName"
tools:visibility="gone" />
tools:visibility="visible" />
<SeekBar
android:id="@+id/seekbar"
......@@ -203,6 +203,7 @@
android:textColor="@color/white"
android:textSize="13sp"
app:layout_constraintBottom_toBottomOf="@+id/tvName"
android:layout_marginBottom="1dp"
app:layout_constraintLeft_toRightOf="@+id/tvName"
tools:text="tag|tag|tag" />
......
......@@ -10,6 +10,7 @@ import com.ydl.ydl_router.manager.YDLRouterManager
import com.ydl.ydlcommon.data.http.RxUtils
import com.ydl.ydlcommon.data.http.ThrowableConsumer
import com.ydl.ydlcommon.router.IYDLRouterConstant
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import com.yidianling.course.R
import com.yidianling.course.bean.RedListParam
import com.yidianling.course.net.CourseRetrofitUtils
......@@ -62,6 +63,7 @@ class CourseRedPacketView : RelativeLayout {
}
JUMP_CONFIDE_HOME -> {//跳转倾诉频道页
// ARouter.getInstance().build("/confide/home").navigation()
ActionCountUtils.record("listen_counselor_list_page", "listen_counselor_list_page_visit", "3")
YDLRouterManager.router(IYDLRouterConstant.ROUTER_CONFIDE_HOME)
}
JUMP_EXPERT_INFO -> {//跳转专家详情页
......
......@@ -7,11 +7,9 @@ import android.os.Bundle
import android.text.TextUtils
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.FragmentActivity
import androidx.recyclerview.widget.RecyclerView
import com.alibaba.android.arouter.launcher.ARouter
import com.ydl.confide.api.ConfideRoute
import com.ydl.confide.api.IConfideService
import com.ydl.media.audio.AudioPlayer
import com.ydl.media.audio.model.Music
import com.ydl.media.view.PlayTypeEnum
......@@ -26,7 +24,6 @@ import com.ydl.ydlcommon.base.config.HttpConfig
import com.ydl.ydlcommon.bean.ShareData
import com.ydl.ydlcommon.data.PlatformRamImpl
import com.ydl.ydlcommon.modular.ModularServiceManager
import com.ydl.ydlcommon.modular.findRouteService
import com.ydl.ydlcommon.modular.route
import com.ydl.ydlcommon.router.IYDLRouterConstant
import com.ydl.ydlcommon.utils.LogUtil
......@@ -305,6 +302,7 @@ open class HomeBaseImpl : IHomeBaseEvent {
ActionCountUtils.count(HomeBIConstants.YDL_USER_TALK_IN_TIME_CLICK)
//倾诉首页 ydl-user://confide/home
ActionCountUtils.record("listen_counselor_list_page", "listen_counselor_list_page_visit", "1")
route(mContext, ConfideRoute.R_CONFIDE_HOME, "listenFree" to listenFree)
}
......@@ -361,12 +359,14 @@ open class HomeBaseImpl : IHomeBaseEvent {
doctorId.toString()
)
findRouteService(IConfideService::class.java)
?.showExpertDetailDialog(
mContext as FragmentActivity,
HttpConfig.MH5_URL + ConfideRoute.h5ConfideIntro(doctorId.toString()),
doctorId.toString()
if (linkUrl.startsWith("http")) {
YDLRouterManager.router(
IYDLRouterConstant.ROUTER_H5_H5,
YDLRouterParams().putExtra(IYDLRouterConstant.EXTRA_URL, linkUrl), ""
)
} else {
YDLRouterManager.router(linkUrl)
}
}
/**
......
......@@ -10,6 +10,7 @@ import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.tabs.TabLayout
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import com.yidianling.common.tools.LogUtil
import com.yidianling.home.R
import com.yidianling.home.constract.HomeViewConfig
......@@ -47,6 +48,7 @@ class HomeConfideView(private val mContext: Context, private var homeEvent: IHom
View.inflate(mContext, R.layout.home_confide_view, this)
homeModuleConfideViewHomeCommonTitleView.setTitle(HomeViewConfig.getOrder().confideTitle)
homeModuleConfideViewHomeCommonTitleView.setOnClickListener {
ActionCountUtils.record("listen_counselor_list_page", "listen_counselor_list_page_visit", "2")
homeEvent?.confideMoreClick()
}
}
......
......@@ -40,6 +40,7 @@ class H5JsBean {
var isFromQingShu = 0//是否是从专家倾述主页跳转私聊界面 0: 不是 1:是
var docHead: String? = null//聊天头像
var doctorId: Int = 0//医生id
var confidedId: String?=null//医生id
var listenerId: Int = 0
var orderStatus: Int = 0
var orderStatusDesc: String? = 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