Commit 3de19538 by 万齐军

feat: 视频点击事件

parent b90ec82e
package com.ydl.confide.home.event package com.ydl.confide.home.event
import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.text.TextUtils import android.text.TextUtils
import android.view.Gravity
import android.view.LayoutInflater
import android.view.MotionEvent
import android.view.View import android.view.View
import android.widget.FrameLayout
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import com.alibaba.android.arouter.launcher.ARouter
import com.alibaba.fastjson.JSON import com.alibaba.fastjson.JSON
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog
import com.tencent.smtt.sdk.WebSettings
import com.ydl.confide.R
import com.ydl.confide.api.ConfideRoute import com.ydl.confide.api.ConfideRoute
import com.ydl.confide.home.ConfideBottomSheetDialogFragment import com.ydl.confide.home.ConfideBottomSheetDialogFragment
import com.ydl.confide.home.ConfideHomeActivity import com.ydl.confide.home.ConfideHomeActivity
...@@ -37,15 +27,12 @@ import com.ydl.media.audio.AudioPlayer ...@@ -37,15 +27,12 @@ import com.ydl.media.audio.AudioPlayer
import com.ydl.media.audio.model.Music import com.ydl.media.audio.model.Music
import com.ydl.media.view.PlayerFloatHelper import com.ydl.media.view.PlayerFloatHelper
import com.ydl.media.view.PlayerFloatView import com.ydl.media.view.PlayerFloatView
import com.ydl.webview.ProgressWebView
import com.ydl.webview.TellData
import com.ydl.webview.WebModularServiceUtils.Companion.getWebService
import com.ydl.ydl_router.manager.YDLRouterManager import com.ydl.ydl_router.manager.YDLRouterManager
import com.ydl.ydl_router.manager.YDLRouterParams import com.ydl.ydl_router.manager.YDLRouterParams
import com.ydl.ydlcommon.base.BaseActivity import com.ydl.ydlcommon.base.BaseActivity
import com.ydl.ydlcommon.modular.route
import com.ydl.ydlcommon.router.IYDLRouterConstant import com.ydl.ydlcommon.router.IYDLRouterConstant
import com.ydl.ydlcommon.utils.remind.ToastHelper import com.ydl.ydlcommon.utils.remind.ToastHelper
import com.yidianling.common.tools.LogUtil
import com.yidianling.common.tools.ToastUtil import com.yidianling.common.tools.ToastUtil
import com.yidianling.im.api.bean.IMRequestCallback import com.yidianling.im.api.bean.IMRequestCallback
...@@ -143,10 +130,9 @@ class ConfideHomeEventImpl(context: Context, var confideHomeView: IConfideHomeCo ...@@ -143,10 +130,9 @@ class ConfideHomeEventImpl(context: Context, var confideHomeView: IConfideHomeCo
* 最佳倾诉榜单--点我倾诉 * 最佳倾诉榜单--点我倾诉
* @param linkUrl 跳转地址 * @param linkUrl 跳转地址
*/ */
@SuppressLint("JavascriptInterface", "ClickableViewAccessibility") override fun consultantClick(linkUrl: String?, doctorId: String?) {
override fun consultantClick(linkUrl: String?,doctorId: String?) { ConfideBottomSheetDialogFragment()
ConfideBottomSheetDialogFragment() .showBottomSheetDialog(mContext as BaseActivity, linkUrl!!, doctorId!!)
.showBottomSheetDialog(mContext as BaseActivity,linkUrl!!,doctorId!!)
// link(linkUrl) // link(linkUrl)
} }
...@@ -155,8 +141,7 @@ class ConfideHomeEventImpl(context: Context, var confideHomeView: IConfideHomeCo ...@@ -155,8 +141,7 @@ class ConfideHomeEventImpl(context: Context, var confideHomeView: IConfideHomeCo
override fun videoShowClick(index: Int, data: List<ConfideHomeBodyBean>?) { override fun videoShowClick(index: Int, data: List<ConfideHomeBodyBean>?) {
val dataJson = if (data != null) JSON.toJSONString(data) else null val dataJson = if (data != null) JSON.toJSONString(data) else null
pauseVoice() pauseVoice()
ARouter.getInstance().build(ConfideRoute.R_VIDEO_SHOW).withInt("initPos", index) route(mContext, ConfideRoute.R_VIDEO_SHOW, "initPos" to index, "initData" to dataJson)
.withString("initData", dataJson).navigation()
} }
/** /**
......
...@@ -48,8 +48,7 @@ internal class ItemIntroHolder(binding: ItemExpertIntroBinding) : ...@@ -48,8 +48,7 @@ internal class ItemIntroHolder(binding: ItemExpertIntroBinding) :
fun onBind(item: VideoViewModel) { fun onBind(item: VideoViewModel) {
vm = item vm = item
binding.layoutCall.setOnClickListener { binding.layoutCall.setOnClickListener {
ConfideBottomSheetDialogFragment() showDoctorDetail(item)
.showBottomSheetDialog(itemView.context as FragmentActivity, item.linkUrl!!,item.doctorId!!)
} }
binding.btnChat.setOnClickListener { binding.btnChat.setOnClickListener {
val aty = it.context as? Activity val aty = it.context as? Activity
...@@ -61,6 +60,12 @@ internal class ItemIntroHolder(binding: ItemExpertIntroBinding) : ...@@ -61,6 +60,12 @@ internal class ItemIntroHolder(binding: ItemExpertIntroBinding) :
ConfideBottomSheetDialogFragment() ConfideBottomSheetDialogFragment()
.showBottomSheetDialog(itemView.context as FragmentActivity, item.linkUrl!!,item.doctorId!!) .showBottomSheetDialog(itemView.context as FragmentActivity, item.linkUrl!!,item.doctorId!!)
} }
binding.tvName.setOnClickListener {
showDoctorDetail(item)
}
binding.ivAvatar.setOnClickListener {
showDoctorDetail(item)
}
binding.vDisableClick.setOnClickListener { } binding.vDisableClick.setOnClickListener { }
binding.btnShare.setOnClickListener { binding.btnShare.setOnClickListener {
val aty = it.context as? Activity val aty = it.context as? Activity
...@@ -169,8 +174,15 @@ internal class ItemIntroHolder(binding: ItemExpertIntroBinding) : ...@@ -169,8 +174,15 @@ internal class ItemIntroHolder(binding: ItemExpertIntroBinding) :
if (!isTouch) { if (!isTouch) {
binding.seekbar.progress = pos.toInt()// video.bufferPercentage binding.seekbar.progress = pos.toInt()// video.bufferPercentage
} }
if (vm?.isVideo == false && video?.isPlaying == false) { if (video?.isPlaying == true) {
binding.voicePlay.start() when (vm?.isVideo) {
true -> {
binding.ivPlay.visibility = View.GONE
}
false -> {
binding.voicePlay.start()
}
}
} }
} }
} }
...@@ -179,6 +191,11 @@ internal class ItemIntroHolder(binding: ItemExpertIntroBinding) : ...@@ -179,6 +191,11 @@ internal class ItemIntroHolder(binding: ItemExpertIntroBinding) :
private fun stopTiming() { private fun stopTiming() {
disposable?.dispose() disposable?.dispose()
} }
private fun showDoctorDetail(item: VideoViewModel) {
ConfideBottomSheetDialogFragment()
.showBottomSheetDialog(itemView.context as FragmentActivity, item.linkUrl!!, item.doctorId!!)
}
} }
class VideoViewModel { class VideoViewModel {
...@@ -209,7 +226,7 @@ private fun genMinProgramPath(url: String): String { ...@@ -209,7 +226,7 @@ private fun genMinProgramPath(url: String): String {
internal fun VideoViewModel.mapOf(bean: ConfideHomeBodyBean): VideoViewModel { internal fun VideoViewModel.mapOf(bean: ConfideHomeBodyBean): VideoViewModel {
name.set(bean.confidedName) name.set(bean.confidedName)
avatar.set(bean.confidedIcon) avatar.set(bean.confidedIcon)
count.set("倾听人次 "+bean.confideNum) count.set("倾听人次 " + bean.confideNum)
intro.set(bean.confideContent) intro.set(bean.confideContent)
title.set(bean.title) title.set(bean.title)
val sb = StringBuilder() val sb = StringBuilder()
......
...@@ -252,6 +252,7 @@ ...@@ -252,6 +252,7 @@
app:layout_constraintRight_toRightOf="parent" /> app:layout_constraintRight_toRightOf="parent" />
<ImageView <ImageView
android:id="@+id/ivAvatar"
android:layout_width="48dp" android:layout_width="48dp"
android:layout_height="48dp" android:layout_height="48dp"
android:layout_marginRight="10dp" android:layout_marginRight="10dp"
......
...@@ -16,7 +16,7 @@ fun <T> findRouteService(clz: Class<T>): T? = ...@@ -16,7 +16,7 @@ fun <T> findRouteService(clz: Class<T>): T? =
ARouter.getInstance().navigation(clz) ARouter.getInstance().navigation(clz)
fun route(context: Context, route: String, vararg params: Pair<String, Any>) { fun route(context: Context?, route: String, vararg params: Pair<String, Any?>) {
val build = ARouter.getInstance().build(route) val build = ARouter.getInstance().build(route)
params.forEach { params.forEach {
when (val value = it.second) { when (val value = it.second) {
...@@ -58,7 +58,11 @@ fun route(context: Context, route: String, vararg params: Pair<String, Any>) { ...@@ -58,7 +58,11 @@ fun route(context: Context, route: String, vararg params: Pair<String, Any>) {
} }
} }
} }
build.navigation(context) if (context == null) {
build.navigation()
} else {
build.navigation(context)
}
} }
object ModularServiceManager { object ModularServiceManager {
......
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