Commit 7c5430a7 authored by 王雪伟's avatar 王雪伟

[提交人]:王雪伟

[提交简述] :小象省钱
[实现方案] :加入盲盒
parent 772867a7
...@@ -91,17 +91,17 @@ ...@@ -91,17 +91,17 @@
android:authorities="${applicationId}.TTMultiProvider" android:authorities="${applicationId}.TTMultiProvider"
android:exported="false" /> android:exported="false" />
<!-- <uses-library-->
<!-- android:name="org.apache.http.legacy"-->
<!-- android:required="false" />-->
<!-- <meta-data--> <uses-library
<!-- android:name="design_width_in_dp"--> android:name="org.apache.http.legacy"
<!-- android:value="420"/>--> android:required="false" />
<!-- <meta-data-->
<!-- android:name="design_height_in_dp"-->
<!-- android:value="740"/>-->
<meta-data
android:name="design_width_in_dp"
android:value="420"/>
<meta-data
android:name="design_height_in_dp"
android:value="740"/>
</application> </application>
</manifest> </manifest>
\ No newline at end of file
...@@ -202,6 +202,7 @@ public class NetConfig { ...@@ -202,6 +202,7 @@ public class NetConfig {
public static String WEB_URL_BUYER_KNOW = "https://newspool.zhangxinhulian.com/sspapiNovel/su/custom/xingyunmohe/buyerKnow.html?version=" + Constant.Param.vn + "&appName=幸运魔盒&company=北京志信博文科技发展有限公司"; public static String WEB_URL_BUYER_KNOW = "https://newspool.zhangxinhulian.com/sspapiNovel/su/custom/xingyunmohe/buyerKnow.html?version=" + Constant.Param.vn + "&appName=幸运魔盒&company=北京志信博文科技发展有限公司";
public static String WEB_URL_WEEK_RULE = "https://newspool.zhangxinhulian.com/sspapiNovel/su/custom/xingyunmohe/week_activity_rule.html"; public static String WEB_URL_WEEK_RULE = "https://newspool.zhangxinhulian.com/sspapiNovel/su/custom/xingyunmohe/week_activity_rule.html";
public static String WEB_URL_INVITE; public static String WEB_URL_INVITE;
public static String WEB_URL_H5_PAY = "https://newspool.zhangxinhulian.com/sspapiNovel/su/custom/xingyunmohe/pay_order.html";
} }
...@@ -272,6 +273,7 @@ public class NetConfig { ...@@ -272,6 +273,7 @@ public class NetConfig {
public static final String XX_GOODS_GUESS_LIKE = "app/v1/game/xiaoxiang/guessLike";//猜你喜欢 public static final String XX_GOODS_GUESS_LIKE = "app/v1/game/xiaoxiang/guessLike";//猜你喜欢
public static final String XX_GOODS_CONVERT_LINK = "app/v1/game/xiaoxiang/convertLink";//转链 public static final String XX_GOODS_CONVERT_LINK = "app/v1/game/xiaoxiang/convertLink";//转链
public static final String XX_GOODS_ITEM_DETAIL = "app/v1/game/xiaoxiang/itemDetail";//图文详情 public static final String XX_GOODS_ITEM_DETAIL = "app/v1/game/xiaoxiang/itemDetail";//图文详情
public static final String XX_HOME_BANNER = "app/v1/game/xiaoxiang/banner";//Banner
} }
......
...@@ -5,9 +5,7 @@ import com.zxhl.cms.common.NetConfig ...@@ -5,9 +5,7 @@ import com.zxhl.cms.common.NetConfig
import com.zxhl.cms.net.model.box.* import com.zxhl.cms.net.model.box.*
import com.zxhl.cms.net.model.other.IsWeChatLoginEntity import com.zxhl.cms.net.model.other.IsWeChatLoginEntity
import com.zxhl.cms.net.model.other.WxBindEntity import com.zxhl.cms.net.model.other.WxBindEntity
import com.zxhl.cms.net.model.qy.JgqQyEntity import com.zxhl.cms.net.model.qy.*
import com.zxhl.cms.net.model.qy.RightsDetailEntity
import com.zxhl.cms.net.model.qy.TbGoodsEntity
import com.zxhl.cms.net.model.uc.UserInfo import com.zxhl.cms.net.model.uc.UserInfo
import com.zxhl.cms.net.model.uc.VersionEntity import com.zxhl.cms.net.model.uc.VersionEntity
import io.reactivex.Observable import io.reactivex.Observable
...@@ -359,7 +357,7 @@ interface IHomeApi { ...@@ -359,7 +357,7 @@ interface IHomeApi {
@GET(NetConfig.QY.XX_GOODS_CONVERT_LINK) @GET(NetConfig.QY.XX_GOODS_CONVERT_LINK)
fun getGoodsConvertLink( fun getGoodsConvertLink(
@Query("link") link: String @Query("link") link: String
): Observable<Response<TbGoodsEntity>> ): Observable<Response<ConvertLinkEntity>>
//图文详情 //图文详情
@GET(NetConfig.QY.XX_GOODS_ITEM_DETAIL) @GET(NetConfig.QY.XX_GOODS_ITEM_DETAIL)
...@@ -367,4 +365,8 @@ interface IHomeApi { ...@@ -367,4 +365,8 @@ interface IHomeApi {
@Query("productId") productId: String @Query("productId") productId: String
): Observable<Response<TbGoodsEntity>> ): Observable<Response<TbGoodsEntity>>
//Banner
@GET(NetConfig.QY.XX_HOME_BANNER)
fun getHomeBanner(): Observable<Response<List<HomeBannerEntity>>>
} }
\ No newline at end of file
package com.zxhl.cms.net.model.qy
import java.io.Serializable
/**
* @author (wangXuewei)
* @detail :
*/
class ConvertLinkEntity : Serializable {
var msg: String? = ""
var result: String? = ""
var data: TbLinkEntity? = null
var error: String? = ""
var request_id: String? = ""
class TbLinkEntity {
var category_id: String? = ""
var coupon_click_url: String? = ""
var coupon_end_time: String? = ""
var coupon_info: String? = ""
var coupon_remain_count: String? = ""
var coupon_start_time: String? = ""
var coupon_total_count: String? = ""
var max_commission_rate: String? = ""
var reward_info: String? = ""
var commission_rate: String? = ""
var istaote: String? = ""
var num_iid: String? = ""
var sclick_url: String? = ""
var coupon_start_fee: String? = ""
var coupon_amount: String? = ""
var tbk_pwd: String? = ""
var ios_tbk_pwd: String? = ""
var global_tbk_pwd: String? = ""
var coupon_short_url: String? = ""
}
}
\ No newline at end of file
package com.zxhl.cms.net.model.qy
import com.zxhl.cms.net.model.box.GoodList
import com.zxhl.cms.net.model.box.HomeBoxListEntity
class HomeBannerEntity {
var id: String? = ""
var boxId: String? = ""
var mainImage: String? = ""
var boxName: String? = ""
var description: String? = ""
var onePrice: Double? =0.0
var fivePrice: Double? =0.0
var totalSalesVolume: String? =""
var goodsList:List<GoodList>?=null
var headImages:List<String>?=null
var otherList:List<HomeBoxListEntity>?=null
var maxPriceStr: String? = ""
var minPriceStr: String? = ""
var onePriceStr: String? = ""
var text: String? = ""
var fiveShow: Int? = 1
var activitiesType: Int? = 0
var activitiesPrice: String? = ""
var activitiesRefreshImage: String? = ""
var activitiesRefreshName: String? = ""
var newUserPrice: String? = ""
var activitiesTimes: Int? = 0
var activitiesRefreshId: String = ""
var activitiesDiscount: String = ""
var originalPrice: String = ""
var discount: String = ""
var bannerType: String = ""
var url: String? = ""
}
\ No newline at end of file
...@@ -8,14 +8,14 @@ import java.io.Serializable ...@@ -8,14 +8,14 @@ import java.io.Serializable
*/ */
class TbGoodsEntity : Serializable { class TbGoodsEntity : Serializable {
var msg: String? = "" var msg: String? = ""
var is_similar: String? = "" var is_similar: String? = "" //是否是相似搜索:0-否,1-是
var result_list: List<TbGoodsItemEntity>? = null//普通tab var result_list: List<TbGoodsItemEntity>? = null//普通tab
var data: List<TbGoodsItemEntity>? = null//猜你喜欢 var data: List<TbGoodsItemEntity>? = null//猜你喜欢
var is_splitWord: String? = "" var is_splitWord: String? = ""
var error: String? = "" var error: String? = ""
var search_type: String? = "" var search_type: String? = "" //搜索类型:0表示未启动搜索,10表示搜索淘口令或链接中的产品,21和22表示搜索非淘客商品找相似结果,30表示搜索关键字,60其它
var request_id: String? = "" var request_id: String? = ""
var force_index: String? = "" var force_index: String? = ""
var total_results: String? = "" var total_results: String? = "" //返回的商品数量。
} }
\ No newline at end of file
...@@ -7,42 +7,43 @@ import java.io.Serializable ...@@ -7,42 +7,43 @@ import java.io.Serializable
* @detail : * @detail :
*/ */
class TbGoodsItemEntity : Serializable { class TbGoodsItemEntity : Serializable {
var presale_end_time: String? = "" var presale_end_time: String? = ""//预售商品-付定金结束时间(毫秒)
var category_name: String? = "" var category_name: String? = ""
var zk_final_price: String? = "" var zk_final_price: String? = ""
var coupon_remain_count: String? = "" var coupon_remain_count: String? = ""//优惠券余量,如无此字段则表示没有优惠券
var num_iid: String? = "" var num_iid: String? = ""
var shop_dsr: String? = "" var shop_dsr: String? = ""
var title: String? = "" var title: String? = ""
var presale_tail_start_time: String? = "" var presale_tail_start_time: String? = ""//预售商品-付尾款开始时间(毫秒)
var nick: String? = "" var nick: String? = ""
var level_one_category_id: String? = "" var level_one_category_id: String? = ""//商品信息-一级类目ID
var presale_tail_end_time: String? = "" var presale_tail_end_time: String? = ""//预售商品-付定金结束时间(毫秒)
var presale_deposit: String? = "" var presale_deposit: String? = "" //预售商品-定金(元),通常是双11时才有。
var short_title: String? = "" var short_title: String? = ""
var user_type: String? = "" var user_type: String? = ""//店铺信息-卖家类型。0表示集市,1表示天猫
var category_id: String? = "" var category_id: String? = ""
var coupon_id: String? = "" var coupon_id: String? = ""//优惠券ID,只有有券时才有此参数。
var shop_title: String? = "" var shop_title: String? = ""
var small_images: List<String>? = null var small_images: List<String>? = null
var seller_id: String? = "" var seller_id: String? = ""
var coupon_amount: String? = "" var coupon_amount: String? = ""
var superior_brand: String? = "" var superior_brand: String? = ""//是否品牌精选,0不是,1是
var item_id: String? = "" var item_id: String? = ""
var level_one_category_name: String? = "" var level_one_category_name: String? = ""//商品信息-一级类目名称
var presale_start_time: String? = "" var presale_start_time: String? = ""//预售商品-付定金开始时间(毫秒)
var coupon_total_count: String? = "" var coupon_total_count: String? = ""////优惠券总量,如无此字段则表示没有优惠券
var pict_url: String? = "" var cpa_reward_type: String? = "" //额外奖励活动类型,如果一个商品有多个奖励类型,返回结果使用空格分割,0=单单奖励,1=超级单单奖励
var pict_url: String? = ""//主图
var white_image: String? = "" var white_image: String? = ""
var coupon_info: String? = "" var coupon_info: String? = ""////优惠券信息,比如“满200元减10元”。
var volume: String? = "" var volume: String? = ""//商品信息-30天销量(饿了么卡券信息-总销量)
var coupon_start_fee: String? = "" var coupon_start_fee: String? = ""
var real_post_fee: String? = "" var real_post_fee: String? = ""
var provcity: String? = "" var provcity: String? = ""
var tk_total_sales: String? = "" var tk_total_sales: String? = ""
var item_url: String? = "" var item_url: String? = ""
var commission_rate: String? = "" var commission_rate: String? = ""////佣金率,需要除以100得到百分比例值,比如5000表示50%。这里200表示2%
var tk_total_commi: String? = "" var tk_total_commi: String? = ""//商品信息-月支出佣金(该字段废弃,请勿再用)
var item_description: String? = "" var item_description: String? = ""
var reserve_price: String? = "" var reserve_price: String? = ""
var coupon_start_time: String? = "" var coupon_start_time: String? = ""
......
...@@ -14,10 +14,12 @@ class PayContract { ...@@ -14,10 +14,12 @@ class PayContract {
fun updatePriceList(data: List<MemberEntity.ProductDetail>) fun updatePriceList(data: List<MemberEntity.ProductDetail>)
fun verifyOrderFail(errorMsg:String) fun verifyOrderFail(errorMsg: String)
fun requestOrderSuc() fun requestOrderSuc()
fun requestH5OrderSuc(form: String)
fun verifyOrderSuc(orsder: String) fun verifyOrderSuc(orsder: String)
...@@ -27,9 +29,9 @@ class PayContract { ...@@ -27,9 +29,9 @@ class PayContract {
} }
interface Presenter { interface Presenter {
fun requestMiniProgrom(goodsId: String,payType: String,payMode:String) fun requestMiniProgrom(goodsId: String, payType: String, payMode: String)
fun requestWechatPayOrder(goodsId: String,payType: String) fun requestWechatPayOrder(goodsId: String, payType: String)
fun requestAliPay(activity: Activity, goodsId: String, payType: String,payMode:String) fun requestAliPay(activity: Activity, goodsId: String, payType: String, payMode: String)
fun verifyPay(order: String?, payType: Int) fun verifyPay(order: String?, payType: Int)
...@@ -37,9 +39,28 @@ class PayContract { ...@@ -37,9 +39,28 @@ class PayContract {
fun getPriceList() fun getPriceList()
fun getVersifacation() fun getVersifacation()
fun appInfo() fun appInfo()
//商城购买 //商城购买
fun shoprequestWechatPayOrder(goodsId: String,payType: String,payMode: String,addressId:String,discount:String,goodIds:String,orderNotes:String) fun shoprequestWechatPayOrder(
fun shoprequestAliPay(activity: Activity,goodsId: String,payType: String,payMode: String,addressId:String,discount:String,goodIds:String,orderNotes:String) goodsId: String,
payType: String,
payMode: String,
addressId: String,
discount: String,
goodIds: String,
orderNotes: String
)
fun shoprequestAliPay(
activity: Activity,
goodsId: String,
payType: String,
payMode: String,
addressId: String,
discount: String,
goodIds: String,
orderNotes: String
)
} }
} }
\ No newline at end of file
...@@ -2,10 +2,12 @@ package com.zxhl.cms.pay ...@@ -2,10 +2,12 @@ package com.zxhl.cms.pay
import android.app.Activity import android.app.Activity
import android.app.Dialog import android.app.Dialog
import android.net.http.SslError
import android.os.Handler import android.os.Handler
import android.util.Log import android.util.Log
import android.view.Gravity import android.view.Gravity
import android.view.View import android.view.View
import android.webkit.*
import android.widget.ImageView import android.widget.ImageView
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.RelativeLayout import android.widget.RelativeLayout
...@@ -26,7 +28,6 @@ import com.zxhl.cms.widget.LoadingDialog ...@@ -26,7 +28,6 @@ import com.zxhl.cms.widget.LoadingDialog
import io.reactivex.Observable import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.functions.Consumer import io.reactivex.functions.Consumer
import kotlinx.android.synthetic.main.activity_member.*
/** /**
* @author (wangXuewei) * @author (wangXuewei)
...@@ -40,6 +41,7 @@ object PayDialog : PayContract.View { ...@@ -40,6 +41,7 @@ object PayDialog : PayContract.View {
private var mPresenter: PayContract.Presenter? = null private var mPresenter: PayContract.Presenter? = null
private var pay_type: Int? = 0 private var pay_type: Int? = 0
private var id_pay_web_view: WebView? = null;
private var id_rl_zfb_pay: RelativeLayout? = null; private var id_rl_zfb_pay: RelativeLayout? = null;
private var id_img_ali: ImageView? = null; private var id_img_ali: ImageView? = null;
private var id_img_min_choose: ImageView? = null; private var id_img_min_choose: ImageView? = null;
...@@ -97,6 +99,7 @@ object PayDialog : PayContract.View { ...@@ -97,6 +99,7 @@ object PayDialog : PayContract.View {
val tv_goods_pay_btn_price = mDialogView.findViewById<TextView>(R.id.id_activity_member_btn) val tv_goods_pay_btn_price = mDialogView.findViewById<TextView>(R.id.id_activity_member_btn)
val id_rcl_payment_list = mDialogView.findViewById<RecyclerView>(R.id.id_rcl_payment_list) val id_rcl_payment_list = mDialogView.findViewById<RecyclerView>(R.id.id_rcl_payment_list)
id_pay_web_view = mDialogView.findViewById<WebView>(R.id.id_pay_web_view)
id_rl_zfb_pay = mDialogView.findViewById<RelativeLayout>(R.id.id_rl_zfb_pay) id_rl_zfb_pay = mDialogView.findViewById<RelativeLayout>(R.id.id_rl_zfb_pay)
id_img_ali = mDialogView.findViewById<ImageView>(R.id.id_img_ali) id_img_ali = mDialogView.findViewById<ImageView>(R.id.id_img_ali)
id_img_min_choose = mDialogView.findViewById<ImageView>(R.id.id_img_min_choose) id_img_min_choose = mDialogView.findViewById<ImageView>(R.id.id_img_min_choose)
...@@ -104,17 +107,6 @@ object PayDialog : PayContract.View { ...@@ -104,17 +107,6 @@ object PayDialog : PayContract.View {
id_rl_min_pay = mDialogView.findViewById<RelativeLayout>(R.id.id_rl_min_pay) id_rl_min_pay = mDialogView.findViewById<RelativeLayout>(R.id.id_rl_min_pay)
id_tv_zfb_2 = mDialogView.findViewById<TextView>(R.id.id_tv_zfb_2) id_tv_zfb_2 = mDialogView.findViewById<TextView>(R.id.id_tv_zfb_2)
mDialogView.findViewById<RelativeLayout>(R.id.id_rl_min_pay)?.setOnClickListener {
pay_type = PayActivity.MIN_PAY_PROGRAM
id_img_min_choose?.setImageResource(R.drawable.icon_xuanzhong)
id_img_ali?.setImageResource(R.drawable.icon_xuanzhong_default)
}
mDialogView.findViewById<RelativeLayout>(R.id.id_rl_zfb_pay)?.setOnClickListener {
pay_type = PayActivity.ALI_PAY
id_img_min_choose?.setImageResource(R.drawable.icon_xuanzhong_default)
id_img_ali?.setImageResource(R.drawable.icon_xuanzhong)
}
if (!context.isFinishing) { if (!context.isFinishing) {
Glide.with(context).load(goodsImg).into(tv_goodsMainImg) Glide.with(context).load(goodsImg).into(tv_goodsMainImg)
...@@ -138,7 +130,7 @@ object PayDialog : PayContract.View { ...@@ -138,7 +130,7 @@ object PayDialog : PayContract.View {
pay_type.toString(), pay_type.toString(),
"6" "6"
) )
} else if (pay_type == 13) { } else if (pay_type == 13 || pay_type == 21) {
mPresenter?.requestMiniProgrom( mPresenter?.requestMiniProgrom(
payPrice, payPrice,
pay_type.toString(), pay_type.toString(),
...@@ -236,6 +228,15 @@ object PayDialog : PayContract.View { ...@@ -236,6 +228,15 @@ object PayDialog : PayContract.View {
mLoading?.setLoading("正在支付") mLoading?.setLoading("正在支付")
} }
override fun requestH5OrderSuc(form: String) {
if (form.isEmpty()) {
EventUtils.onEvent("h5_pay_error")
showResultLoading(false)
} else {
loadH5Pay(form)
}
}
override fun verifyOrderSuc(orsder: String) { override fun verifyOrderSuc(orsder: String) {
UserDataUtils.updateUserInfo { _, _ -> UserDataUtils.updateUserInfo { _, _ ->
showResultLoading(true) showResultLoading(true)
...@@ -254,31 +255,13 @@ object PayDialog : PayContract.View { ...@@ -254,31 +255,13 @@ object PayDialog : PayContract.View {
if (result != null && !result.pay_config_v2.isNullOrEmpty()) { if (result != null && !result.pay_config_v2.isNullOrEmpty()) {
mPayFunAdapter?.clear() mPayFunAdapter?.clear()
mPayFunAdapter?.appendToList(result.pay_config_v2) mPayFunAdapter?.appendToList(result.pay_config_v2)
if (result?.pay_config_v2!![0].open == 1) { for (i in result.pay_config_v2!!.indices) {
pay_type = result?.pay_config_v2!![0].type if (result?.pay_config_v2!![i].open == 1) {
mPayFunAdapter?.setPosition(0) pay_type = result?.pay_config_v2!![i].type
mPayFunAdapter?.setPosition(i)
break
}
} }
// if (result.pay_config?.ali != null) {
// if (result.pay_config?.ali?.open == 1) {
// pay_type = PayActivity.ALI_PAY
// id_rl_zfb_pay?.visibility = View.VISIBLE
// id_img_ali?.setImageResource(R.drawable.icon_xuanzhong)
// id_tv_zfb_1?.text = result.pay_config?.ali?.title
// } else {
// id_rl_zfb_pay?.visibility = View.GONE
// }
// }
// if (result.pay_config?.ali_ming != null) {
// if (result.pay_config?.ali_ming?.open == 1) {
// id_rl_min_pay?.visibility = View.VISIBLE
// id_tv_zfb_2?.text = result.pay_config?.ali_ming?.title
// } else {
// id_rl_min_pay?.visibility = View.GONE
// }
// }
} }
} }
...@@ -287,11 +270,11 @@ object PayDialog : PayContract.View { ...@@ -287,11 +270,11 @@ object PayDialog : PayContract.View {
mLoading?.setResult(false, "取消支付", 1000) mLoading?.setResult(false, "取消支付", 1000)
} else { } else {
if (mDialog?.isShowing == true) { if (mDialog?.isShowing == true) {
if (pay_type == PayActivity.MIN_PAY_PROGRAM) { if (pay_type == PayActivity.MIN_PAY_PROGRAM || pay_type == PayActivity.H5_PAY) {
//如果是敏支付 //如果是敏支付
mPresenter?.verifyPay( mPresenter?.verifyPay(
SettingPreference.getOutTradeNo(), SettingPreference.getOutTradeNo(),
PayActivity.MIN_PAY_PROGRAM pay_type!!
) )
} else { } else {
mLoading?.setResult(false, "取消支付", 1000) mLoading?.setResult(false, "取消支付", 1000)
...@@ -302,4 +285,87 @@ object PayDialog : PayContract.View { ...@@ -302,4 +285,87 @@ object PayDialog : PayContract.View {
} }
} }
private fun loadH5Pay(form: String) {
// id_pay_web_view?.visibility = View.VISIBLE
Log.d("wxw", "startTime" + System.currentTimeMillis())
val webSettings = id_pay_web_view?.settings
//如果访问的页面中要与Javascript交互,则webview必须设置支持Javascript
webSettings?.javaScriptEnabled = true
//设置自适应屏幕,两者合用
webSettings?.useWideViewPort = true //将图片调整到适合webview的大小
webSettings?.loadWithOverviewMode = true // 缩放至屏幕的大小
//其他细节操作
webSettings?.cacheMode = WebSettings.LOAD_NO_CACHE //关闭webview中缓存
webSettings?.allowFileAccess = true //设置可以访问文件
webSettings?.javaScriptCanOpenWindowsAutomatically = true //支持通过JS打开新窗口
webSettings?.loadsImagesAutomatically = true //支持自动加载图片
webSettings?.defaultTextEncodingName = "utf-8" //设置编码格式
webSettings?.domStorageEnabled = true
webSettings?.allowFileAccessFromFileURLs = true;
webSettings?.allowUniversalAccessFromFileURLs = true;
id_pay_web_view?.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
Log.e("WXW", "dURL" + url.toString())
if (url == null) return false
try {
if (url.startsWith("alipays://") //支付宝
) {
// val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
// startActivity(intent)
return true
}
} catch (e: Exception) { //防止crash (如果手机上没有安装处理某个scheme开头的url的APP, 会导致crash)
EventUtils.onEvent("h5_open_zfb_error", e.toString())
showResultLoading(false)
return true //没有安装该app时,返回true,表示拦截自定义链接,但不跳转,避免弹出上面的错误页面
}
//处理http和https开头的url
view?.loadUrl(url)
return false
}
override fun onPageFinished(view: WebView?, url: String?) {
Log.e("WXW", "cURL" + url.toString())
Log.d("wxw", "EndTime" + System.currentTimeMillis())
super.onPageFinished(view, url)
if (url?.contains(NetConfig.H5.WEB_URL_H5_PAY) == true) {
id_pay_web_view?.loadUrl("javascript:loadPayHtml('$form')");
}
}
override fun onReceivedSslError(
view: WebView?,
handler: SslErrorHandler?,
error: SslError?
) {
super.onReceivedSslError(view, handler, error)
EventUtils.onEvent("h5_pay_error0", error.toString())
showResultLoading(false)
}
override fun onReceivedError(
view: WebView?,
request: WebResourceRequest?,
error: WebResourceError?
) {
super.onReceivedError(view, request, error)
EventUtils.onEvent("h5_pay_error1", error.toString())
showResultLoading(false)
}
override fun onReceivedHttpError(
view: WebView?,
request: WebResourceRequest?,
errorResponse: WebResourceResponse?
) {
super.onReceivedHttpError(view, request, errorResponse)
EventUtils.onEvent("h5_pay_error2", errorResponse.toString())
showResultLoading(false)
}
}
id_pay_web_view?.loadUrl(NetConfig.H5.WEB_URL_H5_PAY)
}
} }
\ No newline at end of file
...@@ -136,7 +136,15 @@ class PayPresenter : PayContract.Presenter { ...@@ -136,7 +136,15 @@ class PayPresenter : PayContract.Presenter {
override fun onSuccess(result: AliPayEntity?) { override fun onSuccess(result: AliPayEntity?) {
if (result != null) { if (result != null) {
mView?.setOrderNo(result?.outTradeNo) mView?.setOrderNo(result?.outTradeNo)
AlipayServer.payV2(activity, result.wakeup!!) if (payType == "13") {
SettingPreference.setOutTradeNo(result?.outTradeNo)
JumpUtils.h5Jump("https://api.minpayment.com/pay.do?sendMsg=" + result.wakeup)
} else if (payType == "21") {
SettingPreference.setOutTradeNo(result?.outTradeNo)
mView.requestH5OrderSuc(result.outTradeNo ?: "")
}else{
AlipayServer.payV2(activity, result.wakeup!!)
}
mView?.requestOrderSuc() mView?.requestOrderSuc()
} else { } else {
EventUtils.onEvent("member_page_pay_get_order_fail") EventUtils.onEvent("member_page_pay_get_order_fail")
...@@ -160,8 +168,11 @@ class PayPresenter : PayContract.Presenter { ...@@ -160,8 +168,11 @@ class PayPresenter : PayContract.Presenter {
EventUtils.onEvent("member_page_pay_get_order_suc") EventUtils.onEvent("member_page_pay_get_order_suc")
mView?.setOrderNo(result?.outTradeNo) mView?.setOrderNo(result?.outTradeNo)
SettingPreference.setOutTradeNo(result?.outTradeNo) SettingPreference.setOutTradeNo(result?.outTradeNo)
Log.e("MXL","PayURL:"+"https://api.minpayment.com/pay.do?sendMsg="+result.wakeup) if (payType == "13") {
JumpUtils.h5Jump("https://api.minpayment.com/pay.do?sendMsg="+result.wakeup) JumpUtils.h5Jump("https://api.minpayment.com/pay.do?sendMsg=" + result.wakeup)
} else if (payType == "21") {
mView.requestH5OrderSuc(result.outTradeNo ?: "")
}
//WeChatPay.startWeChatProgromPay(result, payType) //WeChatPay.startWeChatProgromPay(result, payType)
mView?.requestOrderSuc() mView?.requestOrderSuc()
} else { } else {
...@@ -250,9 +261,15 @@ class PayPresenter : PayContract.Presenter { ...@@ -250,9 +261,15 @@ class PayPresenter : PayContract.Presenter {
if (!TextUtils.isEmpty(order)) { if (!TextUtils.isEmpty(order)) {
requestVerify(order ?: "", "", payType) requestVerify(order ?: "", "", payType)
} }
}else if(payType==13){ } else if (payType == 13) {
if (!TextUtils.isEmpty(order)) {
requestVerify(order ?: "", "", payType)
}
} else if (payType == 21) {
if (!TextUtils.isEmpty(order)) { if (!TextUtils.isEmpty(order)) {
requestVerify(order ?: "", "", payType) requestVerify(order ?: "", "", payType)
} else {
mView?.verifyOrderFail("支付成功后 订单id为null")
} }
} }
} catch (e: Exception) { } catch (e: Exception) {
...@@ -272,7 +289,7 @@ class PayPresenter : PayContract.Presenter { ...@@ -272,7 +289,7 @@ class PayPresenter : PayContract.Presenter {
EventUtils.onEvent("member_page_pay_suc", result.toString()) EventUtils.onEvent("member_page_pay_suc", result.toString())
} else { } else {
EventUtils.onEvent("member_page_pay_query_order_fail", result.toString()) EventUtils.onEvent("member_page_pay_query_order_fail", result.toString())
mView?.verifyOrderFail("订单校验请求成功 校验异常${result?.status?:-1}") mView?.verifyOrderFail("订单校验请求成功 校验异常${result?.status ?: -1}")
} }
} }
......
...@@ -71,7 +71,7 @@ class PaymentFunAdapter : ...@@ -71,7 +71,7 @@ class PaymentFunAdapter :
holder.mItemView.visibility = View.GONE holder.mItemView.visibility = View.GONE
} }
holder.mItemView.setOnClickListener { holder.mItemView.setOnClickListener {
mListener.onItemClick(it, position, data) mListener.onItemClick(it, pos, data)
} }
} }
......
...@@ -345,5 +345,10 @@ ...@@ -345,5 +345,10 @@
android:layout_marginLeft="15dp" android:layout_marginLeft="15dp"
android:layout_marginTop="6dp" /> android:layout_marginTop="6dp" />
<WebView
android:id="@+id/id_pay_web_view"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout> </RelativeLayout>
\ No newline at end of file
...@@ -256,5 +256,9 @@ ...@@ -256,5 +256,9 @@
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:padding="10dp" android:padding="10dp"
android:src="@drawable/icon_guanbi" /> android:src="@drawable/icon_guanbi" />
<WebView
android:id="@+id/id_pay_web_view"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout> </RelativeLayout>
\ No newline at end of file
...@@ -117,6 +117,18 @@ ...@@ -117,6 +117,18 @@
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name=".box.activity.NewBoxGoodsDetailActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="goodsdetail"
android:scheme="xxsq" />
</intent-filter>
</activity>
</application> </application>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
package com.zxbw.modulemain.activity package com.zxbw.modulemain.activity
import android.content.Intent
import android.net.Uri
import android.net.http.SslError
import android.util.Log import android.util.Log
import android.view.View import android.view.View
import android.webkit.*
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import androidx.viewpager2.widget.ViewPager2 import androidx.viewpager2.widget.ViewPager2
...@@ -11,11 +15,16 @@ import com.zxbw.modulemain.adapter.GoodsListAdapter ...@@ -11,11 +15,16 @@ import com.zxbw.modulemain.adapter.GoodsListAdapter
import com.zxbw.modulemain.contract.TbGoodsDetailContract import com.zxbw.modulemain.contract.TbGoodsDetailContract
import com.zxbw.modulemain.presenter.TbGoodsDetailPresenter import com.zxbw.modulemain.presenter.TbGoodsDetailPresenter
import com.zxhl.cms.AppContext import com.zxhl.cms.AppContext
import com.zxhl.cms.common.NetConfig
import com.zxhl.cms.common.base.BaseActivity import com.zxhl.cms.common.base.BaseActivity
import com.zxhl.cms.net.model.qy.ConvertLinkEntity
import com.zxhl.cms.net.model.qy.TbGoodsItemEntity import com.zxhl.cms.net.model.qy.TbGoodsItemEntity
import com.zxhl.cms.net.model.shop.ShopListEntity import com.zxhl.cms.net.model.shop.ShopListEntity
import com.zxhl.cms.utils.EventUtils
import com.zxhl.cms.utils.JumpUtils import com.zxhl.cms.utils.JumpUtils
import com.zxhl.cms.utils.OnRecycleItemClickListener import com.zxhl.cms.utils.OnRecycleItemClickListener
import com.zxhl.cms.utils.Utils
import com.zxhl.cms.widget.LoadingDialog
import kotlinx.android.synthetic.main.activity_layout_tb_goods_detail.* import kotlinx.android.synthetic.main.activity_layout_tb_goods_detail.*
import me.jessyan.autosize.utils.ScreenUtils import me.jessyan.autosize.utils.ScreenUtils
...@@ -25,7 +34,7 @@ import me.jessyan.autosize.utils.ScreenUtils ...@@ -25,7 +34,7 @@ import me.jessyan.autosize.utils.ScreenUtils
* @detail : 淘宝商品详情 * @detail : 淘宝商品详情
*/ */
class TbGoodsDetailActivity : BaseActivity(), TbGoodsDetailContract.View { class TbGoodsDetailActivity : BaseActivity(), TbGoodsDetailContract.View {
private var mLoading: LoadingDialog? = null
private var mGoodsAdapter: GoodsListAdapter? = null; private var mGoodsAdapter: GoodsListAdapter? = null;
private var mPresenter: TbGoodsDetailPresenter? = null; private var mPresenter: TbGoodsDetailPresenter? = null;
private var goodsDetail: TbGoodsItemEntity? = null private var goodsDetail: TbGoodsItemEntity? = null
...@@ -57,6 +66,7 @@ class TbGoodsDetailActivity : BaseActivity(), TbGoodsDetailContract.View { ...@@ -57,6 +66,7 @@ class TbGoodsDetailActivity : BaseActivity(), TbGoodsDetailContract.View {
id_rcl_recommend_goods_list.adapter = mGoodsAdapter id_rcl_recommend_goods_list.adapter = mGoodsAdapter
id_img_close_btn?.setOnClickListener(this) id_img_close_btn?.setOnClickListener(this)
id_ll_tb_buy_view?.setOnClickListener(this)
initView() initView()
...@@ -73,12 +83,36 @@ class TbGoodsDetailActivity : BaseActivity(), TbGoodsDetailContract.View { ...@@ -73,12 +83,36 @@ class TbGoodsDetailActivity : BaseActivity(), TbGoodsDetailContract.View {
} }
private fun initView() { private fun initView() {
mLoading = LoadingDialog.getLoadingDialog(
this,
getString(com.zxhl.cms.R.string.wait_ing),
true,
true
)
if (goodsDetail == null) { if (goodsDetail == null) {
return return
} }
id_tv_goods_name?.text = goodsDetail?.title id_tv_goods_name?.text = goodsDetail?.title
id_tv_tm_price?.text = goodsDetail?.reserve_price
id_tv_tm_buy_price?.text = goodsDetail?.reserve_price
id_tv_sale_num?.text = goodsDetail?.volume ?: "0"
if (goodsDetail?.coupon_amount.isNullOrEmpty()) {
id_tv_xx_price?.text = "${goodsDetail?.reserve_price}"
id_tv_vip_buy_price?.text = "${goodsDetail?.reserve_price}"
} else {
var r_price = goodsDetail?.reserve_price?.toDoubleOrNull() ?: 0 as Double
var c_price = goodsDetail?.coupon_amount?.toDoubleOrNull() ?: 0 as Double
var vipPrice = Utils.getNoMoreThanTwoDigits(
Utils.sub(
r_price,
c_price
)
)
id_tv_xx_price?.text = vipPrice
id_tv_vip_buy_price?.text = vipPrice
}
if (!goodsDetail?.small_images.isNullOrEmpty()) { if (!goodsDetail?.small_images.isNullOrEmpty()) {
var mPagerAdapter = DetailBannerAdapter(goodsDetail?.small_images!!) var mPagerAdapter = DetailBannerAdapter(goodsDetail?.small_images!!)
id_detail_top_banner.adapter = mPagerAdapter id_detail_top_banner.adapter = mPagerAdapter
...@@ -89,7 +123,6 @@ class TbGoodsDetailActivity : BaseActivity(), TbGoodsDetailContract.View { ...@@ -89,7 +123,6 @@ class TbGoodsDetailActivity : BaseActivity(), TbGoodsDetailContract.View {
positionOffset: Float, positionOffset: Float,
positionOffsetPixels: Int positionOffsetPixels: Int
) { ) {
} }
override fun onPageSelected(position: Int) { override fun onPageSelected(position: Int) {
...@@ -109,15 +142,112 @@ class TbGoodsDetailActivity : BaseActivity(), TbGoodsDetailContract.View { ...@@ -109,15 +142,112 @@ class TbGoodsDetailActivity : BaseActivity(), TbGoodsDetailContract.View {
id_img_close_btn -> { id_img_close_btn -> {
finish() finish()
} }
id_ll_tb_buy_view -> {
if (tbLink == "") {
showToast("未获取到信息,请重试")
} else {
mLoading?.setLoading("请稍后")
mLoading?.show()
jumpTbWeb(tbLink, object : JumpTbCallBack {
override fun jumpSuccess() {
mLoading?.setResult(true, "成功", 1000)
}
override fun jumpError(error: String) {
Log.d("wxw", "error:$error")
mLoading?.setResult(false, "购买失败,请重试", 1000)
EventUtils.onEvent("JumpTbError", error)
}
})
}
}
} }
} }
override fun setConvertLink() { private var tbLink = "";
override fun setConvertLink(result: ConvertLinkEntity?) {
tbLink = result?.data?.coupon_short_url ?: ""
} }
override fun setGoodsDetail() { override fun setGoodsDetail() {
} }
private interface JumpTbCallBack {
fun jumpSuccess();
fun jumpError(error: String);
}
private fun jumpTbWeb(sortUrl: String, callBack: JumpTbCallBack) {
// id_tb_web_view.visibility = View.VISIBLE
val webSettings = id_tb_web_view.settings
webSettings.javaScriptEnabled = true
//其他细节操作
webSettings.cacheMode = WebSettings.LOAD_NO_CACHE //关闭webview中缓存
webSettings.allowFileAccess = true //设置可以访问文件
webSettings.javaScriptCanOpenWindowsAutomatically = true //支持通过JS打开新窗口
webSettings.loadsImagesAutomatically = true //支持自动加载图片
webSettings.defaultTextEncodingName = "utf-8" //设置编码格式
webSettings.domStorageEnabled = true
webSettings.allowFileAccessFromFileURLs = true;
webSettings.allowUniversalAccessFromFileURLs = true;
id_tb_web_view?.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
Log.e("WXW", "dURL" + url.toString())
if (url == null) return false
try {
if (url.startsWith("dianping://") //大众点评
|| url.startsWith("tbopen://") //淘宝
|| url.startsWith("openapp.jdmobile://") //京东
|| url.startsWith("tmast://") //淘宝
|| url.startsWith("pinduoduo://") //拼多多
//其他自定义的scheme
) {
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
startActivity(intent)
callBack.jumpSuccess()
return true
}
} catch (e: Exception) { //防止crash (如果手机上没有安装处理某个scheme开头的url的APP, 会导致crash)
callBack.jumpError("跳转淘宝失败:${e.message}")
return true //没有安装该app时,返回true,表示拦截自定义链接,但不跳转,避免弹出上面的错误页面
}
return false
}
override fun onReceivedSslError(
view: WebView?,
handler: SslErrorHandler?,
error: SslError?
) {
super.onReceivedSslError(view, handler, error)
callBack.jumpError("onReceivedSslError:" + error.toString())
}
override fun onReceivedError(
view: WebView?,
request: WebResourceRequest?,
error: WebResourceError?
) {
super.onReceivedError(view, request, error)
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
callBack.jumpError("onReceivedError:" + error?.description)
} else {
callBack.jumpError("onReceivedError:null")
}
}
override fun onReceivedHttpError(
view: WebView?,
request: WebResourceRequest?,
errorResponse: WebResourceResponse?
) {
super.onReceivedHttpError(view, request, errorResponse)
callBack.jumpError("onReceivedHttpError:" + errorResponse.toString())
}
}
id_tb_web_view.loadUrl(sortUrl)
}
} }
\ No newline at end of file
...@@ -35,7 +35,11 @@ class DetailBannerAdapter : PagerAdapter { ...@@ -35,7 +35,11 @@ class DetailBannerAdapter : PagerAdapter {
val data = mViewList[position] val data = mViewList[position]
val view = LayoutInflater.from(AppContext.get()).inflate(R.layout.item_layout_detail_banner, null) val view = LayoutInflater.from(AppContext.get()).inflate(R.layout.item_layout_detail_banner, null)
val bg = view.findViewById<ImageView>(R.id.id_img_detail_banner_bg) val bg = view.findViewById<ImageView>(R.id.id_img_detail_banner_bg)
Glide.with(AppContext.get()).load(data).into(bg) if(data.startsWith("//img")){
Glide.with(AppContext.get()).load("https:"+data).into(bg)
}else{
Glide.with(AppContext.get()).load(data).into(bg)
}
container.addView(view)// 添加页卡 container.addView(view)// 添加页卡
return view return view
} }
......
...@@ -8,6 +8,8 @@ import android.widget.ImageView ...@@ -8,6 +8,8 @@ import android.widget.ImageView
import androidx.viewpager.widget.PagerAdapter import androidx.viewpager.widget.PagerAdapter
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.zxbw.modulemain.R import com.zxbw.modulemain.R
import com.zxhl.cms.net.model.qy.HomeBannerEntity
import com.zxhl.cms.utils.JumpUtils
import com.zxhl.cms.utils.Utils import com.zxhl.cms.utils.Utils
import java.util.ArrayList import java.util.ArrayList
...@@ -15,10 +17,10 @@ class HomeBannerAdapter : PagerAdapter { ...@@ -15,10 +17,10 @@ class HomeBannerAdapter : PagerAdapter {
private var mActivity: Activity? = null private var mActivity: Activity? = null
private var mViewList: List<String> = ArrayList() private var mViewList: List<HomeBannerEntity> = ArrayList()
constructor( constructor(
mList: List<String>, mList: List<HomeBannerEntity>,
context: Activity, context: Activity,
) : super() { ) : super() {
mViewList = mList //构造方法,参数是我们的页卡,这样比较方便。 mViewList = mList //构造方法,参数是我们的页卡,这样比较方便。
...@@ -35,11 +37,21 @@ class HomeBannerAdapter : PagerAdapter { ...@@ -35,11 +37,21 @@ class HomeBannerAdapter : PagerAdapter {
val data = mViewList[position] val data = mViewList[position]
val view = LayoutInflater.from(mActivity).inflate(R.layout.item_layout_home_banner, null) val view = LayoutInflater.from(mActivity).inflate(R.layout.item_layout_home_banner, null)
val bg = view.findViewById<ImageView>(R.id.id_img_banner_bg) val bg = view.findViewById<ImageView>(R.id.id_img_banner_bg)
if (mActivity?.isFinishing==false){ if (data.bannerType.equals("blindBox")) {
Glide.with(mActivity!!).load(data).placeholder(R.drawable.img_banner_ms_bg).into(bg) bg.setImageResource(R.drawable.img_banner_mh_bg)
} else if (data.bannerType.equals("H5")) {
bg.setImageResource(R.drawable.img_banner_wm_bg)
} else {
bg.setImageResource(R.drawable.img_banner_ms_bg)
} }
bg.setOnClickListener { bg.setOnClickListener {
Utils.showToast(mActivity,"postion$position") if (data.bannerType.equals("blindBox")) {
JumpUtils.goodsDetailJump(data.boxId)
} else if (data.bannerType.equals("H5")) {
JumpUtils.webJump("", data.url)
} else {
}
} }
container.addView(view)// 添加页卡 container.addView(view)// 添加页卡
return view return view
......
...@@ -77,18 +77,36 @@ class HomeRecommendAdapter : BaseRecyclerAdapter<TbGoodsItemEntity, RecyclerView ...@@ -77,18 +77,36 @@ class HomeRecommendAdapter : BaseRecyclerAdapter<TbGoodsItemEntity, RecyclerView
val bean = mList[position - viewNum] val bean = mList[position - viewNum]
holder.id_tv_goods_name?.text = bean.title holder.id_tv_goods_name?.text = bean.title
if (mContext?.isFinishing == false) { if (mContext?.isFinishing == false) {
holder.id_item_goods_img?.setLoadImageUrl(bean.pict_url, 0, 5) if(bean.pict_url?.startsWith("//img") == true){
holder.id_item_goods_img?.setLoadImageUrl("https:"+bean.pict_url, 0, 5)
}else{
holder.id_item_goods_img?.setLoadImageUrl(bean.pict_url, 0, 5)
}
} }
holder.id_tv_tb_price_value?.text = "淘宝商城价 : ¥${bean.reserve_price}" holder.id_tv_tb_price_value?.text = "淘宝商城价 : ¥${bean.reserve_price}"
holder.id_tv_yhq_value?.text = "${bean.coupon_start_fee}元券" if (bean.coupon_amount.isNullOrEmpty()){
var r_price = bean.reserve_price?.toDoubleOrNull() ?: 0 as Double holder.id_tv_yhq_value?.visibility =View.GONE
var c_price = bean.coupon_start_fee?.toDoubleOrNull() ?: 0 as Double holder.id_tv_goods_price?.text ="${bean.reserve_price}"
holder.id_tv_goods_price?.text = Utils.getNoMoreThanTwoDigits( }else{
Utils.sub( holder.id_tv_yhq_value?.visibility =View.VISIBLE
r_price, holder.id_tv_yhq_value?.text = "${bean.coupon_amount}元券"
c_price var r_price = bean.reserve_price?.toDoubleOrNull() ?: 0 as Double
var c_price = bean.coupon_amount?.toDoubleOrNull() ?: 0 as Double
holder.id_tv_goods_price?.text = Utils.getNoMoreThanTwoDigits(
Utils.sub(
r_price,
c_price
)
) )
) }
if (bean.coupon_info.isNullOrEmpty()){
holder.id_tv_manjian_value?.visibility =View.GONE
}else{
holder.id_tv_manjian_value?.visibility =View.VISIBLE
holder.id_tv_manjian_value?.text = "${bean.coupon_info}"
}
holder.id_rl_goods_item_view?.setOnClickListener { holder.id_rl_goods_item_view?.setOnClickListener {
listener.onItemClick(it, position, bean) listener.onItemClick(it, position, bean)
......
package com.zxbw.modulemain.box.adapter
import android.content.Context
import android.text.TextUtils
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.zxbw.modulemain.R
import com.zxhl.cms.AppContext
import com.zxhl.cms.common.base.BaseRecyclerAdapter
import com.zxhl.cms.net.model.box.LotteryEntity
import com.zxhl.cms.widget.RecycleImageView
class BoxResultAdapter : BaseRecyclerAdapter<LotteryEntity, BoxResultAdapter.ViewHolder> {
private var mContext: Context? = null
constructor(
content: Context?,
) : super() {
mContext = content
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
var bean = mList[position]
holder.id_box_result_goods_name?.text = bean.productName
holder.id_tv_box_result_goods_pinzhi?.text = bean.cateName
if (TextUtils.equals(bean.goodsLevel, "0")) {
holder.id_tv_box_result_goods_pinzhi?.setBackgroundResource(R.drawable.shape_putong_bg_left_r10)
} else if (TextUtils.equals(bean.goodsLevel, "1")) {
holder.id_tv_box_result_goods_pinzhi?.setBackgroundResource(R.drawable.shape_xiyou_bg_left_r10)
} else if (TextUtils.equals(bean.goodsLevel, "2")) {
holder.id_tv_box_result_goods_pinzhi?.setBackgroundResource(R.drawable.shape_shishi_bg_left_r10)
} else if (TextUtils.equals(bean.goodsLevel, "3")) {
holder.id_tv_box_result_goods_pinzhi?.setBackgroundResource(R.drawable.shape_chuanshuo_bg_left_r10)
}
holder.id_box_result_goods_img?.setLoadImageUrl(bean.mainImage, false)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder(
LayoutInflater.from(AppContext.get())
.inflate(R.layout.item_layout_box_result, parent, false)
)
}
class ViewHolder : RecyclerView.ViewHolder {
var id_ll_box_result: LinearLayout?
var id_box_result_goods_img: RecycleImageView?
var id_tv_box_result_goods_pinzhi: TextView?
var id_box_result_goods_name: TextView?
var id_box_result_goods_price: TextView?
constructor(
itemView: View
) : super(itemView) {
id_ll_box_result = itemView.findViewById<LinearLayout>(R.id.id_ll_box_result)
id_box_result_goods_img =
itemView.findViewById<RecycleImageView>(R.id.id_box_result_goods_img)
id_tv_box_result_goods_pinzhi =
itemView.findViewById<TextView>(R.id.id_tv_box_result_goods_pinzhi)
id_box_result_goods_name =
itemView.findViewById<TextView>(R.id.id_box_result_goods_name)
id_box_result_goods_price =
itemView.findViewById<TextView>(R.id.id_box_result_goods_price)
}
}
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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