Commit e0a6ee7f authored by mengcuiguang's avatar mengcuiguang

添加推荐banner,支付页修改逻辑

parent 91c0d655
......@@ -10,8 +10,8 @@ android {
applicationId "com.duben.speedplaylet"
minSdkVersion rootProject.ext.androidMinSdkVersion
targetSdkVersion rootProject.ext.androidTargetSdkVersion
versionCode 7
versionName "1.0.6"
versionCode 8
versionName "1.0.7"
flavorDimensions "default"
// dex突破65535的限制
......
......@@ -159,6 +159,11 @@
android:exported="false"
android:theme="@style/TransparentTheme" />
<activity
android:name=".ui.activitys.RecommendBannerActivity"
android:exported="false"
android:theme="@style/TransparentTheme" />
<activity
android:name=".ui.activitys.NinePayActivity"
android:exported="false"
......
......@@ -23,6 +23,7 @@ public class AppConfig {
// 进入过支付界面
public static boolean enterVipAct = false;
public static boolean enterAlipay = false;
public static boolean showVipVedio = false;
public static long splashTime = 0L;
}
package com.duben.speedplaylet.mvp.presenters
import com.duben.library.net.neterror.BaseSubscriber
import com.duben.library.net.neterror.Throwable
import com.duben.speedplaylet.manager.AppHttpManager
import com.duben.speedplaylet.mvp.model.BannerList
import com.duben.speedplaylet.mvp.model.BaseResponse
import com.duben.speedplaylet.mvp.views.RecommendBannerView
class RecommendBannerPresenter : BasePresenter<RecommendBannerView>() {
fun orders() {
AppHttpManager.getInstance(loanApplication)
.call(loanService.orders(),
object : BaseSubscriber<BaseResponse<BannerList>>() {
override fun onCompleted() {
if (isLinkView) return
}
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 -> {
view.ordersSuc(baseResponse.data)
}
else -> {
view.showToast(message)
}
}
}
})
}
}
\ No newline at end of file
......@@ -48,6 +48,8 @@ public class TrackPresenter extends BaseTrackPresenter {
case 200: {
UserManager.getInstance().saveUserInfo(baseResponse.getData());
getMyInfo();
saveTerminalInfo();
}
}
......
package com.duben.speedplaylet.mvp.views
import com.duben.speedplaylet.mvp.model.BannerList
import com.duben.speedplaylet.mvp.model.UserBean
import com.duben.speedplaylet.mvp.model.VipBean
import com.duben.speedplaylet.mvp.model.WxPayParamBean
interface RecommendBannerView : BaseView {
fun ordersSuc(data: BannerList?)
}
\ No newline at end of file
package com.duben.speedplaylet.ui.activitys
import android.view.KeyEvent
import android.view.View
import com.duben.library.utils.nodoubleclick.AntiShake
import com.duben.speedplaylet.R
import com.duben.speedplaylet.mvp.model.BannerList
import com.duben.speedplaylet.mvp.model.VedioBean
import com.duben.speedplaylet.mvp.presenters.RecommendBannerPresenter
import com.duben.speedplaylet.mvp.views.RecommendBannerView
import com.duben.speedplaylet.ui.activitys.base.BaseActivity
import com.duben.speedplaylet.ui.adapter.VipBannerAdapter
import com.youth.banner.listener.OnPageChangeListener
import kotlinx.android.synthetic.main.activity_recommend_banner.*
class RecommendBannerActivity : BaseActivity(),RecommendBannerView, View.OnClickListener {
private val recommendBannerPresenter by lazy { RecommendBannerPresenter() }
override fun getContentViewLayoutID() = R.layout.activity_recommend_banner
override fun isApplyKitKatTranslucency() = false
override fun toggleOverridePendingTransition() = true
override fun getOverridePendingTransitionMode() = TransitionMode.FADE
override fun initViewsAndEvents() {
recommendBannerPresenter.attachView(this)
recommendBannerPresenter.orders()
initListener()
}
private fun initListener() {
// tv_nine_know_next.setOnClickListener(this)
}
override fun onDestroy() {
super.onDestroy()
recommendBannerPresenter.detachView()
}
override fun ordersSuc(data: BannerList?) {
data?.let {
setBanner(it.list)
}
}
override fun finish() {
super.finish()
overridePendingTransition(0, R.anim.scale_out)
}
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
return if (keyCode == KeyEvent.KEYCODE_BACK) {
true
} else super.onKeyDown(
keyCode,
event
)
}
override fun onClick(v: View) {
if (AntiShake.check(v.id)) return
when (v.id) {
// R.id.tv_nine_know_next -> {
// finish()
// }
}
}
private fun setBanner(data: List<VedioBean>) {
val adapter = VipBannerAdapter(data)
// 绑定生命周期
vip_banner.addBannerLifecycleObserver(this)
.setBannerGalleryEffect(80, 15, 0.8f)
.setAdapter(adapter)
.setOnBannerListener { data2, position ->
// val banner = data.list.get(position)
}
.addOnPageChangeListener(object : OnPageChangeListener {
override fun onPageScrolled(
position: Int,
positionOffset: Float,
positionOffsetPixels: Int
) {
}
override fun onPageSelected(position: Int) {
// GlideUtils.loadBlurImageView(mContext, data[position].coverImage, iv_blur)
tv_banner_title.text = String.format("《%1s》", data[position].title)
}
override fun onPageScrollStateChanged(state: Int) {}
})
// GlideUtils.loadBlurImageView(mContext, data[0].coverImage, iv_blur)
tv_banner_title.text = String.format("《%1s》", data[0].title)
}
}
\ No newline at end of file
......@@ -2,6 +2,7 @@ package com.duben.speedplaylet.ui.activitys
import android.annotation.SuppressLint
import android.os.Bundle
import android.text.TextUtils
import android.view.KeyEvent
import android.view.View
import com.duben.speedplaylet.R
......@@ -69,6 +70,10 @@ class SplashActivity : BaseActivity() {
}
private fun initData() {
if(!TextUtils.isEmpty(UserManager.getInstance().userID)){
TrackManager.getInstance().getMyInfo()
}
val firstSplash = get().getBoolean(Constant.FIRST_SPLASH, true)
if (!firstSplash) {
SplashManager.preLoadAd(this@SplashActivity)
......
......@@ -542,11 +542,11 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener,
}
when (v.id) {
R.id.iv_dialog_vip_quit -> {
// if (isGuide) {
// readyGoThenKill(MainActivity::class.java)
// } else {
// finish()
// }
if (isGuide) {
readyGoThenKill(MainActivity::class.java)
} else {
finish()
}
}
R.id.tv_dialog_vip_next -> {
cbVipAgreement.isChecked = true
......
......@@ -38,6 +38,9 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Base
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 禁止截图
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
if (android.os.Build.VERSION.SDK_INT != Build.VERSION_CODES.O) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
......
......@@ -7,6 +7,7 @@ import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.LinearLayout
import android.widget.TextView
import androidx.core.content.ContextCompat
......@@ -38,7 +39,7 @@ class VipAdapter(val vipList: MutableList<VipBean.ListBean>) :
}
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val rlVipItemRoot: LinearLayout = view.findViewById(R.id.rlVipItemRoot)
val rlVipItemRoot: FrameLayout = view.findViewById(R.id.rlVipItemRoot)
val tvVipItemCurMoney: TextView = view.findViewById(R.id.tvVipItemCurMoney)
val tvVipItemMoney: TextView = view.findViewById(R.id.tvVipItemMoney)
val tvVipItemTitle: TextView = view.findViewById(R.id.tvVipItemTitle)
......
......@@ -26,10 +26,6 @@ import com.duben.speedplaylet.manager.UserManager
import com.duben.speedplaylet.mvp.model.*
import com.duben.speedplaylet.mvp.presenters.HomePresenter
import com.duben.speedplaylet.mvp.views.HomeView
import com.duben.speedplaylet.ui.activitys.NineActivity
import com.duben.speedplaylet.ui.activitys.NinePayActivity
import com.duben.speedplaylet.ui.activitys.RecommendActivity
import com.duben.speedplaylet.ui.activitys.VipActivity
import com.duben.speedplaylet.ui.adapter.HomeVideoPageAdapter
import com.duben.speedplaylet.ui.adapter.ImageTitleAdapter
import com.duben.speedplaylet.ui.adapter.TopAdapter
......@@ -39,6 +35,7 @@ import com.duben.speedplaylet.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.speedplaylet.ui.activitys.*
import kotlinx.android.synthetic.main.fragment_main.*
import java.lang.reflect.Field
import java.util.*
......@@ -90,19 +87,6 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR
* 跳转到主页面
*/
private fun goToMainActivity() {
// val firstVedio = AppPreferencesManager.get().getBoolean(Constant.IS_FIRST_VEDIO, false)
// if (firstVedio) {
// if (UserManager.getInstance().newFlag && !UserManager.getInstance().vipFlag) {
// homePresenter.getRecommendVedio()
//
// val bundle = Bundle()
// bundle.putBoolean(VipActivity.IS_MAIN, true)
// readyGo(VipActivity::class.java, bundle)
// }
// } else {
// homePresenter.getSoltVedio()
// }
if (UserManager.getInstance().newFlag && !UserManager.getInstance().vipFlag) {
homePresenter.getRecommendVedio()
......@@ -411,25 +395,23 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR
AppPreferencesManager.get().put(Constant.MAIN_FIRST_RECOMMEND, true)
Handler(Looper.getMainLooper()).postDelayed({
val bundle = Bundle()
bundle.putString(Constant.RECOMMEND_BEAN, JsonUtil.toJson(data.vedio3))
readyGo(RecommendActivity::class.java, bundle)
readyGo(RecommendBannerActivity::class.java)
}, 300)
return
}
// 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)
}
// // 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)
// }
}
}
}
......
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#90000000"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical">
<com.youth.banner.Banner
android:id="@+id/vip_banner"
android:layout_width="match_parent"
android:layout_height="220dp" />
<TextView
android:id="@+id/tv_banner_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:textColor="@color/white"
android:textSize="18sp" />
</LinearLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rlVipItemRoot"
......@@ -9,6 +9,45 @@
android:background="@drawable/shape_vip_adapter_none"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/tvVipItemTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:textColor="@color/white"
android:textSize="18sp"
tools:text="包年会员" />
<TextView
android:id="@+id/tvVipItemCurMoney"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp"
android:gravity="center"
android:textColor="#373737"
android:textSize="14sp"
android:textStyle="bold"
tools:text="$78" />
<TextView
android:id="@+id/tvVipItemMoney"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:textColor="#939AA3"
android:textSize="14sp"
tools:text="原价:123" />
</LinearLayout>
<TextView
android:id="@+id/tvVipItemLable"
android:layout_width="wrap_content"
......@@ -22,38 +61,4 @@
android:textColor="@color/color_815136"
android:textSize="14sp"
tools:text="包年会员" />
<TextView
android:id="@+id/tvVipItemTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="12dp"
android:textColor="@color/white"
android:textSize="18sp"
tools:text="包年会员" />
<TextView
android:id="@+id/tvVipItemCurMoney"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp"
android:gravity="center"
android:textColor="#373737"
android:textSize="14sp"
android:textStyle="bold"
tools:text="$78" />
<TextView
android:id="@+id/tvVipItemMoney"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="16dp"
android:textColor="#939AA3"
android:textSize="14sp"
tools:text="原价:123" />
</LinearLayout>
\ No newline at end of file
</FrameLayout>
\ No newline at end of file
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