Commit f52aae66 by 万齐军

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

feat: 视频点击事件

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