Commit 080ea869 by 万齐军

feature: 倾诉2.0首页改版,事件

parent 0b3f990c
...@@ -170,7 +170,7 @@ android { ...@@ -170,7 +170,7 @@ android {
packagingOptions { packagingOptions {
exclude 'META-INF/proguard/coroutines.pro' exclude 'META-INF/proguard/coroutines.pro'
} }
dataBinding{ dataBinding {
enabled true enabled true
} }
......
...@@ -31,8 +31,6 @@ buildscript { ...@@ -31,8 +31,6 @@ buildscript {
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"
//bugly 符号表
classpath 'com.tencent.bugly:symtabfileuploader:2.2.1'
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:1.0.1' classpath 'com.ydl.plugins:restools:1.0.1'
......
...@@ -50,7 +50,7 @@ android { ...@@ -50,7 +50,7 @@ android {
buildConfigField "String", "AGORA_APPID", '"3387e9b251f3491e9221a9877e8f7830"' buildConfigField "String", "AGORA_APPID", '"3387e9b251f3491e9221a9877e8f7830"'
} }
} }
dataBinding{ dataBinding {
enabled true enabled true
} }
......
...@@ -144,7 +144,7 @@ class ConfideHomeAdapter(private val mContext: Context, ...@@ -144,7 +144,7 @@ class ConfideHomeAdapter(private val mContext: Context,
LinearLayoutManager(holder.itemView.context, RecyclerView.HORIZONTAL, false) LinearLayoutManager(holder.itemView.context, RecyclerView.HORIZONTAL, false)
val recentBody = mListData!![position].body val recentBody = mListData!![position].body
val data = recentBody?.map { ItemVideoShowViewModel().mapOf(it) } ?: emptyList() val data = recentBody?.map { ItemVideoShowViewModel().mapOf(it) } ?: emptyList()
holder.rv.adapter = RecentConfideAdapter(data) holder.rv.adapter = RecentConfideAdapter(data, confideHomeEvent)
// holder.consultView!!.initData(mListData!![position]) // holder.consultView!!.initData(mListData!![position])
} else if (holder is RecommendViewHolder && null != mListData!![position] && null != mListData!![position].body && !mListData!![position].body!!.isEmpty()) { } else if (holder is RecommendViewHolder && null != mListData!![position] && null != mListData!![position].body && !mListData!![position].body!!.isEmpty()) {
//为你推荐 //为你推荐
...@@ -154,7 +154,7 @@ class ConfideHomeAdapter(private val mContext: Context, ...@@ -154,7 +154,7 @@ class ConfideHomeAdapter(private val mContext: Context,
LinearLayoutManager(holder.itemView.context, RecyclerView.HORIZONTAL, false) LinearLayoutManager(holder.itemView.context, RecyclerView.HORIZONTAL, false)
val recentBody = mListData!![position].body val recentBody = mListData!![position].body
val data = recentBody?.map { ItemVideoShowViewModel().mapOf(it) } ?: emptyList() val data = recentBody?.map { ItemVideoShowViewModel().mapOf(it) } ?: emptyList()
holder.rv.adapter = VideoShowAdapter(data) holder.rv.adapter = VideoShowAdapter(data, confideHomeEvent)
} else if (holder is EmptyViewHolder) { } else if (holder is EmptyViewHolder) {
} else { } else {
......
...@@ -10,9 +10,10 @@ import com.ydl.confide.databinding.ItemConfideHomeRecentBinding ...@@ -10,9 +10,10 @@ import com.ydl.confide.databinding.ItemConfideHomeRecentBinding
import com.ydl.confide.databinding.ItemVideoShowBinding import com.ydl.confide.databinding.ItemVideoShowBinding
import com.ydl.confide.home.bean.ConfideHomeBodyBean import com.ydl.confide.home.bean.ConfideHomeBodyBean
import com.ydl.confide.home.bean.ConfideHomeDataBean import com.ydl.confide.home.bean.ConfideHomeDataBean
import com.ydl.confide.home.event.IConfideHomeEvent
import com.ydl.confide.intro.BindingViewHolder import com.ydl.confide.intro.BindingViewHolder
class VideoShowAdapter(val data: List<ItemVideoShowViewModel>) : class VideoShowAdapter(private val data: List<ItemVideoShowViewModel>, private val event: IConfideHomeEvent) :
RecyclerView.Adapter<BindingViewHolder<ItemVideoShowBinding>>() { RecyclerView.Adapter<BindingViewHolder<ItemVideoShowBinding>>() {
override fun onCreateViewHolder( override fun onCreateViewHolder(
parent: ViewGroup, parent: ViewGroup,
...@@ -25,14 +26,16 @@ class VideoShowAdapter(val data: List<ItemVideoShowViewModel>) : ...@@ -25,14 +26,16 @@ class VideoShowAdapter(val data: List<ItemVideoShowViewModel>) :
} }
override fun onBindViewHolder(holder: BindingViewHolder<ItemVideoShowBinding>, position: Int) { override fun onBindViewHolder(holder: BindingViewHolder<ItemVideoShowBinding>, position: Int) {
holder.binding.item = data[position] val itemVideoShowViewModel = data[position]
holder.binding.item = itemVideoShowViewModel
holder.itemView.setOnClickListener { event.videoShowClick(position) }
} }
override fun getItemCount() = data.size override fun getItemCount() = data.size
} }
class RecentConfideAdapter(val data: List<ItemVideoShowViewModel>) : class RecentConfideAdapter(val data: List<ItemVideoShowViewModel>, private val event: IConfideHomeEvent) :
RecyclerView.Adapter<BindingViewHolder<ItemConfideHomeRecentBinding>>() { RecyclerView.Adapter<BindingViewHolder<ItemConfideHomeRecentBinding>>() {
override fun onCreateViewHolder( override fun onCreateViewHolder(
parent: ViewGroup, parent: ViewGroup,
...@@ -50,13 +53,16 @@ class RecentConfideAdapter(val data: List<ItemVideoShowViewModel>) : ...@@ -50,13 +53,16 @@ class RecentConfideAdapter(val data: List<ItemVideoShowViewModel>) :
} }
override fun onBindViewHolder(holder: BindingViewHolder<ItemConfideHomeRecentBinding>, position: Int) { override fun onBindViewHolder(holder: BindingViewHolder<ItemConfideHomeRecentBinding>, position: Int) {
holder.binding.item = data[position] val itemVideoShowViewModel = data[position]
holder.binding.item = itemVideoShowViewModel
holder.itemView.setOnClickListener { event.consultantClick(itemVideoShowViewModel.linkUrl) }
} }
override fun getItemCount() = data.size override fun getItemCount() = data.size
} }
class ItemVideoShowViewModel { class ItemVideoShowViewModel {
var linkUrl: String? = null
val name = ObservableField<String>("") val name = ObservableField<String>("")
val coverUrl = ObservableField<String>("") val coverUrl = ObservableField<String>("")
val videoCoverUrl = ObservableField<String>("") val videoCoverUrl = ObservableField<String>("")
...@@ -68,6 +74,7 @@ internal fun ItemVideoShowViewModel.mapOf(bean: ConfideHomeBodyBean): ItemVideoS ...@@ -68,6 +74,7 @@ internal fun ItemVideoShowViewModel.mapOf(bean: ConfideHomeBodyBean): ItemVideoS
coverUrl.set(bean.confidedIcon/*coverPicture*/) coverUrl.set(bean.confidedIcon/*coverPicture*/)
videoCoverUrl.set(bean.confidedIcon/*coverVideoPicture*/) videoCoverUrl.set(bean.confidedIcon/*coverVideoPicture*/)
state.set(bean.confideLine.toString()) state.set(bean.confideLine.toString())
linkUrl = bean.linkUrl
return this return this
} }
......
...@@ -30,8 +30,4 @@ data class ConfideHomeDataBean( ...@@ -30,8 +30,4 @@ data class ConfideHomeDataBean(
/** /**
* 为你推荐Id 本地使用 用于区分音频播放区域 * 为你推荐Id 本地使用 用于区分音频播放区域
*/ */
var recommendId : Int, var recommendId : Int)
/** \ No newline at end of file
* 是否显示分割线 0.不显示 1.显示
*/
val diviLine : Int?)
\ No newline at end of file
...@@ -19,9 +19,8 @@ interface IConfideHomeConfig{ ...@@ -19,9 +19,8 @@ interface IConfideHomeConfig{
const val TYPE_RECOMMEND_FILTER = 4 const val TYPE_RECOMMEND_FILTER = 4
const val TYPE_RECOMMEND = 5 const val TYPE_RECOMMEND = 5
const val TYPE_SOUND = 6 const val TYPE_SOUND = 6
const val TYPE_CONSULTANT = 7 const val TYPE_VIDEO_SHOW = 7
const val TYPE_FOOTER = 999 const val TYPE_FOOTER = 999
const val TYPE_VIDEO_SHOW = 8
/** /**
* section id. 与上面相对应 * section id. 与上面相对应
*/ */
......
...@@ -5,15 +5,15 @@ import android.app.Activity ...@@ -5,15 +5,15 @@ 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.os.Build
import android.text.TextUtils import android.text.TextUtils
import android.view.MotionEvent import android.view.MotionEvent
import android.view.View import android.view.View
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialog
import com.tencent.smtt.sdk.WebSettings import com.tencent.smtt.sdk.WebSettings
import com.ydl.confide.R import com.ydl.confide.R
import com.alibaba.android.arouter.launcher.ARouter
import com.ydl.confide.api.ConfideRoute
import com.ydl.confide.home.ConfideHomeActivity import com.ydl.confide.home.ConfideHomeActivity
import com.ydl.confide.home.adapter.ConfideHomeAdapter import com.ydl.confide.home.adapter.ConfideHomeAdapter
import com.ydl.confide.home.bean.ConfideHomeAllFiltersBean import com.ydl.confide.home.bean.ConfideHomeAllFiltersBean
...@@ -185,6 +185,10 @@ class ConfideHomeEventImpl(context: Context, var confideHomeView: IConfideHomeCo ...@@ -185,6 +185,10 @@ class ConfideHomeEventImpl(context: Context, var confideHomeView: IConfideHomeCo
// link(linkUrl) // link(linkUrl)
} }
override fun videoShowClick(index: Int) {
ARouter.getInstance().build(ConfideRoute.R_VIDEO_SHOW).withInt("initPos", index).navigation()
}
/** /**
* 最佳倾诉榜单--更多情感恋爱专家 * 最佳倾诉榜单--更多情感恋爱专家
* @param linkUrl 跳转地址 * @param linkUrl 跳转地址
...@@ -271,9 +275,6 @@ class ConfideHomeEventImpl(context: Context, var confideHomeView: IConfideHomeCo ...@@ -271,9 +275,6 @@ class ConfideHomeEventImpl(context: Context, var confideHomeView: IConfideHomeCo
//听声寻人 //听声寻人
IConfideHomeConfig.TYPE_SOUND -> { IConfideHomeConfig.TYPE_SOUND -> {
} }
//咨询师推荐
IConfideHomeConfig.TYPE_CONSULTANT -> {
}
} }
} }
......
...@@ -75,6 +75,8 @@ interface IConfideHomeEvent { ...@@ -75,6 +75,8 @@ interface IConfideHomeEvent {
*/ */
fun consultantClick(linkUrl: String?) fun consultantClick(linkUrl: String?)
fun videoShowClick(index: Int)
/** /**
* 咨询师推荐--更多情感恋爱专家 * 咨询师推荐--更多情感恋爱专家
* @param linkUrl 跳转地址 * @param linkUrl 跳转地址
......
...@@ -101,7 +101,7 @@ class ConfideHomeUtils { ...@@ -101,7 +101,7 @@ class ConfideHomeUtils {
} }
//移除听声寻人数据 放在最后 //移除听声寻人数据 放在最后
if (dataBean.type == IConfideHomeConfig.TYPE_SOUND) { if (dataBean.type == IConfideHomeConfig.TYPE_SOUND) {
soundDataBean = ConfideHomeDataBean(dataBean.type, dataBean.body, dataBean.head, dataBean.footer, dataBean.recommendId, dataBean.diviLine) soundDataBean = ConfideHomeDataBean(dataBean.type, dataBean.body, dataBean.head, dataBean.footer, dataBean.recommendId)
list.removeAt(index) list.removeAt(index)
} }
} }
...@@ -124,7 +124,7 @@ class ConfideHomeUtils { ...@@ -124,7 +124,7 @@ class ConfideHomeUtils {
for (bodyBean in dataBean.body) { for (bodyBean in dataBean.body) {
val bodyList: MutableList<ConfideHomeBodyBean> = ArrayList() val bodyList: MutableList<ConfideHomeBodyBean> = ArrayList()
bodyList.add(bodyBean) bodyList.add(bodyBean)
val recommendDataBean = ConfideHomeDataBean(dataBean.type, bodyList, dataBean.head, dataBean.footer, dataBean.recommendId, dataBean.diviLine) val recommendDataBean = ConfideHomeDataBean(dataBean.type, bodyList, dataBean.head, dataBean.footer, dataBean.recommendId)
list.add(recommendDataBean) list.add(recommendDataBean)
} }
return list return list
...@@ -174,12 +174,6 @@ class ConfideHomeUtils { ...@@ -174,12 +174,6 @@ class ConfideHomeUtils {
section.setData(resultBean) section.setData(resultBean)
mConfideAdapter?.addSection(section) mConfideAdapter?.addSection(section)
} }
//最佳倾诉榜单 todo 产品说先隐藏掉
IConfideHomeConfig.TYPE_CONSULTANT -> {
// var section = ConfideHomeRecommendExpertSection(context,mConfideEvent)
// section.setData(resultBean)
// mConfideAdapter?.addSection(section)
}
//为你推荐筛选模块 //为你推荐筛选模块
IConfideHomeConfig.TYPE_RECOMMEND_FILTER -> { IConfideHomeConfig.TYPE_RECOMMEND_FILTER -> {
var section = ConfideHomeFilterSection(context, view) var section = ConfideHomeFilterSection(context, view)
...@@ -254,10 +248,6 @@ class ConfideHomeUtils { ...@@ -254,10 +248,6 @@ class ConfideHomeUtils {
IConfideHomeConfig.TYPE_SOUND -> { IConfideHomeConfig.TYPE_SOUND -> {
listenAndFoundData = resultBean listenAndFoundData = resultBean
} }
//最佳倾听榜单
IConfideHomeConfig.TYPE_CONSULTANT -> {
recommendExpertData = resultBean
}
} }
} }
......
...@@ -153,7 +153,7 @@ class ConfideHomeRecommendExpertItemView(mContext: Context, private var confideH ...@@ -153,7 +153,7 @@ class ConfideHomeRecommendExpertItemView(mContext: Context, private var confideH
if (confideIsPlay) { if (confideIsPlay) {
confideHomeEvent.pauseVoice() confideHomeEvent.pauseVoice()
} else { } else {
confideHomeEvent.playVoice(IConfideHomeConfig.TYPE_CONSULTANT, position, bodyBean.confideVoice) confideHomeEvent.playVoice(IConfideHomeConfig.TYPE_VIDEO_SHOW, position, bodyBean.confideVoice)
} }
} }
} }
......
...@@ -7,13 +7,20 @@ import android.view.View ...@@ -7,13 +7,20 @@ import android.view.View
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.databinding.DataBindingUtil import androidx.databinding.DataBindingUtil
import androidx.viewpager2.widget.ViewPager2 import androidx.viewpager2.widget.ViewPager2
import com.alibaba.android.arouter.facade.annotation.Autowired
import com.alibaba.android.arouter.facade.annotation.Route import com.alibaba.android.arouter.facade.annotation.Route
import com.ydl.confide.R import com.ydl.confide.R
import com.ydl.confide.api.ConfideRoute
import com.ydl.confide.databinding.ActivityExpertIntroBinding import com.ydl.confide.databinding.ActivityExpertIntroBinding
@Route(path = "/confide/expert_video") @Route(path = ConfideRoute.R_VIDEO_SHOW)
class ExpertIntroActivity : AppCompatActivity() { class ExpertIntroActivity : AppCompatActivity() {
@Autowired
@JvmField
var initPos: Int = 0
private lateinit var binding: ActivityExpertIntroBinding private lateinit var binding: ActivityExpertIntroBinding
private lateinit var adapter: IntroAdapter private lateinit var adapter: IntroAdapter
......
package com.ydl.confide.api
object ConfideRoute{
const val R_VIDEO_SHOW = "/confide/expert_video"
}
\ No newline at end of file
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