Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
R
reelshort white
Project
Project
Details
Activity
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanglei
reelshort white
Commits
24bd4887
Commit
24bd4887
authored
Jan 13, 2025
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
61277593
Show whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
557 additions
and
3 deletions
+557
-3
build.gradle.kts
app/build.gradle.kts
+2
-1
google-services.json
app/google-services.json
+1
-1
ShortPlayEPBean.kt
app/src/main/java/com/base/appzxhy/bean/ShortPlayEPBean.kt
+7
-0
PlayHistoryHelper.java
...in/java/com/base/appzxhy/shortplay/PlayHistoryHelper.java
+37
-0
EPAdapter.kt
app/src/main/java/com/base/appzxhy/ui/adapter/EPAdapter.kt
+33
-0
HomeFragment.kt
app/src/main/java/com/base/appzxhy/ui/main/HomeFragment.kt
+5
-0
CustomCollectView.kt
...c/main/java/com/base/appzxhy/ui/play/CustomCollectView.kt
+63
-0
CustomLikeView.kt
app/src/main/java/com/base/appzxhy/ui/play/CustomLikeView.kt
+63
-0
CustomView.kt
app/src/main/java/com/base/appzxhy/ui/play/CustomView.kt
+59
-0
PlayFullActivity.kt
...rc/main/java/com/base/appzxhy/ui/play/PlayFullActivity.kt
+67
-1
ShortPlayEPDialog.kt
.../main/java/com/base/appzxhy/ui/views/ShortPlayEPDialog.kt
+53
-0
ShortPlaySpeedDialog.kt
...in/java/com/base/appzxhy/ui/views/ShortPlaySpeedDialog.kt
+26
-0
bg_d17e7887_5.xml
app/src/main/res/drawable/bg_d17e7887_5.xml
+5
-0
indicator_bottom_line_ff3d71.xml
app/src/main/res/drawable/indicator_bottom_line_ff3d71.xml
+6
-0
dialog_ep_list.xml
app/src/main/res/layout/dialog_ep_list.xml
+60
-0
dialog_play_speed.xml
app/src/main/res/layout/dialog_play_speed.xml
+7
-0
fy_suo.png
app/src/main/res/layout/fy_suo.png
+0
-0
item_ep.xml
app/src/main/res/layout/item_ep.xml
+34
-0
fy_bg.png
app/src/main/res/mipmap-xxhdpi/fy_bg.png
+0
-0
fy_bofang.png
app/src/main/res/mipmap-xxhdpi/fy_bofang.png
+0
-0
fy_dianzan_n.png
app/src/main/res/mipmap-xxhdpi/fy_dianzan_n.png
+0
-0
fy_dianzan_s.png
app/src/main/res/mipmap-xxhdpi/fy_dianzan_s.png
+0
-0
fy_list.png
app/src/main/res/mipmap-xxhdpi/fy_list.png
+0
-0
fy_share.png
app/src/main/res/mipmap-xxhdpi/fy_share.png
+0
-0
fy_shoucang_n.png
app/src/main/res/mipmap-xxhdpi/fy_shoucang_n.png
+0
-0
fy_shoucang_s.png
app/src/main/res/mipmap-xxhdpi/fy_shoucang_s.png
+0
-0
fy_suo.png
app/src/main/res/mipmap-xxhdpi/fy_suo.png
+0
-0
dimens.xml
app/src/main/res/values/dimens.xml
+19
-0
strings.xml
app/src/main/res/values/strings.xml
+2
-0
themes.xml
app/src/main/res/values/themes.xml
+8
-0
No files found.
app/build.gradle.kts
View file @
24bd4887
...
@@ -13,7 +13,8 @@ android {
...
@@ -13,7 +13,8 @@ android {
compileSdk
=
34
compileSdk
=
34
defaultConfig
{
defaultConfig
{
applicationId
=
"com.tool.advanced.cleaner"
//只有这个pkg可以播放
applicationId
=
"com.example.dramasdk"
minSdk
=
24
minSdk
=
24
targetSdk
=
34
targetSdk
=
34
versionCode
=
1
versionCode
=
1
...
...
app/google-services.json
View file @
24bd4887
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
"client_info"
:
{
"client_info"
:
{
"mobilesdk_app_id"
:
"1:755421476297:android:c66d8129d83b17e8af6418"
,
"mobilesdk_app_id"
:
"1:755421476297:android:c66d8129d83b17e8af6418"
,
"android_client_info"
:
{
"android_client_info"
:
{
"package_name"
:
"com.
tool.advanced.cleaner
"
"package_name"
:
"com.
example.dramasdk
"
}
}
},
},
"oauth_client"
:
[],
"oauth_client"
:
[],
...
...
app/src/main/java/com/base/appzxhy/bean/ShortPlayEPBean.kt
0 → 100644
View file @
24bd4887
package
com.base.appzxhy.bean
data class
ShortPlayEPBean
(
val
ep
:
Int
,
val
lock
:
Boolean
=
false
,
var
isPlaying
:
Boolean
=
false
)
\ No newline at end of file
app/src/main/java/com/base/appzxhy/shortplay/PlayHistoryHelper.java
0 → 100644
View file @
24bd4887
package
com
.
base
.
appzxhy
.
shortplay
;
import
com.bytedance.sdk.shortplay.api.ShortPlay
;
import
java.util.ArrayList
;
public
class
PlayHistoryHelper
{
private
static
final
ArrayList
<
PlayHistory
>
playHistoryList
=
new
ArrayList
<>();
public
static
void
savePlayHistory
(
PlayHistory
newPlayHistory
)
{
if
(
newPlayHistory
==
null
||
newPlayHistory
.
shortPlay
==
null
)
{
return
;
}
for
(
PlayHistory
history
:
playHistoryList
)
{
if
(
history
.
shortPlay
.
id
==
newPlayHistory
.
shortPlay
.
id
)
{
playHistoryList
.
remove
(
history
);
break
;
}
}
playHistoryList
.
add
(
0
,
newPlayHistory
);
}
public
static
ArrayList
<
PlayHistory
>
getPlayHistory
()
{
return
playHistoryList
;
}
public
static
PlayHistory
getLastWatchShortPlay
()
{
return
playHistoryList
.
isEmpty
()
?
null
:
playHistoryList
.
get
(
0
);
}
public
static
class
PlayHistory
{
public
ShortPlay
shortPlay
;
public
int
index
;
public
int
seconds
;
}
}
app/src/main/java/com/base/appzxhy/ui/adapter/EPAdapter.kt
0 → 100644
View file @
24bd4887
package
com.base.appzxhy.ui.adapter
import
android.content.Context
import
android.view.View
import
android.view.ViewGroup
import
androidx.core.view.isVisible
import
com.base.appzxhy.R
import
com.base.appzxhy.bean.ShortPlayEPBean
import
com.base.appzxhy.databinding.ItemEpBinding
import
com.base.appzxhy.utils.XmlEx.inflate
import
com.chad.library.adapter4.BaseQuickAdapter
class
EPAdapter
:
BaseQuickAdapter
<
ShortPlayEPBean
,
CommonViewHolder
>()
{
override
fun
onBindViewHolder
(
holder
:
CommonViewHolder
,
position
:
Int
,
item
:
ShortPlayEPBean
?)
{
item
?:
return
val
context
=
holder
.
itemView
.
context
val
binding
=
ItemEpBinding
.
bind
(
holder
.
itemView
)
if
(
item
.
isPlaying
)
{
binding
.
ivLock
.
visibility
=
View
.
GONE
binding
.
tvEP
.
visibility
=
View
.
GONE
binding
.
ivPlay
.
visibility
=
View
.
VISIBLE
}
else
{
binding
.
ivPlay
.
visibility
=
View
.
GONE
binding
.
ivLock
.
isVisible
=
item
.
lock
binding
.
tvEP
.
visibility
=
View
.
VISIBLE
}
}
override
fun
onCreateViewHolder
(
context
:
Context
,
parent
:
ViewGroup
,
viewType
:
Int
):
CommonViewHolder
{
return
CommonViewHolder
(
R
.
layout
.
item_ep
.
inflate
(
parent
))
}
}
\ No newline at end of file
app/src/main/java/com/base/appzxhy/ui/main/HomeFragment.kt
View file @
24bd4887
...
@@ -140,6 +140,11 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>(FragmentHomeBinding::infl
...
@@ -140,6 +140,11 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>(FragmentHomeBinding::infl
if
(
BuildConfig
.
DEBUG
)
{
if
(
BuildConfig
.
DEBUG
)
{
requireContext
().
toast
(
"${item.title}"
)
requireContext
().
toast
(
"${item.title}"
)
}
}
val
activity
=
requireActivity
()
as
MainActivity
?
activity
?:
return
activity
.
startActivity
(
Intent
(
activity
,
PlayFullActivity
::
class
.
java
).
apply
{
putExtra
(
"data"
,
Gson
().
toJson
(
item
))
})
}
}
private
fun
jumpCategory
(
ids
:
Long
)
{
private
fun
jumpCategory
(
ids
:
Long
)
{
...
...
app/src/main/java/com/base/appzxhy/ui/play/CustomCollectView.kt
0 → 100644
View file @
24bd4887
package
com.base.appzxhy.ui.play
import
android.annotation.SuppressLint
import
android.content.Context
import
android.graphics.Color
import
android.graphics.drawable.Drawable
import
android.view.Gravity
import
androidx.appcompat.widget.AppCompatTextView
import
androidx.core.content.ContextCompat
import
com.base.appzxhy.R
import
com.base.appzxhy.utils.LogEx
import
com.bytedance.sdk.shortplay.api.PSSDK
import
com.bytedance.sdk.shortplay.api.PSSDK.ControlStatus
import
com.bytedance.sdk.shortplay.api.PSSDK.IControlStatusView
import
com.bytedance.sdk.shortplay.api.ShortPlay
import
com.bytedance.sdk.shortplay.api.ShortPlayFragment
class
CustomCollectView
:
AppCompatTextView
,
IControlStatusView
{
private
val
TAG
=
"CustomCollectView"
private
var
collectDrawable
:
Drawable
?
private
var
collectedDrawable
:
Drawable
?
private
var
status
=
ControlStatus
.
Normal
constructor
(
context
:
Context
)
:
super
(
context
)
{
gravity
=
Gravity
.
CENTER_HORIZONTAL
setTextColor
(
Color
.
parseColor
(
"#ffffff"
))
textSize
=
12f
collectDrawable
=
ContextCompat
.
getDrawable
(
context
,
R
.
mipmap
.
fy_shoucang_n
)
collectedDrawable
=
ContextCompat
.
getDrawable
(
context
,
R
.
mipmap
.
fy_shoucang_s
)
val
size
=
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_32
)
collectDrawable
?.
setBounds
(
0
,
0
,
size
,
size
)
collectedDrawable
?.
setBounds
(
0
,
0
,
size
,
size
)
}
override
fun
getControlViewType
():
PSSDK
.
ControlViewType
{
return
PSSDK
.
ControlViewType
.
Collect
}
override
fun
bindItemData
(
fragment
:
ShortPlayFragment
?,
shortPlay
:
ShortPlay
,
index
:
Int
)
{
}
@SuppressLint
(
"SetTextI18n"
)
override
fun
setCurrentStatus
(
shortPlay
:
ShortPlay
,
index
:
Int
,
status
:
ControlStatus
,
extraInfo
:
PSSDK
.
StatusExtraInfo
)
{
this
.
status
=
status
LogEx
.
logDebug
(
TAG
,
"setCurrentStatus status=$status"
)
setCompoundDrawables
(
null
,
if
(
status
==
ControlStatus
.
Normal
)
collectDrawable
else
collectedDrawable
,
null
,
null
)
text
=
extraInfo
.
totalCollectCount
.
toString
()
}
override
fun
getCurrentStatus
(
shortPlay
:
ShortPlay
,
index
:
Int
):
ControlStatus
{
return
status
}
override
fun
onClicked
(
shortPlay
:
ShortPlay
,
index
:
Int
,
status
:
ControlStatus
):
ControlStatus
{
return
if
(
status
==
ControlStatus
.
Normal
)
ControlStatus
.
Selected
else
ControlStatus
.
Normal
}
}
\ No newline at end of file
app/src/main/java/com/base/appzxhy/ui/play/CustomLikeView.kt
0 → 100644
View file @
24bd4887
package
com.base.appzxhy.ui.play
import
android.annotation.SuppressLint
import
android.content.Context
import
android.graphics.Color
import
android.graphics.drawable.Drawable
import
android.view.Gravity
import
androidx.appcompat.widget.AppCompatTextView
import
androidx.core.content.ContextCompat
import
com.base.appzxhy.R
import
com.base.appzxhy.utils.LogEx
import
com.bytedance.sdk.shortplay.api.PSSDK
import
com.bytedance.sdk.shortplay.api.PSSDK.ControlStatus
import
com.bytedance.sdk.shortplay.api.PSSDK.IControlStatusView
import
com.bytedance.sdk.shortplay.api.ShortPlay
import
com.bytedance.sdk.shortplay.api.ShortPlayFragment
class
CustomLikeView
:
AppCompatTextView
,
IControlStatusView
{
private
val
TAG
=
"CustomLikeView"
private
var
likeDrawable
:
Drawable
?
private
var
likedDrawable
:
Drawable
?
private
var
status
=
ControlStatus
.
Normal
constructor
(
context
:
Context
)
:
super
(
context
)
{
gravity
=
Gravity
.
CENTER_HORIZONTAL
setTextColor
(
Color
.
parseColor
(
"#ffffff"
))
textSize
=
12f
likeDrawable
=
ContextCompat
.
getDrawable
(
context
,
R
.
mipmap
.
fy_dianzan_n
)
likedDrawable
=
ContextCompat
.
getDrawable
(
context
,
R
.
mipmap
.
fy_dianzan_s
)
val
size
=
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_32
)
likeDrawable
?.
setBounds
(
0
,
0
,
size
,
size
)
likedDrawable
?.
setBounds
(
0
,
0
,
size
,
size
)
}
override
fun
getControlViewType
():
PSSDK
.
ControlViewType
{
return
PSSDK
.
ControlViewType
.
Like
}
override
fun
bindItemData
(
fragment
:
ShortPlayFragment
?,
shortPlay
:
ShortPlay
,
index
:
Int
)
{
}
@SuppressLint
(
"SetTextI18n"
)
override
fun
setCurrentStatus
(
shortPlay
:
ShortPlay
,
index
:
Int
,
status
:
ControlStatus
,
extraInfo
:
PSSDK
.
StatusExtraInfo
)
{
this
.
status
=
status
LogEx
.
logDebug
(
TAG
,
"setCurrentStatus status=$status"
)
setCompoundDrawables
(
null
,
if
(
status
==
ControlStatus
.
Normal
)
likeDrawable
else
likedDrawable
,
null
,
null
)
text
=
extraInfo
.
totalCollectCount
.
toString
()
}
override
fun
getCurrentStatus
(
shortPlay
:
ShortPlay
,
index
:
Int
):
ControlStatus
{
return
status
}
override
fun
onClicked
(
shortPlay
:
ShortPlay
,
index
:
Int
,
status
:
ControlStatus
):
ControlStatus
{
return
if
(
status
==
ControlStatus
.
Normal
)
ControlStatus
.
Selected
else
ControlStatus
.
Normal
}
}
\ No newline at end of file
app/src/main/java/com/base/appzxhy/ui/play/CustomView.kt
0 → 100644
View file @
24bd4887
package
com.base.appzxhy.ui.play
import
android.annotation.SuppressLint
import
android.content.Context
import
android.graphics.Color
import
android.graphics.drawable.Drawable
import
android.view.Gravity
import
androidx.appcompat.widget.AppCompatTextView
import
androidx.core.content.ContextCompat
import
com.base.appzxhy.R
import
com.base.appzxhy.utils.LogEx
import
com.bytedance.sdk.shortplay.api.PSSDK
import
com.bytedance.sdk.shortplay.api.PSSDK.ControlStatus
import
com.bytedance.sdk.shortplay.api.PSSDK.IControlStatusView
import
com.bytedance.sdk.shortplay.api.ShortPlay
import
com.bytedance.sdk.shortplay.api.ShortPlayFragment
class
CustomView
:
AppCompatTextView
,
IControlStatusView
{
private
val
TAG
=
"CustomEPView"
private
var
drawable
:
Drawable
?
private
var
status
=
ControlStatus
.
Normal
constructor
(
context
:
Context
,
drawableRes
:
Int
)
:
super
(
context
)
{
gravity
=
Gravity
.
CENTER_HORIZONTAL
setTextColor
(
Color
.
parseColor
(
"#ffffff"
))
textSize
=
12f
drawable
=
ContextCompat
.
getDrawable
(
context
,
drawableRes
)
val
size
=
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_32
)
drawable
?.
setBounds
(
0
,
0
,
size
,
size
)
setCompoundDrawables
(
null
,
drawable
,
null
,
null
)
}
override
fun
getControlViewType
():
PSSDK
.
ControlViewType
{
return
PSSDK
.
ControlViewType
.
CUSTOM
}
override
fun
bindItemData
(
fragment
:
ShortPlayFragment
?,
shortPlay
:
ShortPlay
,
index
:
Int
)
{
}
@SuppressLint
(
"SetTextI18n"
)
override
fun
setCurrentStatus
(
shortPlay
:
ShortPlay
,
index
:
Int
,
status
:
ControlStatus
,
extraInfo
:
PSSDK
.
StatusExtraInfo
)
{
this
.
status
=
status
LogEx
.
logDebug
(
TAG
,
"setCurrentStatus status=$status"
)
}
override
fun
getCurrentStatus
(
shortPlay
:
ShortPlay
,
index
:
Int
):
ControlStatus
{
return
status
}
override
fun
onClicked
(
shortPlay
:
ShortPlay
,
index
:
Int
,
status
:
ControlStatus
):
ControlStatus
{
return
ControlStatus
.
Normal
}
}
\ No newline at end of file
app/src/main/java/com/base/appzxhy/ui/play/PlayFullActivity.kt
View file @
24bd4887
package
com.base.appzxhy.ui.play
package
com.base.appzxhy.ui.play
import
android.annotation.SuppressLint
import
android.view.Gravity
import
android.view.View
import
android.view.View
import
android.widget.FrameLayout
import
com.base.appzxhy.R
import
com.base.appzxhy.R
import
com.base.appzxhy.base.BaseActivity
import
com.base.appzxhy.base.BaseActivity
import
com.base.appzxhy.databinding.ActivityPlayFullBinding
import
com.base.appzxhy.databinding.ActivityPlayFullBinding
import
com.base.appzxhy.shortplay.PlayHistoryHelper
import
com.base.appzxhy.utils.LogEx
import
com.base.appzxhy.utils.LogEx
import
com.base.appzxhy.utils.ToastUtils.toast
import
com.base.appzxhy.utils.ToastUtils.toast
import
com.bytedance.sdk.shortplay.api.PSSDK
import
com.bytedance.sdk.shortplay.api.PSSDK
...
@@ -24,6 +28,8 @@ class PlayFullActivity : BaseActivity<ActivityPlayFullBinding>(ActivityPlayFullB
...
@@ -24,6 +28,8 @@ class PlayFullActivity : BaseActivity<ActivityPlayFullBinding>(ActivityPlayFullB
private
val
startFromIndex
=
1
//剧集下标
private
val
startFromIndex
=
1
//剧集下标
private
val
startFromSeconds
=
0
//开始秒数
private
val
startFromSeconds
=
0
//开始秒数
private
val
playHistory
:
PlayHistoryHelper
.
PlayHistory
=
PlayHistoryHelper
.
PlayHistory
()
override
fun
initView
()
{
override
fun
initView
()
{
super
.
initView
()
super
.
initView
()
val
data
=
intent
.
extras
?.
getString
(
"data"
)
val
data
=
intent
.
extras
?.
getString
(
"data"
)
...
@@ -33,6 +39,7 @@ class PlayFullActivity : BaseActivity<ActivityPlayFullBinding>(ActivityPlayFullB
...
@@ -33,6 +39,7 @@ class PlayFullActivity : BaseActivity<ActivityPlayFullBinding>(ActivityPlayFullB
}
}
shortPlay
?.
let
{
showDetailFragment
(
it
)
}
shortPlay
?.
let
{
showDetailFragment
(
it
)
}
shortPlay
?.
episodes
}
}
override
fun
initListener
()
{
override
fun
initListener
()
{
...
@@ -84,6 +91,7 @@ class PlayFullActivity : BaseActivity<ActivityPlayFullBinding>(ActivityPlayFullB
...
@@ -84,6 +91,7 @@ class PlayFullActivity : BaseActivity<ActivityPlayFullBinding>(ActivityPlayFullB
})
})
builder
.
progressBarMarginToBottom
(
10
)
builder
.
progressBarMarginToBottom
(
10
)
builder
.
enableImmersiveMode
(
1500
)
detailFragment
=
PSSDK
.
createDetailFragment
(
shortPlay
,
builder
.
build
(),
object
:
PSSDK
.
ShortPlayDetailPageListener
{
detailFragment
=
PSSDK
.
createDetailFragment
(
shortPlay
,
builder
.
build
(),
object
:
PSSDK
.
ShortPlayDetailPageListener
{
...
@@ -91,6 +99,7 @@ class PlayFullActivity : BaseActivity<ActivityPlayFullBinding>(ActivityPlayFullB
...
@@ -91,6 +99,7 @@ class PlayFullActivity : BaseActivity<ActivityPlayFullBinding>(ActivityPlayFullB
}
}
override
fun
onPlayFailed
(
errorInfo
:
PSSDK
.
ErrorInfo
?):
Boolean
{
override
fun
onPlayFailed
(
errorInfo
:
PSSDK
.
ErrorInfo
?):
Boolean
{
LogEx
.
logDebug
(
TAG
,
"msg=${errorInfo?.msg} code=${errorInfo?.code}"
)
if
(
errorInfo
?.
code
==
PSSDK
.
ErrorInfo
.
ERROR_CODE_CURRENT_COUNTRY_NOT_SUPPORT
)
{
if
(
errorInfo
?.
code
==
PSSDK
.
ErrorInfo
.
ERROR_CODE_CURRENT_COUNTRY_NOT_SUPPORT
)
{
// 当前地区不支持播放,SDK会Toast提示,开发者也可以在此时显示弹窗等更友好的提示
// 当前地区不支持播放,SDK会Toast提示,开发者也可以在此时显示弹窗等更友好的提示
// return true表示替换掉SDK内的Toast提示
// return true表示替换掉SDK内的Toast提示
...
@@ -102,6 +111,9 @@ class PlayFullActivity : BaseActivity<ActivityPlayFullBinding>(ActivityPlayFullB
...
@@ -102,6 +111,9 @@ class PlayFullActivity : BaseActivity<ActivityPlayFullBinding>(ActivityPlayFullB
}
}
override
fun
onShortPlayPlayed
(
shortPlay
:
ShortPlay
?,
index
:
Int
)
{
override
fun
onShortPlayPlayed
(
shortPlay
:
ShortPlay
?,
index
:
Int
)
{
playHistory
.
shortPlay
=
shortPlay
playHistory
.
index
=
index
PlayHistoryHelper
.
savePlayHistory
(
playHistory
)
}
}
override
fun
onItemSelected
(
position
:
Int
,
p1
:
PSSDK
.
ShortPlayDetailPageListener
.
ItemType
?,
index
:
Int
)
{
override
fun
onItemSelected
(
position
:
Int
,
p1
:
PSSDK
.
ShortPlayDetailPageListener
.
ItemType
?,
index
:
Int
)
{
...
@@ -109,6 +121,7 @@ class PlayFullActivity : BaseActivity<ActivityPlayFullBinding>(ActivityPlayFullB
...
@@ -109,6 +121,7 @@ class PlayFullActivity : BaseActivity<ActivityPlayFullBinding>(ActivityPlayFullB
}
}
override
fun
onVideoPlayStateChanged
(
shortPlay
:
ShortPlay
?,
index
:
Int
,
playbackState
:
Int
)
{
override
fun
onVideoPlayStateChanged
(
shortPlay
:
ShortPlay
?,
index
:
Int
,
playbackState
:
Int
)
{
// LogEx.logDebug(TAG)
}
}
override
fun
onVideoPlayCompleted
(
shortPlay
:
ShortPlay
?,
index
:
Int
)
{
override
fun
onVideoPlayCompleted
(
shortPlay
:
ShortPlay
?,
index
:
Int
)
{
...
@@ -135,8 +148,61 @@ class PlayFullActivity : BaseActivity<ActivityPlayFullBinding>(ActivityPlayFullB
...
@@ -135,8 +148,61 @@ class PlayFullActivity : BaseActivity<ActivityPlayFullBinding>(ActivityPlayFullB
override
fun
onVideoInfoFetched
(
shortPlay
:
ShortPlay
?,
index
:
Int
,
videoPlayInfo
:
PSSDK
.
VideoPlayInfo
?)
{
override
fun
onVideoInfoFetched
(
shortPlay
:
ShortPlay
?,
index
:
Int
,
videoPlayInfo
:
PSSDK
.
VideoPlayInfo
?)
{
}
}
@SuppressLint
(
"RtlHardcoded"
)
override
fun
onObtainPlayerControlViews
():
MutableList
<
View
>
{
override
fun
onObtainPlayerControlViews
():
MutableList
<
View
>
{
return
arrayListOf
(
View
(
this
@PlayFullActivity
))
val
views
=
java
.
util
.
ArrayList
<
View
>()
val
aLLBottomMargin
=
this
@PlayFullActivity
.
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_120
)
val
itemMargin
=
this
@PlayFullActivity
.
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_70
)
// 点赞按钮
val
customLikeView
=
CustomLikeView
(
applicationContext
)
val
likeParams
=
FrameLayout
.
LayoutParams
(
FrameLayout
.
LayoutParams
.
WRAP_CONTENT
,
FrameLayout
.
LayoutParams
.
WRAP_CONTENT
).
apply
{
gravity
=
Gravity
.
BOTTOM
or
Gravity
.
RIGHT
bottomMargin
=
aLLBottomMargin
+
itemMargin
*
3
rightMargin
=
this
@PlayFullActivity
.
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_18
)
}
customLikeView
.
setLayoutParams
(
likeParams
)
views
.
add
(
customLikeView
)
//收藏按钮
val
customCollectView
=
CustomCollectView
(
applicationContext
)
val
collectParams
=
FrameLayout
.
LayoutParams
(
FrameLayout
.
LayoutParams
.
WRAP_CONTENT
,
FrameLayout
.
LayoutParams
.
WRAP_CONTENT
).
apply
{
gravity
=
Gravity
.
BOTTOM
or
Gravity
.
RIGHT
bottomMargin
=
aLLBottomMargin
+
itemMargin
*
2
rightMargin
=
this
@PlayFullActivity
.
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_18
)
}
customCollectView
.
setLayoutParams
(
collectParams
)
views
.
add
(
customCollectView
)
//选集
val
customPEView
=
CustomView
(
applicationContext
,
R
.
mipmap
.
fy_list
)
customPEView
.
text
=
resources
.
getString
(
R
.
string
.
list
)
val
peParams
=
FrameLayout
.
LayoutParams
(
FrameLayout
.
LayoutParams
.
WRAP_CONTENT
,
FrameLayout
.
LayoutParams
.
WRAP_CONTENT
).
apply
{
gravity
=
Gravity
.
BOTTOM
or
Gravity
.
RIGHT
bottomMargin
=
aLLBottomMargin
+
itemMargin
rightMargin
=
this
@PlayFullActivity
.
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_18
)
}
customPEView
.
setLayoutParams
(
peParams
)
views
.
add
(
customPEView
)
//分享
val
customShareView
=
CustomView
(
applicationContext
,
R
.
mipmap
.
fy_share
)
customShareView
.
text
=
resources
.
getString
(
R
.
string
.
share
)
val
shareParams
=
FrameLayout
.
LayoutParams
(
FrameLayout
.
LayoutParams
.
WRAP_CONTENT
,
FrameLayout
.
LayoutParams
.
WRAP_CONTENT
).
apply
{
gravity
=
Gravity
.
BOTTOM
or
Gravity
.
RIGHT
bottomMargin
=
aLLBottomMargin
rightMargin
=
this
@PlayFullActivity
.
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_18
)
}
customShareView
.
setLayoutParams
(
shareParams
)
views
.
add
(
customShareView
)
return
views
}
}
})
})
if
(
detailFragment
==
null
)
{
if
(
detailFragment
==
null
)
{
...
...
app/src/main/java/com/base/appzxhy/ui/views/ShortPlayEPDialog.kt
0 → 100644
View file @
24bd4887
package
com.base.appzxhy.ui.views
import
android.content.Context
import
android.view.LayoutInflater
import
android.view.View
import
com.base.appzxhy.R
import
com.base.appzxhy.bean.ShortPlayEPBean
import
com.base.appzxhy.databinding.DialogEpListBinding
import
com.google.android.material.bottomsheet.BottomSheetBehavior
import
com.google.android.material.bottomsheet.BottomSheetDialog
object
ShortPlayEPDialog
{
fun
Context
.
showShortPlayEPDialog
(
totalEp
:
Int
,
lockEp
:
Int
,
playEp
:
Int
)
{
val
dialog
=
BottomSheetDialog
(
this
,
R
.
style
.
BottomSheetDialog
)
val
binding
=
DialogEpListBinding
.
inflate
(
LayoutInflater
.
from
(
this
))
dialog
.
setContentView
(
binding
.
root
)
dialog
.
setCanceledOnTouchOutside
(
false
)
dialog
.
show
()
val
parentView
=
binding
.
root
.
parent
as
View
val
behavior
=
BottomSheetBehavior
.
from
(
parentView
)
//展开
behavior
.
state
=
BottomSheetBehavior
.
STATE_EXPANDED
val
textLength
=
resources
.
getDimensionPixelOffset
(
R
.
dimen
.
dp_5
)
val
list
=
ArrayList
<
ShortPlayEPBean
>()
repeat
(
totalEp
)
{
i
->
val
ep
=
i
+
1
val
lock
=
ep
>=
lockEp
val
isPlay
=
ep
==
playEp
val
bean
=
ShortPlayEPBean
(
ep
,
lock
,
isPlay
)
list
.
add
(
bean
)
}
// binding.dslTabLayout.tabIndicator.indicatorDrawable =
// ContextCompat.getDrawable(this, R.drawable.indicator_bottom_line_ff3d71)
// binding.dslTabLayout.tabIndicator.indicatorEnableFlow = true
// binding.dslTabLayout.tabIndicator.ignoreChildPadding = true
//
// binding.dslTabLayout.configTabLayoutConfig {
// onSelectIndexChange = { fromIndex, selectIndexList, reselect, fromUser ->
// val toIndex = selectIndexList.first()
// binding.dslTabLayout.tabIndicator.indicatorWidth = tab.length * textLength
// }
// }
}
}
\ No newline at end of file
app/src/main/java/com/base/appzxhy/ui/views/ShortPlaySpeedDialog.kt
0 → 100644
View file @
24bd4887
package
com.base.appzxhy.ui.views
import
android.app.AlertDialog
import
android.content.Context
import
android.view.Gravity
import
android.view.LayoutInflater
import
com.base.appzxhy.databinding.DialogPlaySpeedBinding
object
ShortPlaySpeedDialog
{
fun
Context
.
showShortPlaySpeedDialog
()
{
val
dialog
=
AlertDialog
.
Builder
(
this
).
create
()
val
binding
=
DialogPlaySpeedBinding
.
inflate
(
LayoutInflater
.
from
(
this
))
dialog
.
setView
(
binding
.
root
)
dialog
.
setCanceledOnTouchOutside
(
false
)
dialog
.
show
()
val
params
=
dialog
.
window
?.
attributes
// params?.width = resources.getDimensionPixelOffset(R.dimen.dp_320)
// params?.height = resources.getDimensionPixelOffset(R.dimen.dp_400)
params
?.
gravity
=
Gravity
.
CENTER
// params?.y = 50
}
}
\ No newline at end of file
app/src/main/res/drawable/bg_d17e7887_5.xml
0 → 100644
View file @
24bd4887
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<solid
android:color=
"#d17E7887"
/>
<corners
android:radius=
"5dp"
/>
</shape>
\ No newline at end of file
app/src/main/res/drawable/indicator_bottom_line_ff3d71.xml
0 → 100644
View file @
24bd4887
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<solid
android:color=
"#FF3D71"
/>
<corners
android:radius=
"5dp"
/>
</shape>
\ No newline at end of file
app/src/main/res/layout/dialog_ep_list.xml
0 → 100644
View file @
24bd4887
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<ImageView
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@mipmap/fy_bg"
android:minHeight=
"336dp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"ContentDescription"
/>
<TextView
android:id=
"@+id/tv"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_margin=
"18dp"
android:text=
"List(Completed)"
android:textColor=
"@color/white"
android:textSize=
"14sp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"HardcodedText"
/>
<com.angcyo.tablayout.DslTabLayout
android:id=
"@+id/dslTabLayout"
android:layout_width=
"match_parent"
android:layout_height=
"30dp"
android:layout_marginTop=
"20dp"
app:layout_constraintTop_toBottomOf=
"@id/tv"
app:tab_indicator_height=
"2dp"
>
</com.angcyo.tablayout.DslTabLayout>
<View
android:id=
"@+id/v"
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
android:background=
"@color/white"
app:layout_constraintTop_toBottomOf=
"@id/dslTabLayout"
/>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv"
android:layout_width=
"0dp"
android:layout_height=
"0dp"
android:orientation=
"vertical"
app:layoutManager=
"androidx.recyclerview.widget.GridLayoutManager"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/v"
app:spanCount=
"5"
tools:listitem=
"@layout/item_ep"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/dialog_play_speed.xml
0 → 100644
View file @
24bd4887
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/fy_suo.png
0 → 100644
View file @
24bd4887
2.42 KB
app/src/main/res/layout/item_ep.xml
0 → 100644
View file @
24bd4887
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"0dp"
android:layout_height=
"46dp"
android:layout_columnWeight=
"1"
android:layout_margin=
"4dp"
android:background=
"@drawable/bg_d17e7887_5"
>
<TextView
android:id=
"@+id/tvEP"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:gravity=
"center"
android:textColor=
"@color/white"
android:textSize=
"16sp"
/>
<ImageView
android:id=
"@+id/ivPlay"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:src=
"@mipmap/fy_bofang"
tools:ignore=
"ContentDescription"
/>
<ImageView
android:id=
"@+id/ivLock"
android:layout_gravity=
"end|top"
android:src=
"@mipmap/fy_suo"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
\ No newline at end of file
app/src/main/res/mipmap-xxhdpi/fy_bg.png
0 → 100644
View file @
24bd4887
22.5 KB
app/src/main/res/mipmap-xxhdpi/fy_bofang.png
0 → 100644
View file @
24bd4887
244 Bytes
app/src/main/res/mipmap-xxhdpi/fy_dianzan_n.png
0 → 100644
View file @
24bd4887
5.07 KB
app/src/main/res/mipmap-xxhdpi/fy_dianzan_s.png
0 → 100644
View file @
24bd4887
2.95 KB
app/src/main/res/mipmap-xxhdpi/fy_list.png
0 → 100644
View file @
24bd4887
8.44 KB
app/src/main/res/mipmap-xxhdpi/fy_share.png
0 → 100644
View file @
24bd4887
4.82 KB
app/src/main/res/mipmap-xxhdpi/fy_shoucang_n.png
0 → 100644
View file @
24bd4887
5.31 KB
app/src/main/res/mipmap-xxhdpi/fy_shoucang_s.png
0 → 100644
View file @
24bd4887
2.85 KB
app/src/main/res/mipmap-xxhdpi/fy_suo.png
0 → 100644
View file @
24bd4887
2.42 KB
app/src/main/res/values/dimens.xml
View file @
24bd4887
...
@@ -9,4 +9,23 @@
...
@@ -9,4 +9,23 @@
<dimen
name=
"dp_50"
>
50dp
</dimen>
<dimen
name=
"dp_50"
>
50dp
</dimen>
<dimen
name=
"dp_2"
>
2dp
</dimen>
<dimen
name=
"dp_2"
>
2dp
</dimen>
<dimen
name=
"dp_5"
>
5dp
</dimen>
<dimen
name=
"dp_5"
>
5dp
</dimen>
<dimen
name=
"dp_400"
>
400dp
</dimen>
<dimen
name=
"dp_18"
>
18dp
</dimen>
<dimen
name=
"dp_32"
>
32dp
</dimen>
<dimen
name=
"dp_300"
>
300dp
</dimen>
<dimen
name=
"dp_250"
>
250dp
</dimen>
<dimen
name=
"dp_220"
>
220dp
</dimen>
<dimen
name=
"dp_140"
>
140dp
</dimen>
<dimen
name=
"dp_80"
>
80dp
</dimen>
<dimen
name=
"dp_350"
>
350dp
</dimen>
<dimen
name=
"dp_360"
>
360dp
</dimen>
<dimen
name=
"dp_240"
>
240dp
</dimen>
<dimen
name=
"dp_180"
>
180dp
</dimen>
<dimen
name=
"dp_260"
>
260dp
</dimen>
<dimen
name=
"dp_160"
>
160dp
</dimen>
<dimen
name=
"dp_120"
>
120dp
</dimen>
<dimen
name=
"dp_190"
>
190dp
</dimen>
<dimen
name=
"dp_310"
>
310dp
</dimen>
<dimen
name=
"dp_330"
>
330dp
</dimen>
<dimen
name=
"dp_70"
>
70dp
</dimen>
</resources>
</resources>
\ No newline at end of file
app/src/main/res/values/strings.xml
View file @
24bd4887
...
@@ -26,5 +26,7 @@
...
@@ -26,5 +26,7 @@
<string
name=
"action"
>
Action
</string>
<string
name=
"action"
>
Action
</string>
<string
name=
"acg"
>
ACG
</string>
<string
name=
"acg"
>
ACG
</string>
<string
name=
"others"
>
Others
</string>
<string
name=
"others"
>
Others
</string>
<string
name=
"share"
>
Share
</string>
<string
name=
"list"
>
List
</string>
</resources>
</resources>
\ No newline at end of file
app/src/main/res/values/themes.xml
View file @
24bd4887
...
@@ -11,4 +11,12 @@
...
@@ -11,4 +11,12 @@
<item
name=
"android:windowBackground"
>
@drawable/splash_bp
</item>
<item
name=
"android:windowBackground"
>
@drawable/splash_bp
</item>
<item
name=
"android:windowFullscreen"
>
false
</item>
<item
name=
"android:windowFullscreen"
>
false
</item>
</style>
</style>
<style
name=
"BottomSheetDialog"
parent=
"Theme.Design.Light.BottomSheetDialog"
>
<item
name=
"bottomSheetStyle"
>
@style/bottomSheetStyleWrapper
</item>
</style>
<style
name=
"bottomSheetStyleWrapper"
parent=
"Widget.Design.BottomSheet.Modal"
>
<item
name=
"android:background"
>
@android:color/transparent
</item>
</style>
</resources>
</resources>
\ 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