Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
android_vedio
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
android
android_vedio
Commits
e2f9aea3
Commit
e2f9aea3
authored
Jan 08, 2024
by
mengcuiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
代码优化
parent
7b02cff9
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
305 additions
and
144 deletions
+305
-144
VipActivity.kt
...in/java/com/duben/xixiplaylet/ui/activitys/VipActivity.kt
+2
-0
DramaApiDetailActivity.kt
...com/duben/xixiplaylet/video/csj/DramaApiDetailActivity.kt
+238
-112
TxVideoActivity.kt
...in/java/com/duben/xixiplaylet/video/tx/TxVideoActivity.kt
+1
-1
NewTxVideoActivity.kt
...n/xixiplaylet/video/tx/newrecommend/NewTxVideoActivity.kt
+64
-31
No files found.
video/app/src/main/java/com/duben/xixiplaylet/ui/activitys/VipActivity.kt
View file @
e2f9aea3
...
...
@@ -417,6 +417,7 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener,
//策略场景类调起支付方法开始支付,以及接收回调。
RxPay
.
pay
(
wxPay
,
this
,
wxPayInfoImpl
,
object
:
IPayCallback
{
override
fun
success
()
{
AppConfig
.
showVipAdDialog
=
false
UserManager
.
getInstance
().
vipFlag
=
true
vipPresenter
.
queryVipOrder
(
wxParanBean
.
tid
.
toString
(),
true
)
}
...
...
@@ -454,6 +455,7 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener,
//策略场景类调起支付方法开始支付,以及接收回调。
RxPay
.
pay
(
aliPay
,
this
,
alipayInfoImpl
,
object
:
IPayCallback
{
override
fun
success
()
{
AppConfig
.
showVipAdDialog
=
false
UserManager
.
getInstance
().
vipFlag
=
true
vipPresenter
.
queryVipOrder
(
wxParanBean
.
tid
.
toString
(),
true
)
}
...
...
video/app/src/main/java/com/duben/xixiplaylet/video/csj/DramaApiDetailActivity.kt
View file @
e2f9aea3
...
...
@@ -2,6 +2,8 @@ package com.duben.xixiplaylet.video.csj
import
android.app.Dialog
import
android.os.Bundle
import
android.os.Handler
import
android.os.Looper
import
android.util.Log
import
android.view.View
import
android.widget.Button
...
...
@@ -42,6 +44,7 @@ import com.duben.library.utils.GlideUtils
import
com.duben.library.utils.nodoubleclick.AntiShake
import
com.duben.xixiplaylet.common.AppConfig
import
com.duben.xixiplaylet.mvp.model.VipBean
import
com.duben.xixiplaylet.ui.widgets.DetailAdDialog
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.ll_lucky
...
...
@@ -54,7 +57,7 @@ import kotlinx.android.synthetic.main.fragment_main.*
* @desc
*/
class
DramaApiDetailActivity
:
BaseActivity
(),
VideoEpisodeAdapter
.
OnEpisodeClickListener
,
VideoView
,
View
.
OnClickListener
{
VideoView
,
View
.
OnClickListener
{
companion
object
{
private
const
val
TAG
=
"DramaApiDetailActivity"
...
...
@@ -109,6 +112,10 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
private
var
mVedioBean
:
VedioBean
?
=
null
private
var
mCurrentIndex
=
0
private
var
currentDramaIndex
=
0
private
var
detailAdDialog
:
DetailAdDialog
?
=
null
override
fun
getBundleExtras
(
extras
:
Bundle
?)
{
val
json
=
extras
?.
getString
(
Constant
.
VEDIO_BEAN
)
...
...
@@ -183,7 +190,8 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
unlock
.
visibility
=
View
.
GONE
}
tv_title
.
text
=
if
(
AppConfig
.
firstVipPrice
==
0.0
)
"解锁后续剧集"
else
"${AppConfig.firstVipPrice}元解锁后续剧集"
tv_title
.
text
=
if
(
AppConfig
.
firstVipPrice
==
0.0
)
"解锁后续剧集"
else
"${AppConfig.firstVipPrice}元解锁后续剧集"
if
(
mVedioBean
!!
.
collect
==
0
)
{
...
...
@@ -211,7 +219,7 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
dpWidget
?.
let
{
widget
->
supportFragmentManager
.
beginTransaction
().
replace
(
R
.
id
.
fl_container
,
widget
.
fragment
)
.
commit
()
.
commit
()
leaveBtn
?.
setOnClickListener
{
finish
()
...
...
@@ -220,6 +228,7 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
val
bundle
=
Bundle
()
bundle
.
putString
(
VipActivity
.
VEDIO_ID
,
mVedioBean
!!
.
vedioId
.
toString
())
bundle
.
putString
(
VipActivity
.
THIRD_ID
,
mVedioBean
!!
.
thirdId
)
bundle
.
putBoolean
(
VipActivity
.
IS_DETAIL
,
true
)
readyGo
(
VipActivity
::
class
.
java
,
bundle
)
}
}
...
...
@@ -230,22 +239,22 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
private
fun
initWidget
()
{
drama
?.
let
{
drama
->
dpWidget
=
DPSdk
.
factory
().
createDramaDetail
(
DPWidgetDramaDetailParams
.
obtain
()
.
detailConfig
(
DPDramaDetailConfig
.
obtain
(
mode
)
.
bottomOffset
(
20
)
.
infiniteScrollEnabled
(
enableInfiniteScroll
)
.
hideLeftTopTips
(
hideLeftTopTips
,
null
)
.
showCellularToast
(
true
)
.
hideMore
(
hideMore
)
.
listener
(
dramaListener
)
.
adListener
(
dramaAdListener
)
.
setCustomReport
(
enableCustomReport
)
{
context
,
id
->
// 举报
}
)
.
id
(
drama
.
id
)
.
index
(
drama
.
index
)
DPWidgetDramaDetailParams
.
obtain
()
.
detailConfig
(
DPDramaDetailConfig
.
obtain
(
mode
)
.
bottomOffset
(
20
)
.
infiniteScrollEnabled
(
enableInfiniteScroll
)
.
hideLeftTopTips
(
hideLeftTopTips
,
null
)
.
showCellularToast
(
true
)
.
hideMore
(
hideMore
)
.
listener
(
dramaListener
)
.
adListener
(
dramaAdListener
)
.
setCustomReport
(
enableCustomReport
)
{
context
,
id
->
// 举报
}
)
.
id
(
drama
.
id
)
.
index
(
drama
.
index
)
// .currentDuration(currentDuration)
)
}
...
...
@@ -266,6 +275,14 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
// 重置状态
resetData
()
}
// vip界面返回弹出广告弹窗
if
(
AppConfig
.
showVipAdDialog
&&
!
UserManager
.
getInstance
().
vipFlag
)
{
Handler
(
Looper
.
getMainLooper
()).
postDelayed
({
adDialog
()
AppConfig
.
showVipAdDialog
=
false
},
300
)
}
}
override
fun
onPause
()
{
...
...
@@ -377,18 +394,18 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
}
override
fun
isNeedBlock
(
drama
:
DPDrama
?,
index
:
Int
,
map
:
MutableMap
<
String
,
Any
>?
drama
:
DPDrama
?,
index
:
Int
,
map
:
MutableMap
<
String
,
Any
>?
):
Boolean
{
drama
?:
return
false
Log
.
d
(
TAG
,
"isNeedBlock: index = $index"
)
val
unlockIndex
=
mUnlockIndexMap
[
drama
.
id
]
?:
mInitUnlockIndex
val
hasUnlockList
=
mHasUnlockIndexMap
[
drama
.
id
]
?:
mutableListOf
()
Log
.
d
(
TAG
,
"isNeedBlock: index = $index"
+
" "
+
unlockIndex
+
"s"
+
drama
.
id
+
mHasUnlockIndexMap
+
" --- "
+
(
index
>
unlockIndex
&&
hasUnlockList
.
contains
(
index
).
not
())
TAG
,
"isNeedBlock: index = $index"
+
" "
+
unlockIndex
+
"s"
+
drama
.
id
+
mHasUnlockIndexMap
+
" --- "
+
(
index
>
unlockIndex
&&
hasUnlockList
.
contains
(
index
).
not
())
)
info_tv
.
text
=
String
.
format
(
"第%d集"
,
index
)
...
...
@@ -411,30 +428,31 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
}
override
fun
showAdIfNeeded
(
drama
:
DPDrama
?,
callback
:
Callback
?,
map
:
MutableMap
<
String
,
Any
>?
drama
:
DPDrama
?,
callback
:
Callback
?,
map
:
MutableMap
<
String
,
Any
>?
)
{
super
.
showAdIfNeeded
(
drama
,
callback
,
map
)
drama
?:
return
Log
.
d
(
TAG
,
"showAdIfNeeded:"
+
map
?.
toString
())
blockView
?.
visibility
=
View
.
VISIBLE
unlockCallback
=
callback
currentDramaIndex
=
dpWidget
?.
currentDramaIndex
!!
// 展示广告
if
(!
UserManager
.
getInstance
().
newFlag
)
{
tv_title
.
text
=
String
.
format
(
"解锁%s·第%d-%d集"
,
drama
.
title
,
mInitUnlockIndex
+
1
,
mInitUnlockIndex
+
lockSet
"解锁%s·第%d-%d集"
,
drama
.
title
,
mInitUnlockIndex
+
1
,
mInitUnlockIndex
+
lockSet
)
}
else
{
tv_title
.
text
=
if
(
AppConfig
.
firstVipPrice
==
0.0
)
"解锁后续剧集"
else
"${AppConfig.firstVipPrice}元解锁后续剧集"
tv_title
.
text
=
if
(
AppConfig
.
firstVipPrice
==
0.0
)
"解锁后续剧集"
else
"${AppConfig.firstVipPrice}元解锁后续剧集"
}
...
...
@@ -444,18 +462,18 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
unlockBtn
?.
setOnClickListener
{
val
carrierType
=
Constant
.
CARRIERTYPE_CSJ_VEDIO
AdManager
.
instance
.
showAd
(
this
@DramaApiDetailActivity
,
carrierType
,
object
:
AdStatusListener
{
var
canFail
=
false
override
fun
adSuccess
()
{
canFail
=
true
}
override
fun
adFail
()
{
if
(
canFail
)
return
NoPreAdManager
.
loadVideoAd
(
this
@DramaApiDetailActivity
,
carrierType
,
object
:
AdStatusListener
{
object
:
AdStatusListener
{
var
canFail
=
false
override
fun
adSuccess
()
{
canFail
=
true
}
override
fun
adFail
()
{
if
(
canFail
)
return
NoPreAdManager
.
loadVideoAd
(
this
@DramaApiDetailActivity
,
carrierType
,
object
:
AdStatusListener
{
override
fun
adFail
()
{
showToast
(
"广告太火爆了,请稍候再试"
)
}
...
...
@@ -476,14 +494,14 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
// 更新解锁集数
for
(
i
in
1
until
lockSet
)
{
val
hasUnlockList
:
MutableList
<
Int
>
=
mHasUnlockIndexMap
[
drama
.
id
]
?:
mutableListOf
()
mHasUnlockIndexMap
[
drama
.
id
]
?:
mutableListOf
()
hasUnlockList
.
add
(
widget
.
currentDramaIndex
+
i
)
mHasUnlockIndexMap
[
drama
.
id
]
=
hasUnlockList
}
mInitUnlockIndex
=
mUnlockIndexMap
[
drama
.
id
]
!!
+
lockSet
mUnlockIndexMap
[
drama
.
id
]
=
mUnlockIndexMap
[
drama
.
id
]
!!
+
lockSet
mUnlockIndexMap
[
drama
.
id
]
!!
+
lockSet
mVedioBean
!!
.
unlockIndex
=
mInitUnlockIndex
// 播放当前集
...
...
@@ -495,37 +513,37 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
callback
?.
onDramaRewardArrived
()
// 解锁当前集
}
})
}
override
fun
adClose
(
vo
:
HashMap
<
String
,
Any
>?)
{
vo
?.
let
{
if
(
isThirdId
)
{
it
[
"thirdId"
]
=
""
+
mVedioBean
!!
.
thirdId
}
else
{
it
[
"vedioId"
]
=
""
+
mVedioBean
!!
.
vedioId
}
videoPresenter
.
unlock
(
it
)
}
override
fun
adClose
(
vo
:
HashMap
<
String
,
Any
>?)
{
vo
?.
let
{
if
(
isThirdId
)
{
it
[
"thirdId"
]
=
""
+
mVedioBean
!!
.
thirdId
}
else
{
it
[
"vedioId"
]
=
""
+
mVedioBean
!!
.
vedioId
}
videoPresenter
.
unlock
(
it
)
}
// 更新解锁集数
for
(
i
in
1
until
lockSet
)
{
val
hasUnlockList
:
MutableList
<
Int
>
=
mHasUnlockIndexMap
[
drama
.
id
]
?:
mutableListOf
()
hasUnlockList
.
add
(
widget
.
currentDramaIndex
+
i
)
mHasUnlockIndexMap
[
drama
.
id
]
=
hasUnlockList
}
mInitUnlockIndex
=
mUnlockIndexMap
[
drama
.
id
]
!!
+
lockSet
mUnlockIndexMap
[
drama
.
id
]
=
mUnlockIndexMap
[
drama
.
id
]
!!
+
lockSet
mVedioBean
!!
.
unlockIndex
=
mInitUnlockIndex
blockView
?.
visibility
=
View
.
GONE
// 播放当前集
mVedioBean
!!
.
seeIndex
=
mCurrentIndex
mVedioBean
!!
.
orderTags
=
orderTagsList
LocalVedioManager
.
commitVedio
(
mVedioBean
!!
)
callback
?.
onDramaRewardArrived
()
// 解锁当前集
// 更新解锁集数
for
(
i
in
1
until
lockSet
)
{
val
hasUnlockList
:
MutableList
<
Int
>
=
mHasUnlockIndexMap
[
drama
.
id
]
?:
mutableListOf
()
hasUnlockList
.
add
(
widget
.
currentDramaIndex
+
i
)
mHasUnlockIndexMap
[
drama
.
id
]
=
hasUnlockList
}
})
mInitUnlockIndex
=
mUnlockIndexMap
[
drama
.
id
]
!!
+
lockSet
mUnlockIndexMap
[
drama
.
id
]
=
mUnlockIndexMap
[
drama
.
id
]
!!
+
lockSet
mVedioBean
!!
.
unlockIndex
=
mInitUnlockIndex
blockView
?.
visibility
=
View
.
GONE
// 播放当前集
mVedioBean
!!
.
seeIndex
=
mCurrentIndex
mVedioBean
!!
.
orderTags
=
orderTagsList
LocalVedioManager
.
commitVedio
(
mVedioBean
!!
)
callback
?.
onDramaRewardArrived
()
// 解锁当前集
}
})
}
}
}
...
...
@@ -633,7 +651,7 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
override
fun
showTurnSuc
(
data
:
NineShowBean
)
{
AppPreferencesManager
.
get
()
.
put
(
Constant
.
LUCKY_FLAG
,
data
.
isShow
)
.
put
(
Constant
.
LUCKY_FLAG
,
data
.
isShow
)
isLuckyShow
=
data
.
isShow
if
(
isLuckyShow
)
{
val
complete
=
data
.
complete
...
...
@@ -641,16 +659,16 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
if
(
complete
>=
need
)
{
tv_lucky_status
.
text
=
SpanUtils
()
.
append
(
"可领取"
)
.
setForegroundColor
(
resources
.
getColor
(
R
.
color
.
apk_uninstalled
))
.
create
()
.
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
()
.
append
(
complete
.
toString
())
.
setForegroundColor
(
resources
.
getColor
(
R
.
color
.
red
))
.
append
(
"/"
)
.
append
(
need
.
toString
())
.
create
()
}
// 匹配
...
...
@@ -672,24 +690,24 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
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
()
}
.
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
()
}
.
addListener
{
result
:
LottieComposition
?
->
lottieDrawable
.
setImagesAssetsFolder
(
"images/"
)
lottieDrawable
.
composition
=
result
lottieDrawable
.
loop
(
false
)
lottieDrawable
.
playAnimation
()
}
view
.
setImageDrawable
(
lottieDrawable
)
}
...
...
@@ -722,15 +740,15 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
private
fun
showVipCountDialog
(
position
:
Int
)
{
if
(
position
==
0
||
mVedioBean
!!
.
tipMaxIndex
==
0
||
mVedioBean
!!
.
tipMaxIndex
-
1
<
position
)
return
VipCountDialog
(
this
,
mVedioBean
!!
,
tipList
)
.
setOnDialogDismiss
(
object
:
VipCountDialog
.
OnDialogDismiss
{
override
fun
onDialogDismiss
()
{}
})
.
show
()
.
setOnDialogDismiss
(
object
:
VipCountDialog
.
OnDialogDismiss
{
override
fun
onDialogDismiss
()
{}
})
.
show
()
}
private
fun
localShowLucky
(
position
:
Int
)
{
val
localLucky
=
AppPreferencesManager
.
get
()
.
getBoolean
(
Constant
.
LUCKY_FLAG
,
false
)
.
getBoolean
(
Constant
.
LUCKY_FLAG
,
false
)
if
(
mVedioBean
!=
null
&&
(
isLuckyShow
||
localLucky
))
{
if
(
position
>
mVedioBean
!!
.
unlockIndex
-
1
)
{
// 解锁界面
...
...
@@ -739,7 +757,13 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
// 超过免费剧
if
(
position
>=
mVedioBean
!!
.
freeIndex
)
{
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
)
}
}
else
{
ll_lucky
.
visibility
=
View
.
GONE
}
...
...
@@ -750,20 +774,20 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
private
fun
setCollectImage
(
view
:
LottieAnimationView
)
{
val
lottieDrawable
=
LottieDrawable
()
LottieCompositionFactory
.
fromAsset
(
context
,
"home_collect.json"
)
.
addListener
{
result
:
LottieComposition
?
->
lottieDrawable
.
setImagesAssetsFolder
(
"images/"
)
lottieDrawable
.
composition
=
result
}
.
addListener
{
result
:
LottieComposition
?
->
lottieDrawable
.
setImagesAssetsFolder
(
"images/"
)
lottieDrawable
.
composition
=
result
}
view
.
setImageDrawable
(
lottieDrawable
)
}
private
fun
setCancelCollectImage
(
view
:
LottieAnimationView
)
{
val
lottieDrawable
=
LottieDrawable
()
LottieCompositionFactory
.
fromAsset
(
context
,
"home_cancel_collect.json"
)
.
addListener
{
result
:
LottieComposition
?
->
lottieDrawable
.
setImagesAssetsFolder
(
"images/"
)
lottieDrawable
.
composition
=
result
}
.
addListener
{
result
:
LottieComposition
?
->
lottieDrawable
.
setImagesAssetsFolder
(
"images/"
)
lottieDrawable
.
composition
=
result
}
view
.
setImageDrawable
(
lottieDrawable
)
}
...
...
@@ -837,4 +861,106 @@ class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClic
})
}
private
fun
adDialog
()
{
detailAdDialog
=
DetailAdDialog
(
context
,
object
:
DialogListener
()
{
override
fun
onClick
(
v
:
View
)
{
// if (AntiShake.check(v.id)) return
when
(
v
.
id
)
{
R
.
id
.
iv_detail_ad_next
->
{
val
carrierType
=
Constant
.
CARRIERTYPE_CSJ_VEDIO
AdManager
.
instance
.
showAd
(
this
@DramaApiDetailActivity
,
carrierType
,
object
:
AdStatusListener
{
var
canFail
=
false
override
fun
adSuccess
()
{
canFail
=
true
}
override
fun
adFail
()
{
if
(
canFail
)
return
NoPreAdManager
.
loadVideoAd
(
this
@DramaApiDetailActivity
,
carrierType
,
object
:
AdStatusListener
{
override
fun
adFail
()
{
showToast
(
"广告太火爆了,请稍候再试"
)
}
override
fun
adSuccess
()
{
}
override
fun
adClose
(
vo
:
HashMap
<
String
,
Any
>?)
{
vo
?.
let
{
if
(
isThirdId
)
{
it
[
"thirdId"
]
=
""
+
mVedioBean
!!
.
thirdId
}
else
{
it
[
"vedioId"
]
=
""
+
mVedioBean
!!
.
vedioId
}
videoPresenter
.
unlock
(
it
)
}
// 更新解锁集数
for
(
i
in
1
until
lockSet
)
{
val
hasUnlockList
:
MutableList
<
Int
>
=
mHasUnlockIndexMap
[
drama
?.
id
]
?:
mutableListOf
()
hasUnlockList
.
add
(
currentDramaIndex
+
i
)
mHasUnlockIndexMap
[
drama
!!
.
id
]
=
hasUnlockList
}
mInitUnlockIndex
=
mUnlockIndexMap
[
drama
?.
id
]
!!
+
lockSet
mUnlockIndexMap
[
drama
!!
.
id
]
=
mUnlockIndexMap
[
drama
!!
.
id
]
!!
+
lockSet
mVedioBean
!!
.
unlockIndex
=
mInitUnlockIndex
// 播放当前集
mVedioBean
!!
.
seeIndex
=
mCurrentIndex
mVedioBean
!!
.
orderTags
=
orderTagsList
LocalVedioManager
.
commitVedio
(
mVedioBean
!!
)
blockView
?.
visibility
=
View
.
GONE
unlockCallback
?.
onDramaRewardArrived
()
// 解锁当前集
}
})
}
override
fun
adClose
(
vo
:
HashMap
<
String
,
Any
>?)
{
vo
?.
let
{
if
(
isThirdId
)
{
it
[
"thirdId"
]
=
""
+
mVedioBean
!!
.
thirdId
}
else
{
it
[
"vedioId"
]
=
""
+
mVedioBean
!!
.
vedioId
}
videoPresenter
.
unlock
(
it
)
}
// 更新解锁集数
for
(
i
in
1
until
lockSet
)
{
val
hasUnlockList
:
MutableList
<
Int
>
=
mHasUnlockIndexMap
[
drama
!!
.
id
]
?:
mutableListOf
()
hasUnlockList
.
add
(
currentDramaIndex
+
i
)
mHasUnlockIndexMap
[
drama
!!
.
id
]
=
hasUnlockList
}
mInitUnlockIndex
=
mUnlockIndexMap
[
drama
!!
.
id
]
!!
+
lockSet
mUnlockIndexMap
[
drama
!!
.
id
]
=
mUnlockIndexMap
[
drama
!!
.
id
]
!!
+
lockSet
mVedioBean
!!
.
unlockIndex
=
mInitUnlockIndex
blockView
?.
visibility
=
View
.
GONE
// 播放当前集
mVedioBean
!!
.
seeIndex
=
mCurrentIndex
mVedioBean
!!
.
orderTags
=
orderTagsList
LocalVedioManager
.
commitVedio
(
mVedioBean
!!
)
unlockCallback
?.
onDramaRewardArrived
()
// 解锁当前集
}
})
detailAdDialog
?.
dismiss
()
}
}
}
})
detailAdDialog
!!
.
show
()
}
}
\ No newline at end of file
video/app/src/main/java/com/duben/xixiplaylet/video/tx/TxVideoActivity.kt
View file @
e2f9aea3
...
...
@@ -94,7 +94,7 @@ class TxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
}
// vip界面返回弹出广告弹窗
if
(
AppConfig
.
showVipAdDialog
)
{
if
(
AppConfig
.
showVipAdDialog
&&
!
UserManager
.
getInstance
().
vipFlag
)
{
Handler
(
Looper
.
getMainLooper
()).
postDelayed
({
adDialog
()
AppConfig
.
showVipAdDialog
=
false
...
...
video/app/src/main/java/com/duben/xixiplaylet/video/tx/newrecommend/NewTxVideoActivity.kt
View file @
e2f9aea3
...
...
@@ -2,6 +2,8 @@ package com.duben.xixiplaylet.video.tx.newrecommend
import
android.app.Dialog
import
android.os.Bundle
import
android.os.Handler
import
android.os.Looper
import
android.view.View
import
androidx.core.content.ContextCompat
import
com.google.gson.Gson
...
...
@@ -27,6 +29,7 @@ import com.duben.xixiplaylet.video.tx.VideoModel
import
com.duben.library.utils.GlideUtils
import
com.duben.library.utils.nodoubleclick.AntiShake
import
com.duben.xixiplaylet.common.AppConfig
import
com.duben.xixiplaylet.ui.widgets.DetailAdDialog
import
com.duben.xixiplaylet.ui.widgets.DialogListener
import
com.duben.xixiplaylet.ui.widgets.VideoEpisodeDialog
import
kotlinx.android.synthetic.main.activity_new_tx_video.*
...
...
@@ -42,6 +45,7 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
private
var
mAllData
=
arrayListOf
<
VedioEpisodeBean
>()
private
var
dialog
:
VideoEpisodeDialog
?
=
null
private
var
detailAdDialog
:
DetailAdDialog
?
=
null
private
val
videoPresenter
by
lazy
{
VideoPresenter
()
}
...
...
@@ -81,6 +85,14 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
playIndex
=
new_super_short_video_view
.
currentPosition
mVedioBean
?.
let
{
videoPresenter
.
getIndexList
(
""
+
it
.
vedioId
)
}
}
// vip界面返回弹出广告弹窗
if
(
AppConfig
.
showVipAdDialog
&&
!
UserManager
.
getInstance
().
vipFlag
)
{
Handler
(
Looper
.
getMainLooper
()).
postDelayed
({
adDialog
()
AppConfig
.
showVipAdDialog
=
false
},
300
)
}
}
override
fun
onPause
()
{
...
...
@@ -285,37 +297,7 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
}
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
>?)
{
updateEpisodeData
(
position
,
vo
)
}
})
}
override
fun
adClose
(
vo
:
HashMap
<
String
,
Any
>?)
{
updateEpisodeData
(
position
,
vo
)
}
})
showAd
()
}
R
.
id
.
vip
->
{
// 开通VIP
...
...
@@ -323,6 +305,7 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
bundle
.
putString
(
VipActivity
.
VEDIO_ID
,
mVedioBean
!!
.
vedioId
.
toString
())
bundle
.
putString
(
VipActivity
.
THIRD_ID
,
mVedioBean
!!
.
thirdId
)
bundle
.
putBoolean
(
VipActivity
.
IS_RECOMMEND
,
true
)
bundle
.
putBoolean
(
VipActivity
.
IS_DETAIL
,
true
)
readyGo
(
VipActivity
::
class
.
java
,
bundle
)
}
...
...
@@ -330,6 +313,40 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
}
}
private
fun
showAd
()
{
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
>?)
{
updateEpisodeData
(
position
,
vo
)
}
})
}
override
fun
adClose
(
vo
:
HashMap
<
String
,
Any
>?)
{
updateEpisodeData
(
position
,
vo
)
}
})
}
private
fun
updateEpisodeData
(
position
:
Int
,
vo
:
HashMap
<
String
,
Any
>?)
{
vo
?.
let
{
// 解锁剧集
...
...
@@ -358,4 +375,20 @@ class NewTxVideoActivity : BaseActivity(), View.OnClickListener, VideoView,
}
return
readPosition
}
private
fun
adDialog
()
{
detailAdDialog
=
DetailAdDialog
(
context
,
object
:
DialogListener
()
{
override
fun
onClick
(
v
:
View
)
{
if
(
AntiShake
.
check
(
v
.
id
))
return
when
(
v
.
id
)
{
R
.
id
.
iv_detail_ad_next
->
{
showAd
()
detailAdDialog
?.
dismiss
()
}
}
}
})
detailAdDialog
!!
.
show
()
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment