Commit e0a6ee7f authored by mengcuiguang's avatar mengcuiguang

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

parent 91c0d655
...@@ -10,8 +10,8 @@ android { ...@@ -10,8 +10,8 @@ android {
applicationId "com.duben.speedplaylet" applicationId "com.duben.speedplaylet"
minSdkVersion rootProject.ext.androidMinSdkVersion minSdkVersion rootProject.ext.androidMinSdkVersion
targetSdkVersion rootProject.ext.androidTargetSdkVersion targetSdkVersion rootProject.ext.androidTargetSdkVersion
versionCode 7 versionCode 8
versionName "1.0.6" versionName "1.0.7"
flavorDimensions "default" flavorDimensions "default"
// dex突破65535的限制 // dex突破65535的限制
......
...@@ -159,6 +159,11 @@ ...@@ -159,6 +159,11 @@
android:exported="false" android:exported="false"
android:theme="@style/TransparentTheme" /> android:theme="@style/TransparentTheme" />
<activity
android:name=".ui.activitys.RecommendBannerActivity"
android:exported="false"
android:theme="@style/TransparentTheme" />
<activity <activity
android:name=".ui.activitys.NinePayActivity" android:name=".ui.activitys.NinePayActivity"
android:exported="false" android:exported="false"
......
...@@ -23,6 +23,7 @@ public class AppConfig { ...@@ -23,6 +23,7 @@ public class AppConfig {
// 进入过支付界面 // 进入过支付界面
public static boolean enterVipAct = false; public static boolean enterVipAct = false;
public static boolean enterAlipay = false; public static boolean enterAlipay = false;
public static boolean showVipVedio = false;
public static long splashTime = 0L; 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 { ...@@ -48,6 +48,8 @@ public class TrackPresenter extends BaseTrackPresenter {
case 200: { case 200: {
UserManager.getInstance().saveUserInfo(baseResponse.getData()); UserManager.getInstance().saveUserInfo(baseResponse.getData());
getMyInfo();
saveTerminalInfo(); 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 ...@@ -2,6 +2,7 @@ package com.duben.speedplaylet.ui.activitys
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.os.Bundle import android.os.Bundle
import android.text.TextUtils
import android.view.KeyEvent import android.view.KeyEvent
import android.view.View import android.view.View
import com.duben.speedplaylet.R import com.duben.speedplaylet.R
...@@ -69,6 +70,10 @@ class SplashActivity : BaseActivity() { ...@@ -69,6 +70,10 @@ class SplashActivity : BaseActivity() {
} }
private fun initData() { private fun initData() {
if(!TextUtils.isEmpty(UserManager.getInstance().userID)){
TrackManager.getInstance().getMyInfo()
}
val firstSplash = get().getBoolean(Constant.FIRST_SPLASH, true) val firstSplash = get().getBoolean(Constant.FIRST_SPLASH, true)
if (!firstSplash) { if (!firstSplash) {
SplashManager.preLoadAd(this@SplashActivity) SplashManager.preLoadAd(this@SplashActivity)
......
...@@ -542,11 +542,11 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener, ...@@ -542,11 +542,11 @@ class VipActivity : BaseActivity(), VipView, View.OnClickListener,
} }
when (v.id) { when (v.id) {
R.id.iv_dialog_vip_quit -> { R.id.iv_dialog_vip_quit -> {
// if (isGuide) { if (isGuide) {
// readyGoThenKill(MainActivity::class.java) readyGoThenKill(MainActivity::class.java)
// } else { } else {
// finish() finish()
// } }
} }
R.id.tv_dialog_vip_next -> { R.id.tv_dialog_vip_next -> {
cbVipAgreement.isChecked = true cbVipAgreement.isChecked = true
......
...@@ -38,6 +38,9 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Base ...@@ -38,6 +38,9 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Base
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
// 禁止截图
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
if (android.os.Build.VERSION.SDK_INT != Build.VERSION_CODES.O) { if (android.os.Build.VERSION.SDK_INT != Build.VERSION_CODES.O) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} }
......
...@@ -7,6 +7,7 @@ import android.view.Gravity ...@@ -7,6 +7,7 @@ import android.view.Gravity
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
...@@ -38,7 +39,7 @@ class VipAdapter(val vipList: MutableList<VipBean.ListBean>) : ...@@ -38,7 +39,7 @@ class VipAdapter(val vipList: MutableList<VipBean.ListBean>) :
} }
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) { 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 tvVipItemCurMoney: TextView = view.findViewById(R.id.tvVipItemCurMoney)
val tvVipItemMoney: TextView = view.findViewById(R.id.tvVipItemMoney) val tvVipItemMoney: TextView = view.findViewById(R.id.tvVipItemMoney)
val tvVipItemTitle: TextView = view.findViewById(R.id.tvVipItemTitle) val tvVipItemTitle: TextView = view.findViewById(R.id.tvVipItemTitle)
......
...@@ -26,10 +26,6 @@ import com.duben.speedplaylet.manager.UserManager ...@@ -26,10 +26,6 @@ import com.duben.speedplaylet.manager.UserManager
import com.duben.speedplaylet.mvp.model.* import com.duben.speedplaylet.mvp.model.*
import com.duben.speedplaylet.mvp.presenters.HomePresenter import com.duben.speedplaylet.mvp.presenters.HomePresenter
import com.duben.speedplaylet.mvp.views.HomeView 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.HomeVideoPageAdapter
import com.duben.speedplaylet.ui.adapter.ImageTitleAdapter import com.duben.speedplaylet.ui.adapter.ImageTitleAdapter
import com.duben.speedplaylet.ui.adapter.TopAdapter import com.duben.speedplaylet.ui.adapter.TopAdapter
...@@ -39,6 +35,7 @@ import com.duben.speedplaylet.utils.SpanUtils ...@@ -39,6 +35,7 @@ import com.duben.speedplaylet.utils.SpanUtils
import com.duben.library.utils.GlideUtils import com.duben.library.utils.GlideUtils
import com.duben.library.utils.json.JsonUtil import com.duben.library.utils.json.JsonUtil
import com.duben.library.utils.nodoubleclick.AntiShake import com.duben.library.utils.nodoubleclick.AntiShake
import com.duben.speedplaylet.ui.activitys.*
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.*
...@@ -90,19 +87,6 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR ...@@ -90,19 +87,6 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR
* 跳转到主页面 * 跳转到主页面
*/ */
private fun goToMainActivity() { 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) { if (UserManager.getInstance().newFlag && !UserManager.getInstance().vipFlag) {
homePresenter.getRecommendVedio() homePresenter.getRecommendVedio()
...@@ -411,25 +395,23 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR ...@@ -411,25 +395,23 @@ class MainFragment : LazyLoadBaseFragment(), HomeView, View.OnClickListener, OnR
AppPreferencesManager.get().put(Constant.MAIN_FIRST_RECOMMEND, true) AppPreferencesManager.get().put(Constant.MAIN_FIRST_RECOMMEND, true)
Handler(Looper.getMainLooper()).postDelayed({ Handler(Looper.getMainLooper()).postDelayed({
val bundle = Bundle() readyGo(RecommendBannerActivity::class.java)
bundle.putString(Constant.RECOMMEND_BEAN, JsonUtil.toJson(data.vedio3))
readyGo(RecommendActivity::class.java, bundle)
}, 300) }, 300)
return return
} }
// 2、用户第一次打开app未签约付费,而是看了十次广告以上的,则在下一次打开app时关闭启动付费页面后弹出推荐弹框一次 // // 2、用户第一次打开app未签约付费,而是看了十次广告以上的,则在下一次打开app时关闭启动付费页面后弹出推荐弹框一次
val mainTwoRecommend = // val mainTwoRecommend =
AppPreferencesManager.get().getBoolean(Constant.MAIN_TWO_RECOMMEND, false) // AppPreferencesManager.get().getBoolean(Constant.MAIN_TWO_RECOMMEND, false)
val adCount = AppPreferencesManager.get().getInt(Constant.VEDIO_AD_COUNT, 0) // val adCount = AppPreferencesManager.get().getInt(Constant.VEDIO_AD_COUNT, 0)
if (!mainTwoRecommend && adCount > data.vedio3.adShowCount) { // if (!mainTwoRecommend && adCount > data.vedio3.adShowCount) {
AppPreferencesManager.get().put(Constant.MAIN_TWO_RECOMMEND, true) // AppPreferencesManager.get().put(Constant.MAIN_TWO_RECOMMEND, true)
Handler(Looper.getMainLooper()).postDelayed({ // Handler(Looper.getMainLooper()).postDelayed({
val bundle = Bundle() // val bundle = Bundle()
bundle.putString(Constant.RECOMMEND_BEAN, JsonUtil.toJson(data.vedio3)) // bundle.putString(Constant.RECOMMEND_BEAN, JsonUtil.toJson(data.vedio3))
readyGo(RecommendActivity::class.java, bundle) // readyGo(RecommendActivity::class.java, bundle)
}, 300) // }, 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"?> <?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:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rlVipItemRoot" android:id="@+id/rlVipItemRoot"
...@@ -9,26 +9,18 @@ ...@@ -9,26 +9,18 @@
android:background="@drawable/shape_vip_adapter_none" android:background="@drawable/shape_vip_adapter_none"
android:orientation="vertical"> android:orientation="vertical">
<TextView <LinearLayout
android:id="@+id/tvVipItemLable"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@mipmap/ic_vip_lable" android:layout_gravity="center"
android:gravity="center" android:orientation="vertical">
android:paddingLeft="6dp"
android:paddingTop="2dp"
android:paddingRight="6dp"
android:paddingBottom="2dp"
android:textColor="@color/color_815136"
android:textSize="14sp"
tools:text="包年会员" />
<TextView <TextView
android:id="@+id/tvVipItemTitle" android:id="@+id/tvVipItemTitle"
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_gravity="center_horizontal"
android:layout_marginTop="12dp" android:layout_marginTop="20dp"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="18sp" android:textSize="18sp"
tools:text="包年会员" /> tools:text="包年会员" />
...@@ -51,9 +43,22 @@ ...@@ -51,9 +43,22 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginBottom="16dp"
android:textColor="#939AA3" android:textColor="#939AA3"
android:textSize="14sp" android:textSize="14sp"
tools:text="原价:123" /> tools:text="原价:123" />
</LinearLayout>
</LinearLayout> <TextView
\ No newline at end of file android:id="@+id/tvVipItemLable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/ic_vip_lable"
android:gravity="center"
android:paddingLeft="6dp"
android:paddingTop="2dp"
android:paddingRight="6dp"
android:paddingBottom="2dp"
android:textColor="@color/color_815136"
android:textSize="14sp"
tools:text="包年会员" />
</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