Commit 3e287e99 authored by jyx's avatar jyx

推荐剧集页添加大转盘,添加看激励视频解锁

parent 05b7805f
...@@ -190,9 +190,10 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR ...@@ -190,9 +190,10 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR
topAdapter?.setOnItemClickListener(object : TopAdapter.OnItemClickListener { topAdapter?.setOnItemClickListener(object : TopAdapter.OnItemClickListener {
override fun onItemClick(position: Int) { override fun onItemClick(position: Int) {
if (topList.size > 0) { if (topList.size > 0) {
topList[position].createType = 3
LocalVedioManager.startVedioDetailActivityForType( LocalVedioManager.startVedioDetailActivityForType(
requireActivity(), requireActivity(),
topList.get(position) topList[position]
) )
} }
} }
...@@ -346,7 +347,7 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR ...@@ -346,7 +347,7 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR
return return
} else { } else {
ll_lucky.visibility = View.VISIBLE ll_lucky.visibility = View.VISIBLE
context?.let { GlideUtils.loadRoundImageViewGif(it,R.drawable.ic_nine,iv_lucky_gif) } context?.let { GlideUtils.loadRoundImageViewGif(it, R.drawable.ic_nine, iv_lucky_gif) }
} }
val complete = data.complete val complete = data.complete
......
...@@ -5,6 +5,9 @@ import android.os.Bundle ...@@ -5,6 +5,9 @@ import android.os.Bundle
import android.view.View import android.view.View
import com.google.gson.Gson import com.google.gson.Gson
import com.mints.helivideo.R import com.mints.helivideo.R
import com.mints.helivideo.ad.AdManager
import com.mints.helivideo.ad.AdStatusListener
import com.mints.helivideo.ad.NoPreAdManager
import com.mints.helivideo.ad.express.ExpressManager import com.mints.helivideo.ad.express.ExpressManager
import com.mints.helivideo.common.Constant import com.mints.helivideo.common.Constant
import com.mints.helivideo.manager.LocalVedioManager import com.mints.helivideo.manager.LocalVedioManager
...@@ -18,6 +21,8 @@ import com.mints.helivideo.ui.activitys.base.BaseActivity ...@@ -18,6 +21,8 @@ import com.mints.helivideo.ui.activitys.base.BaseActivity
import com.mints.helivideo.ui.adapter.VideoEpisodeAdapter import com.mints.helivideo.ui.adapter.VideoEpisodeAdapter
import com.mints.helivideo.ui.widgets.DialogListener import com.mints.helivideo.ui.widgets.DialogListener
import com.mints.helivideo.ui.widgets.VideoEpisodeDialog import com.mints.helivideo.ui.widgets.VideoEpisodeDialog
import com.mints.helivideo.utils.AppPreferencesManager
import com.mints.helivideo.utils.SpanUtils
import com.mints.helivideo.video.tx.adapter.TxVideoAdapter import com.mints.helivideo.video.tx.adapter.TxVideoAdapter
import com.mints.library.utils.nodoubleclick.AntiShake import com.mints.library.utils.nodoubleclick.AntiShake
import kotlinx.android.synthetic.main.activity_new_tx_video.* import kotlinx.android.synthetic.main.activity_new_tx_video.*
...@@ -30,7 +35,9 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView, ...@@ -30,7 +35,9 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
private var mVipFlag = UserManager.getInstance().vipFlag private var mVipFlag = UserManager.getInstance().vipFlag
private var videos = ArrayList<VedioEpisodeBean>() private var mShowData = arrayListOf<VedioEpisodeBean>()
private var mAllData = arrayListOf<VedioEpisodeBean>()
private var dialog: VideoEpisodeDialog? = null private var dialog: VideoEpisodeDialog? = null
...@@ -72,6 +79,8 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView, ...@@ -72,6 +79,8 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
super.onResume() super.onResume()
super_short_video_view.resume() super_short_video_view.resume()
videoPresenter.showTurn()
if (mVipFlag != UserManager.getInstance().vipFlag && UserManager.getInstance().vipFlag) { if (mVipFlag != UserManager.getInstance().vipFlag && UserManager.getInstance().vipFlag) {
// 重置状态 // 重置状态
isPlayNext = false isPlayNext = false
...@@ -145,7 +154,21 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView, ...@@ -145,7 +154,21 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
private fun showEpisodeDialog() { private fun showEpisodeDialog() {
if (dialog != null && dialog!!.isShowing) return if (dialog != null && dialog!!.isShowing) return
dialog = VideoEpisodeDialog(this, mVedioBean, object : DialogListener() { val vedioBean = VedioBean()
mVedioBean?.let {
if (!UserManager.getInstance().vipFlag) {
vedioBean.unlockIndex = mShowData.size
} else {
vedioBean.unlockIndex = it.unlockIndex
}
vedioBean.title = it.title
vedioBean.completeStatus = it.completeStatus
vedioBean.vedioTotal = it.vedioTotal
vedioBean.seeIndex = it.seeIndex
vedioBean.vedioTotal = it.vedioTotal
}
dialog = VideoEpisodeDialog(this, vedioBean, 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()
...@@ -172,8 +195,12 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView, ...@@ -172,8 +195,12 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
mVedioBean = indexList.vedioMsg mVedioBean = indexList.vedioMsg
mVedioBean?.isRecommendVedio = true mVedioBean?.isRecommendVedio = true
indexBean = indexList indexBean = indexList
videos.clear() mAllData.clear()
videos.addAll(indexList.list) mAllData.addAll(indexList.list)
if (!UserManager.getInstance().vipFlag) {
mShowData.add(mAllData[0])
}
super_short_video_view.loadData(mVedioBean, getAdapterData(), playIndex) super_short_video_view.loadData(mVedioBean, getAdapterData(), playIndex)
} }
...@@ -196,16 +223,31 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView, ...@@ -196,16 +223,31 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
} }
override fun unlockSuc(indexList: IndexList) { override fun unlockSuc(indexList: IndexList) {
videos.addAll(indexList.list)
mVedioBean!!.unlockIndex = videos.size
super_short_video_view.loadMoreData(getAdapterData())
} }
override fun unlockFail() { override fun unlockFail() {
} }
override fun showTurnSuc(data: NineShowBean) { override fun showTurnSuc(data: NineShowBean) {
AppPreferencesManager.get()
.put(Constant.LUCKY_FLAG, data.isShow)
if (data.isShow) {
val complete = data.complete
val need = data.need
if (complete >= need) {
tv_lucky_status.text = SpanUtils()
.append("可领取")
.setForegroundColor(resources.getColor(R.color.apk_uninstalled))
.create()
} else {
tv_lucky_status.text = SpanUtils()
.append(complete.toString())
.setForegroundColor(resources.getColor(R.color.red))
.append("/")
.append(need.toString())
.create()
}
}
} }
override fun onEpisodeClick(position: Int) { override fun onEpisodeClick(position: Int) {
...@@ -223,14 +265,18 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView, ...@@ -223,14 +265,18 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
private fun getAdapterData(): MutableList<VideoMultiItemEntity> { private fun getAdapterData(): MutableList<VideoMultiItemEntity> {
val data = mutableListOf<VideoMultiItemEntity>() val data = mutableListOf<VideoMultiItemEntity>()
if (videos.size > 0) { if (mShowData.size > 0) {
for (video in videos) { for (video in mShowData) {
val item = VideoMultiItemEntity(MULTI_ITEM_1, video, VideoModel(video.vedioUrl)) val item = VideoMultiItemEntity(MULTI_ITEM_1, video, VideoModel(video.vedioUrl))
data.add(item) data.add(item)
} }
if (mVedioBean!!.unlockIndex < mVedioBean!!.vedioTotal) { if (mVedioBean!!.unlockIndex < mVedioBean!!.vedioTotal) {
val item = val item =
VideoMultiItemEntity(MULTI_ITEM_2, videos[0], VideoModel(videos[0].vedioUrl)) VideoMultiItemEntity(
MULTI_ITEM_2,
mShowData[0],
VideoModel(mShowData[0].vedioUrl)
)
data.add(item) data.add(item)
} }
} }
...@@ -247,7 +293,38 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView, ...@@ -247,7 +293,38 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
finish() finish()
} }
R.id.unlock -> { R.id.unlock -> {
// 无看广告解锁 // 看广告解锁
val carrierType = Constant.CARRIERTYPE_TX_VEDIO
AdManager.instance.showAd(this, carrierType,
object : AdStatusListener {
var canFail = false
override fun adSuccess() {
canFail = true
}
override fun adFail() {
if (canFail) return
NoPreAdManager.loadVideoAd(
this@NewTxVideoActivity,
carrierType, object : AdStatusListener {
override fun adFail() {
showToast("广告太火爆了,请稍候再试")
}
override fun adSuccess() {
}
override fun adClose(vo: HashMap<String, Any>?) {
addEpisodeData(position)
}
})
}
override fun adClose(vo: HashMap<String, Any>?) {
addEpisodeData(position)
}
})
} }
R.id.vip -> { R.id.vip -> {
// 开通VIP // 开通VIP
...@@ -262,6 +339,12 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView, ...@@ -262,6 +339,12 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
} }
} }
private fun addEpisodeData(position: Int) {
if (position >= mAllData.size) return
mShowData.add(mAllData[position])
super_short_video_view.loadMoreData(getAdapterData())
}
// 用于点击匹配当前剧集对应的具体下标 // 用于点击匹配当前剧集对应的具体下标
private fun getRealPosition(position: Int): Int { private fun getRealPosition(position: Int): Int {
var readPosition = position var readPosition = position
......
...@@ -30,10 +30,6 @@ import com.mints.helivideo.video.tx.adapter.TxVideoAdapter ...@@ -30,10 +30,6 @@ import com.mints.helivideo.video.tx.adapter.TxVideoAdapter
import com.mints.library.utils.GlideUtils import com.mints.library.utils.GlideUtils
import com.mints.library.utils.nodoubleclick.AntiShake import com.mints.library.utils.nodoubleclick.AntiShake
import kotlinx.android.synthetic.main.activity_tx_video.* import kotlinx.android.synthetic.main.activity_tx_video.*
import kotlinx.android.synthetic.main.activity_tx_video.iv_lucky_gif
import kotlinx.android.synthetic.main.activity_tx_video.ll_lucky
import kotlinx.android.synthetic.main.activity_tx_video.tv_lucky_status
import kotlinx.android.synthetic.main.fragment_main.*
class TxVideoActivity : BaseActivity(), View.OnClickListener, VideoView, class TxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
VideoEpisodeAdapter.OnEpisodeClickListener, TxVideoAdapter.OnCustomChildClickListener { VideoEpisodeAdapter.OnEpisodeClickListener, TxVideoAdapter.OnCustomChildClickListener {
......
...@@ -84,12 +84,29 @@ class TxVideoAdapter : BaseMultiItemQuickAdapter<VideoMultiItemEntity, BaseViewH ...@@ -84,12 +84,29 @@ class TxVideoAdapter : BaseMultiItemQuickAdapter<VideoMultiItemEntity, BaseViewH
val adBtn = holder.getView<View>(R.id.unlock) val adBtn = holder.getView<View>(R.id.unlock)
vedioBean?.let { vedioBean?.let {
if (it.isRecommendVedio) { 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 adBtn.visibility = View.GONE
vipBtn.visibility = View.VISIBLE
holder.getView<TextView>(R.id.tv_info).visibility = View.GONE holder.getView<TextView>(R.id.tv_info).visibility = View.GONE
vipBtn.setBackgroundResource(R.mipmap.bg_detail_bottom_vip) vipBtn.setBackgroundResource(R.mipmap.bg_detail_bottom_vip)
holder.getView<TextView>(R.id.tv_title).text = holder.getView<TextView>(R.id.tv_title).text =
String.format("解锁%s·全集", it.title) String.format("解锁%s·全集", it.title)
}
} else { } else {
adBtn.visibility = View.VISIBLE adBtn.visibility = View.VISIBLE
......
...@@ -59,5 +59,33 @@ ...@@ -59,5 +59,33 @@
</LinearLayout> </LinearLayout>
</FrameLayout> </FrameLayout>
<LinearLayout
android:id="@+id/ll_lucky"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="1dp"
android:visibility="gone"
android:layout_gravity="bottom|right"
android:layout_marginBottom="220dp"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/iv_lucky_gif"
android:layout_width="80dp"
android:layout_height="70dp" />
<TextView
android:id="@+id/tv_lucky_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:background="@drawable/shape_bg_black2"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:text="0/5"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
</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