Commit 583105f3 authored by 王雪伟's avatar 王雪伟

[提交人]:王雪伟

[提交简述] :加入充值
[实现方案] :
parent 460cdf3b
......@@ -24,4 +24,5 @@ public class AppContext {
return mAppContext;
}
}
}
\ No newline at end of file
......@@ -9,6 +9,7 @@ import android.Manifest;
public class Constant {
public static String PAY_PAL_CLIENT_ID ="AeCOQewq8tWcuy7V2YsL3S3IRMDZk6zSTtHP76x-yiHIgYN7PZ1xT4Iyzv-2zJm15OqR5sWjc6__9xhE";
// public static String PAY_PAL_CLIENT_ID ="AfYZMocYWtjeORYcG29SjvjJjS8L9_Mh8xlTi74ifLXboxFaVb43F_ZLc8geZVqLN47m2wr9PD24tRIh";
//公共参数
String UMENG_APPKEY = "597dbf2abbea835685001b27";
......@@ -55,6 +56,7 @@ public class Constant {
public static String PAY_TYPE_COIN = "0";
public static String PAY_TYPE_VIP = "1";
public static String PAY_TYPE_VIP_DIALOG = "2";
}
......
......@@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView
import com.zxhl.cms.R
import com.zxhl.cms.common.base.BaseRecyclerAdapter
import com.zxhl.cms.net.model.pay.VipPayEntity
import com.zxhl.cms.net.model.video.MemberEntity
import com.zxhl.cms.utils.OnRecycleItemClickListener
/**
......@@ -18,14 +19,15 @@ import com.zxhl.cms.utils.OnRecycleItemClickListener
* @datetime 2022-04-12 19:04 GMT+8
* @detail :
*/
class BecomeVipDialogPriceAdapter : BaseRecyclerAdapter<VipPayEntity, BecomeVipDialogPriceAdapter.ViewHolder> {
class BecomeVipDialogPriceAdapter :
BaseRecyclerAdapter<MemberEntity.ProductDetail, BecomeVipDialogPriceAdapter.ViewHolder> {
private var mContext: Context? = null
private var mPosition = 0
private val listener: OnRecycleItemClickListener<VipPayEntity>
private val listener: OnRecycleItemClickListener<MemberEntity.ProductDetail>
constructor(
content: Context?,
listener: OnRecycleItemClickListener<VipPayEntity>
listener: OnRecycleItemClickListener<MemberEntity.ProductDetail>
) : super() {
this.listener = listener
mContext = content
......@@ -36,7 +38,10 @@ class BecomeVipDialogPriceAdapter : BaseRecyclerAdapter<VipPayEntity, BecomeVipD
notifyDataSetChanged()
}
override fun onCreateViewHolder(holder: ViewGroup, p1: Int): BecomeVipDialogPriceAdapter.ViewHolder {
override fun onCreateViewHolder(
holder: ViewGroup,
p1: Int
): BecomeVipDialogPriceAdapter.ViewHolder {
return ViewHolder(
LayoutInflater.from(holder.context)
.inflate(R.layout.item_layout_become_dialog_vip_price_view, holder, false)
......@@ -44,29 +49,30 @@ class BecomeVipDialogPriceAdapter : BaseRecyclerAdapter<VipPayEntity, BecomeVipD
}
override fun onBindViewHolder(holder: BecomeVipDialogPriceAdapter.ViewHolder, position: Int) {
// val data = mList[position]
holder.id_vip_time.text = "1 Week +"
holder.id_coin_num.text = "780"
holder.id_money.text = "$${2.99}"
if (mPosition==position){
holder.id_item_view.background = mContext?.getDrawable(R.drawable.shape_8857ff_bd8aff_bg_r10)
val data = mList[position]
holder.id_vip_time.text = "${data.name}"
holder.id_coin_num.text = "${data.buttonText}"
holder.id_money.text = "$${data.title}"
if (mPosition == position) {
holder.id_item_view.background =
mContext?.getDrawable(R.drawable.shape_8857ff_bd8aff_bg_r10)
holder.id_vip_time.setTextColor(Color.parseColor("#FFFFFF"))
holder.id_coin_num.setTextColor(Color.parseColor("#FFFFFF"))
holder.id_money.setTextColor(Color.parseColor("#FFFFFF"))
}else{
} else {
holder.id_item_view.background = mContext?.getDrawable(R.drawable.shape_f4edff_r10_bg)
holder.id_vip_time.setTextColor(Color.parseColor("#333333"))
holder.id_coin_num.setTextColor(Color.parseColor("#333333"))
holder.id_money.setTextColor(Color.parseColor("#333333"))
}
holder.id_item_view?.setOnClickListener {
listener.onItemClick(it,position,null)
listener.onItemClick(it, position, null)
}
}
override fun getItemCount(): Int {
return 3
}
//
// override fun getItemCount(): Int {
// return 3
// }
inner class ViewHolder : RecyclerView.ViewHolder {
......
......@@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView
import com.zxhl.cms.R
import com.zxhl.cms.common.base.BaseRecyclerAdapter
import com.zxhl.cms.net.model.pay.VipPayEntity
import com.zxhl.cms.net.model.video.MemberEntity
import com.zxhl.cms.utils.OnRecycleItemClickListener
/**
......@@ -18,14 +19,15 @@ import com.zxhl.cms.utils.OnRecycleItemClickListener
* @datetime 2022-04-12 19:04 GMT+8
* @detail :
*/
class BecomeVipPriceAdapter : BaseRecyclerAdapter<VipPayEntity, BecomeVipPriceAdapter.ViewHolder> {
class BecomeVipPriceAdapter :
BaseRecyclerAdapter<MemberEntity.ProductDetail, BecomeVipPriceAdapter.ViewHolder> {
private var mContext: Context? = null
private var mPosition = 0
private val listener: OnRecycleItemClickListener<VipPayEntity>
private val listener: OnRecycleItemClickListener<MemberEntity.ProductDetail>
constructor(
content: Context?,
listener: OnRecycleItemClickListener<VipPayEntity>
listener: OnRecycleItemClickListener<MemberEntity.ProductDetail>
) : super() {
this.listener = listener
mContext = content
......@@ -44,26 +46,27 @@ class BecomeVipPriceAdapter : BaseRecyclerAdapter<VipPayEntity, BecomeVipPriceAd
}
override fun onBindViewHolder(holder: BecomeVipPriceAdapter.ViewHolder, position: Int) {
// val data = mList[position]
holder.id_vip_time.text = "1 Week"
holder.id_vip_money.text = "$${2.99}"
if (mPosition==position){
holder.id_item_view.background = mContext?.getDrawable(R.drawable.shape_8857ff_bd8aff_bg_r10)
val data = mList[position]
holder.id_vip_time.text = "${data.name}"
holder.id_vip_money.text = "$${data.title}"
if (mPosition == position) {
holder.id_item_view.background =
mContext?.getDrawable(R.drawable.shape_8857ff_bd8aff_bg_r10)
holder.id_vip_time.setTextColor(Color.parseColor("#FFFFFF"))
holder.id_vip_money.setTextColor(Color.parseColor("#FFFFFF"))
}else{
} else {
holder.id_item_view.background = mContext?.getDrawable(R.drawable.shape_white_r10)
holder.id_vip_time.setTextColor(Color.parseColor("#333333"))
holder.id_vip_money.setTextColor(Color.parseColor("#333333"))
}
holder.id_item_view?.setOnClickListener {
listener.onItemClick(it,position,null)
listener.onItemClick(it, position, data)
}
}
override fun getItemCount(): Int {
return 3
}
// override fun getItemCount(): Int {
// return 3
// }
inner class ViewHolder : RecyclerView.ViewHolder {
......
......@@ -11,6 +11,7 @@ import com.zxhl.cms.R
import com.zxhl.cms.common.base.BaseRecyclerAdapter
import com.zxhl.cms.net.model.chat.RecordEntity
import com.zxhl.cms.net.model.pay.VipPayEntity
import com.zxhl.cms.net.model.video.MemberEntity
import com.zxhl.cms.utils.OnRecycleItemClickListener
/**
......@@ -18,13 +19,14 @@ import com.zxhl.cms.utils.OnRecycleItemClickListener
* @datetime 2022-04-12 19:04 GMT+8
* @detail :
*/
class CoinStoreAdapter: BaseRecyclerAdapter<RecordEntity, CoinStoreAdapter.ViewHolder> {
class CoinStoreAdapter :
BaseRecyclerAdapter<MemberEntity.ProductDetail, CoinStoreAdapter.ViewHolder> {
private var mContext: Context? = null
private val listener: OnRecycleItemClickListener<RecordEntity>
private val listener: OnRecycleItemClickListener<MemberEntity.ProductDetail>
constructor(
content: Context?,
listener: OnRecycleItemClickListener<RecordEntity>
listener: OnRecycleItemClickListener<MemberEntity.ProductDetail>
) : super() {
this.listener = listener
mContext = content
......@@ -38,17 +40,17 @@ class CoinStoreAdapter: BaseRecyclerAdapter<RecordEntity, CoinStoreAdapter.ViewH
}
override fun onBindViewHolder(holder: CoinStoreAdapter.ViewHolder, position: Int) {
// val data = mList[position]
holder.id_tv_coin.text="${360}"
holder.id_tv_money.text="$${4.99}"
val data = mList[position]
holder.id_tv_coin.text = "${data.name}"
holder.id_tv_money.text = "$${data.title}"
holder.id_ll_item_view.setOnClickListener {
listener?.onItemClick(it,position,null)
listener?.onItemClick(it, position, data)
}
}
override fun getItemCount(): Int {
return 4
}
// override fun getItemCount(): Int {
// return 4
// }
inner class ViewHolder : RecyclerView.ViewHolder {
......
package com.zxhl.cms.pay.contract
import com.zxhl.cms.net.model.pay.CoinStoreEntity
import com.zxhl.cms.net.model.video.MemberEntity
class CoinStoreContract {
interface View {
fun setCoinPayList(result: List<CoinStoreEntity>?)
fun setCoinPayList(result: List<MemberEntity.ProductDetail>?)
fun setUserCoins(coinNum: Double)
}
......
package com.zxhl.cms.pay.contract
import com.zxhl.cms.net.model.pay.CoinStoreEntity
import com.zxhl.cms.net.model.video.MemberEntity
class VipPayContract {
interface View {
fun setVipPayList(result: List<CoinStoreEntity>?)
fun setVipPayList(result: List<MemberEntity.ProductDetail>?)
}
interface Presenter {
......
package com.zxhl.cms.pay.contract
import com.zxhl.cms.net.model.video.MemberEntity
class VipPayDialogContract {
interface View {
fun setVipPayList(result: List<MemberEntity.ProductDetail>?)
}
interface Presenter {
fun getVipPayList()
}
}
\ No newline at end of file
......@@ -46,24 +46,22 @@ class PayPalHelper {
) {
mPayButton = payView;
mPayCallBack = payCallBack
startPay("2222", goodsPrice)
//向服务端获取订单ID
// ApiClient.userInfoAPi.googlePay(goodsId, "5", "", "", payMode)
// .compose(RxSchedulers.observableIO2Main())
// .subscribe(object : BaseObserver<GooglePayEntity>() {
// override fun onSuccess(result: GooglePayEntity?) {
// if (result != null) {
// startPay(result.outTradeNo, goodsPrice)
// } else {
// mPayCallBack?.onError("payPalPay 未获取到订单数据")
// }
// }
//
// override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
// mPayCallBack?.onError("payPalPay 获取订单号接口异常 Error:$errorMsg")
// }
// })
ApiClient.userInfoAPi.googlePay(goodsId, "5", "", "", payMode)
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<GooglePayEntity>() {
override fun onSuccess(result: GooglePayEntity?) {
if (result != null) {
startPay(result.outTradeNo, goodsPrice)
} else {
mPayCallBack?.onError("payPalPay 未获取到订单数据")
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
mPayCallBack?.onError("payPalPay 获取订单号接口异常 Error:$errorMsg")
}
})
}
private fun startPay(orderId: String, price: String) {
......@@ -79,7 +77,7 @@ class PayPalHelper {
//金额相关
amount = Amount(currencyCode = CurrencyCode.USD, value = price),
//发票编号
invoiceId = orderId,
invoiceId = orderId
//引用ID
// referenceId = "" + System.currentTimeMillis(),
// customId = orderId,
......@@ -113,11 +111,19 @@ class PayPalHelper {
// Log.e(TAG, "CaptureOrder approval.data.orderId: ${approval.data.cart}")
// Log.e(TAG, "CaptureOrder approval.data.orderId: ${approval.data.payer}")
if (captureOrderResult is CaptureOrderResult.Success) {
var result = if (!captureOrderResult.orderResponse?.purchaseUnits?.get(0)?.payments?.captures?.get(0)?.id.isNullOrEmpty()) {
"{\"orderId\":\"${orderId}\",\"payPalId\":\"${captureOrderResult.orderResponse?.purchaseUnits?.get(0)?.payments?.captures?.get(0)?.id}\"}"
} else {
"{\"orderId\":\"${orderId}\",\"payPalId\":\"\"}"
}
var result =
if (!captureOrderResult.orderResponse?.purchaseUnits?.get(0)?.payments?.captures?.get(
0
)?.id.isNullOrEmpty()
) {
"{\"orderId\":\"${orderId}\",\"payPalId\":\"${
captureOrderResult.orderResponse?.purchaseUnits?.get(
0
)?.payments?.captures?.get(0)?.id
}\"}"
} else {
"{\"orderId\":\"${orderId}\",\"payPalId\":\"\"}"
}
mPayCallBack?.onPaySuccess(result)
} else if (captureOrderResult is CaptureOrderResult.Error) {
mPayCallBack?.onError("PayPal 获取订单失败 msg: ${captureOrderResult.message} reason:${captureOrderResult.reason}")
......
package com.zxhl.cms.pay.presenter
import com.zxhl.cms.net.ApiClient
import com.zxhl.cms.net.RxSchedulers
import com.zxhl.cms.net.callback.BaseObserver
import com.zxhl.cms.net.model.video.MemberEntity
import com.zxhl.cms.pay.contract.CoinStoreContract
/**
......@@ -16,7 +20,17 @@ class CoinStorePresenter:CoinStoreContract.Presenter {
}
override fun getCoinPayList() {
ApiClient.videoInfoApi.getPayConfig("recharge").compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<MemberEntity>() {
override fun onSuccess(result: MemberEntity?) {
if (!result?.goodsList.isNullOrEmpty()){
mView.setCoinPayList(result?.goodsList)
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
}
})
}
override fun getUserCoins() {
......
package com.zxhl.cms.pay.presenter
import com.zxhl.cms.net.ApiClient
import com.zxhl.cms.net.RxSchedulers
import com.zxhl.cms.net.callback.BaseObserver
import com.zxhl.cms.net.model.video.MemberEntity
import com.zxhl.cms.pay.contract.CoinStoreContract
import com.zxhl.cms.pay.contract.VipPayContract
import com.zxhl.cms.pay.contract.VipPayDialogContract
/**
* @author (wangXuewei)
* @datetime 2022-04-13 10:29 GMT+8
* @detail :
*/
class VipPayDialogPresenter:VipPayDialogContract.Presenter {
private val mView: VipPayDialogContract.View
constructor(mView: VipPayDialogContract.View) {
this.mView = mView
}
override fun getVipPayList() {
ApiClient.videoInfoApi.getPayConfig("vip1").compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<MemberEntity>() {
override fun onSuccess(result: MemberEntity?) {
if (!result?.goodsList.isNullOrEmpty()){
mView.setVipPayList(result?.goodsList)
}else{
mView.setVipPayList(null)
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
mView.setVipPayList(null)
}
})
}
}
\ No newline at end of file
package com.zxhl.cms.pay.presenter
import com.zxhl.cms.net.ApiClient
import com.zxhl.cms.net.RxSchedulers
import com.zxhl.cms.net.callback.BaseObserver
import com.zxhl.cms.net.model.video.MemberEntity
import com.zxhl.cms.pay.contract.CoinStoreContract
import com.zxhl.cms.pay.contract.VipPayContract
......@@ -17,5 +21,16 @@ class VipPayPresenter:VipPayContract.Presenter {
}
override fun getVipPayList() {
ApiClient.videoInfoApi.getPayConfig("vip").compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<MemberEntity>() {
override fun onSuccess(result: MemberEntity?) {
if (!result?.goodsList.isNullOrEmpty()){
mView?.setVipPayList(result?.goodsList)
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
}
})
}
}
\ No newline at end of file
......@@ -7,6 +7,7 @@ import com.zxhl.cms.common.Constant
import com.zxhl.cms.common.base.BaseActivity
import com.zxhl.cms.net.model.chat.RecordEntity
import com.zxhl.cms.net.model.pay.CoinStoreEntity
import com.zxhl.cms.net.model.video.MemberEntity
import com.zxhl.cms.pay.adapter.CoinStoreAdapter
import com.zxhl.cms.pay.contract.CoinStoreContract
import com.zxhl.cms.pay.presenter.CoinStorePresenter
......@@ -16,7 +17,7 @@ import kotlinx.android.synthetic.main.activity_layout_coin_store.*
import kotlinx.android.synthetic.main.activity_layout_coin_store.id_img_back
class CoinStoreActivity : BaseActivity(), CoinStoreContract.View,
OnRecycleItemClickListener<RecordEntity> {
OnRecycleItemClickListener<MemberEntity.ProductDetail> {
private var mAdapter: CoinStoreAdapter? = null
private var mPresenter: CoinStorePresenter? = null
override fun init() {
......@@ -49,15 +50,17 @@ class CoinStoreActivity : BaseActivity(), CoinStoreContract.View,
return R.layout.activity_layout_coin_store
}
override fun setCoinPayList(result: List<CoinStoreEntity>?) {
override fun setCoinPayList(result: List<MemberEntity.ProductDetail>?) {
mAdapter?.clear()
mAdapter?.appendToList(result)
}
override fun setUserCoins(coinNum: Double) {
id_tv_user_coins_num.text = "$coinNum"
}
override fun onItemClick(view: View?, position: Int, data: RecordEntity?) {
JumpUtils.paymentPageJump(Constant.Key.PAY_TYPE_COIN,"1","name","0.1")
override fun onItemClick(view: View?, position: Int, data: MemberEntity.ProductDetail?) {
JumpUtils.paymentPageJump(Constant.Key.PAY_TYPE_COIN, data?.goodsId, data?.name, data?.cash)
}
}
\ No newline at end of file
......@@ -116,7 +116,7 @@ class PaymentPageActivity : BaseActivity(), PaymentPageContract.View {
return
}
EventUtils.onEvent("pay_page_pay_btn", goodsPrice)
Log.d("wxw","Payment${goodsId}${goodsPrice}")
Log.d("wxw","Payment${goodsId} price:${goodsPrice}")
if (payType == GOOGLE_PAY) {
googlePay(goodsId)
} else if (payType == PAY_PAL_PAY) {
......
......@@ -10,6 +10,7 @@ import com.zxhl.cms.common.Constant
import com.zxhl.cms.common.base.BaseActivity
import com.zxhl.cms.net.model.pay.CoinStoreEntity
import com.zxhl.cms.net.model.pay.VipPayEntity
import com.zxhl.cms.net.model.video.MemberEntity
import com.zxhl.cms.pay.adapter.BecomeVipBannerAdapter
import com.zxhl.cms.pay.adapter.BecomeVipPriceAdapter
import com.zxhl.cms.pay.contract.VipPayContract
......@@ -22,7 +23,7 @@ import kotlinx.android.synthetic.main.activity_layout_vip_pay.*
class VipPayActivity : BaseActivity(), VipPayContract.View,
OnRecycleItemClickListener<VipPayEntity> {
OnRecycleItemClickListener<MemberEntity.ProductDetail> {
private var mBannerAdapter: BecomeVipBannerAdapter? = null
private var mPriceAdapter: BecomeVipPriceAdapter? = null
private var mPresenter: VipPayPresenter? = null
......@@ -38,8 +39,10 @@ class VipPayActivity : BaseActivity(), VipPayContract.View,
id_rcl_pay_vip_list?.layoutManager = LinearLayoutManager(this)
id_rcl_pay_vip_list?.adapter = mPriceAdapter
//banner
id_banner_indicator.setIndicatorCount(4)
mPresenter?.getVipPayList()
mPriceAdapter?.setSelectView(0)
id_img_back.setOnClickListener(this)
id_img_vip_record.setOnClickListener(this)
......@@ -68,7 +71,7 @@ class VipPayActivity : BaseActivity(), VipPayContract.View,
}
override fun onPageSelected(position: Int) {
Log.d("wxw", "pos${position}")
id_banner_indicator.setSelectPos(position)
}
})
)
......@@ -81,8 +84,16 @@ class VipPayActivity : BaseActivity(), VipPayContract.View,
showToast("VIP Pay Record")
}
id_tv_vip_pay_btn -> {
showToast("VIP Pay ")
JumpUtils.paymentPageJump(Constant.Key.PAY_TYPE_VIP,"1","vip","9.9")
if (tempClickData == null) {
showToast("Please select a grade")
} else {
JumpUtils.paymentPageJump(
Constant.Key.PAY_TYPE_VIP,
tempClickData?.goodsId,
tempClickData?.name,
tempClickData?.cash
)
}
}
id_img_back -> {
CenterDialog.showPayExitDialog(this) {
......@@ -96,11 +107,17 @@ class VipPayActivity : BaseActivity(), VipPayContract.View,
return R.layout.activity_layout_vip_pay
}
override fun setVipPayList(result: List<CoinStoreEntity>?) {
override fun setVipPayList(result: List<MemberEntity.ProductDetail>?) {
mPriceAdapter?.clear()
mPriceAdapter?.appendToList(result)
if (tempClickData == null && !result.isNullOrEmpty()) {
tempClickData = result[0];
}
}
override fun onItemClick(view: View?, position: Int, data: VipPayEntity?) {
private var tempClickData: MemberEntity.ProductDetail? = null;
override fun onItemClick(view: View?, position: Int, data: MemberEntity.ProductDetail?) {
tempClickData = data
mPriceAdapter?.setSelectView(position)
}
......
......@@ -9,11 +9,17 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.PagerSnapHelper
import androidx.recyclerview.widget.RecyclerView
import com.zxhl.cms.R
import com.zxhl.cms.common.Constant
import com.zxhl.cms.net.model.video.MemberEntity
import com.zxhl.cms.pay.adapter.BecomeVipBannerAdapter
import com.zxhl.cms.pay.adapter.BecomeVipDialogBannerAdapter
import com.zxhl.cms.pay.adapter.BecomeVipDialogPriceAdapter
import com.zxhl.cms.pay.contract.VipPayDialogContract
import com.zxhl.cms.pay.presenter.VipPayDialogPresenter
import com.zxhl.cms.utils.JumpUtils
import com.zxhl.cms.utils.OnRecycleItemClickListener
import com.zxhl.cms.widget.CenterDialog
import com.zxhl.cms.widget.LoadingDialog
import com.zxhl.cms.widget.RecyclerViewPageChangeListenerHelper
import com.zxhl.cms.widget.UIndicator
import kotlinx.android.synthetic.main.activity_layout_vip_pay.*
......@@ -24,8 +30,11 @@ import org.greenrobot.eventbus.EventBus
* @datetime 2022-04-16 16:13 GMT+8
* @detail :
*/
object VipPayDialog {
object VipPayDialog : VipPayDialogContract.View {
private var mLoadLoading: LoadingDialog? = null
private var mActivity: Activity? = null;
private var mPresenter: VipPayDialogPresenter = VipPayDialogPresenter(this);
private var mBannerAdapter: BecomeVipDialogBannerAdapter? = null
private var mPriceAdapter: BecomeVipDialogPriceAdapter? = null
private var mCallBack: VipPayCallBack? = null
......@@ -35,22 +44,22 @@ object VipPayDialog {
interface VipPayCallBack {
fun pageClose();
fun paySuccess();
fun payCancel();
fun payError();
// fun paySuccess();
// fun payCancel();
// fun payError();
}
fun showVipPayDialog(activity: Activity) {
this.mActivity = activity;
openPayDialog(activity)
showLoading(activity)
mPresenter.getVipPayList()
}
private var mDialog: Dialog? = null
private fun openPayDialog(act: Activity) {
private fun openPayDialog(act: Activity, result: List<MemberEntity.ProductDetail>) {
if (mDialog == null) {
mDialog = Dialog(act!!, R.style.CenterCompatDialogTheme)
mDialog = Dialog(act, R.style.CenterCompatDialogTheme)
}
val mDialogView = CenterDialog.showBottomDialog(
R.layout.dialog_layout_vip_pay,
......@@ -71,6 +80,7 @@ object VipPayDialog {
act, LinearLayoutManager.HORIZONTAL,
false
)
pay_banner?.adapter = mBannerAdapter
val mPagerSnapHelper = PagerSnapHelper()
mPagerSnapHelper.attachToRecyclerView(pay_banner)
......@@ -90,16 +100,26 @@ object VipPayDialog {
}
})
)
var selectPos = 0;
//price
mPriceAdapter =
BecomeVipDialogPriceAdapter(act) { view, position, data ->
selectPos = position
mPriceAdapter?.setSelectView(position)
}
price_list?.layoutManager = LinearLayoutManager(act)
price_list?.adapter = mPriceAdapter
mPriceAdapter?.clear()
mPriceAdapter?.appendToList(result)
btn_continue.setOnClickListener {
mDialog?.dismiss()
// mDialog?.dismiss()
JumpUtils.paymentPageJump(
Constant.Key.PAY_TYPE_VIP_DIALOG,
result[selectPos].goodsId,
result[selectPos].name,
result[selectPos].cash
)
}
mDialog?.setOnDismissListener {
......@@ -116,5 +136,29 @@ object VipPayDialog {
}
override fun setVipPayList(result: List<MemberEntity.ProductDetail>?) {
dismissLoading()
if (mActivity != null && !result.isNullOrEmpty()) {
openPayDialog(mActivity!!, result)
}
}
private fun showLoading(content: Activity) {
if (mLoadLoading == null) {
mLoadLoading = LoadingDialog.getLoadingDialog(
content,
content.getString(R.string.wait_ing),
false,
false
)
}
mLoadLoading?.setLoading(content.getString(R.string.wait_ing))
mLoadLoading?.show()
}
private fun dismissLoading() {
if (mLoadLoading != null) {
mLoadLoading?.dismiss()
}
}
}
\ No newline at end of file
......@@ -7,5 +7,5 @@
android:endColor="#662CF5"
android:type="linear"
android:useLevel="true" />
<corners android:radius="15dp" />
<corners android:radius="10dp" />
</shape>
\ No newline at end of file
......@@ -53,26 +53,41 @@
android:background="#F6F6F6">
<LinearLayout
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="70dp"
android:orientation="vertical">
android:orientation="vertical"
android:paddingBottom="70dp">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/id_rcl_banner"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<com.zxhl.cms.widget.UIndicator
android:id="@+id/id_banner_indicator"
android:layout_width="match_parent"
android:layout_height="8dp"
android:layout_below="@id/id_rcl_banner"
android:layout_centerHorizontal="true"
android:layout_marginTop="-30dp"
app:circle_circle_radius="4dp"
app:normal_color="#66ffffff"
app:orientation="horizontal"
app:selected_color="#ffffffff"
app:spacing="10dp"
app:style="circle_circle" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/id_rcl_pay_vip_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/id_rcl_banner"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_marginRight="10dp" />
</LinearLayout>
</RelativeLayout>
</androidx.core.widget.NestedScrollView>
......
......@@ -28,7 +28,7 @@
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="5dp"
android:src="@drawable/icon_xingbi_da_wode" />
......
......@@ -75,7 +75,8 @@
<activity
android:name="com.zxhl.main.page.activity.UserDetailsActivity"
android:hardwareAccelerated="true">
android:hardwareAccelerated="true"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
......
......@@ -121,7 +121,9 @@ class UserDetailsActivity : BaseActivity(), UserDetailsContract.View,
//Name
id_tv_user_details_name.text = result.nickname
//国旗
Glide.with(this).load(result.nationalFlag ?: "").into(id_img_national_flag)
if (!this.isFinishing){
Glide.with(this).load(result.nationalFlag ?: "").into(id_img_national_flag)
}
//年龄
id_tv_user_details_age.text = result.age
//是否在线
......
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