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
7467ec0e
Commit
7467ec0e
authored
Jul 12, 2023
by
mengcuiguang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev_new_vedio' of
http://gitlab.mints-id.com/android/android_vedio
into dev_new_vedio
parents
e611b1d6
b3b9e9e7
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
329 additions
and
72 deletions
+329
-72
TTGroMoreAdManagerHolder.java
...va/com/mints/wisdomclean/ad/TTGroMoreAdManagerHolder.java
+1
-3
LocalVedioManager.kt
...n/java/com/mints/wisdomclean/manager/LocalVedioManager.kt
+38
-4
VedioBean.java
.../main/java/com/mints/wisdomclean/mvp/model/VedioBean.java
+14
-0
MainActivity.kt
...n/java/com/mints/wisdomclean/ui/activitys/MainActivity.kt
+4
-0
VideoEpisodeDialog.kt
...va/com/mints/wisdomclean/ui/widgets/VideoEpisodeDialog.kt
+8
-9
DramaApiDetailActivity.kt
...ava/com/mints/wisdomclean/video/DramaApiDetailActivity.kt
+137
-36
DrawDramaFragment.kt
...ain/java/com/mints/wisdomclean/video/DrawDramaFragment.kt
+0
-2
VideoActivity.kt
...rc/main/java/com/mints/wisdomclean/video/VideoActivity.kt
+6
-7
drama_activity_api_detail.xml
video/app/src/main/res/layout/drama_activity_api_detail.xml
+121
-11
No files found.
video/app/src/main/java/com/mints/wisdomclean/ad/TTGroMoreAdManagerHolder.java
View file @
7467ec0e
...
@@ -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
);
}
}
}
}
...
...
video/app/src/main/java/com/mints/wisdomclean/manager/LocalVedioManager.kt
View file @
7467ec0e
...
@@ -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
,
"网络错误!"
)
}
}
}
}
...
...
video/app/src/main/java/com/mints/wisdomclean/mvp/model/VedioBean.java
View file @
7467ec0e
...
@@ -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
;
}
}
...
...
video/app/src/main/java/com/mints/wisdomclean/ui/activitys/MainActivity.kt
View file @
7467ec0e
...
@@ -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()
}
}
...
...
video/app/src/main/java/com/mints/wisdomclean/ui/widgets/VideoEpisodeDialog.kt
View file @
7467ec0e
...
@@ -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
)))
}
}
...
...
video/app/src/main/java/com/mints/wisdomclean/video/DramaApiDetailActivity.kt
View file @
7467ec0e
...
@@ -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
video/app/src/main/java/com/mints/wisdomclean/video/DrawDramaFragment.kt
View file @
7467ec0e
...
@@ -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
)
...
...
video/app/src/main/java/com/mints/wisdomclean/video/VideoActivity.kt
View file @
7467ec0e
...
@@ -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
()
...
...
video/app/src/main/res/layout/drama_activity_api_detail.xml
View file @
7467ec0e
<?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"
/>
</
Linear
Layout>
</
Frame
Layout>
<include
layout=
"@layout/item_block_view"
/>
</FrameLayout>
</FrameLayout>
\ 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