Commit 31dd742b authored by jyx's avatar jyx

代码优化

parent 06c01c02
...@@ -3,6 +3,11 @@ package com.duben.heliapp.mvp.model ...@@ -3,6 +3,11 @@ package com.duben.heliapp.mvp.model
import android.os.Parcelable import android.os.Parcelable
import kotlinx.android.parcel.Parcelize import kotlinx.android.parcel.Parcelize
@Parcelize
data class DotListBean(
val list: List<DotBean>,
) : Parcelable, java.io.Serializable
@Parcelize @Parcelize
data class DotBean( data class DotBean(
val remark: String, val remark: String,
......
...@@ -13,6 +13,7 @@ public class VedioBean implements Serializable { ...@@ -13,6 +13,7 @@ public class VedioBean implements Serializable {
private String tabImage; private String tabImage;
private String topTabsReamrk; private String topTabsReamrk;
private ArrayList<String> orderTags;//标签 private ArrayList<String> orderTags;//标签
private ArrayList<Integer> unlockArr;//标签
private int vedioTotal;//同穿山甲 total private int vedioTotal;//同穿山甲 total
private int unlockIndex;//解锁剧集 private int unlockIndex;//解锁剧集
private int seeIndex;//看到哪一集了 private int seeIndex;//看到哪一集了
...@@ -38,6 +39,14 @@ public class VedioBean implements Serializable { ...@@ -38,6 +39,14 @@ public class VedioBean implements Serializable {
return showNum; return showNum;
} }
public ArrayList<Integer> getUnlockArr() {
return unlockArr;
}
public void setUnlockArr(ArrayList<Integer> unlockArr) {
this.unlockArr = unlockArr;
}
public void setShowNum(String showNum) { public void setShowNum(String showNum) {
this.showNum = showNum; this.showNum = showNum;
} }
......
...@@ -9,7 +9,7 @@ const val MULTI_ITEM_2 = 2 ...@@ -9,7 +9,7 @@ const val MULTI_ITEM_2 = 2
const val MULTI_ITEM_3 = 3 const val MULTI_ITEM_3 = 3
data class VideoMultiItemEntity( data class VideoMultiItemEntity(
override val itemType: Int, override var itemType: Int,
var video: IndexList.VedioEpisodeBean?, var video: IndexList.VedioEpisodeBean?,
var videoModel: VideoModel? var videoModel: VideoModel?
) : MultiItemEntity, java.io.Serializable ) : MultiItemEntity, java.io.Serializable
......
...@@ -173,23 +173,25 @@ class VideoPresenter : BasePresenter<VideoView>() { ...@@ -173,23 +173,25 @@ class VideoPresenter : BasePresenter<VideoView>() {
fun unlock(vo: HashMap<String, Any>) { fun unlock(vo: HashMap<String, Any>) {
AppHttpManager.getInstance(loanApplication) AppHttpManager.getInstance(loanApplication)
.call( .call(loanService.unlock(vo),
loanService.unlock(vo), object : BaseSubscriber<BaseResponse<JsonObject>>() {
object : BaseSubscriber<BaseResponse<IndexList>>() {
override fun onCompleted() { override fun onCompleted() {
if (isLinkView) return if (isLinkView) return
view.hideLoading() view.hideLoading()
} }
override fun onNext(baseResponse: BaseResponse<IndexList>) { override fun onNext(baseResponse: BaseResponse<JsonObject>) {
if (isLinkView) return if (isLinkView) return
view.hideLoading() view.hideLoading()
val code = baseResponse.status val status = baseResponse.status
val message = baseResponse.message val message = baseResponse.message
when (code) { when (status) {
200 -> view.unlockSuc(baseResponse.data) 200 -> {
val data = baseResponse.data
view.unlockSuc(data)
}
else -> { else -> {
view.unlockFail() view.unlockFail()
view.showToast(message) view.showToast(message)
......
package com.duben.heliapp.mvp.presenters package com.duben.heliapp.mvp.presenters
import com.google.gson.JsonObject
import com.duben.library.net.neterror.BaseSubscriber
import com.duben.library.net.neterror.Throwable
import com.duben.heliapp.manager.AppHttpManager import com.duben.heliapp.manager.AppHttpManager
import com.duben.heliapp.mvp.model.BannerList import com.duben.heliapp.mvp.model.BannerList
import com.duben.heliapp.mvp.model.BaseResponse import com.duben.heliapp.mvp.model.BaseResponse
import com.duben.heliapp.mvp.model.DotListBean
import com.duben.heliapp.mvp.views.WatchRecordView import com.duben.heliapp.mvp.views.WatchRecordView
import java.util.HashMap import com.duben.library.net.neterror.BaseSubscriber
import com.duben.library.net.neterror.Throwable
import com.google.gson.JsonObject
class WatchRecordPresenter : BasePresenter<WatchRecordView>() { class WatchRecordPresenter : BasePresenter<WatchRecordView>() {
fun getDotHistory() { fun getDotHistory(page: Int, size: Int) {
val vo = HashMap<String, Any>()
vo["page"] = page
vo["size"] = size
AppHttpManager.getInstance(loanApplication) AppHttpManager.getInstance(loanApplication)
.call(loanService.add(), object : BaseSubscriber<BaseResponse<BannerList>>() { .call(loanService.add(vo), object : BaseSubscriber<BaseResponse<DotListBean>>() {
override fun onCompleted() { override fun onCompleted() {
if (isLinkView) return if (isLinkView) return
view.hideLoading() view.hideLoading()
} }
override fun onNext(baseResponse: BaseResponse<BannerList>) { override fun onNext(baseResponse: BaseResponse<DotListBean>) {
if (isLinkView) return if (isLinkView) return
view.hideLoading() view.hideLoading()
...@@ -27,7 +30,9 @@ class WatchRecordPresenter : BasePresenter<WatchRecordView>() { ...@@ -27,7 +30,9 @@ class WatchRecordPresenter : BasePresenter<WatchRecordView>() {
val message = baseResponse.message val message = baseResponse.message
when (code) { when (code) {
200 -> view.getDotHistorySuc(baseResponse.data) 200 -> {
view.getUseDotHistorySuc(baseResponse.data.list)
}
else -> { else -> {
view.getDotHistoryFail() view.getDotHistoryFail()
view.showToast(message) view.showToast(message)
...@@ -47,15 +52,18 @@ class WatchRecordPresenter : BasePresenter<WatchRecordView>() { ...@@ -47,15 +52,18 @@ class WatchRecordPresenter : BasePresenter<WatchRecordView>() {
} }
fun getUseDotHistory() { fun getUseDotHistory(page: Int, size: Int) {
val vo = HashMap<String, Any>()
vo["page"] = page
vo["size"] = size
AppHttpManager.getInstance(loanApplication) AppHttpManager.getInstance(loanApplication)
.call(loanService.sub(), object : BaseSubscriber<BaseResponse<BannerList>>() { .call(loanService.sub(vo), object : BaseSubscriber<BaseResponse<DotListBean>>() {
override fun onCompleted() { override fun onCompleted() {
if (isLinkView) return if (isLinkView) return
view.hideLoading() view.hideLoading()
} }
override fun onNext(baseResponse: BaseResponse<BannerList>) { override fun onNext(baseResponse: BaseResponse<DotListBean>) {
if (isLinkView) return if (isLinkView) return
view.hideLoading() view.hideLoading()
...@@ -63,7 +71,9 @@ class WatchRecordPresenter : BasePresenter<WatchRecordView>() { ...@@ -63,7 +71,9 @@ class WatchRecordPresenter : BasePresenter<WatchRecordView>() {
val message = baseResponse.message val message = baseResponse.message
when (code) { when (code) {
// 200 -> view.getUseDotHistoryFail(baseResponse.data) 200 -> {
view.getUseDotHistorySuc(baseResponse.data.list)
}
else -> { else -> {
view.getUseDotHistoryFail() view.getUseDotHistoryFail()
view.showToast(message) view.showToast(message)
......
...@@ -2,7 +2,7 @@ package com.duben.heliapp.mvp.views ...@@ -2,7 +2,7 @@ package com.duben.heliapp.mvp.views
import com.duben.heliapp.mvp.model.IndexList import com.duben.heliapp.mvp.model.IndexList
import com.duben.heliapp.mvp.model.NineShowBean import com.duben.heliapp.mvp.model.NineShowBean
import com.google.gson.JsonObject
interface VideoView : BaseView { interface VideoView : BaseView {
fun getIndexListSuc(indexList: IndexList) fun getIndexListSuc(indexList: IndexList)
...@@ -14,7 +14,7 @@ interface VideoView : BaseView { ...@@ -14,7 +14,7 @@ interface VideoView : BaseView {
fun cancelCollectSuc() fun cancelCollectSuc()
fun cancelCollectFail() fun cancelCollectFail()
fun unlockSuc(indexList: IndexList) fun unlockSuc(data: JsonObject)
fun unlockFail() fun unlockFail()
fun showTurnSuc(data: NineShowBean) fun showTurnSuc(data: NineShowBean)
......
package com.duben.heliapp.mvp.views package com.duben.heliapp.mvp.views
import com.duben.heliapp.mvp.model.BannerList import com.duben.heliapp.mvp.model.BannerList
import com.duben.heliapp.mvp.model.DotBean
interface WatchRecordView : BaseView { interface WatchRecordView : BaseView {
fun getDotHistorySuc(historyBean: BannerList) fun getDotHistorySuc(list: List<DotBean>)
fun getDotHistoryFail() fun getDotHistoryFail()
fun getUseDotHistorySuc(historyBean: BannerList) fun getUseDotHistorySuc(list: List<DotBean>)
fun getUseDotHistoryFail() fun getUseDotHistoryFail()
fun getHistorySuc(historyBean: BannerList) fun getHistorySuc(historyBean: BannerList)
......
...@@ -3,6 +3,7 @@ package com.duben.heliapp.net; ...@@ -3,6 +3,7 @@ package com.duben.heliapp.net;
import android.content.Context; import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import com.duben.heliapp.mvp.model.DotListBean;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.duben.heliapp.BuildConfig; import com.duben.heliapp.BuildConfig;
import com.duben.heliapp.mvp.model.BannerList; import com.duben.heliapp.mvp.model.BannerList;
...@@ -154,8 +155,8 @@ public interface LoanService { ...@@ -154,8 +155,8 @@ public interface LoanService {
* *
* @return * @return
*/ */
@POST("vedio/unlock") @POST("vedioV1/unlock")
Observable<BaseResponse<IndexList>> unlock(@Body Map<String, Object> vo); Observable<BaseResponse<JsonObject>> unlock(@Body Map<String, Object> vo);
/** /**
* 首页分类 * 首页分类
...@@ -203,7 +204,7 @@ public interface LoanService { ...@@ -203,7 +204,7 @@ public interface LoanService {
* *
* @return * @return
*/ */
@POST("vedio/getIndexList") @POST("vedioV1/getIndexList")
Observable<BaseResponse<IndexList>> getIndexList(@Body Map<String, Object> vo); Observable<BaseResponse<IndexList>> getIndexList(@Body Map<String, Object> vo);
/** /**
...@@ -267,21 +268,21 @@ public interface LoanService { ...@@ -267,21 +268,21 @@ public interface LoanService {
* *
* @return * @return
*/ */
@POST("vedio/assetsRecords/add") @POST("vedioV1/assetsRecords/add")
Observable<BaseResponse<BannerList>> add(); Observable<BaseResponse<DotListBean>> add(@Body Map<String, Object> vo);
/** /**
* 消费记录 * 消费记录
* *
* @return * @return
*/ */
@POST("vedio/assetsRecords/sub") @POST("vedioV1/assetsRecords/sub")
Observable<BaseResponse<BannerList>> sub(); Observable<BaseResponse<DotListBean>> sub(@Body Map<String, Object> vo);
/** /**
* 提交视频信息 * 提交视频信息
*/ */
@POST("vedio/reportIndex") @POST("vedioV1/reportIndex")
Observable<BaseResponse<Object>> reportIndex(@Body Map<String, Object> vo); Observable<BaseResponse<Object>> reportIndex(@Body Map<String, Object> vo);
/** /**
......
...@@ -31,6 +31,8 @@ class DotRecordActivity : BaseActivity(), WatchRecordView { ...@@ -31,6 +31,8 @@ class DotRecordActivity : BaseActivity(), WatchRecordView {
private var dotRecordAdapter: DotRecordAdapter? = null private var dotRecordAdapter: DotRecordAdapter? = null
private var datas = mutableListOf<DotBean>() private var datas = mutableListOf<DotBean>()
private var mIsUseDot = false private var mIsUseDot = false
private var page = 1
private var size = 10
override fun getBundleExtras(extras: Bundle?) { override fun getBundleExtras(extras: Bundle?) {
super.getBundleExtras(extras) super.getBundleExtras(extras)
...@@ -48,10 +50,10 @@ class DotRecordActivity : BaseActivity(), WatchRecordView { ...@@ -48,10 +50,10 @@ class DotRecordActivity : BaseActivity(), WatchRecordView {
if (mIsUseDot) { if (mIsUseDot) {
tv_title.text = "消费记录" tv_title.text = "消费记录"
watchRecordPresenter.getUseDotHistory() watchRecordPresenter.getUseDotHistory(page, size)
} else { } else {
tv_title.text = "看点记录" tv_title.text = "看点记录"
watchRecordPresenter.getDotHistory() watchRecordPresenter.getDotHistory(page, size)
} }
dotRecordAdapter = DotRecordAdapter(mIsUseDot) dotRecordAdapter = DotRecordAdapter(mIsUseDot)
...@@ -61,6 +63,16 @@ class DotRecordActivity : BaseActivity(), WatchRecordView { ...@@ -61,6 +63,16 @@ class DotRecordActivity : BaseActivity(), WatchRecordView {
rv_watch_record.layoutManager = LinearLayoutManager(this) rv_watch_record.layoutManager = LinearLayoutManager(this)
rv_watch_record.addItemDecoration(StickHeaderDecoration(this)) rv_watch_record.addItemDecoration(StickHeaderDecoration(this))
rv_watch_record.adapter = dotRecordAdapter rv_watch_record.adapter = dotRecordAdapter
dotRecordAdapter?.loadMoreModule?.isEnableLoadMore = true
dotRecordAdapter?.loadMoreModule?.setOnLoadMoreListener {
page++
if (mIsUseDot) {
watchRecordPresenter.getUseDotHistory(page, size)
} else {
watchRecordPresenter.getDotHistory(page, size)
}
}
} }
override fun isApplyKitKatTranslucency() = true override fun isApplyKitKatTranslucency() = true
...@@ -70,14 +82,19 @@ class DotRecordActivity : BaseActivity(), WatchRecordView { ...@@ -70,14 +82,19 @@ class DotRecordActivity : BaseActivity(), WatchRecordView {
watchRecordPresenter.detachView() watchRecordPresenter.detachView()
} }
override fun getDotHistorySuc(historyBean: BannerList) { override fun getDotHistorySuc(list: List<DotBean>) {
datas.clear()
datas.addAll(list)
dotRecordAdapter?.setNewInstance(datas)
} }
override fun getDotHistoryFail() { override fun getDotHistoryFail() {
} }
override fun getUseDotHistorySuc(historyBean: BannerList) { override fun getUseDotHistorySuc(list: List<DotBean>) {
datas.clear()
datas.addAll(list)
dotRecordAdapter?.setNewInstance(datas)
} }
override fun getUseDotHistoryFail() { override fun getUseDotHistoryFail() {
......
...@@ -6,6 +6,7 @@ import androidx.recyclerview.widget.LinearLayoutManager ...@@ -6,6 +6,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import com.duben.heliapp.R import com.duben.heliapp.R
import com.duben.heliapp.manager.LocalVedioManager import com.duben.heliapp.manager.LocalVedioManager
import com.duben.heliapp.mvp.model.BannerList import com.duben.heliapp.mvp.model.BannerList
import com.duben.heliapp.mvp.model.DotBean
import com.duben.heliapp.mvp.model.VedioBean import com.duben.heliapp.mvp.model.VedioBean
import com.duben.heliapp.mvp.presenters.WatchRecordPresenter import com.duben.heliapp.mvp.presenters.WatchRecordPresenter
import com.duben.heliapp.mvp.views.WatchRecordView import com.duben.heliapp.mvp.views.WatchRecordView
...@@ -75,14 +76,16 @@ class WatchRecordActivity : BaseActivity(), WatchRecordView { ...@@ -75,14 +76,16 @@ class WatchRecordActivity : BaseActivity(), WatchRecordView {
watchRecordPresenter.detachView() watchRecordPresenter.detachView()
} }
override fun getDotHistorySuc(historyBean: BannerList) { override fun getDotHistorySuc(list: List<DotBean>) {
} }
override fun getDotHistoryFail() { override fun getDotHistoryFail() {
} }
override fun getUseDotHistorySuc(historyBean: BannerList) { override fun getUseDotHistorySuc(list: List<DotBean>) {
} }
override fun getUseDotHistoryFail() { override fun getUseDotHistoryFail() {
......
...@@ -3,6 +3,7 @@ package com.duben.heliapp.ui.adapter ...@@ -3,6 +3,7 @@ package com.duben.heliapp.ui.adapter
import android.widget.ImageView import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import com.chad.library.adapter.base.BaseQuickAdapter import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.module.LoadMoreModule
import com.chad.library.adapter.base.viewholder.BaseViewHolder import com.chad.library.adapter.base.viewholder.BaseViewHolder
import com.duben.heliapp.R import com.duben.heliapp.R
import com.duben.heliapp.mvp.model.DotBean import com.duben.heliapp.mvp.model.DotBean
...@@ -13,7 +14,7 @@ import com.duben.heliapp.mvp.model.DotBean ...@@ -13,7 +14,7 @@ import com.duben.heliapp.mvp.model.DotBean
* @desc * @desc
*/ */
class DotRecordAdapter(private val isUseDot: Boolean) : class DotRecordAdapter(private val isUseDot: Boolean) :
BaseQuickAdapter<DotBean, BaseViewHolder>(R.layout.item_dot_record) { BaseQuickAdapter<DotBean, BaseViewHolder>(R.layout.item_dot_record), LoadMoreModule {
override fun convert(holder: BaseViewHolder, item: DotBean) { override fun convert(holder: BaseViewHolder, item: DotBean) {
if (isUseDot) { if (isUseDot) {
......
package com.duben.heliapp.ui.fragment package com.duben.heliapp.ui.fragment
import android.annotation.SuppressLint
import android.app.Dialog import android.app.Dialog
import android.os.Bundle import android.os.Bundle
import android.os.Handler import android.os.Handler
...@@ -20,7 +19,6 @@ import com.duben.heliapp.ad.express.ExpressAdCallback ...@@ -20,7 +19,6 @@ import com.duben.heliapp.ad.express.ExpressAdCallback
import com.duben.heliapp.ad.express.MyExpressManager import com.duben.heliapp.ad.express.MyExpressManager
import com.duben.heliapp.common.AppConfig import com.duben.heliapp.common.AppConfig
import com.duben.heliapp.common.Constant import com.duben.heliapp.common.Constant
import com.duben.heliapp.manager.TrackManager
import com.duben.heliapp.manager.UserManager import com.duben.heliapp.manager.UserManager
import com.duben.heliapp.mvp.model.NineListBean import com.duben.heliapp.mvp.model.NineListBean
import com.duben.heliapp.mvp.model.NineShowBean import com.duben.heliapp.mvp.model.NineShowBean
......
...@@ -49,13 +49,13 @@ class RecommendFragment : BaseFragment(), View.OnClickListener { ...@@ -49,13 +49,13 @@ class RecommendFragment : BaseFragment(), View.OnClickListener {
tabsData.add("推荐") tabsData.add("推荐")
fragments.clear() fragments.clear()
if (mCurrentNewFlag) { // if (mCurrentNewFlag) {
fragments.add(FollowVideoFragment.newInstance()) fragments.add(FollowVideoFragment.newInstance())
fragments.add(TxVideoFragment.newInstance()) fragments.add(TxVideoFragment.newInstance())
} else { // } else {
fragments.add(FollowVideoFragment.newInstance()) // fragments.add(FollowVideoFragment.newInstance())
fragments.add(DramaTabFragment()) // fragments.add(DramaTabFragment())
} // }
vpAdapter = RecommendPageAdapter(fragments, this) vpAdapter = RecommendPageAdapter(fragments, this)
vp2_recommend.adapter = vpAdapter vp2_recommend.adapter = vpAdapter
......
...@@ -11,6 +11,7 @@ import com.google.android.material.tabs.TabLayout ...@@ -11,6 +11,7 @@ import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator import com.google.android.material.tabs.TabLayoutMediator
import com.duben.heliapp.R import com.duben.heliapp.R
import com.duben.heliapp.mvp.model.EpisodeBean import com.duben.heliapp.mvp.model.EpisodeBean
import com.duben.heliapp.mvp.model.IndexList
import com.duben.heliapp.mvp.model.VedioBean import com.duben.heliapp.mvp.model.VedioBean
import com.duben.heliapp.ui.adapter.VideoEpisodeAdapter import com.duben.heliapp.ui.adapter.VideoEpisodeAdapter
import com.duben.heliapp.utils.CommonUtils import com.duben.heliapp.utils.CommonUtils
...@@ -21,13 +22,14 @@ import com.duben.heliapp.utils.CommonUtils ...@@ -21,13 +22,14 @@ import com.duben.heliapp.utils.CommonUtils
* @desc * @desc
*/ */
class VideoEpisodeDialog( class VideoEpisodeDialog(
context: Context, val vedioBean: VedioBean?, context: Context,
private val listener: DialogListener var mRealSeeIndex: Int,
val vedioBean: VedioBean,
val dataList: List<IndexList.VedioEpisodeBean>,
listener: DialogListener
) : ) :
Dialog(context, R.style.dialog) { Dialog(context, R.style.dialog) {
private var mRealSeeIndex = 0
private val lp: WindowManager.LayoutParams private val lp: WindowManager.LayoutParams
private val vp2: ViewPager2 private val vp2: ViewPager2
...@@ -62,26 +64,26 @@ class VideoEpisodeDialog( ...@@ -62,26 +64,26 @@ class VideoEpisodeDialog(
ivClose = findViewById(R.id.close_iv) ivClose = findViewById(R.id.close_iv)
ivClose.setOnClickListener(listener) ivClose.setOnClickListener(listener)
findViewById<TextView>(R.id.title_tv).text = vedioBean?.title findViewById<TextView>(R.id.title_tv).text = vedioBean.title
findViewById<TextView>(R.id.label_tv).text = findViewById<TextView>(R.id.label_tv).text =
if (vedioBean?.completeStatus == 0) "已完结" else "更新中" if (vedioBean.completeStatus == 0) "已完结" else "更新中"
initVp() initVp()
} }
private fun initVp() { private fun initVp() {
for (i in dataList.indices) {
for (i in 0 until vedioBean!!.vedioTotal) {
if (i < vedioBean.unlockIndex) {
var playing = false var playing = false
if (vedioBean.seeIndex == i) { if (mRealSeeIndex == i) {
playing = true playing = true
} }
mData.add(EpisodeBean(false, playing, "" + (i + 1))) if (dataList[i].isLock) {
mData.add(EpisodeBean(true, playing, "" + (i + 1)))
} else { } else {
mData.add(EpisodeBean(lock = true, playing = false, title = "" + (i + 1))) mData.add(EpisodeBean(false, playing, "" + (i + 1)))
} }
} }
val subList = CommonUtils.getSubList(30, mData) val subList = CommonUtils.getSubList(30, mData)
adapter = VideoEpisodeAdapter() adapter = VideoEpisodeAdapter()
adapter?.setNewInstance(subList) adapter?.setNewInstance(subList)
...@@ -121,9 +123,6 @@ class VideoEpisodeDialog( ...@@ -121,9 +123,6 @@ class VideoEpisodeDialog(
val view = LayoutInflater.from(context).inflate(R.layout.item_epsiode_tab, null) val view = LayoutInflater.from(context).inflate(R.layout.item_epsiode_tab, null)
val viewText = view.findViewById<TextView>(R.id.item_tv) val viewText = view.findViewById<TextView>(R.id.item_tv)
viewText.text = text viewText.text = text
// if (position == 0) {
// viewText.setTextColor(ContextCompat.getColor(context, R.color.red))
// }
return view return view
} }
...@@ -138,25 +137,6 @@ class VideoEpisodeDialog( ...@@ -138,25 +137,6 @@ class VideoEpisodeDialog(
} }
} }
fun changeLockStatus(unlockIndex: Int) {
for (i in 0 until mData.size) {
mData[i].lock = i > unlockIndex
}
adapter?.notifyDataSetChanged()
}
fun setCurrentIndex(position: Int) {
mRealSeeIndex = position
for (mDatum in mData) {
mDatum.playing = false
}
if (mData.size > position) {
mData[position].playing = true
adapter?.notifyDataSetChanged()
}
}
private var mOnEpisodeClickListener: VideoEpisodeAdapter.OnEpisodeClickListener? = null private var mOnEpisodeClickListener: VideoEpisodeAdapter.OnEpisodeClickListener? = null
fun setOnEpisodeClickListener(onEpisodeClickListener: VideoEpisodeAdapter.OnEpisodeClickListener) { fun setOnEpisodeClickListener(onEpisodeClickListener: VideoEpisodeAdapter.OnEpisodeClickListener) {
......
...@@ -40,6 +40,7 @@ import com.duben.heliapp.utils.SpanUtils ...@@ -40,6 +40,7 @@ import com.duben.heliapp.utils.SpanUtils
import com.duben.heliapp.utils.UIUtils import com.duben.heliapp.utils.UIUtils
import com.duben.library.utils.GlideUtils import com.duben.library.utils.GlideUtils
import com.duben.library.utils.nodoubleclick.AntiShake import com.duben.library.utils.nodoubleclick.AntiShake
import com.google.gson.JsonObject
import kotlinx.android.synthetic.main.drama_activity_api_detail.* import kotlinx.android.synthetic.main.drama_activity_api_detail.*
import kotlinx.android.synthetic.main.drama_activity_api_detail.iv_lucky_gif import kotlinx.android.synthetic.main.drama_activity_api_detail.iv_lucky_gif
import kotlinx.android.synthetic.main.drama_activity_api_detail.ll_lucky import kotlinx.android.synthetic.main.drama_activity_api_detail.ll_lucky
...@@ -558,16 +559,16 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic ...@@ -558,16 +559,16 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
private fun showEpisodeDialog() { private fun showEpisodeDialog() {
if (mVedioBean == null && dialog != null && dialog!!.isShowing) return if (mVedioBean == null && dialog != null && dialog!!.isShowing) return
dialog = VideoEpisodeDialog(this, mVedioBean, object : DialogListener() { // dialog = VideoEpisodeDialog(this, mVedioBean, object : DialogListener() {
override fun onClick(dialog: Dialog?, v: View?) { // override fun onClick(dialog: Dialog?, v: View?) {
super.onClick(dialog, v) // super.onClick(dialog, v)
dialog?.dismiss() // dialog?.dismiss()
} // }
}) // })
dialog?.setOnEpisodeClickListener(this) // dialog?.setOnEpisodeClickListener(this)
val index = if (mCurrentIndex == 0) 0 else mCurrentIndex - 1 // val index = if (mCurrentIndex == 0) 0 else mCurrentIndex - 1
dialog?.setCurrentIndex(index) // dialog?.setCurrentIndex(index)
dialog?.show() // dialog?.show()
} }
override fun onEpisodeClick(position: Int) { override fun onEpisodeClick(position: Int) {
...@@ -609,10 +610,14 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic ...@@ -609,10 +610,14 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
} }
override fun unlockSuc(indexList: IndexList) { override fun unlockSuc(data: JsonObject) {
} }
// override fun unlockSuc(indexList: IndexList) {
// }
override fun unlockFail() { override fun unlockFail() {
} }
......
...@@ -18,6 +18,7 @@ import com.duben.heliapp.mvp.model.NineShowBean ...@@ -18,6 +18,7 @@ import com.duben.heliapp.mvp.model.NineShowBean
import com.duben.heliapp.mvp.presenters.VideoPresenter import com.duben.heliapp.mvp.presenters.VideoPresenter
import com.duben.heliapp.mvp.views.VideoView import com.duben.heliapp.mvp.views.VideoView
import com.duben.heliapp.ui.fragment.base.BaseFragment import com.duben.heliapp.ui.fragment.base.BaseFragment
import com.google.gson.JsonObject
/** /**
* Created by limingqi on 2023/1/17 * Created by limingqi on 2023/1/17
...@@ -383,7 +384,8 @@ class DramaTabFragment : BaseFragment(), VideoView { ...@@ -383,7 +384,8 @@ class DramaTabFragment : BaseFragment(), VideoView {
override fun cancelCollectFail() { override fun cancelCollectFail() {
} }
override fun unlockSuc(indexList: IndexList) { override fun unlockSuc(data: JsonObject) {
} }
override fun unlockFail() { override fun unlockFail() {
......
...@@ -57,11 +57,10 @@ public class SuperShortVideoView extends RelativeLayout { ...@@ -57,11 +57,10 @@ public class SuperShortVideoView extends RelativeLayout {
init(context); init(context);
} }
public void loadMoreData(List<VideoMultiItemEntity> list) { public void notifyData(int currentPosition) {
this.mList.clear(); this.mList.get(currentPosition).setItemType(MULTI_ITEM_1);
this.mList = list; this.mCurrentPosition = currentPosition;
mAdapter.setNewInstance(mList); mAdapter.notifyItemChanged(currentPosition);
onItemClick(mCurrentPosition); onItemClick(mCurrentPosition);
} }
......
...@@ -68,93 +68,97 @@ class TxVideoAdapter : BaseMultiItemQuickAdapter<VideoMultiItemEntity, BaseViewH ...@@ -68,93 +68,97 @@ class TxVideoAdapter : BaseMultiItemQuickAdapter<VideoMultiItemEntity, BaseViewH
} }
private fun initLockHolder(holder: BaseViewHolder) { private fun initLockHolder(holder: BaseViewHolder) {
Glide.with(context).load(vedioBean?.coverImage) holder.itemView.setOnClickListener {
.into(holder.getView(R.id.iv_bg))
val vipBtn = holder.getView<View>(R.id.vip)
if (UserManager.getInstance().newFlag) {
// 匹配
vipBtn.visibility = View.VISIBLE
vipBtn.setOnClickListener {
mOnCustomChildClickListener?.onCustomChildClick(it, holder.adapterPosition) mOnCustomChildClickListener?.onCustomChildClick(it, holder.adapterPosition)
} }
} else {
// 未匹配
vipBtn.visibility = View.GONE
}
val adBtn = holder.getView<View>(R.id.unlock)
vedioBean?.let {
if (it.isRecommendVedio) { // 推荐剧集逻辑
if (holder.adapterPosition < it.unlockIndex) { // 观看激励视频解锁
vipBtn.visibility = View.GONE
adBtn.visibility = View.VISIBLE
holder.getView<TextView>(R.id.tv_title).text = String.format(
"解锁%s·第%d集",
it.title,
holder.adapterPosition + 1
)
holder.getView<TextView>(R.id.tv_info).text = String.format(
"看激励视频解锁1集剧情\n请按照顺序解锁"
)
} else { // 开通会员解锁
adBtn.visibility = View.GONE
vipBtn.visibility = View.VISIBLE
holder.getView<TextView>(R.id.tv_info).visibility = View.GONE
vipBtn.setBackgroundResource(R.mipmap.bg_detail_bottom_vip)
holder.getView<TextView>(R.id.tv_title).text =
String.format("解锁%s·全集", it.title)
}
} else {
adBtn.visibility = View.VISIBLE
holder.getView<TextView>(R.id.tv_title).text = String.format(
"解锁%s·第%d-%d集",
it.title,
it.unlockIndex + 1,
it.unlockIndex + it.adGiveVedioNum
)
holder.getView<TextView>(R.id.tv_info).text = String.format(
"看激励视频解锁%d集剧情\n请按照顺序解锁",
it.adGiveVedioNum
)
}
holder.getView<TextView>(R.id.unlock).text = String.format("查看激励视频")
holder.getView<View>(R.id.unlock).setOnClickListener { it2 ->
mOnCustomChildClickListener?.onCustomChildClick(it2, holder.adapterPosition)
}
}
ExpressManager.instance.getAdView(
object : ExpressAdCallback {
override fun loadSuccess(adView: FrameLayout?) {
adView?.let {
UIUtils.removeFromParent(it)
val fmAd = holder.getView<FrameLayout>(R.id.fl_ad)
fmAd.removeAllViews()
fmAd.addView(it)
}
ExpressManager.instance.preLoadAd()
}
override fun renderSuccess(adView: FrameLayout?): Boolean { Glide.with(context).load(vedioBean?.coverImage)
adView?.let { .into(holder.getView(R.id.iv_bg))
UIUtils.removeFromParent(it) // val vipBtn = holder.getView<View>(R.id.vip)
val fmAd = holder.getView<FrameLayout>(R.id.fl_ad) // if (UserManager.getInstance().newFlag) {
fmAd.removeAllViews() // // 匹配
fmAd.addView(it) // vipBtn.visibility = View.VISIBLE
} // vipBtn.setOnClickListener {
// mOnCustomChildClickListener?.onCustomChildClick(it, holder.adapterPosition)
ExpressManager.instance.preLoadAd() // }
return false // } else {
} // // 未匹配
// vipBtn.visibility = View.GONE
override fun loadFail() { // }
} //
}) // val adBtn = holder.getView<View>(R.id.unlock)
// vedioBean?.let {
// if (it.isRecommendVedio) { // 推荐剧集逻辑
// if (holder.adapterPosition < it.unlockIndex) { // 观看激励视频解锁
//
// vipBtn.visibility = View.GONE
// adBtn.visibility = View.VISIBLE
// holder.getView<TextView>(R.id.tv_title).text = String.format(
// "解锁%s·第%d集",
// it.title,
// holder.adapterPosition + 1
// )
// holder.getView<TextView>(R.id.tv_info).text = String.format(
// "看激励视频解锁1集剧情\n请按照顺序解锁"
// )
// } else { // 开通会员解锁
// adBtn.visibility = View.GONE
// vipBtn.visibility = View.VISIBLE
//
// holder.getView<TextView>(R.id.tv_info).visibility = View.GONE
// vipBtn.setBackgroundResource(R.mipmap.bg_detail_bottom_vip)
// holder.getView<TextView>(R.id.tv_title).text =
// String.format("解锁%s·全集", it.title)
// }
//
// } else {
// adBtn.visibility = View.VISIBLE
//
// holder.getView<TextView>(R.id.tv_title).text = String.format(
// "解锁%s·第%d-%d集",
// it.title,
// it.unlockIndex + 1,
// it.unlockIndex + it.adGiveVedioNum
// )
// holder.getView<TextView>(R.id.tv_info).text = String.format(
// "看激励视频解锁%d集剧情\n请按照顺序解锁",
// it.adGiveVedioNum
// )
// }
// holder.getView<TextView>(R.id.unlock).text = String.format("查看激励视频")
// holder.getView<View>(R.id.unlock).setOnClickListener { it2 ->
// mOnCustomChildClickListener?.onCustomChildClick(it2, holder.adapterPosition)
// }
// }
// ExpressManager.instance.getAdView(
// object : ExpressAdCallback {
// override fun loadSuccess(adView: FrameLayout?) {
// adView?.let {
// UIUtils.removeFromParent(it)
// val fmAd = holder.getView<FrameLayout>(R.id.fl_ad)
// fmAd.removeAllViews()
// fmAd.addView(it)
// }
//
// ExpressManager.instance.preLoadAd()
// }
//
// override fun renderSuccess(adView: FrameLayout?): Boolean {
// adView?.let {
// UIUtils.removeFromParent(it)
// val fmAd = holder.getView<FrameLayout>(R.id.fl_ad)
// fmAd.removeAllViews()
// fmAd.addView(it)
// }
//
// ExpressManager.instance.preLoadAd()
// return false
// }
//
// override fun loadFail() {
// }
// })
} }
private fun initVideoHolder(holder: BaseViewHolder, item: IndexList.VedioEpisodeBean?) { private fun initVideoHolder(holder: BaseViewHolder, item: IndexList.VedioEpisodeBean?) {
......
...@@ -26,6 +26,7 @@ import com.duben.heliapp.utils.SpanUtils ...@@ -26,6 +26,7 @@ import com.duben.heliapp.utils.SpanUtils
import com.duben.heliapp.video.tx.VideoModel import com.duben.heliapp.video.tx.VideoModel
import com.duben.library.utils.GlideUtils import com.duben.library.utils.GlideUtils
import com.duben.library.utils.nodoubleclick.AntiShake import com.duben.library.utils.nodoubleclick.AntiShake
import com.google.gson.JsonObject
import kotlinx.android.synthetic.main.activity_new_tx_video.* import kotlinx.android.synthetic.main.activity_new_tx_video.*
/** /**
...@@ -188,7 +189,7 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView, ...@@ -188,7 +189,7 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
override fun cancelCollectFail() { override fun cancelCollectFail() {
} }
override fun unlockSuc(indexList: IndexList) { override fun unlockSuc(data: JsonObject) {
} }
override fun unlockFail() { override fun unlockFail() {
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
...@@ -160,7 +159,7 @@ ...@@ -160,7 +159,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginBottom="20dp" android:layout_marginBottom="20dp"
android:text="海量看点狂洒中,好等你来解锁" android:text="海量看点狂洒中,好等你来解锁"
android:textColor="#5B1500" android:textColor="#5B1500"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
......
...@@ -11,10 +11,20 @@ ...@@ -11,10 +11,20 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:scaleType="center" /> android:scaleType="center" />
<ImageView
android:id="@+id/iv_play"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:scaleType="centerCrop"
android:src="@mipmap/player_pause" />
<com.duben.heliapp.ui.widgets.RoundRectLayout <com.duben.heliapp.ui.widgets.RoundRectLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="#99000000"> android:background="#99000000"
android:visibility="gone">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
......
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