Commit 4cf9a81e authored by mengcuiguang's avatar mengcuiguang

代码优化

parent d809c8ce
This diff is collapsed.
This diff is collapsed.
...@@ -11,6 +11,8 @@ import com.duben.loveplayletu.utils.AppPreferencesManager ...@@ -11,6 +11,8 @@ import com.duben.loveplayletu.utils.AppPreferencesManager
import com.duben.loveplayletu.utils.DeviceUuidFactory import com.duben.loveplayletu.utils.DeviceUuidFactory
import com.duben.library.net.neterror.BaseSubscriber import com.duben.library.net.neterror.BaseSubscriber
import com.duben.library.net.neterror.Throwable import com.duben.library.net.neterror.Throwable
import com.duben.loveplayletu.common.AppConfig
import com.google.gson.JsonObject
import java.util.HashMap import java.util.HashMap
class HomePresenter : BasePresenter<HomeView>() { class HomePresenter : BasePresenter<HomeView>() {
...@@ -77,47 +79,40 @@ class HomePresenter : BasePresenter<HomeView>() { ...@@ -77,47 +79,40 @@ class HomePresenter : BasePresenter<HomeView>() {
}) })
} }
private fun showTurn() { fun orders() {
AppHttpManager.getInstance(loanApplication) AppHttpManager.getInstance(loanApplication)
.call(loanService.showTurn(), .call(loanService.orders(),
object : BaseSubscriber<BaseResponse<NineShowBean>>() { object : BaseSubscriber<BaseResponse<BannerList>>() {
override fun onCompleted() { override fun onCompleted() {
if (isLinkView) return 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 if (isLinkView) return
val code = baseResponse.status val code = baseResponse.status
val message = baseResponse.message val message = baseResponse.message
when (code) { when (code) {
200 -> { 200 -> {
val data = baseResponse.data view.ordersSuc(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)
}
} }
else -> {
view.showToast(message)
} }
} }
override fun onError(e: Throwable?) {
if (isLinkView) return
} }
}) })
} }
fun orders() { fun signAfterSeconds() {
AppHttpManager.getInstance(loanApplication) AppHttpManager.getInstance(loanApplication)
.call(loanService.orders(), .call(loanService.signAfterSeconds(),
object : BaseSubscriber<BaseResponse<BannerList>>() { object : BaseSubscriber<BaseResponse<JsonObject>>() {
override fun onCompleted() { override fun onCompleted() {
if (isLinkView) return if (isLinkView) return
} }
...@@ -126,15 +121,17 @@ class HomePresenter : BasePresenter<HomeView>() { ...@@ -126,15 +121,17 @@ class HomePresenter : BasePresenter<HomeView>() {
if (isLinkView) return if (isLinkView) return
} }
override fun onNext(baseResponse: BaseResponse<BannerList>) { override fun onNext(baseResponse: BaseResponse<JsonObject>) {
if (isLinkView) return if (isLinkView) return
val code = baseResponse.status val code = baseResponse.status
val message = baseResponse.message val message = baseResponse.message
when (code) { when (code) {
200 -> { 200 -> {
view.ordersSuc(baseResponse.data) try {
view.signAfterSecondsSuc(baseResponse.data.get("time").asInt)
} catch (e: Exception) {
e.printStackTrace()
}
} }
else -> { else -> {
view.showToast(message) view.showToast(message)
......
...@@ -10,5 +10,5 @@ interface HomeView : BaseView { ...@@ -10,5 +10,5 @@ interface HomeView : BaseView {
fun getSoltVedioSuc(data: IndexList?) fun getSoltVedioSuc(data: IndexList?)
fun getRecommendVedioSuc(data: RecoBean?) fun getRecommendVedioSuc(data: RecoBean?)
fun showTurnSuc(data: NineShowBean) fun signAfterSecondsSuc(time:Int)
} }
...@@ -343,6 +343,12 @@ public interface LoanService { ...@@ -343,6 +343,12 @@ public interface LoanService {
@POST("api/vedioV1/confs") @POST("api/vedioV1/confs")
Observable<BaseResponse<JsonObject>> showVedioConfs(); Observable<BaseResponse<JsonObject>> showVedioConfs();
/**
* 视频页广告开关
*/
@POST("api/vip/signAfterSeconds")
Observable<BaseResponse<JsonObject>> signAfterSeconds();
/** /**
* 默认http工厂 * 默认http工厂
......
package com.duben.loveplayletu.ui.activitys package com.duben.loveplayletu.ui.activitys
import android.os.Bundle
import android.view.KeyEvent import android.view.KeyEvent
import android.view.View 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.library.utils.nodoubleclick.AntiShake
import com.duben.loveplayletu.R 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.activitys.base.BaseActivity
import com.duben.loveplayletu.ui.widgets.SimpleCountDownTimer import com.duben.loveplayletu.ui.widgets.SimpleCountDownTimer
import kotlinx.android.synthetic.main.activity_alipaytime.* import kotlinx.android.synthetic.main.activity_alipaytime.*
...@@ -14,8 +20,12 @@ import kotlinx.android.synthetic.main.activity_alipaytime.* ...@@ -14,8 +20,12 @@ import kotlinx.android.synthetic.main.activity_alipaytime.*
* 作者:孟崔广 * 作者:孟崔广
*/ */
class AlipayTimeActivity : BaseActivity(), View.OnClickListener { class AlipayTimeActivity : BaseActivity(), View.OnClickListener {
companion object {
const val ALIPAY_TIME = "alipay_time"
}
private var countDownTimer: SimpleCountDownTimer? = null private var countDownTimer: SimpleCountDownTimer? = null
private var alipaytime = 0
override fun getContentViewLayoutID() = R.layout.activity_alipaytime override fun getContentViewLayoutID() = R.layout.activity_alipaytime
...@@ -25,9 +35,16 @@ class AlipayTimeActivity : BaseActivity(), View.OnClickListener { ...@@ -25,9 +35,16 @@ class AlipayTimeActivity : BaseActivity(), View.OnClickListener {
override fun getOverridePendingTransitionMode() = TransitionMode.FADE override fun getOverridePendingTransitionMode() = TransitionMode.FADE
override fun getBundleExtras(extras: Bundle?) {
super.getBundleExtras(extras)
extras?.let {
alipaytime = it.getInt(ALIPAY_TIME, 0)
}
}
override fun initViewsAndEvents() { override fun initViewsAndEvents() {
countDownTimer= SimpleCountDownTimer(30*60*1000, tv_alipaytime).setOnFinishListener { countDownTimer = SimpleCountDownTimer(alipaytime.toLong() * 1000, tv_alipaytime).setOnFinishListener {
showToast("11111") finish()
}.start() as SimpleCountDownTimer? }.start() as SimpleCountDownTimer?
} }
...@@ -57,4 +74,15 @@ class AlipayTimeActivity : BaseActivity(), View.OnClickListener { ...@@ -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
...@@ -11,10 +11,8 @@ import androidx.core.content.ContextCompat ...@@ -11,10 +11,8 @@ import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import androidx.viewpager2.widget.ViewPager2 import androidx.viewpager2.widget.ViewPager2
import com.google.android.material.tabs.TabLayout import com.duben.library.utils.GlideUtils
import com.google.android.material.tabs.TabLayoutMediator import com.duben.library.utils.nodoubleclick.AntiShake
import com.scwang.smartrefresh.layout.api.RefreshLayout
import com.scwang.smartrefresh.layout.listener.OnRefreshListener
import com.duben.loveplayletu.R import com.duben.loveplayletu.R
import com.duben.loveplayletu.ad.AdManager import com.duben.loveplayletu.ad.AdManager
import com.duben.loveplayletu.ad.banner.BannerManager import com.duben.loveplayletu.ad.banner.BannerManager
...@@ -26,16 +24,20 @@ import com.duben.loveplayletu.manager.UserManager ...@@ -26,16 +24,20 @@ import com.duben.loveplayletu.manager.UserManager
import com.duben.loveplayletu.mvp.model.* import com.duben.loveplayletu.mvp.model.*
import com.duben.loveplayletu.mvp.presenters.HomePresenter import com.duben.loveplayletu.mvp.presenters.HomePresenter
import com.duben.loveplayletu.mvp.views.HomeView 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.HomeVideoPageAdapter
import com.duben.loveplayletu.ui.adapter.ImageTitleAdapter import com.duben.loveplayletu.ui.adapter.ImageTitleAdapter
import com.duben.loveplayletu.ui.adapter.TopAdapter import com.duben.loveplayletu.ui.adapter.TopAdapter
import com.duben.loveplayletu.ui.fragment.base.LazyLoadBaseFragment 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.AppPreferencesManager
import com.duben.loveplayletu.utils.SpanUtils import com.google.android.material.tabs.TabLayout
import com.duben.library.utils.GlideUtils import com.google.android.material.tabs.TabLayoutMediator
import com.duben.library.utils.json.JsonUtil import com.scwang.smartrefresh.layout.api.RefreshLayout
import com.duben.library.utils.nodoubleclick.AntiShake import com.scwang.smartrefresh.layout.listener.OnRefreshListener
import com.duben.loveplayletu.ui.activitys.* import kotlinx.android.synthetic.main.activity_alipaytime.*
import kotlinx.android.synthetic.main.fragment_main.* import kotlinx.android.synthetic.main.fragment_main.*
import java.lang.reflect.Field import java.lang.reflect.Field
import java.util.* import java.util.*
...@@ -58,6 +60,8 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR ...@@ -58,6 +60,8 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR
private var vpAdapter: HomeVideoPageAdapter? = null private var vpAdapter: HomeVideoPageAdapter? = null
private var topAdapter: TopAdapter? = null private var topAdapter: TopAdapter? = null
private var recommendVedioBean: RecoBean? = null private var recommendVedioBean: RecoBean? = null
private var countDownTimer: SimpleCountDownTimer? = null
private var alipayTime = 0
private val homePresenter by lazy { HomePresenter() } private val homePresenter by lazy { HomePresenter() }
...@@ -116,11 +120,11 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR ...@@ -116,11 +120,11 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR
} else { } else {
homePresenter.topTabs() homePresenter.topTabs()
homePresenter.orders() homePresenter.orders()
homePresenter.signAfterSeconds()
TrackManager.getInstance().getMyInfo() TrackManager.getInstance().getMyInfo()
// showRecommendAct()
} }
AppConfig.showVipAdDialog=false AppConfig.showVipAdDialog = false
} }
} }
...@@ -149,8 +153,9 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR ...@@ -149,8 +153,9 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR
if (AntiShake.check(v?.id)) return if (AntiShake.check(v?.id)) return
when (v?.id) { when (v?.id) {
R.id.iv_kefu_main -> { R.id.iv_kefu_main -> {
// (requireActivity() as MainActivity).backPhoneDialog() val bundle = Bundle()
readyGo(AlipayTimeActivity::class.java) bundle.putInt(AlipayTimeActivity.ALIPAY_TIME, alipayTime)
readyGo(AlipayTimeActivity::class.java, bundle)
} }
R.id.iv_main_watching_close -> { R.id.iv_main_watching_close -> {
LocalVedioManager.closeCacheVedio() LocalVedioManager.closeCacheVedio()
...@@ -347,44 +352,24 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR ...@@ -347,44 +352,24 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR
this.recommendVedioBean = data this.recommendVedioBean = data
} }
override fun signAfterSecondsSuc(time: Int) {
override fun showTurnSuc(data: NineShowBean) { this.alipayTime = time
AppPreferencesManager.get().put(Constant.LUCKY_FLAG, data.isShow) if (countDownTimer != null) {
countDownTimer!!.cancel()
if (!data.isShow || UserManager.getInstance().vipFlag) { countDownTimer = null
ll_lucky.visibility = View.GONE
return
} else {
ll_lucky.visibility = View.VISIBLE
context?.let { GlideUtils.loadRoundImageViewGif(it, R.drawable.ic_nine, iv_lucky_gif) }
} }
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 { } else {
tv_lucky_status.text = SpanUtils() iv_kefu_main.visibility = View.GONE
.append(complete.toString())
.setForegroundColor(resources.getColor(R.color.red))
.append("/")
.append(need.toString())
.create()
} }
} }
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) { override fun onFragmentResume(firstResume: Boolean) {
super.onFragmentResume(firstResume) super.onFragmentResume(firstResume)
...@@ -396,61 +381,6 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR ...@@ -396,61 +381,6 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR
vpAdapter?.getFragments()?.get(mSelectTabIndex)?.onPause() 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() { fun ViewPager2.desensitization() {
//动态设置ViewPager2 灵敏度 //动态设置ViewPager2 灵敏度
try { try {
......
...@@ -10,11 +10,12 @@ ...@@ -10,11 +10,12 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<ImageView <com.airbnb.lottie.LottieAnimationView
android:layout_width="200dp" android:id="@+id/zan_iv"
android:layout_height="200dp" android:layout_width="35dp"
android:layout_gravity="center" android:layout_height="35dp"
android:src="@mipmap/ic_my_new"></ImageView> android:layout_marginTop="10dp"
android:src="@mipmap/home_collect_img_0" />
<TextView <TextView
android:id="@+id/tv_alipaytime" android:id="@+id/tv_alipaytime"
......
...@@ -243,17 +243,22 @@ ...@@ -243,17 +243,22 @@
</RelativeLayout> </RelativeLayout>
</LinearLayout> </LinearLayout>
<ImageView <com.airbnb.lottie.LottieAnimationView
android:id="@+id/iv_kefu_main" android:id="@+id/iv_kefu_main"
android:layout_width="80dp" android:layout_width="80dp"
android:layout_height="88dp" android:layout_height="88dp"
android:layout_marginEnd="5dp" android:layout_marginEnd="5dp"
android:visibility="gone"
android:layout_marginBottom="90dp" android:layout_marginBottom="90dp"
android:gravity="center" android:gravity="center"
app:lottie_fileName="main_alipay.json"
app:lottie_autoPlay="true"
app:lottie_loop="true"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" /> app:layout_constraintEnd_toEndOf="parent" />
<LinearLayout <LinearLayout
android:id="@+id/ll_lucky" android:id="@+id/ll_lucky"
android:layout_width="wrap_content" android:layout_width="wrap_content"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment