Commit 7467ec0e authored by mengcuiguang's avatar mengcuiguang

Merge branch 'dev_new_vedio' of http://gitlab.mints-id.com/android/android_vedio into dev_new_vedio

parents e611b1d6 b3b9e9e7
...@@ -19,6 +19,7 @@ import com.mints.wisdomclean.video.DPHolderManager; ...@@ -19,6 +19,7 @@ import com.mints.wisdomclean.video.DPHolderManager;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.logging.Handler;
/** /**
* 穿山甲广告 * 穿山甲广告
...@@ -46,9 +47,6 @@ public class TTGroMoreAdManagerHolder { ...@@ -46,9 +47,6 @@ public class TTGroMoreAdManagerHolder {
if (!sInit) { if (!sInit) {
GMMediationAdSdk.initialize(context, buildV2Config(context)); GMMediationAdSdk.initialize(context, buildV2Config(context));
sInit = true; sInit = true;
// 初始化短剧SDK
DPHolderManager.INSTANCE.initDpSdk(context);
} }
} }
......
...@@ -4,10 +4,14 @@ import android.app.Activity ...@@ -4,10 +4,14 @@ import android.app.Activity
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.text.TextUtils import android.text.TextUtils
import com.bytedance.sdk.dp.DPDrama
import com.bytedance.sdk.dp.DPSdk
import com.bytedance.sdk.dp.IDPWidgetFactory
import com.mints.library.utils.json.JsonUtil import com.mints.library.utils.json.JsonUtil
import com.mints.wisdomclean.common.Constant import com.mints.wisdomclean.common.Constant
import com.mints.wisdomclean.mvp.model.VedioBean import com.mints.wisdomclean.mvp.model.VedioBean
import com.mints.wisdomclean.utils.AppPreferencesManager import com.mints.wisdomclean.utils.AppPreferencesManager
import com.mints.wisdomclean.utils.ToastUtil
import com.mints.wisdomclean.video.DramaApiDetailActivity import com.mints.wisdomclean.video.DramaApiDetailActivity
import com.mints.wisdomclean.video.VideoActivity import com.mints.wisdomclean.video.VideoActivity
...@@ -79,14 +83,44 @@ object LocalVedioManager { ...@@ -79,14 +83,44 @@ object LocalVedioManager {
* 根据类型跳转对应视频详情页 [自有或穿山甲] * 根据类型跳转对应视频详情页 [自有或穿山甲]
*/ */
fun startVedioDetailActivityForType(activity: Activity, data: VedioBean?) { fun startVedioDetailActivityForType(activity: Activity, data: VedioBean?) {
val bundle = Bundle()
bundle.putString(Constant.VEDIO_BEAN, JsonUtil.toJson(data))
if (data?.createType == 1) { if (data?.createType == 1) {
//自有短剧 //自有短剧
val bundle = Bundle()
bundle.putString(Constant.VEDIO_BEAN, JsonUtil.toJson(data))
readyGo(activity, VideoActivity::class.java, bundle) readyGo(activity, VideoActivity::class.java, bundle)
} else { } else {
//穿山甲短剧 requestDrama(activity, data)
readyGo(activity, DramaApiDetailActivity::class.java, bundle) }
}
// 请求穿山甲数据
private fun requestDrama(activity: Activity, data: VedioBean?) {
if (DPSdk.isStartSuccess() && data != null) {
DPSdk.factory().requestDrama(
arrayListOf(data.vedioId.toLong()), object : IDPWidgetFactory.DramaCallback {
override fun onError(p0: Int, p1: String?) {
ToastUtil.show(activity, "网络错误!")
}
override fun onSuccess(
dataList: MutableList<out DPDrama>?,
info: MutableMap<String, Any>?
) {
dataList?.takeIf { it.isNotEmpty() }?.first()?.let {
DramaApiDetailActivity.outerDrama = it
//穿山甲短剧
val bundle = Bundle()
bundle.putString(Constant.VEDIO_BEAN, JsonUtil.toJson(data))
readyGo(activity, DramaApiDetailActivity::class.java, bundle)
}
}
}
)
} else {
ToastUtil.show(activity, "网络错误!")
} }
} }
......
...@@ -22,6 +22,20 @@ public class VedioBean implements Serializable { ...@@ -22,6 +22,20 @@ public class VedioBean implements Serializable {
private String scriptAuthor; private String scriptAuthor;
private int vedioId;// 视频id,服务器标识 private int vedioId;// 视频id,服务器标识
private String hot;// 播放量 private String hot;// 播放量
private int adGiveVedioNum;// 广告解锁数量
public int getAdGiveVedioNum() {
return adGiveVedioNum;
}
public void setAdGiveVedioNum(int adGiveVedioNum) {
this.adGiveVedioNum = adGiveVedioNum;
}
public void setHot(String hot) {
this.hot = hot;
}
public String getThirdId() { public String getThirdId() {
return thirdId; return thirdId;
} }
......
...@@ -27,6 +27,7 @@ import com.mints.wisdomclean.ui.fragment.MyFragment ...@@ -27,6 +27,7 @@ import com.mints.wisdomclean.ui.fragment.MyFragment
import com.mints.wisdomclean.ui.fragment.RecommendFragment import com.mints.wisdomclean.ui.fragment.RecommendFragment
import com.mints.wisdomclean.ui.widgets.DialogListener import com.mints.wisdomclean.ui.widgets.DialogListener
import com.mints.wisdomclean.ui.widgets.PhoneDialog import com.mints.wisdomclean.ui.widgets.PhoneDialog
import com.mints.wisdomclean.video.DPHolderManager
import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.activity_main.*
/** /**
...@@ -86,6 +87,9 @@ class MainActivity : BaseActivity(), View.OnClickListener { ...@@ -86,6 +87,9 @@ class MainActivity : BaseActivity(), View.OnClickListener {
AdManager.instance.preLoadAd(this) AdManager.instance.preLoadAd(this)
initEditView() initEditView()
// 初始化短剧SDK
DPHolderManager.initDpSdk(context);
// initEasyFloat() // initEasyFloat()
} }
......
...@@ -11,7 +11,7 @@ import com.google.android.material.tabs.TabLayout ...@@ -11,7 +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.mints.wisdomclean.R import com.mints.wisdomclean.R
import com.mints.wisdomclean.mvp.model.EpisodeBean import com.mints.wisdomclean.mvp.model.EpisodeBean
import com.mints.wisdomclean.mvp.model.IndexList import com.mints.wisdomclean.mvp.model.VedioBean
import com.mints.wisdomclean.ui.adapter.VideoEpisodeAdapter import com.mints.wisdomclean.ui.adapter.VideoEpisodeAdapter
import com.mints.wisdomclean.utils.CommonUtils import com.mints.wisdomclean.utils.CommonUtils
...@@ -22,7 +22,7 @@ import com.mints.wisdomclean.utils.CommonUtils ...@@ -22,7 +22,7 @@ import com.mints.wisdomclean.utils.CommonUtils
*/ */
class VideoEpisodeDialog( class VideoEpisodeDialog(
context: Context, context: Context,
val indexList: IndexList?, val vedioBean: VedioBean?,
private val listener: DialogListener private val listener: DialogListener
) : ) :
Dialog(context, R.style.dialog) { Dialog(context, R.style.dialog) {
...@@ -61,22 +61,21 @@ class VideoEpisodeDialog( ...@@ -61,22 +61,21 @@ 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 = indexList?.vedioMsg?.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 (indexList?.vedioMsg?.completeStatus == 0) "已完结" else "未完结" if (vedioBean?.completeStatus == 0) "已完结" else "未完结"
initVp() initVp()
} }
private fun initVp() { private fun initVp() {
for (i in 0 until indexList!!.vedioMsg.vedioTotal) { for (i in 0 until vedioBean!!.vedioTotal) {
if (i < indexList.list.size) { if (i < vedioBean.unlockIndex) {
val index = indexList.list[i]
var playing = false var playing = false
if (indexList.vedioMsg.seeIndex == i) { if (vedioBean.seeIndex == i) {
playing = true playing = true
} }
mData.add(EpisodeBean(index.isLock, playing, "" + (i + 1))) mData.add(EpisodeBean(false, playing, "" + (i + 1)))
} else { } else {
mData.add(EpisodeBean(lock = true, playing = false, title = "" + (i + 1))) mData.add(EpisodeBean(lock = true, playing = false, title = "" + (i + 1)))
} }
......
...@@ -2,23 +2,33 @@ package com.mints.wisdomclean.video ...@@ -2,23 +2,33 @@ package com.mints.wisdomclean.video
import android.app.Dialog import android.app.Dialog
import android.content.Context import android.content.Context
import android.os.Bundle
import android.util.Log import android.util.Log
import android.view.View import android.view.View
import android.widget.Button import android.widget.Button
import android.widget.ImageView import android.widget.ImageView
import android.widget.LinearLayout import android.widget.LinearLayout
import com.airbnb.lottie.LottieAnimationView
import com.airbnb.lottie.LottieComposition
import com.airbnb.lottie.LottieCompositionFactory
import com.airbnb.lottie.LottieDrawable
import com.bytedance.sdk.dp.* import com.bytedance.sdk.dp.*
import com.google.gson.Gson
import com.mints.wisdomclean.MintsApplication import com.mints.wisdomclean.MintsApplication
import com.mints.wisdomclean.R import com.mints.wisdomclean.R
import com.mints.wisdomclean.ad.AdManager import com.mints.wisdomclean.ad.AdManager
import com.mints.wisdomclean.ad.AdStatusListener import com.mints.wisdomclean.ad.AdStatusListener
import com.mints.wisdomclean.common.Constant
import com.mints.wisdomclean.mvp.model.IndexList
import com.mints.wisdomclean.mvp.model.VedioBean
import com.mints.wisdomclean.mvp.presenters.VideoPresenter
import com.mints.wisdomclean.mvp.views.VideoView
import com.mints.wisdomclean.ui.activitys.VipActivity import com.mints.wisdomclean.ui.activitys.VipActivity
import com.mints.wisdomclean.ui.activitys.base.BaseActivity import com.mints.wisdomclean.ui.activitys.base.BaseActivity
import com.mints.wisdomclean.ui.adapter.VideoEpisodeAdapter import com.mints.wisdomclean.ui.adapter.VideoEpisodeAdapter
import com.mints.wisdomclean.ui.widgets.DialogListener import com.mints.wisdomclean.ui.widgets.DialogListener
import com.mints.wisdomclean.ui.widgets.VideoEpisodeDialog import com.mints.wisdomclean.ui.widgets.VideoEpisodeDialog
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.fm_bottom
import org.json.JSONObject import org.json.JSONObject
import java.util.HashMap import java.util.HashMap
...@@ -27,28 +37,21 @@ import java.util.HashMap ...@@ -27,28 +37,21 @@ import java.util.HashMap
* @date 2023/7/6 * @date 2023/7/6
* @desc * @desc
*/ */
class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClickListener { class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClickListener,
VideoView, View.OnClickListener {
companion object { companion object {
const val KEY_DRAMA_UNLOCK_INDEX = "key_drama_unlock_index"
const val KEY_DRAMA_HISTORY = "drama_history" const val KEY_DRAMA_HISTORY = "drama_history"
const val KEY_DRAMA_MODE = "key_drama_mode"
const val KEY_DRAMA_FREE_SET = "key_drama_free_set"
const val KEY_DRAMA_LOCK_SET = "key_drama_lock_set"
const val KEY_DRAMA_INFINITE_SCROLL_ENABLED = "key_drama_infinite_scroll_enabled"
const val KEY_DRAMA_CUSTOM_REPORT_ENABLED = "key_drama_custom_report_enabled"
const val KEY_DRAMA_HIDE_LEFT_TOP_TIPS = "key_drama_hide_left_top_tips"
private const val TAG = "DramaApiDetailActivity" private const val TAG = "DramaApiDetailActivity"
const val IS_FROM_CARD = "is_from_card" const val IS_FROM_CARD = "is_from_card"
const val FROM_GID = "from_gid" const val FROM_GID = "from_gid"
var tipsTopMargin = -1
var outerDrama: DPDrama? = null var outerDrama: DPDrama? = null
} }
private val videoPresenter by lazy { VideoPresenter() }
private var sp = private var sp =
MintsApplication.getContext().getSharedPreferences("pangrowth", Context.MODE_PRIVATE) MintsApplication.getContext().getSharedPreferences("pangrowth", Context.MODE_PRIVATE)
...@@ -76,20 +79,37 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic ...@@ -76,20 +79,37 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
private var hideLeftTopTips = false private var hideLeftTopTips = false
private var hideMore = false private var hideMore = true
private var freeSet = 5 // 仅封装模式生效
private var lockSet = 2 // 仅封装模式生效 private var freeSet = 5
private var lockSet = 2
private var mode = DPDramaDetailConfig.SPECIFIC_DETAIL private var mode = DPDramaDetailConfig.SPECIFIC_DETAIL
private val isFromCard by lazy { intent?.getBooleanExtra(IS_FROM_CARD, false) ?: false } private val isFromCard by lazy { intent?.getBooleanExtra(IS_FROM_CARD, false) ?: false }
private val fromGid by lazy { intent?.getLongExtra(FROM_GID, -1L) } private val fromGid by lazy { intent?.getLongExtra(FROM_GID, -1L) }
private var mVedioBean: VedioBean? = null
override fun getBundleExtras(extras: Bundle?) {
val json = extras?.getString(Constant.VEDIO_BEAN)
mVedioBean = Gson().fromJson(json, VedioBean::class.java)
freeSet = mVedioBean!!.unlockIndex
lockSet = mVedioBean!!.adGiveVedioNum
hideLeftTopTips = true
mode = DPDramaDetailConfig.SPECIFIC_DETAIL
enableInfiniteScroll = false
enableCustomReport = false
super.getBundleExtras(extras)
}
override fun getContentViewLayoutID() = R.layout.drama_activity_api_detail override fun getContentViewLayoutID() = R.layout.drama_activity_api_detail
override fun initViewsAndEvents() { override fun initViewsAndEvents() {
videoPresenter.attachView(this)
fm_bottom.setOnClickListener { fm_bottom.setOnClickListener {
showEpisodeDialog() showEpisodeDialog()
} }
...@@ -104,21 +124,21 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic ...@@ -104,21 +124,21 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
drama = outerDrama drama = outerDrama
drama?.let { drama?.let {
mInitUnlockIndex = intent.getIntExtra(KEY_DRAMA_UNLOCK_INDEX, 1) it.index = mVedioBean!!.seeIndex
mInitUnlockIndex = mVedioBean!!.unlockIndex
mUnlockIndexMap[it.id] = mInitUnlockIndex mUnlockIndexMap[it.id] = mInitUnlockIndex
tv_info.text = String.format("《%s》共%d集", it.title, it.total) title_tv.text = it.title
episode_tv.text = String.format("共%d集 已完结", it.total)
info_tv.text = String.format("第%d集", it.index + 1)
unlock.text = String.format("看广告解锁%d集", lockSet)
if (mVedioBean!!.collect == 0) {
zan_iv.setImageResource(R.mipmap.home_collect_img_0)
} else {
zan_iv.setImageResource(R.mipmap.home_collect_img_1)
}
zan_num_tv.text = mVedioBean!!.hot
} }
ll_collect.setOnClickListener(this)
enableInfiniteScroll =
intent.getBooleanExtra(KEY_DRAMA_INFINITE_SCROLL_ENABLED, true)
enableCustomReport =
intent.getBooleanExtra(KEY_DRAMA_CUSTOM_REPORT_ENABLED, false)
mode = intent.getStringExtra(KEY_DRAMA_MODE)
?: DPDramaDetailConfig.SPECIFIC_DETAIL
hideLeftTopTips =
intent.getBooleanExtra(KEY_DRAMA_HIDE_LEFT_TOP_TIPS, false)
freeSet = intent.getIntExtra(KEY_DRAMA_FREE_SET, -1)
lockSet = intent.getIntExtra(KEY_DRAMA_LOCK_SET, -1)
if (DPSdk.isStartSuccess()) { if (DPSdk.isStartSuccess()) {
init() init()
...@@ -156,7 +176,6 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic ...@@ -156,7 +176,6 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
DPDramaDetailConfig.obtain(mode) DPDramaDetailConfig.obtain(mode)
.bottomOffset(20) .bottomOffset(20)
.infiniteScrollEnabled(enableInfiniteScroll) .infiniteScrollEnabled(enableInfiniteScroll)
.scriptTipsTopMargin(tipsTopMargin)
.hideLeftTopTips(hideLeftTopTips, null) .hideLeftTopTips(hideLeftTopTips, null)
.showCellularToast(true) .showCellularToast(true)
.hideMore(hideMore) .hideMore(hideMore)
...@@ -249,7 +268,11 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic ...@@ -249,7 +268,11 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
override fun onDPPageChange(position: Int, map: MutableMap<String, Any>?) { override fun onDPPageChange(position: Int, map: MutableMap<String, Any>?) {
super.onDPPageChange(position, map) super.onDPPageChange(position, map)
Log.d(TAG, "onDPPageChange:" + map?.toString()) Log.d(TAG, "onDPPageChange:" + map?.toString())
info_tv.text = String.format("第%d集", position + 1)
dialog?.setCurrentIndex(position) dialog?.setCurrentIndex(position)
if (mUnlockIndexMap[drama!!.id]!! > position) {
blockView?.visibility = View.GONE
}
} }
override fun onDPVideoPlay(map: MutableMap<String, Any>?) { override fun onDPVideoPlay(map: MutableMap<String, Any>?) {
...@@ -337,7 +360,12 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic ...@@ -337,7 +360,12 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
override fun adFail() { override fun adFail() {
} }
override fun adClose(vo : HashMap<String, Any>?) { override fun adClose(vo: HashMap<String, Any>?) {
vo?.let {
it["vedioId"] = "" + mVedioBean!!.vedioId
videoPresenter.unlock(it)
}
val hasUnlockList: MutableList<Int> = val hasUnlockList: MutableList<Int> =
mHasUnlockIndexMap[drama.id] ?: mutableListOf() mHasUnlockIndexMap[drama.id] ?: mutableListOf()
hasUnlockList.add(widget.currentDramaIndex) hasUnlockList.add(widget.currentDramaIndex)
...@@ -359,7 +387,7 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic ...@@ -359,7 +387,7 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
Log.d(TAG, "onDramaSwitch:" + map?.toString()) Log.d(TAG, "onDramaSwitch:" + map?.toString())
val title = map?.get("title") as? String? val title = map?.get("title") as? String?
val total = map?.get("total") as? Int? val total = map?.get("total") as? Int?
tv_info.text = String.format("《%s》共%d集", title, total) episode_tv.text = String.format("共%d集 已完结", total)
} }
override fun onDramaGalleryClick(map: MutableMap<String, Any>?) { override fun onDramaGalleryClick(map: MutableMap<String, Any>?) {
...@@ -394,27 +422,100 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic ...@@ -394,27 +422,100 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
private var dialog: VideoEpisodeDialog? = null private var dialog: VideoEpisodeDialog? = null
private fun showEpisodeDialog() { private fun showEpisodeDialog() {
if (mVedioBean == null) return
if (dialog != null && !dialog!!.isShowing) { if (dialog != null && !dialog!!.isShowing) {
dialog!!.setCurrentIndex(lastIndex) dialog!!.setCurrentIndex(lastIndex - 1)
dialog!!.show() dialog!!.show()
} else { } else {
dialog = VideoEpisodeDialog(this,null, 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)
dialog!!.setCurrentIndex(lastIndex) dialog!!.setCurrentIndex(lastIndex - 1)
dialog?.show() dialog?.show()
} }
} }
override fun onEpisodeClick(position: Int) { override fun onEpisodeClick(position: Int) {
dialog?.dismiss()
if (position > mInitUnlockIndex) return
dpWidget?.let { widget -> dpWidget?.let { widget ->
widget.currentDramaIndex = position + 1 widget.currentDramaIndex = position + 1
} }
dialog?.dismiss() }
override fun getIndexListSuc(indexList: IndexList) {
}
override fun getIndexListFail() {
}
override fun collectSuc() {
mVedioBean!!.collect = 1
playCollectAnim(zan_iv)
}
override fun collectFail() {
}
override fun cancelCollectSuc() {
mVedioBean!!.collect = 0
playCancelCollectAnim(zan_iv)
}
override fun cancelCollectFail() {
}
override fun unlockSuc(indexList: IndexList) {
}
override fun unlockFail() {
}
private fun playCollectAnim(view: LottieAnimationView) {
val lottieDrawable = LottieDrawable()
LottieCompositionFactory.fromAsset(context, "home_collect.json")
.addListener { result: LottieComposition? ->
lottieDrawable.setImagesAssetsFolder("images/")
lottieDrawable.composition = result
lottieDrawable.loop(false)
lottieDrawable.playAnimation()
}
view.setImageDrawable(lottieDrawable)
}
private fun playCancelCollectAnim(view: LottieAnimationView) {
val lottieDrawable = LottieDrawable()
LottieCompositionFactory.fromAsset(context, "home_cancel_collect.json")
.addListener { result: LottieComposition? ->
lottieDrawable.setImagesAssetsFolder("images/")
lottieDrawable.composition = result
lottieDrawable.loop(false)
lottieDrawable.playAnimation()
}
view.setImageDrawable(lottieDrawable)
}
override fun onClick(v: View?) {
when (v?.id) {
R.id.ll_collect -> {
if (mVedioBean!!.collect == 0) {
videoPresenter.collect("" + mVedioBean!!.vedioId)
} else {
videoPresenter.cancelCollect("" + mVedioBean!!.vedioId)
}
}
else -> {}
}
} }
} }
\ No newline at end of file
...@@ -13,7 +13,6 @@ import com.bytedance.sdk.dp.IDPDrawListener ...@@ -13,7 +13,6 @@ import com.bytedance.sdk.dp.IDPDrawListener
import com.bytedance.sdk.dp.IDPWidget import com.bytedance.sdk.dp.IDPWidget
import com.mints.wisdomclean.R import com.mints.wisdomclean.R
import com.mints.wisdomclean.ui.fragment.base.BaseFragment import com.mints.wisdomclean.ui.fragment.base.BaseFragment
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_UNLOCK_INDEX
/** /**
* Created by limingqi on 2023/5/10 * Created by limingqi on 2023/5/10
...@@ -93,7 +92,6 @@ class DrawDramaFragment : BaseFragment() { ...@@ -93,7 +92,6 @@ class DrawDramaFragment : BaseFragment() {
val intent = Intent(context, DramaApiDetailActivity::class.java) val intent = Intent(context, DramaApiDetailActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
DramaApiDetailActivity.outerDrama = drama DramaApiDetailActivity.outerDrama = drama
intent.putExtra(KEY_DRAMA_UNLOCK_INDEX, 100)
context.startActivity(intent) context.startActivity(intent)
} }
.freeSet(FREE_SET) .freeSet(FREE_SET)
......
...@@ -203,13 +203,12 @@ class VideoActivity : BaseActivity(), View.OnClickListener, VideoView, ...@@ -203,13 +203,12 @@ class VideoActivity : BaseActivity(), View.OnClickListener, VideoView,
dialog?.setCurrentIndex(mCurrentPosition) dialog?.setCurrentIndex(mCurrentPosition)
dialog!!.show() dialog!!.show()
} else { } else {
dialog = VideoEpisodeDialog(this, dialog = VideoEpisodeDialog(this, mVedioBean, object : DialogListener() {
indexBean!!, 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?.setCurrentIndex(mCurrentPosition) dialog?.setCurrentIndex(mCurrentPosition)
dialog?.setOnEpisodeClickListener(this) dialog?.setOnEpisodeClickListener(this)
dialog?.show() dialog?.show()
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:background="#77090909">
<FrameLayout <FrameLayout
android:id="@+id/fl_container" android:id="@+id/fl_container"
...@@ -9,6 +11,76 @@ ...@@ -9,6 +11,76 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginBottom="50dp" /> android:layout_marginBottom="50dp" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/ll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginBottom="100dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent">
<TextView
android:id="@+id/title_tv"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:ellipsize="end"
android:gravity="center"
android:maxEms="9"
android:maxLines="1"
android:text="-"
android:textColor="#fff"
android:textSize="16sp" />
<TextView
android:id="@+id/info_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxEms="14"
android:maxLines="3"
android:text="-"
android:textColor="#fff"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_collect"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="15dp"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@id/ll"
app:layout_constraintRight_toRightOf="parent">
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/zan_iv"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_marginTop="10dp"
android:src="@mipmap/home_collect_img_0" />
<TextView
android:id="@+id/zan_num_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="-"
android:textColor="#fff"
android:textSize="14sp" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<FrameLayout <FrameLayout
android:id="@+id/fm_bottom" android:id="@+id/fm_bottom"
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -51,22 +123,60 @@ ...@@ -51,22 +123,60 @@
</FrameLayout> </FrameLayout>
<LinearLayout <FrameLayout
android:id="@+id/block_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:layout_marginBottom="50dp"
android:background="#99000000">
<ImageView
android:id="@+id/iv_bg"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<TextView <LinearLayout
android:id="@+id/tv_info" android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="试看已结束"
android:textColor="@color/white"
android:textSize="16sp" />
<Button
android:id="@+id/unlock"
android:layout_width="280dp"
android:layout_height="40dp"
android:layout_marginBottom="10dp"
android:background="@drawable/shape_red"
android:text="看广告解锁1集"
android:textColor="@color/white" />
<Button
android:id="@+id/vip"
android:layout_width="280dp"
android:layout_height="40dp"
android:background="@drawable/shape_green"
android:text="开通会员"
android:textColor="@color/white" />
</LinearLayout>
<ImageView
android:id="@+id/leave"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_marginTop="20dp"
android:layout_marginTop="10dp" android:padding="10dp"
android:textColor="#FFFFFFFF" android:src="@mipmap/ic_arrow_white" />
android:textSize="16sp" />
</LinearLayout> </FrameLayout>
<include layout="@layout/item_block_view" />
</FrameLayout> </FrameLayout>
\ 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