Commit ae3ed87f authored by 张释方's avatar 张释方

对接获取个人信息接口

parent a6fac0d4
......@@ -3,43 +3,58 @@ package com.mints.street.adapter
import android.content.Context
import android.graphics.Paint
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
import com.mints.street.R
import com.mints.street.bean.VipBean
import com.mints.street.databinding.ItemGridPaymentAdpaterBinding
import me.goldze.mvvmhabit.utils.AppUtils
class GridPaymentAdapter(val context: Context, val list: List<String>) : AbstractVLayoutBaseAdapter<ItemGridPaymentAdpaterBinding, List<String>>(context, list, 3) {
class GridPaymentAdapter(val context: Context, val list: List<VipBean.ConsumerBean>) : AbstractVLayoutBaseAdapter<ItemGridPaymentAdpaterBinding, List<VipBean.ConsumerBean>>(context, list, 3) {
private var datalist: List<VipBean.ConsumerBean>? = list
private var mposition: Int = -1
override fun onBindViewHolder(holder: BindingViewHolder<ItemGridPaymentAdpaterBinding>, position: Int) {
holder.binding.text1.paint.flags = Paint.STRIKE_THRU_TEXT_FLAG
holder.binding.tvOldprice.paint.flags = Paint.STRIKE_THRU_TEXT_FLAG
var a = holder.binding.bg.layoutParams
holder.binding.bg.setMargin(AppUtils.dp2Px(context, 10F), 0, AppUtils.dp2Px(context, 10F), 0, null, null, null)
holder.itemView.setOnClickListener {
mposition = holder.adapterPosition
holder.binding.bg.setBackgroundResource(R.drawable.shape_bg_payment_down)
notifyDataSetChanged()
}
if (mposition == position) {
holder.binding.bg.setBackgroundResource(R.drawable.shape_bg_payment_down)
} else {
holder.binding.bg.setBackgroundResource(R.drawable.shape_bg_payment)
}
datalist?.let {
val databean = it[position]
holder.itemView.setOnClickListener {
mposition = holder.adapterPosition
holder.binding.bg.setBackgroundResource(R.drawable.shape_bg_payment_down)
notifyDataSetChanged()
}
holder.binding.tvDays.text = "${databean.days}天"
holder.binding.tvOldprice.text = "原价¥${databean.oldPrice}"
holder.binding.tvPrice.text = "¥${databean.price}"
}
}
override fun getItemCount() = list.size
override fun getItemCount(): Int {
return if (datalist == null) {
0
} else {
datalist!!.size
}
}
override fun onCreateLayoutHelper() = GridLayoutHelper(3)
override fun getLayoutId(viewType: Int) = R.layout.item_grid_payment_adpater
}
}
\ No newline at end of file
package com.mints.street.api
import com.mints.street.bean.BaseResponse
import com.mints.street.bean.UserBean
import com.mints.street.bean.VipBean
import com.mints.street.bean.*
import com.mints.street.netwrok.common.HttpManager
import io.reactivex.Observable
import retrofit2.Response
......@@ -13,7 +11,7 @@ import retrofit2.http.POST
* Created by 冯瑞雨 on 2021/7/2.
*/
interface MainApi {
companion object{
companion object {
fun newInstance(): MainApi {
return HttpManager.getInstance().defaultClient.create(MainApi::class.java)
}
......@@ -31,7 +29,7 @@ interface MainApi {
* 登录
*/
@POST("api/mobilelogin")
fun mobileLogin(@Body vo: @JvmSuppressWildcards Map<String, Any>): Observable<Response<BaseResponse<UserBean>>>
fun mobileLogin(@Body vo: @JvmSuppressWildcards Map<String, Any>): Observable<Response<BaseResponse<UserBean>>>
/**
* 提交设备信息
......@@ -41,7 +39,22 @@ interface MainApi {
@POST("api/saveTerminalInfo")
fun saveTerminalInfo(@Body vo: @JvmSuppressWildcards Map<String, Any>): Observable<Response<BaseResponse<Any>>>
/**
* 开通vip
*/
@POST("api/getVipProductsByType")
fun getVipProductsByType(@Body vo: @JvmSuppressWildcards Map<String, Any>): Observable<Response<BaseResponse<VipBean>>>
/**
* 获取vip支付渠道
*/
@POST("api/getPayChannels")
fun getPayChannels(@Body vo:@JvmSuppressWildcards Map<String,Any>):Observable<Response<BaseResponse<PaymentBean>>>
/**
* 获取用户登录信息
*/
@POST("api/baseMsg")
fun baseMsg():Observable<Response<BaseResponse<MyInfo>>>
}
\ No newline at end of file
package com.mints.street.bean
import java.io.Serializable
class MyInfo {
val token: String = ""
val consumer: ConsumerBean? = null
inner class ConsumerBean : Serializable {
val openid: String = ""
val nickname: String = ""
val mobile: String = ""
val idcode: String = ""
val isForever: Boolean = false
val expireTime: Long = 0
val pk_id: Long = 0
}
}
package com.mints.street.bean
import java.io.Serializable
class PaymentBean:Serializable {
var list: List<String>?=null
}
\ No newline at end of file
package com.mints.street.bean
class VipBean {
}
\ No newline at end of file
import java.io.Serializable
class VipBean : Serializable {
var list: List<ConsumerBean>? = null
inner class ConsumerBean : Serializable {
var id: Int = 0 // 1
var price: Int = 0// 78
var days: Int = 0 // 365
var remarks: String = "" // 看更多地图
var title: String = ""// 包年会员
var activityType: Int = 0 // 0
var oldPrice: Int = 0 // 138
var pid: String = ""// 1
}
}
package com.mints.street.login
import android.graphics.Color
import android.Manifest
import android.os.Bundle
import android.os.PersistableBundle
import android.text.TextUtils
import android.view.View
import androidx.lifecycle.Observer
import com.fry.base.base.BaseActivity
import com.mints.street.BR
import com.mints.street.R
import com.mints.street.databinding.ActivityLoginBinding
import com.mints.street.manager.UserManager
import com.mints.street.main.MainActivity
import com.mints.street.utils.BackInputUtil
import com.tbruyelle.rxpermissions2.RxPermissions
import kotlinx.android.synthetic.main.activity_bindmobile.*
import kotlinx.android.synthetic.main.activity_login.*
import kotlinx.android.synthetic.main.include_header.*
......@@ -36,10 +35,6 @@ class LoginActivity : BaseActivity<ActivityLoginBinding, LoginViewModel>(), View
private fun initListener() {
binding.button.setOnClickListener {
viewModel.login("18311400069", "123456")
}
binding.tvSendSms.setOnClickListener {
// ToastUtils.showLong("点击获取验证码")
......@@ -55,6 +50,34 @@ class LoginActivity : BaseActivity<ActivityLoginBinding, LoginViewModel>(), View
}
binding.button.setOnClickListener {
var mobile = et_phone.text.toString().trim()
if (mobile.length < 13) {
ToastUtils.showLong("请输入手机号")
return@setOnClickListener
}
val code = et_sms.text.toString().trim()
if (code.length < 4) {
ToastUtils.showLong("请输入验证码")
return@setOnClickListener
}
RxPermissions(this@LoginActivity)
.request(Manifest.permission.READ_PHONE_STATE)
.subscribe { granted: Boolean ->
if (granted) {
mobile = mobile.replace(" ".toRegex(), "")
// 登录
viewModel.login(mobile, code)
} else {
// showMissingPermissionDialog("设备")
}
}
}
iv_left_icon.setOnClickListener(this)
iv_left_icon.setOnClickListener(this)
}
......@@ -78,6 +101,7 @@ class LoginActivity : BaseActivity<ActivityLoginBinding, LoginViewModel>(), View
super.initViewObservable()
viewModel.data.observe(this, Observer<String> {
ToastUtils.showLong("初始化成功")
startActivityThenKill(MainActivity::class.java)
})
}
......
......@@ -65,7 +65,6 @@ class LoginViewModel(application: Application) : BaseViewModel(application) {
UserManager.INSTANCE.saveUserInfo(response.result)
KLog.e("login", response.result.toString())
ToastUtils.showShort("登录信息="+response.result.consumer?.idcode)
......
......@@ -2,10 +2,10 @@ package com.mints.street.main.my
import android.app.Application
import androidx.lifecycle.MutableLiveData
import com.mints.street.bean.BaseResponse
import com.mints.street.model.ApiModel
import com.mints.street.netwrok.base.HttpSubscribeImpl
import me.goldze.mvvmhabit.base.BaseViewModel
import me.goldze.mvvmhabit.http.BaseResponse
import me.goldze.mvvmhabit.utils.KLog
import java.util.HashMap
......
......@@ -2,6 +2,7 @@ package com.mints.street.main.my
import android.graphics.Color
import android.os.Bundle
import android.text.TextUtils
import android.util.Log
import android.view.LayoutInflater
import android.view.View
......@@ -12,22 +13,33 @@ import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.widget.LinearLayoutCompat
import androidx.core.content.ContextCompat
import androidx.lifecycle.Observer
import com.fry.base.base.BaseFragment
import com.google.android.material.bottomsheet.BottomSheetDialog
import com.mints.street.BR
import com.mints.street.R
import com.mints.street.bean.MyInfo
import com.mints.street.bean.UserBean
import com.mints.street.databinding.FragmentMyBinding
import com.mints.street.login.LoginActivity
import com.mints.street.main.home.HistoricalimageActivity
import com.mints.street.manager.UserManager
import com.scwang.smartrefresh.layout.api.RefreshLayout
import com.scwang.smartrefresh.layout.listener.OnRefreshListener
import kotlinx.android.synthetic.main.activity_moresettings.*
import kotlinx.android.synthetic.main.fragment_my.*
import me.goldze.mvvmhabit.utils.KLog
/**
* Created by 冯瑞雨 on 2021/7/2.
* 个人中心页面
*/
class MyFragment : BaseFragment<FragmentMyBinding, MyViewModel>(), View.OnClickListener {
class MyFragment : BaseFragment<FragmentMyBinding, MyViewModel>(), OnRefreshListener,
View.OnClickListener {
private val userManager by lazy { UserManager.INSTANCE }
private var userConfig: MyInfo? = null
//弹窗
private var mBottomSheetDialog: BottomSheetDialog? = null
......@@ -35,6 +47,7 @@ class MyFragment : BaseFragment<FragmentMyBinding, MyViewModel>(), View.OnClickL
private var ly_phone: LinearLayoutCompat? = null
private var cb_checked: CheckBox? = null
override fun initContentView(inflater: LayoutInflater?,
container: ViewGroup?,
savedInstanceState: Bundle?) = R.layout.fragment_my
......@@ -46,20 +59,36 @@ class MyFragment : BaseFragment<FragmentMyBinding, MyViewModel>(), View.OnClickL
initListener()
}
override fun onResume() {
super.onResume()
// if (!TextUtils.isEmpty(userManager.getUserID())) {
//查询用户登录信息
viewModel.getmyInfo()
// refreshHighTask()
// } else {
// 游客登录
// myPresenter.userLogin()
// }
}
private fun initListener() {
//设置登录点击事件
binding.llMyLogin.setOnClickListener {
//创建弹窗
mBottomSheetDialog = BottomSheetDialog(context!!)
val view1: View = layoutInflater.inflate(R.layout.layout_popupwindow, null)
mBottomSheetDialog!!.setContentView(view1)
mBottomSheetDialog!!.window!!.findViewById<View>(R.id.design_bottom_sheet).setBackgroundColor(Color.TRANSPARENT)
mBottomSheetDialog!!.show()
iv_weixin = view1.findViewById(R.id.iv_weixin)
ly_phone = view1.findViewById(R.id.ly_phone)
cb_checked = view1.findViewById(R.id.cb_checked)
iv_weixin?.setOnClickListener(this)
ly_phone?.setOnClickListener(this)
if (!userManager.userIsLogin()) {
//创建弹窗
mBottomSheetDialog = BottomSheetDialog(context!!)
val view1: View = layoutInflater.inflate(R.layout.layout_popupwindow, null)
mBottomSheetDialog!!.setContentView(view1)
mBottomSheetDialog!!.window!!.findViewById<View>(R.id.design_bottom_sheet).setBackgroundColor(Color.TRANSPARENT)
mBottomSheetDialog!!.show()
iv_weixin = view1.findViewById(R.id.iv_weixin)
ly_phone = view1.findViewById(R.id.ly_phone)
cb_checked = view1.findViewById(R.id.cb_checked)
iv_weixin?.setOnClickListener(this)
ly_phone?.setOnClickListener(this)
}
}
//设置立即领取点击事件
......@@ -98,13 +127,10 @@ class MyFragment : BaseFragment<FragmentMyBinding, MyViewModel>(), View.OnClickL
R.id.moresettings -> {
startActivity(MoresettingsActivity::class.java)
}
R.id.ll_my_login -> {
Log.e("aaa", "aaaaaa")
}
R.id.iv_weixin -> {
if (cb_checked!!.isChecked) {
Toast.makeText(context, "未完成微信登录对接", Toast.LENGTH_SHORT).show()
}else {
} else {
Toast.makeText(context, "请先同意用户协议与隐私政策", Toast.LENGTH_SHORT).show()
}
}
......@@ -120,5 +146,38 @@ class MyFragment : BaseFragment<FragmentMyBinding, MyViewModel>(), View.OnClickL
}
}
override fun initViewObservable() {
super.initViewObservable()
viewModel.MyInfodata.observe(this, Observer<MyInfo> {
srl_my.finishRefresh(true)
if (it == null) {
userConfig = null
return@Observer
}
userConfig = it
//获取我的数据
setUserLoginStatus()
})
}
private fun setUserLoginStatus() {
// if (userManager.userIsLogin()) {
// if (userManager.getMobile().isNotEmpty()) {
item_title_id.text = userManager.getMobile()
// } else {
// item_title_id.text = "未登录"
// }
// }
}
override fun onRefresh(refreshLayout: RefreshLayout) {
}
// if (it.consumer!!.mobile.isNotEmpty()) {
// item_title_id.text = it.consumer.mobile
// }
}
package com.mints.street.main.my
import android.app.Application
import androidx.lifecycle.MutableLiveData
import com.mints.street.bean.BaseResponse
import com.mints.street.bean.MyInfo
import com.mints.street.bean.UserBean
import com.mints.street.model.ApiModel
import com.mints.street.netwrok.base.HttpSubscribeImpl
import me.goldze.mvvmhabit.base.BaseViewModel
import me.goldze.mvvmhabit.utils.KLog
import java.util.HashMap
/**
* Created by 冯瑞雨 on 2021/7/2.
*/
class MyViewModel(application: Application):BaseViewModel(application) {
class MyViewModel(application: Application) : BaseViewModel(application) {
val MyInfodata: MutableLiveData<MyInfo> = MutableLiveData()
fun getmyInfo() {
ApiModel.getuserInfo(lifecycleProvider).safeSubscribe(
object : HttpSubscribeImpl<BaseResponse<MyInfo>>(
this@MyViewModel, true) {
override fun onBusinessSuccess(response: BaseResponse<MyInfo>) {
MyInfodata.value = response.result
KLog.e("getmyInfo", response.result.toString())
}
override fun onError(e: Throwable) {
KLog.e("getmyInfo", "用户登录信息请求失败")
super.onError(e)
}
}
)
}
}
\ No newline at end of file
package com.mints.street.main.my
import android.graphics.Color
import android.os.Bundle
import android.view.View
import androidx.lifecycle.Observer
import com.alibaba.android.vlayout.DelegateAdapter
import com.alibaba.android.vlayout.VirtualLayoutManager
import com.fry.base.base.BaseActivity
import com.mints.street.BR
import com.mints.street.R
import com.mints.street.adapter.EnterDestinationAdapter
import com.mints.street.adapter.GridMapAdapter
import com.mints.street.adapter.GridPaymentAdapter
import com.mints.street.bean.PaymentBean
import com.mints.street.bean.VipBean
import com.mints.street.databinding.ActivityOpenvipBinding
import kotlinx.android.synthetic.main.activity_openvip.*
import kotlinx.android.synthetic.main.include_header.*
import me.goldze.mvvmhabit.utils.ToastUtils
class OpenvipActivity: BaseActivity<ActivityOpenvipBinding, OpenvipViewModel>(), View.OnClickListener {
class OpenvipActivity : BaseActivity<ActivityOpenvipBinding, OpenvipViewModel>(), View.OnClickListener {
// private var vLayout: VirtualLayoutManager? = null
// private var mAdapter: DelegateAdapter? = null
private var vLayout:VirtualLayoutManager?=null
private var mAdapter:DelegateAdapter?=null
private var vLayout: VirtualLayoutManager? = null
private var mAdapter: DelegateAdapter? = null
override fun initVariableId() = BR.viewModel
override fun initContentView(savedInstanceState: Bundle?)= R.layout.activity_openvip
override fun initContentView(savedInstanceState: Bundle?) = R.layout.activity_openvip
override fun initData() {
super.initData()
//获取vip福利信息
viewModel.openvipInfo()
//获取支付方式
viewModel.getpaymentwey("android")
initView()
initListener()
}
private fun initListener() {
iv_left_icon.setOnClickListener(this)
bt_try.setOnClickListener(this)
}
private fun initView() {
......@@ -51,25 +57,50 @@ class OpenvipActivity: BaseActivity<ActivityOpenvipBinding, OpenvipViewModel>(),
//设置显示的数据
cfp_data_viewpager.setViewList(list)
tv_title.text="成为会员"
tv_title.text = "成为会员"
tv_title.setTextColor(Color.WHITE)
iv_left_icon.setImageResource(R.mipmap.ic_arrow_back)
iv_left_icon.visibility= View.VISIBLE
iv_left_icon.setImageResource(R.mipmap.tt_shadow_lefterback_titlebar)
iv_left_icon.visibility = View.VISIBLE
//recycleView管理
vLayout= VirtualLayoutManager(this)
mAdapter= DelegateAdapter(vLayout,false)
vLayout = VirtualLayoutManager(this)
mAdapter = DelegateAdapter(vLayout, false)
binding.listview.adapter=mAdapter
binding.listview.layoutManager=vLayout
binding.listview.adapter = mAdapter
binding.listview.layoutManager = vLayout
mAdapter?.addAdapter(GridPaymentAdapter(this, listOf("1","2","3")))
}
override fun initViewObservable() {
super.initViewObservable()
viewModel.Vipdata.observe(this, Observer<VipBean> {
mAdapter?.addAdapter(GridPaymentAdapter(this, it.list!!))
})
viewModel.Paymentdata.observe(this, Observer<PaymentBean> {
if (it.list.isNullOrEmpty()) {
return@Observer
} else {
for (str in it.list!!) {
if (str.equals("WEIXIN")) {
ly_weixin.visibility = View.VISIBLE
}
if (str.equals("ALIPAY")) {
ly_alipay.visibility = View.VISIBLE
}
}
}
})
}
override fun onClick(v: View?) {
when(v?.id){
R.id.iv_left_icon->finish()
when (v?.id) {
R.id.iv_left_icon -> finish()
R.id.bt_try -> {
}
}
}
......
package com.mints.street.main.my
import android.app.Application
import androidx.core.graphics.PathParser
import androidx.lifecycle.MutableLiveData
import com.mints.street.bean.BaseResponse
import com.mints.street.bean.PaymentBean
import com.mints.street.bean.VipBean
import com.mints.street.model.ApiModel
import com.mints.street.netwrok.base.HttpSubscribeImpl
import me.goldze.mvvmhabit.base.BaseViewModel
import me.goldze.mvvmhabit.http.BaseResponse
import me.goldze.mvvmhabit.utils.KLog
import java.util.HashMap
class OpenvipViewModel (application: Application): BaseViewModel(application) {
val data : MutableLiveData<String> = MutableLiveData()
class OpenvipViewModel(application: Application) : BaseViewModel(application) {
val Vipdata: MutableLiveData<VipBean> = MutableLiveData()
val Paymentdata: MutableLiveData<PaymentBean> = MutableLiveData()
/**
* 手机验证码
* 开通Vip
*
* @param mobile
*/
fun sendMobileCode(mobile: String) {
fun openvipInfo() {
val vo = HashMap<String, Any>()
vo["mobile"] = mobile
vo["type"] = 1
ApiModel.sendMobileCode(lifecycleProvider,vo).safeSubscribe(
object : HttpSubscribeImpl<BaseResponse<Any>>(
ApiModel.openvip(lifecycleProvider, vo).safeSubscribe(
object : HttpSubscribeImpl<BaseResponse<VipBean>>(
this@OpenvipViewModel, true) {
override fun onBusinessSuccess(response: BaseResponse<Any>) {
KLog.e("sendMobileCode", response.result.toString())
override fun onBusinessSuccess(response: BaseResponse<VipBean>) {
Vipdata.value = response.result
KLog.e("openvip", response.result.toString())
}
override fun onError(e: Throwable) {
data.value = "失败"
KLog.e("sendMobileCode", "发送验证码错误")
KLog.e("openvip", "发送验证码错误")
}
})
}
/**
* Vip支付方式
*/
fun getpaymentwey(os: String) {
val vo = HashMap<String, Any>()
vo["os"] = os
ApiModel.getpaymentwey(lifecycleProvider, vo).safeSubscribe(
object : HttpSubscribeImpl<BaseResponse<PaymentBean>>(
this@OpenvipViewModel, true) {
override fun onBusinessSuccess(response: BaseResponse<PaymentBean>) {
Paymentdata.value = response.result
KLog.e("getpaymentwey", response.result.toString())
}
override fun onError(e: Throwable) {
KLog.e("getpaymentwey", "获取支付方式失败")
}
}
)
}
}
package com.mints.street.model
import com.mints.street.api.MainApi
import com.mints.street.bean.BaseResponse
import com.mints.street.bean.UserBean
import com.mints.street.bean.*
import com.mints.street.netwrok.common.HttpManager
import com.trello.rxlifecycle2.LifecycleProvider
import io.reactivex.Observable
......@@ -16,36 +15,49 @@ object ApiModel {
/**
* 发送验证码
*/
fun sendMobileCode(lifecycleProvider: LifecycleProvider<Any>?
,map: Map<String, Any>): Observable<Response<BaseResponse<Any>>> {
fun sendMobileCode(lifecycleProvider: LifecycleProvider<Any>?, map: Map<String, Any>): Observable<Response<BaseResponse<Any>>> {
return HttpManager.getInstance()
.execute(lifecycleProvider,MainApi.newInstance().sendMobileCode(map))
.execute(lifecycleProvider, MainApi.newInstance().sendMobileCode(map))
}
/**
* 登录
*/
fun login(lifecycleProvider: LifecycleProvider<Any>?
,map: Map<String, Any>): Observable<Response<BaseResponse<UserBean>>> {
fun login(lifecycleProvider: LifecycleProvider<Any>?, map: Map<String, Any>): Observable<Response<BaseResponse<UserBean>>> {
return HttpManager.getInstance()
.execute(lifecycleProvider,MainApi.newInstance().mobileLogin(map))
.execute(lifecycleProvider, MainApi.newInstance().mobileLogin(map))
}
/**
* 设备信息
*/
fun saveTerminalInfo(lifecycleProvider: LifecycleProvider<Any>?
,map: Map<String, Any>): Observable<Response<BaseResponse<Any>>> {
fun saveTerminalInfo(lifecycleProvider: LifecycleProvider<Any>?, map: Map<String, Any>): Observable<Response<BaseResponse<Any>>> {
return HttpManager.getInstance()
.execute(lifecycleProvider,MainApi.newInstance().saveTerminalInfo(map))
.execute(lifecycleProvider, MainApi.newInstance().saveTerminalInfo(map))
}
/**
* 开通会员
*/
fun openvip(lifecycleProvider: LifecycleProvider<Any>?
,map: Map<String, Any>): Observable<Response<BaseResponse<Any>>> {
fun openvip(lifecycleProvider: LifecycleProvider<Any>?, map: Map<String, Any>): Observable<Response<BaseResponse<VipBean>>> {
return HttpManager.getInstance()
.execute(lifecycleProvider, MainApi.newInstance().getVipProductsByType(map))
}
/**
* 获取开通vip支付方式
*/
fun getpaymentwey(lifecycleProvider: LifecycleProvider<Any>?, map: Map<String, Any>): Observable<Response<BaseResponse<PaymentBean>>> {
return HttpManager.getInstance()
.execute(lifecycleProvider, MainApi.newInstance().getPayChannels(map))
}
/**
* 获取用户登录信息
*/
fun getuserInfo(lifecycleProvider: LifecycleProvider<Any>?): Observable<Response<BaseResponse<MyInfo>>> {
return HttpManager.getInstance()
.execute(lifecycleProvider,MainApi.newInstance().getVipProductsByType(map))
.execute(lifecycleProvider, MainApi.newInstance().baseMsg())
}
}
\ No newline at end of file
......@@ -78,7 +78,7 @@
android:id="@+id/imageView5"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_avatar_ph"
android:src="@mipmap/icon_me1"
app:layout_constraintEnd_toStartOf="@+id/guideline5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline7"
......@@ -99,7 +99,7 @@
android:id="@+id/imageView4"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_avatar_ph"
android:src="@mipmap/icon_me2"
app:layout_constraintEnd_toStartOf="@+id/guideline4"
app:layout_constraintStart_toStartOf="@+id/guideline5"
app:layout_constraintTop_toTopOf="@+id/guideline7"
......@@ -113,8 +113,8 @@
android:text="国内外街景"
android:textColor="@color/black"
android:textSize="10sp"
app:layout_constraintBottom_toTopOf="@+id/guideline8"
app:layout_constraintEnd_toEndOf="@+id/imageView4"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="@+id/imageView4"
app:layout_constraintTop_toBottomOf="@+id/imageView4" />
......@@ -122,7 +122,7 @@
android:id="@+id/imageView6"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_avatar_ph"
android:src="@mipmap/icon_me3"
app:layout_constraintEnd_toStartOf="@+id/guideline6"
app:layout_constraintStart_toStartOf="@+id/guideline4"
app:layout_constraintTop_toTopOf="@+id/guideline7"
......@@ -144,7 +144,7 @@
android:id="@+id/imageView7"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_avatar_ph"
android:src="@mipmap/icon_me4"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/guideline6"
app:layout_constraintTop_toTopOf="@+id/guideline7"
......@@ -165,7 +165,8 @@
android:id="@+id/imageView12"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_avatar_ph"
android:layout_marginTop="10dp"
android:src="@mipmap/icon_me5"
app:layout_constraintEnd_toEndOf="@+id/imageView5"
app:layout_constraintStart_toStartOf="@+id/imageView5"
app:layout_constraintTop_toTopOf="@+id/guideline8"
......@@ -188,7 +189,8 @@
android:id="@+id/imageView13"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_avatar_ph"
android:layout_marginTop="10dp"
android:src="@mipmap/icon_me6"
app:layout_constraintEnd_toEndOf="@+id/imageView4"
app:layout_constraintStart_toStartOf="@+id/imageView4"
app:layout_constraintTop_toTopOf="@+id/guideline8"
......@@ -199,7 +201,8 @@
android:id="@+id/imageView14"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_avatar_ph"
android:layout_marginTop="10dp"
android:src="@mipmap/icon_me7"
app:layout_constraintEnd_toEndOf="@+id/imageView6"
app:layout_constraintStart_toStartOf="@+id/imageView6"
app:layout_constraintTop_toTopOf="@+id/guideline8"
......@@ -234,7 +237,8 @@
android:id="@+id/imageView15"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_avatar_ph"
android:layout_marginTop="10dp"
android:src="@mipmap/icon_me8"
app:layout_constraintEnd_toEndOf="@+id/imageView7"
app:layout_constraintStart_toStartOf="@+id/imageView7"
app:layout_constraintTop_toTopOf="@+id/guideline8"
......@@ -356,31 +360,33 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="100dp" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="100dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/ly_weixin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal"
android:padding="10dp">
android:padding="10dp"
android:visibility="gone">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentLeft="true"
android:layout_marginStart="15dp"
android:src="@mipmap/iv_about_us" />
android:src="@mipmap/icon_pay_wx" />
<TextView
android:layout_width="wrap_content"
......@@ -405,18 +411,20 @@
android:background="#979797" />
<LinearLayout
android:id="@+id/ly_alipay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal"
android:padding="10dp">
android:padding="10dp"
android:visibility="gone">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentLeft="true"
android:layout_marginStart="15dp"
android:src="@mipmap/iv_about_us" />
android:src="@mipmap/icon_pay_zfb" />
<TextView
android:layout_width="wrap_content"
......
This diff is collapsed.
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android">
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="viewModel"
type="com.mints.street.adapter.GridPaymentAdapter" />
</data>
<LinearLayout
android:id="@+id/bg"
android:layout_width="100dp"
android:layout_height="100dp"
android:orientation="vertical"
android:gravity="center">
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/tv_days"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="6个月"
android:textColor="@color/black"
android:textStyle="bold"/>
android:textStyle="bold" />
<TextView
android:id="@+id/tv_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="¥68.0"
android:textStyle="bold"
android:textColor="#FF5722"
android:textSize="20dp"
android:textColor="#FF5722"/>
android:textStyle="bold" />
<TextView
android:id="@+id/text1"
android:id="@+id/tv_oldprice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="原价¥108.0"
android:textSize="10dp"
android:textColor="#25000000"/>
android:textColor="#25000000"
android:textSize="10dp" />
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -3,7 +3,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:background="@drawable/shape_bt_disagree"
android:background="@mipmap/icon_card"
android:orientation="vertical">
......
......@@ -2,7 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/shape_bt_disagree"
android:background="@mipmap/icon_card1"
android:gravity="center_horizontal"
android:orientation="vertical">
......
......@@ -2,7 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/shape_bt_disagree"
android:background="@mipmap/icon_card3"
android:gravity="center_horizontal"
android:orientation="vertical">
......
......@@ -88,6 +88,10 @@ public class ExceptionHandle {
ex = new ResponseThrowable(e, ERROR.TIMEOUT_ERROR);
ex.message = "主机地址未知";
return ex;
} else if (e instanceof java.lang.StringIndexOutOfBoundsException) {
ex = new ResponseThrowable(e, ERROR.PARAM_ERROR);
ex.message = "参数异常";
return ex;
} else {
ex = new ResponseThrowable(e, ERROR.UNKNOWN);
ex.message = "未知错误";
......@@ -127,6 +131,10 @@ public class ExceptionHandle {
* 连接超时
*/
public static final int TIMEOUT_ERROR = 1006;
/**
* 参数异常
*/
public static final int PARAM_ERROR = 1007;
}
}
......
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