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
4cf9a81e
Commit
4cf9a81e
authored
Nov 25, 2024
by
mengcuiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
代码优化
parent
d809c8ce
Changes
9
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
125 additions
and
156 deletions
+125
-156
alipay_act.json
video/app/src/main/assets/alipay_act.json
+1
-0
main_alipay.json
video/app/src/main/assets/main_alipay.json
+1
-0
HomePresenter.kt
...va/com/duben/loveplayletu/mvp/presenters/HomePresenter.kt
+24
-27
HomeView.kt
...rc/main/java/com/duben/loveplayletu/mvp/views/HomeView.kt
+1
-1
LoanService.java
...src/main/java/com/duben/loveplayletu/net/LoanService.java
+6
-0
AlipayTimeActivity.kt
...com/duben/loveplayletu/ui/activitys/AlipayTimeActivity.kt
+30
-2
MainFragment.kt
...n/java/com/duben/loveplayletu/ui/fragment/MainFragment.kt
+50
-120
activity_alipaytime.xml
video/app/src/main/res/layout/activity_alipaytime.xml
+6
-5
fragment_main.xml
video/app/src/main/res/layout/fragment_main.xml
+6
-1
No files found.
video/app/src/main/assets/alipay_act.json
0 → 100644
View file @
4cf9a81e
This diff is collapsed.
Click to expand it.
video/app/src/main/assets/main_alipay.json
0 → 100644
View file @
4cf9a81e
This diff is collapsed.
Click to expand it.
video/app/src/main/java/com/duben/loveplayletu/mvp/presenters/HomePresenter.kt
View file @
4cf9a81e
...
...
@@ -11,6 +11,8 @@ import com.duben.loveplayletu.utils.AppPreferencesManager
import
com.duben.loveplayletu.utils.DeviceUuidFactory
import
com.duben.library.net.neterror.BaseSubscriber
import
com.duben.library.net.neterror.Throwable
import
com.duben.loveplayletu.common.AppConfig
import
com.google.gson.JsonObject
import
java.util.HashMap
class
HomePresenter
:
BasePresenter
<
HomeView
>()
{
...
...
@@ -77,47 +79,40 @@ class HomePresenter : BasePresenter<HomeView>() {
})
}
private
fun
showTurn
()
{
fun
orders
()
{
AppHttpManager
.
getInstance
(
loanApplication
)
.
call
(
loanService
.
showTurn
(),
object
:
BaseSubscriber
<
BaseResponse
<
NineShowBean
>>()
{
.
call
(
loanService
.
orders
(),
object
:
BaseSubscriber
<
BaseResponse
<
BannerList
>>()
{
override
fun
onCompleted
()
{
if
(
isLinkView
)
return
}
override
fun
onNext
(
baseResponse
:
BaseResponse
<
NineShowBean
>)
{
override
fun
onError
(
e
:
Throwable
)
{
if
(
isLinkView
)
return
}
override
fun
onNext
(
baseResponse
:
BaseResponse
<
BannerList
>)
{
if
(
isLinkView
)
return
val
code
=
baseResponse
.
status
val
message
=
baseResponse
.
message
when
(
code
)
{
200
->
{
val
data
=
baseResponse
.
data
if
(
data
!=
null
)
{
view
.
showTurnSuc
(
data
)
// AppPreferencesManager.get()
// .put(Constant.LUCKY_FLAG, data.isShow)
// AppPreferencesManager.get()
// .put(Constant.LUCKY_COMPLETE, data.complete)
// AppPreferencesManager.get()
// .put(Constant.LUCKY_NEED, data.need)
}
view
.
ordersSuc
(
baseResponse
.
data
)
}
else
->
{
view
.
showToast
(
message
)
}
}
override
fun
onError
(
e
:
Throwable
?)
{
if
(
isLinkView
)
return
}
})
}
fun
order
s
()
{
fun
signAfterSecond
s
()
{
AppHttpManager
.
getInstance
(
loanApplication
)
.
call
(
loanService
.
order
s
(),
object
:
BaseSubscriber
<
BaseResponse
<
BannerLis
t
>>()
{
.
call
(
loanService
.
signAfterSecond
s
(),
object
:
BaseSubscriber
<
BaseResponse
<
JsonObjec
t
>>()
{
override
fun
onCompleted
()
{
if
(
isLinkView
)
return
}
...
...
@@ -126,15 +121,17 @@ class HomePresenter : BasePresenter<HomeView>() {
if
(
isLinkView
)
return
}
override
fun
onNext
(
baseResponse
:
BaseResponse
<
BannerLis
t
>)
{
override
fun
onNext
(
baseResponse
:
BaseResponse
<
JsonObjec
t
>)
{
if
(
isLinkView
)
return
val
code
=
baseResponse
.
status
val
message
=
baseResponse
.
message
when
(
code
)
{
200
->
{
view
.
ordersSuc
(
baseResponse
.
data
)
try
{
view
.
signAfterSecondsSuc
(
baseResponse
.
data
.
get
(
"time"
).
asInt
)
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
}
}
else
->
{
view
.
showToast
(
message
)
...
...
video/app/src/main/java/com/duben/loveplayletu/mvp/views/HomeView.kt
View file @
4cf9a81e
...
...
@@ -10,5 +10,5 @@ interface HomeView : BaseView {
fun
getSoltVedioSuc
(
data
:
IndexList
?)
fun
getRecommendVedioSuc
(
data
:
RecoBean
?)
fun
s
howTurnSuc
(
data
:
NineShowBean
)
fun
s
ignAfterSecondsSuc
(
time
:
Int
)
}
video/app/src/main/java/com/duben/loveplayletu/net/LoanService.java
View file @
4cf9a81e
...
...
@@ -343,6 +343,12 @@ public interface LoanService {
@POST
(
"api/vedioV1/confs"
)
Observable
<
BaseResponse
<
JsonObject
>>
showVedioConfs
();
/**
* 视频页广告开关
*/
@POST
(
"api/vip/signAfterSeconds"
)
Observable
<
BaseResponse
<
JsonObject
>>
signAfterSeconds
();
/**
* 默认http工厂
...
...
video/app/src/main/java/com/duben/loveplayletu/ui/activitys/AlipayTimeActivity.kt
View file @
4cf9a81e
package
com.duben.loveplayletu.ui.activitys
import
android.os.Bundle
import
android.view.KeyEvent
import
android.view.View
import
com.airbnb.lottie.LottieAnimationView
import
com.airbnb.lottie.LottieComposition
import
com.airbnb.lottie.LottieCompositionFactory
import
com.airbnb.lottie.LottieDrawable
import
com.duben.library.utils.nodoubleclick.AntiShake
import
com.duben.loveplayletu.R
import
com.duben.loveplayletu.mvp.model.OrderRecordBean
import
com.duben.loveplayletu.ui.activitys.base.BaseActivity
import
com.duben.loveplayletu.ui.widgets.SimpleCountDownTimer
import
kotlinx.android.synthetic.main.activity_alipaytime.*
...
...
@@ -14,8 +20,12 @@ import kotlinx.android.synthetic.main.activity_alipaytime.*
* 作者:孟崔广
*/
class
AlipayTimeActivity
:
BaseActivity
(),
View
.
OnClickListener
{
companion
object
{
const
val
ALIPAY_TIME
=
"alipay_time"
}
private
var
countDownTimer
:
SimpleCountDownTimer
?
=
null
private
var
alipaytime
=
0
override
fun
getContentViewLayoutID
()
=
R
.
layout
.
activity_alipaytime
...
...
@@ -25,9 +35,16 @@ class AlipayTimeActivity : BaseActivity(), View.OnClickListener {
override
fun
getOverridePendingTransitionMode
()
=
TransitionMode
.
FADE
override
fun
getBundleExtras
(
extras
:
Bundle
?)
{
super
.
getBundleExtras
(
extras
)
extras
?.
let
{
alipaytime
=
it
.
getInt
(
ALIPAY_TIME
,
0
)
}
}
override
fun
initViewsAndEvents
()
{
countDownTimer
=
SimpleCountDownTimer
(
30
*
60
*
1000
,
tv_alipaytime
).
setOnFinishListener
{
showToast
(
"11111"
)
countDownTimer
=
SimpleCountDownTimer
(
alipaytime
.
toLong
()
*
1000
,
tv_alipaytime
).
setOnFinishListener
{
finish
(
)
}.
start
()
as
SimpleCountDownTimer
?
}
...
...
@@ -57,4 +74,15 @@ class AlipayTimeActivity : BaseActivity(), View.OnClickListener {
// }
}
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
)
}
}
\ No newline at end of file
video/app/src/main/java/com/duben/loveplayletu/ui/fragment/MainFragment.kt
View file @
4cf9a81e
...
...
@@ -11,10 +11,8 @@ import androidx.core.content.ContextCompat
import
androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.RecyclerView
import
androidx.viewpager2.widget.ViewPager2
import
com.google.android.material.tabs.TabLayout
import
com.google.android.material.tabs.TabLayoutMediator
import
com.scwang.smartrefresh.layout.api.RefreshLayout
import
com.scwang.smartrefresh.layout.listener.OnRefreshListener
import
com.duben.library.utils.GlideUtils
import
com.duben.library.utils.nodoubleclick.AntiShake
import
com.duben.loveplayletu.R
import
com.duben.loveplayletu.ad.AdManager
import
com.duben.loveplayletu.ad.banner.BannerManager
...
...
@@ -26,16 +24,20 @@ import com.duben.loveplayletu.manager.UserManager
import
com.duben.loveplayletu.mvp.model.*
import
com.duben.loveplayletu.mvp.presenters.HomePresenter
import
com.duben.loveplayletu.mvp.views.HomeView
import
com.duben.loveplayletu.ui.activitys.AlipayTimeActivity
import
com.duben.loveplayletu.ui.activitys.NineActivity
import
com.duben.loveplayletu.ui.activitys.VipActivity
import
com.duben.loveplayletu.ui.adapter.HomeVideoPageAdapter
import
com.duben.loveplayletu.ui.adapter.ImageTitleAdapter
import
com.duben.loveplayletu.ui.adapter.TopAdapter
import
com.duben.loveplayletu.ui.fragment.base.LazyLoadBaseFragment
import
com.duben.loveplayletu.ui.widgets.SimpleCountDownTimer
import
com.duben.loveplayletu.utils.AppPreferencesManager
import
com.
duben.loveplayletu.utils.SpanUtils
import
com.
duben.library.utils.GlideUtils
import
com.
duben.library.utils.json.JsonUtil
import
com.
duben.library.utils.nodoubleclick.AntiShake
import
com.duben.loveplayletu.ui.activitys
.*
import
com.
google.android.material.tabs.TabLayout
import
com.
google.android.material.tabs.TabLayoutMediator
import
com.
scwang.smartrefresh.layout.api.RefreshLayout
import
com.
scwang.smartrefresh.layout.listener.OnRefreshListener
import
kotlinx.android.synthetic.main.activity_alipaytime
.*
import
kotlinx.android.synthetic.main.fragment_main.*
import
java.lang.reflect.Field
import
java.util.*
...
...
@@ -58,6 +60,8 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR
private
var
vpAdapter
:
HomeVideoPageAdapter
?
=
null
private
var
topAdapter
:
TopAdapter
?
=
null
private
var
recommendVedioBean
:
RecoBean
?
=
null
private
var
countDownTimer
:
SimpleCountDownTimer
?
=
null
private
var
alipayTime
=
0
private
val
homePresenter
by
lazy
{
HomePresenter
()
}
...
...
@@ -116,11 +120,11 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR
}
else
{
homePresenter
.
topTabs
()
homePresenter
.
orders
()
homePresenter
.
signAfterSeconds
()
TrackManager
.
getInstance
().
getMyInfo
()
// showRecommendAct()
}
AppConfig
.
showVipAdDialog
=
false
AppConfig
.
showVipAdDialog
=
false
}
}
...
...
@@ -149,8 +153,9 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR
if
(
AntiShake
.
check
(
v
?.
id
))
return
when
(
v
?.
id
)
{
R
.
id
.
iv_kefu_main
->
{
// (requireActivity() as MainActivity).backPhoneDialog()
readyGo
(
AlipayTimeActivity
::
class
.
java
)
val
bundle
=
Bundle
()
bundle
.
putInt
(
AlipayTimeActivity
.
ALIPAY_TIME
,
alipayTime
)
readyGo
(
AlipayTimeActivity
::
class
.
java
,
bundle
)
}
R
.
id
.
iv_main_watching_close
->
{
LocalVedioManager
.
closeCacheVedio
()
...
...
@@ -347,44 +352,24 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR
this
.
recommendVedioBean
=
data
}
override
fun
showTurnSuc
(
data
:
NineShowBean
)
{
AppPreferencesManager
.
get
().
put
(
Constant
.
LUCKY_FLAG
,
data
.
isShow
)
if
(!
data
.
isShow
||
UserManager
.
getInstance
().
vipFlag
)
{
ll_lucky
.
visibility
=
View
.
GONE
return
}
else
{
ll_lucky
.
visibility
=
View
.
VISIBLE
context
?.
let
{
GlideUtils
.
loadRoundImageViewGif
(
it
,
R
.
drawable
.
ic_nine
,
iv_lucky_gif
)
}
override
fun
signAfterSecondsSuc
(
time
:
Int
)
{
this
.
alipayTime
=
time
if
(
countDownTimer
!=
null
)
{
countDownTimer
!!
.
cancel
()
countDownTimer
=
null
}
if
(
time
>
0
)
{
iv_kefu_main
.
visibility
=
View
.
VISIBLE
countDownTimer
=
SimpleCountDownTimer
(
time
.
toLong
()
*
1000
,
tv_alipaytime
).
setOnFinishListener
{
iv_kefu_main
?.
visibility
=
View
.
GONE
}.
start
()
as
SimpleCountDownTimer
?
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
()
iv_kefu_main
.
visibility
=
View
.
GONE
}
}
override
fun
onHiddenChanged
(
hidden
:
Boolean
)
{
super
.
onHiddenChanged
(
hidden
)
// if (isHidden) {
// vpAdapter?.getFragments()?.get(mSelectTabIndex)?.onPause()
// } else {
// vpAdapter?.getFragments()?.get(mSelectTabIndex)?.onResume()
// }
}
override
fun
onFragmentResume
(
firstResume
:
Boolean
)
{
super
.
onFragmentResume
(
firstResume
)
...
...
@@ -396,61 +381,6 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR
vpAdapter
?.
getFragments
()
?.
get
(
mSelectTabIndex
)
?.
onPause
()
}
/**
* 展示推荐弹窗
*/
private
fun
showRecommendAct
()
{
// if (data == null || data.vedio3 == null) return
if
(
UserManager
.
getInstance
().
newFlag
&&
!
UserManager
.
getInstance
().
vipFlag
)
{
// 1、第一次打开app并关闭付费页进首页时出现一次
val
mainFirstRecommend
=
AppPreferencesManager
.
get
().
getBoolean
(
Constant
.
MAIN_FIRST_RECOMMEND
,
false
)
if
(!
mainFirstRecommend
)
{
if
(
AppConfig
.
enterVipAct
)
{
AppConfig
.
enterVipAct
=
false
AppPreferencesManager
.
get
().
put
(
Constant
.
MAIN_FIRST_RECOMMEND
,
true
)
Handler
(
Looper
.
getMainLooper
()).
postDelayed
({
AppPreferencesManager
.
get
().
put
(
Constant
.
VEDIO_MAIN_COUNT
,
0
)
readyGo
(
RecommendBannerActivity
::
class
.
java
)
},
300
)
return
}
}
// 2、每3次弹出推荐剧
val
adCount
=
AppPreferencesManager
.
get
().
getInt
(
Constant
.
VEDIO_MAIN_COUNT
,
0
)
AppPreferencesManager
.
get
().
put
(
Constant
.
VEDIO_MAIN_COUNT
,
adCount
+
1
)
if
(
mainFirstRecommend
&&
adCount
>=
3
)
{
Handler
(
Looper
.
getMainLooper
()).
postDelayed
({
AppPreferencesManager
.
get
().
put
(
Constant
.
VEDIO_MAIN_COUNT
,
0
)
readyGo
(
RecommendBannerActivity
::
class
.
java
)
},
300
)
}
// // 2、用户第一次打开app未签约付费,而是看了十次广告以上的,则在下一次打开app时关闭启动付费页面后弹出推荐弹框一次
// val mainTwoRecommend =
// AppPreferencesManager.get().getBoolean(Constant.MAIN_TWO_RECOMMEND, false)
// val adCount = AppPreferencesManager.get().getInt(Constant.VEDIO_AD_COUNT, 0)
// if (!mainTwoRecommend && adCount > data.vedio3.adShowCount) {
// AppPreferencesManager.get().put(Constant.MAIN_TWO_RECOMMEND, true)
// Handler(Looper.getMainLooper()).postDelayed({
// val bundle = Bundle()
// bundle.putString(Constant.RECOMMEND_BEAN, JsonUtil.toJson(data.vedio3))
// readyGo(RecommendActivity::class.java, bundle)
// }, 300)
// }
}
}
fun
ViewPager2
.
desensitization
()
{
//动态设置ViewPager2 灵敏度
try
{
...
...
video/app/src/main/res/layout/activity_alipaytime.xml
View file @
4cf9a81e
...
...
@@ -10,11 +10,12 @@
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<ImageView
android:layout_width=
"200dp"
android:layout_height=
"200dp"
android:layout_gravity=
"center"
android:src=
"@mipmap/ic_my_new"
></ImageView>
<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/tv_alipaytime"
...
...
video/app/src/main/res/layout/fragment_main.xml
View file @
4cf9a81e
...
...
@@ -243,17 +243,22 @@
</RelativeLayout>
</LinearLayout>
<
Image
View
<
com.airbnb.lottie.LottieAnimation
View
android:id=
"@+id/iv_kefu_main"
android:layout_width=
"80dp"
android:layout_height=
"88dp"
android:layout_marginEnd=
"5dp"
android:visibility=
"gone"
android:layout_marginBottom=
"90dp"
android:gravity=
"center"
app:lottie_fileName=
"main_alipay.json"
app:lottie_autoPlay=
"true"
app:lottie_loop=
"true"
android:orientation=
"vertical"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
/>
<LinearLayout
android:id=
"@+id/ll_lucky"
android:layout_width=
"wrap_content"
...
...
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