Commit 3dd1e55f authored by 张释方's avatar 张释方

修改Openvp默认选中逻辑,更改升级vip弹窗以及手机登录UI

parent 6c6bc60b
......@@ -5,7 +5,6 @@ import android.graphics.Paint
import android.view.View
import com.alibaba.android.vlayout.LayoutHelper
import com.alibaba.android.vlayout.layout.GridLayoutHelper
import com.alibaba.android.vlayout.layout.LinearLayoutHelper
import com.fry.base.adapter.AbstractVLayoutBaseAdapter
import com.fry.base.adapter.BindingViewHolder
import com.fry.base.binding.setMargin
......@@ -13,71 +12,50 @@ import com.mints.street.R
import com.mints.street.bean.VipBean
import com.mints.street.databinding.ItemGridPaymentAdpaterBinding
import me.goldze.mvvmhabit.utils.AppUtils
import me.goldze.mvvmhabit.utils.RxUtils
class GridPaymentAdapter(val context: Context, val list: List<VipBean.ListBean>) :
class GridPaymentAdapter(val context: Context, val list: List<VipBean.ListBean?>?) :
AbstractVLayoutBaseAdapter<ItemGridPaymentAdpaterBinding,
List<VipBean.ListBean>>(context, list, 3) {
private var datalist: List<VipBean.ListBean>? = list
private var mposition: Int = 0//设置首次进来默认选中第一个
List<VipBean.ListBean?>?>(context, list, 3) {
private var pid:String? = null
override fun onBindViewHolder(holder: BindingViewHolder<ItemGridPaymentAdpaterBinding>, position: Int) {
holder.binding.tvOldprice.paint.flags = Paint.STRIKE_THRU_TEXT_FLAG
// var a = holder.binding.bg.layoutParams
//设置 view边距
holder.binding.bg.setMargin(AppUtils.dp2Px(context, 10F), 0, AppUtils.dp2Px(context, 10F),
AppUtils.dp2Px(context, 10F), null, null, null)
//设置 view背景样式
if (mposition == position) {
holder.binding.bg.setBackgroundResource(R.drawable.shape_bg_payment_down)
} else {
holder.binding.bg.setBackgroundResource(R.drawable.shape_bg_payment)
}
//设置默认选中
if (holder.adapterPosition == mposition) {//如果当前的view是第一个设置默认背景,并且是第一次设置背景
holder.binding.bg.setBackgroundResource(R.drawable.shape_bg_payment_down)
}
//添加 套餐推荐内容
datalist?.let {
val databean = it[position]
// 设置点击事件
holder.itemView.setOnClickListener {
//设置当前段中view脚标
mposition = holder.adapterPosition
list?.apply {
if (list[position]?.isSelect == true) {
holder.binding.bg.setBackgroundResource(R.drawable.shape_bg_payment_down)
pid = list[position]?.pid
}else{
holder.binding.bg.setBackgroundResource(R.drawable.shape_bg_payment)
}
holder.binding.tvDays.text = list[position]?.title
holder.binding.tvOldprice.text = "原价¥${list[position]?.oldPrice}"
holder.binding.tvPrice.text = "¥${list[position]?.price}"
holder.binding.ivHot.visibility = if (list[position]?.activityType == 0) View.GONE else View.VISIBLE
RxUtils.onMultiClick(holder.itemView){
if (list[position]?.isSelect == true) return@onMultiClick
list.forEach {
it?.isSelect = false
}
list[position]?.isSelect = true
notifyDataSetChanged()
}
// holder.binding.tvDays.text = "${databean.days}天"
holder.binding.tvDays.text = databean.title
holder.binding.tvOldprice.text = "原价¥${databean.oldPrice}"
holder.binding.tvPrice.text = "¥${databean.price}"
holder.binding.ivHot.visibility = if (databean.activityType == 0) View.GONE else View.VISIBLE
}
}
override fun getItemCount() = list?.size?:0
override fun getItemCount(): Int {
return if (datalist == null) {
0
} else {
datalist!!.size
}
fun getPid():String?{
return pid
}
override fun getLayoutId(viewType: Int) = R.layout.item_grid_payment_adpater
fun getPosition() = mposition
override fun onCreateLayoutHelper(): LayoutHelper {
val hp: GridLayoutHelper = GridLayoutHelper(3)
hp.setAutoExpand(false)
return hp
}
}
}
\ No newline at end of file
......@@ -63,7 +63,7 @@ interface MainApi {
* 获取支付参数
*/
@POST("api/getVipPayParams")
fun getVipPayParams(@Body vo:@JvmSuppressWildcards Map<String,Any>):Observable<Response<BaseResponse<WxPayParamBean>>>
fun getVipPayParams(@Body vo:@JvmSuppressWildcards Map<String,Any?>):Observable<Response<BaseResponse<WxPayParamBean>>>
/**
* 支付成功
......
......@@ -14,6 +14,7 @@ class VipBean : Serializable {
var activityType: Int = 0 // 0
var oldPrice: Double = 0.0 // 138
var pid: String = ""// 1
var isSelect:Boolean=false
}
}
......@@ -14,7 +14,6 @@ import com.mints.street.utils.BackInputUtil
import com.mints.street.widget.dialog.DialogUtils
import com.permissionx.guolindev.PermissionX
import com.permissionx.guolindev.callback.RequestCallback
import kotlinx.android.synthetic.main.activity_bindmobile.*
import kotlinx.android.synthetic.main.activity_login.*
import kotlinx.android.synthetic.main.include_header.*
import me.goldze.mvvmhabit.utils.AppUtils
......@@ -26,9 +25,9 @@ import me.goldze.mvvmhabit.utils.ToastUtils
class LoginActivity : BaseActivity<ActivityLoginBinding, LoginViewModel>(), View.OnClickListener {
private val userManager by lazy { UserManager.INSTANCE }
override fun getStatusBarHeightView(): View? {
return binding.tvName
}
// override fun getStatusBarHeightView(): View? {
// return binding.tvName
// }
override fun initContentView(savedInstanceState: Bundle?) = R.layout.activity_login
......
......@@ -12,7 +12,7 @@ import com.mints.street.netwrok.base.HttpSubscribeImpl
import com.mints.street.utils.DeviceUuidFactory
import me.goldze.mvvmhabit.base.BaseViewModel
import me.goldze.mvvmhabit.utils.KLog
import java.util.HashMap
import java.util.*
/**
* Created by 冯瑞雨 on 2021/7/2.
......@@ -55,7 +55,7 @@ class MyViewModel(application: Application) : BaseViewModel(application) {
vo["wxInfo"] = wxInfo
// vo["shumeiId"] = ShumeiManager.getInstance().shumeiDeviceId
vo["device"] = DeviceUuidFactory().deviceUuid.toString()
ApiModel.wechatlogin(lifecycleProvider,vo).safeSubscribe(object : HttpSubscribeImpl<BaseResponse<UserBean>>(
ApiModel.wechatlogin(lifecycleProvider, vo).safeSubscribe(object : HttpSubscribeImpl<BaseResponse<UserBean>>(
this@MyViewModel, true) {
override fun onBusinessSuccess(response: BaseResponse<UserBean>) {
//保存用户信息到Usermanager
......@@ -63,7 +63,7 @@ class MyViewModel(application: Application) : BaseViewModel(application) {
this@MyViewModel.saveTerminalInfo()//提交设备信息
this@MyViewModel.getmyInfo()
KLog.e("wechatlogin","微信登录接口成功")
KLog.e("wechatlogin", "微信登录接口成功")
}
......@@ -88,6 +88,7 @@ class MyViewModel(application: Application) : BaseViewModel(application) {
vo["oaid"] = OaidManager.getOaid()
vo["os"] = "android"
vo["model"] = deviceInfo.newModel
//传递这个值为唯一标识
vo["uuid"] = DeviceUuidFactory().deviceUuid
vo["osversion"] = deviceInfo.oSVersion
vo["appversion"] = deviceInfo.versionName
......
......@@ -28,7 +28,6 @@ import com.mints.street.widget.dialog.WxLoginDialog
import kotlinx.android.synthetic.main.activity_openvip.*
import kotlinx.android.synthetic.main.include_header.*
import me.goldze.mvvmhabit.utils.AppUtils
import me.goldze.mvvmhabit.utils.KLog
import me.goldze.mvvmhabit.utils.ToastUtils
......@@ -172,8 +171,19 @@ class OpenvipActivity : BaseActivity<ActivityOpenvipBinding, OpenvipViewModel>()
super.initViewObservable()
viewModel.Vipdata.observe(this, Observer<VipBean> {
vipList = it.list as MutableList<VipBean.ListBean>?
var isActivityType = true
for (index in it?.list!!) {
if (index.activityType!=0){
index?.isSelect =true
isActivityType = false
break
}
}
if (isActivityType){
it?.list?.get(0)?.isSelect = true
}
//展示 推荐套餐内容
gridPaymentAdapter = GridPaymentAdapter(this, it.list!!)
gridPaymentAdapter = GridPaymentAdapter(this, it.list)
mAdapter?.addAdapter(gridPaymentAdapter)
})
viewModel.vippayParams.observe(this, Observer<WxPayParamBean> {
......@@ -289,9 +299,9 @@ class OpenvipActivity : BaseActivity<ActivityOpenvipBinding, OpenvipViewModel>()
private fun payVip() {
if (vipList != null && vipList!!.size > 0 && gridPaymentAdapter != null) {
if (TextUtils.equals("WEIXIN", currentPayType)) {
viewModel.getVipPayParams("WEIXIN", vipList!![gridPaymentAdapter!!.getPosition()].pid)
viewModel.getVipPayParams("WEIXIN", gridPaymentAdapter?.getPid())
} else {
viewModel.getVipPayParams("ALIPAY", vipList!![gridPaymentAdapter!!.getPosition()].pid)
viewModel.getVipPayParams("ALIPAY", gridPaymentAdapter?.getPid())
}
}
}
......
......@@ -73,8 +73,8 @@ class OpenvipViewModel(application: Application) : BaseViewModel(application) {
/**
* 获取支付参数
*/
fun getVipPayParams(payChannel:String,pid: String) {
val vo = HashMap<String, Any>()
fun getVipPayParams(payChannel:String,pid: String?) {
val vo = HashMap<String, Any?>()
vo["payChannel"] = payChannel
vo["pid"] = pid
ApiModel.getVipPayParams(lifecycleProvider, vo).safeSubscribe(
......
......@@ -64,7 +64,7 @@ object ApiModel {
/**
* 获取支付参数
*/
fun getVipPayParams(lifecycleProvider: LifecycleProvider<Any>?, map: Map<String, Any>): Observable<Response<BaseResponse<WxPayParamBean>>> {
fun getVipPayParams(lifecycleProvider: LifecycleProvider<Any>?, map: Map<String, Any?>): Observable<Response<BaseResponse<WxPayParamBean>>> {
return HttpManager.getInstance()
.execute(lifecycleProvider, MainApi.newInstance().getVipPayParams(map))
}
......
......@@ -2,7 +2,6 @@
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="viewModel"
type="com.mints.street.login.LoginViewModel" />
......@@ -11,35 +10,19 @@
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#CC000000"
android:background="@mipmap/iv_bg_login"
android:orientation="vertical">
<include
android:id="@+id/ic_q"
layout="@layout/include_header"/>
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="60dp"
android:text="在国内也能用的"
android:textSize="24dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="全球街景地图"
android:textSize="32dp" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginTop="30dp"
android:layout_marginTop="180dp"
android:layout_marginRight="30dp"
android:background="@drawable/shape_login_bg"
android:orientation="horizontal">
......@@ -63,8 +46,8 @@
android:inputType="number"
android:maxLength="13"
android:maxLines="1"
android:textColor="@color/color_172B54"
android:textColorHint="@color/color_BEC2CC"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textSize="14sp" />
</androidx.appcompat.widget.LinearLayoutCompat>
......
......@@ -7,15 +7,10 @@
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="30dp"
android:background="@mipmap/ic_bg_upvip"
android:gravity="bottom"
android:orientation="vertical">
<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_gravity="center"
android:src="@mipmap/iv_upgrade" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
......@@ -37,19 +32,21 @@
<Button
android:id="@+id/bt_upgrade"
android:layout_width="200dp"
android:layout_height="40dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:background="@drawable/shape_upgrade_btn_bg"
android:background="@mipmap/ic_btn_upvip_bg"
android:text="继续升级"
android:layout_marginBottom="30dp"
android:textColor="@color/white"
android:textSize="16sp" />
</LinearLayout>
<ImageView
android:id="@+id/iv_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_margin="10dp"
android:layout_gravity="end|top"
android:src="@mipmap/icon_upgrade_close" />
</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