| | |
| | | tab_bar.currentTab = 3 |
| | | onTabSelect(3) |
| | | }else if(e.code == Const.EventCode.APP_FOREGROUND){ |
| | | bgPlayer?.resume() |
| | | if (voice==null) |
| | | bgPlayer?.resume() |
| | | }else if(e.code == Const.EventCode.APP_BACKGROUND){ |
| | | bgPlayer?.pause() |
| | | }else if(e.code == Const.EventCode.CHANGE_BGM){ |
| | |
| | | ): Flowable<ResultData<Coupon>> |
| | | |
| | | @FormUrlEncoded |
| | | @POST(Apis.pay) |
| | | fun pay( |
| | | @Field("id") id: String, |
| | | @Field("payType") payType : Int, |
| | | @Field("buyType") buyType: Int |
| | | ): Flowable<ResultData<PayInfo>> |
| | | |
| | | @FormUrlEncoded |
| | | @POST(Apis.myFind) |
| | | fun myFind( |
| | | @Field("pageNum") pageNum: Int, |
| | |
| | | @Query("minuteLook") minuteLook: Int = 0 //用不到分 |
| | | ): Flowable<ResultData<Any>> |
| | | |
| | | @POST(Apis.queryPayment) |
| | | fun queryPayment( |
| | | @Query("orderId") orderId: String |
| | | ): Flowable<ResultData<String>> |
| | | |
| | | @POST(Apis.isFirst) |
| | | fun isFirst(): Flowable<ResultData<Boolean>> |
| | | |
| | |
| | | @Query("amount") amount: Double?, |
| | | @Query("receiverId") receiverId: String?, |
| | | @Query("targetId") targetId: String?, |
| | | @Query("vipType") vipType: Int? |
| | | ): Flowable<ResultData<PayInfo>> |
| | | @Query("vipType") vipType: Int?, |
| | | @Query("orderId") orderId: String? |
| | | ): Flowable<ResultData<ThirdPayInfo>> |
| | | |
| | | @POST(Apis.updateUserAvatar) |
| | | fun updateUserAvatar( |
| | |
| | | const val successOrderVoice = "meditation/client/meditation/meditation/successOrder" |
| | | const val saveViewingHistory = "user/user/app-user-viewing-history/saveViewingHistory" |
| | | |
| | | |
| | | /** |
| | | * 我的 |
| | | */ |
| | |
| | | const val getCoursePageList = "course/client/course/tutor-special-column/getCoursePageList" |
| | | const val getPayCourseInfoById = "course/client/course/course/getPayCourseInfoById" |
| | | const val collectCourse = "course/client/course/course/collectCourse" |
| | | const val pay = "base/sports/pay" |
| | | const val success = "base/sports/success" |
| | | const val queryPhysical = "account/api/startCource/queryPhysical" |
| | | const val exit = "base/sports/exit" |
| | |
| | | const val successOrder = "course/client/course/course/successOrder" |
| | | const val studyPageByChapterId = "course/client/course/course/studyPageByChapterId" |
| | | const val saveCourseStudyHistory = "user/user/app-user-viewing-history/saveCourseStudyHistory" |
| | | const val queryPayment = "order/client/order/order/queryPayment" |
| | | |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | /** |
| | | * 支付 |
| | | */ |
| | | fun pay( |
| | | id: String, |
| | | payType: Int, |
| | | buyType: Int |
| | | ): Flowable<ResultData<PayInfo>> { |
| | | return request().pay(id,payType, buyType) |
| | | } |
| | | |
| | | /** |
| | | * 支付结果 |
| | | */ |
| | | fun success( |
| | |
| | | return request().bankList() |
| | | } |
| | | |
| | | fun addBank(bank: String,name: String,phone: String,idCard:String,num: String): Flowable<ResultData<Any>> { |
| | | return request().addBank(Gson().toJson(BankInfo(bank,num,name,phone,idCard))) |
| | | fun addBank(bank: String,name: String,phone: String,idCard:String,num: String,code: String): Flowable<ResultData<Any>> { |
| | | return request().addBank(Gson().toJson(BankInfo(bank,num,name,phone,idCard,code))) |
| | | } |
| | | |
| | | fun deleteBank(id: String): Flowable<ResultData<Any>> { |
| | |
| | | return request().saveCourseStudyHistory(id,isOver,secondLook) |
| | | } |
| | | |
| | | /** |
| | | * 查询支付状态 |
| | | */ |
| | | fun queryPayment(id: String): Flowable<ResultData<String>> { |
| | | return request().queryPayment(id) |
| | | } |
| | | |
| | | fun isFirst(): Flowable<ResultData<Boolean>> { |
| | | return request().isFirst() |
| | | } |
| | |
| | | /** |
| | | * 支付 |
| | | */ |
| | | fun placeOrder(orderFrom:Int,payType:Int,balanceFlag:Int,amount:Double?,receiverId:String?,targetId:String?,vipType:Int?): Flowable<ResultData<PayInfo>> { |
| | | return request().placeOrder(orderFrom, payType, balanceFlag, amount, receiverId, targetId, vipType) |
| | | fun placeOrder(orderFrom:Int,payType:Int,balanceFlag:Int,amount:Double?,receiverId:String?,targetId:String?,vipType:Int?,orderId:String? = null): Flowable<ResultData<ThirdPayInfo>> { |
| | | return request().placeOrder(orderFrom, payType, balanceFlag, amount, receiverId, targetId, vipType,orderId) |
| | | } |
| | | |
| | | /** |
| | |
| | | val cardholder: String, |
| | | val cellPhone: String, |
| | | val identityCard: String, |
| | | val code: String, |
| | | val id: String?=null |
| | | ) |
New file |
| | |
| | | package com.sinata.xqmuse.network.entity |
| | | |
| | | import android.content.Context |
| | | import com.sinata.xqmuse.utils.Const |
| | | import com.tencent.mm.opensdk.modelbiz.WXLaunchMiniProgram |
| | | import com.tencent.mm.opensdk.openapi.WXAPIFactory |
| | | |
| | | data class ThirdPayInfo( |
| | | val id: String, |
| | | val orderId: String, |
| | | val path: String, |
| | | val payAmt: String, |
| | | val payInfo: String, |
| | | val appId: String, |
| | | val orgId: String, |
| | | val qrcodeUrl: String, |
| | | val zeroFlag: Int |
| | | ){ |
| | | fun jumpToWx(context: Context){ |
| | | val api = WXAPIFactory.createWXAPI(context, Const.WX_APP_ID) |
| | | val req = WXLaunchMiniProgram.Req() |
| | | req.userName = orgId // 填小程序原始id |
| | | req.path = path |
| | | req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE// 可选打开 开发版,体验版和正式版 |
| | | api.sendReq(req) |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | fun getLevelName() = when(treeLevelType){ //1=种子 2=发芽 3=幼苗 4=小树苗 5=中等树苗 6=小树 7=中树 8=大树 9=成熟的大树 10=参天大树 |
| | | 2-> "发芽" |
| | | 3-> "幼苗" |
| | | 4-> "小树苗" |
| | | 5-> "中等树苗" |
| | | 6-> "小树" |
| | | 7-> "中树" |
| | | 8-> "大树" |
| | | 9-> "成熟的大树" |
| | | 10->"参天大树" |
| | | else->"种子" |
| | | 2-> "恭喜您,种子发芽了,爱的旅程已经开始,为你加油!" |
| | | 3-> "幼苗拔地而起,智慧悄然萌发,前方的道路,更加的明亮,继续努力吧!" |
| | | 4-> "树苗在成长,内心变得更加的柔软包容。未来正在向你招手。" |
| | | 5-> "小树扎下了深深的根,离爱的梦想越来越近,继续坚持吧。" |
| | | 6-> "大树已枝繁叶茂,自由的伸展,你的努力成就了这份美好,未来将更加的璀璨。" |
| | | 7-> "智慧之花即将绽放,满载着希望与能量,前路无限的可能!" |
| | | 8-> "恭喜你,智慧的花朵已经绽放,让我们走在充满芬芳的道路上吧!" |
| | | 9-> "智慧之花开满枝头,满满的活力和美好,向你涌来了" |
| | | 10->"真爱的果实已挂满枝头,丰盛而充实,人生如此美好,感谢您的浇灌!" |
| | | else->"亲爱的家人,生命之树的种子已植入这片沃土,请以农夫的心态用心浇灌,为你加油哦。" |
| | | } |
| | | } |
| | |
| | | import com.sinata.xqmuse.utils.pay.PayListener |
| | | import com.umeng.socialize.bean.SHARE_MEDIA |
| | | import kotlinx.android.synthetic.main.activity_buy_course.* |
| | | import org.jetbrains.anko.browse |
| | | import org.jetbrains.anko.startActivity |
| | | import org.jetbrains.anko.toast |
| | | |
| | |
| | | private val fromDetail by lazy { intent.getBooleanExtra("fromDetail",true) } |
| | | private val data by lazy { intent.getParcelableExtra<ConfirmOrder>("data") } |
| | | private var receiveId:String? = null |
| | | private var orderId = "" |
| | | |
| | | override fun initClick() { |
| | | tv_search.setOnClickListener { |
| | |
| | | private fun pay(way:Int) { |
| | | tv_action.isEnabled = false |
| | | showDialog() |
| | | HttpManager.placeOrder(2,way,if (rb_balance.isChecked) 1 else 2,null,receiveId,data?.id?:"",null).request(this,success = {_,data-> |
| | | onPaySuccess() |
| | | HttpManager.placeOrder(2,way,if (rb_balance.isChecked) 1 else 2,null,receiveId,data?.id?:"",null,data?.orderId).request(this,success = {_,data-> |
| | | tv_action.isEnabled = true |
| | | orderId = data?.orderId?:"" |
| | | if (way == 1) |
| | | data?.jumpToWx(this) |
| | | else |
| | | browse(data?.qrcodeUrl?:"") |
| | | }){_,_-> |
| | | tv_action.isEnabled = true |
| | | } |
| | |
| | | tv_total.text = generalPrice |
| | | val s = "余额抵扣 当前可用 ¥$balance" |
| | | rb_balance.text = SpanBuilder(s).size(4,s.length,11).color(this@BuyCourseActivity,4,s.length,R.color.textColor99).build() |
| | | rb_balance.isChecked = !(balance.isNullOrEmpty()||balance.toDouble() == 0.0) |
| | | } |
| | | } |
| | | |
| | | private fun checkPayStatus(){ |
| | | if (!orderId.isNullOrEmpty()){ |
| | | HttpManager.queryPayment(orderId).request(this){_,data-> |
| | | when(data){ |
| | | "pending"->{ |
| | | toast("未查询到支付结果,如已付款请忽略") |
| | | } |
| | | "succeeded"->{ |
| | | toast("支付成功") |
| | | onPaySuccess() |
| | | } |
| | | "failed"->{ |
| | | toast("支付失败") |
| | | } |
| | | } |
| | | } |
| | | orderId = "" |
| | | } |
| | | } |
| | | |
| | | override fun onResume() { |
| | | super.onResume() |
| | | checkPayStatus() |
| | | } |
| | | |
| | | override fun onPaySuccess() { |
| | | setResult(RESULT_OK) |
| | | startActivity<PaySuccessActivity>("data" to data,"fromDetail" to fromDetail) |
| | |
| | | package com.sinata.xqmuse.ui.course |
| | | |
| | | import android.view.View |
| | | import android.webkit.WebChromeClient |
| | | import android.webkit.WebSettings |
| | | import android.webkit.WebViewClient |
| | |
| | | override fun setContentView() = R.layout.activity_offline_course |
| | | |
| | | private val data by lazy { intent.getParcelableExtra<CourseDetail>("data") } |
| | | private var first = true //第一次 加载视频封面 |
| | | |
| | | override fun initClick() { |
| | | iv_back.setOnClickListener { finish() } |
| | |
| | | controller.addDefaultControlComponent(courseTitle, false) |
| | | mVideoView.setVideoController(controller) //设置控制器 |
| | | mVideoView.setUrl(detailUrl) //设置视频地址 |
| | | GlideUtil.load(this@OfflineCourseActivity, coverUrl, iv_cover, 0) |
| | | // GlideUtil.load(this@OfflineCourseActivity, detailUrl, iv_cover, 0) |
| | | mVideoView.start() |
| | | }else{ |
| | | cl_title.gone() |
| | | iv_cover.gone() |
| | |
| | | override fun onPlayStateChanged(playState: Int) { |
| | | when(playState){ |
| | | STATE_PLAYING->{ |
| | | iv_cover.gone() |
| | | ivPlay.gone() |
| | | if (first){ |
| | | mVideoView.pause() |
| | | // iv_cover.gone() |
| | | ivPlay.visible() |
| | | first = false |
| | | } |
| | | } |
| | | STATE_PLAYBACK_COMPLETED->{ |
| | | iv_cover.visible() |
| | | ivPlay.visible() |
| | | // iv_cover.visible() |
| | | // ivPlay.visible() |
| | | } |
| | | } |
| | | } |
| | |
| | | banner.currentItem = 1 |
| | | tv_name.text = hallName |
| | | tv_phone.text = contactNumber |
| | | tv_address.text = address |
| | | tv_address.text = addressDetail |
| | | tv_time.text = "营业时间:$businessHours" |
| | | val sHead = |
| | | "<html><head><meta name=\"viewport\" content=\"width=device-width, " + "initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes\" />" + "<style>img{max-width:100% !important;height:auto !important;}</style>" + "<style>body{max-width:100% !important;}</style>" + "</head><body>" |
| | |
| | | import com.sinata.xqmuse.utils.interfaces.StringCallback |
| | | import com.sinata.xqmuse.utils.pay.PayListener |
| | | import kotlinx.android.synthetic.main.activity_buy_course.* |
| | | import org.jetbrains.anko.browse |
| | | import org.jetbrains.anko.startActivity |
| | | import org.jetbrains.anko.toast |
| | | |
| | |
| | | private val fromDetail by lazy { intent.getBooleanExtra("fromDetail",true) } |
| | | private val id by lazy { intent.getStringExtra("id") } |
| | | private var data:ConfirmOrder? = null |
| | | private var orderId = "" |
| | | |
| | | override fun initClick() { |
| | | tv_buy_rule.clickDelay { |
| | |
| | | private fun pay(way:Int) { |
| | | tv_action.isEnabled = false |
| | | showDialog() |
| | | HttpManager.placeOrder(1,way,if (rb_balance.isChecked) 1 else 2,null,null,data?.id?:"",null).request(this,success = {_,data-> |
| | | onPaySuccess() |
| | | HttpManager.placeOrder(1,way,if (rb_balance.isChecked) 1 else 2,null,null,data?.id?:"",null,data?.orderId).request(this,success = {_,data-> |
| | | tv_action.isEnabled = true |
| | | orderId = data?.orderId?:"" |
| | | if (way == 1) |
| | | data?.jumpToWx(this) |
| | | else |
| | | browse(data?.qrcodeUrl?:"") |
| | | }){_,_-> |
| | | tv_action.isEnabled = true |
| | | } |
| | |
| | | tv_total.text = generalPrice |
| | | val s = "余额抵扣 当前可用 ¥$balance" |
| | | rb_balance.text = SpanBuilder(s).size(4,s.length,11).color(this@BuyVoiceActivity,4,s.length,R.color.textColor99).build() |
| | | rb_balance.isChecked = !(balance.isNullOrEmpty()||balance.toDouble() == 0.0) |
| | | } |
| | | } |
| | | } |
| | |
| | | tv_total.text = generalPrice |
| | | val s = "余额抵扣 当前可用 ¥$balance" |
| | | rb_balance.text = SpanBuilder(s).size(4,s.length,11).color(this@BuyVoiceActivity,4,s.length,R.color.textColor99).build() |
| | | rb_balance.isChecked = !(balance.isNullOrEmpty()||balance.toDouble() == 0.0) |
| | | } |
| | | } |
| | | } |
| | | |
| | | private fun checkPayStatus(){ |
| | | if (!orderId.isNullOrEmpty()){ |
| | | HttpManager.queryPayment(orderId).request(this){_,data-> |
| | | when(data){ |
| | | "pending"->{ |
| | | toast("未查询到支付结果,如已付款请忽略") |
| | | } |
| | | "succeeded"->{ |
| | | toast("支付成功") |
| | | onPaySuccess() |
| | | } |
| | | "failed"->{ |
| | | toast("支付失败") |
| | | } |
| | | } |
| | | } |
| | | orderId = "" |
| | | } |
| | | } |
| | | |
| | | override fun onResume() { |
| | | super.onResume() |
| | | checkPayStatus() |
| | | } |
| | | |
| | | override fun onPaySuccess() { |
| | | setResult(RESULT_OK) |
| | | startActivity<PaySuccessActivity>("data" to data,"fromDetail" to fromDetail,"isAudio" to true) |
| | |
| | | return@setOnClickListener |
| | | } |
| | | tv_action.isEnabled = false |
| | | HttpManager.addBank(bank, name, phone, idCard, num).request(this,success = {_,_-> |
| | | HttpManager.addBank(bank, name, phone, idCard, num,code).request(this,success = {_,_-> |
| | | setResult(RESULT_OK) |
| | | myToast("添加成功") |
| | | finish() |
| | |
| | | import com.sinata.xqmuse.utils.pay.PayUtil |
| | | import kotlinx.android.synthetic.main.activity_recharge.* |
| | | import org.greenrobot.eventbus.EventBus |
| | | import org.jetbrains.anko.browse |
| | | import org.jetbrains.anko.sdk27.coroutines.onClick |
| | | import org.jetbrains.anko.startActivity |
| | | import org.jetbrains.anko.toast |
| | |
| | | class RechargeActivity : TransparentStatusBarActivity(),PayListener { |
| | | override fun setContentView() = R.layout.activity_recharge |
| | | |
| | | private var way = 1 |
| | | private var way = 2 |
| | | private var money = 0.0 |
| | | private var orderId = "" |
| | | |
| | | override fun initClick() { |
| | | tv_way.setOnClickListener { |
| | |
| | | toast("%s充值%.2f".format(if (payType == 1) "微信" else "支付宝",money)) |
| | | HttpManager.placeOrder(4,payType,2,money,null,null,null ) |
| | | .request(this){_,data-> |
| | | if (payType == 1){ |
| | | PayUtil.initWeChatPay(this,Const.WX_APP_ID) |
| | | PayUtil.weChatPay(data!!) |
| | | }else{ |
| | | PayUtil.aliPay(this,data?.orderInfo?:"") |
| | | } |
| | | onPaySuccess() //todo test |
| | | |
| | | orderId = data?.orderId?:"" |
| | | if (payType == 1) |
| | | data?.jumpToWx(this) |
| | | else |
| | | browse(data?.qrcodeUrl?:"") |
| | | } |
| | | } |
| | | |
| | | private fun checkPayStatus(){ |
| | | if (!orderId.isNullOrEmpty()){ |
| | | if (!orderId.isNullOrEmpty()){ |
| | | HttpManager.queryPayment(orderId).request(this){_,data-> |
| | | when(data){ |
| | | "pending"->{ |
| | | toast("未查询到支付结果,如已付款请忽略") |
| | | } |
| | | "succeeded"->{ |
| | | toast("支付成功") |
| | | onPaySuccess() |
| | | } |
| | | "failed"->{ |
| | | toast("支付失败") |
| | | } |
| | | } |
| | | } |
| | | orderId = "" |
| | | } |
| | | } |
| | | } |
| | | |
| | | override fun onPaySuccess() { |
| | |
| | | override fun onPayError(msg: String) { |
| | | } |
| | | |
| | | override fun onResume() { |
| | | super.onResume() |
| | | checkPayStatus() |
| | | } |
| | | |
| | | override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { |
| | | super.onActivityResult(requestCode, resultCode, data) |
| | | if (resultCode == RESULT_OK){ |
| | |
| | | import kotlinx.android.synthetic.main.activity_vip.* |
| | | import org.greenrobot.eventbus.EventBus |
| | | import org.jetbrains.anko.backgroundResource |
| | | import org.jetbrains.anko.browse |
| | | import org.jetbrains.anko.toast |
| | | |
| | | class VipActivity : TransparentStatusBarActivity(), PayListener { |
| | |
| | | |
| | | private val price = arrayListOf<Double>() |
| | | private val adapter = VipPriceAdapter(price) |
| | | private var orderId = "" |
| | | |
| | | override fun initClick() { |
| | | iv_back.setOnClickListener { finish() } |
| | |
| | | override fun onResult(rst: String) { |
| | | HttpManager.placeOrder(3,rst.toInt(),2,price[adapter.checked],null,null,adapter.checked+1 ) |
| | | .request(this@VipActivity){_,data-> |
| | | if (rst == "1"){ |
| | | PayUtil.initWeChatPay(this@VipActivity,Const.WX_APP_ID) |
| | | PayUtil.weChatPay(data!!) |
| | | }else{ |
| | | PayUtil.aliPay(this@VipActivity,data?.orderInfo?:"") |
| | | tv_action.postDelayed({ //TEST CALLBACK |
| | | onPaySuccess() |
| | | },3000) |
| | | |
| | | } |
| | | orderId = data?.orderId?:"" |
| | | if (rst == "1") |
| | | data?.jumpToWx(this@VipActivity) |
| | | else |
| | | browse(data?.qrcodeUrl?:"") |
| | | } |
| | | } |
| | | },enableBalance = false) |
| | |
| | | } |
| | | } |
| | | |
| | | private fun checkPayStatus(){ |
| | | if (!orderId.isNullOrEmpty()){ |
| | | HttpManager.queryPayment(orderId).request(this){_,data-> |
| | | when(data){ |
| | | "pending"->{ |
| | | toast("未查询到支付结果,如已付款请忽略") |
| | | } |
| | | "succeeded"->{ |
| | | toast("支付成功") |
| | | onPaySuccess() |
| | | } |
| | | "failed"->{ |
| | | toast("支付失败") |
| | | } |
| | | } |
| | | } |
| | | orderId = "" |
| | | } |
| | | } |
| | | |
| | | override fun onDestroy() { |
| | | super.onDestroy() |
| | | PayUtil.unregisterApp() |
| | |
| | | |
| | | override fun onPayError(msg: String) { |
| | | } |
| | | |
| | | override fun onResume() { |
| | | super.onResume() |
| | | checkPayStatus() |
| | | } |
| | | } |
| | |
| | | import org.greenrobot.eventbus.EventBus |
| | | import org.greenrobot.eventbus.Subscribe |
| | | import org.jetbrains.anko.startActivity |
| | | import org.jetbrains.anko.toast |
| | | |
| | | class WalletActivity : BaseActivity() { |
| | | private var balance = 0.0 |
| | |
| | | iv_back.setOnClickListener { finish() } |
| | | |
| | | tv_action.setOnClickListener { |
| | | toast("暂未开放") |
| | | return@setOnClickListener |
| | | startActivity<RechargeActivity>() |
| | | } |
| | | |
| | | tv_withdraw.clickDelay { |
| | | toast("暂未开放") |
| | | return@clickDelay |
| | | startActivity<WithdrawActivity>("balance" to balance) |
| | | } |
| | | |
| | |
| | | tree!!.treeLevelType = data.treeLevelType |
| | | showTreeAnim(tree!!.getTreeApng(),true) |
| | | audioPlayer.startPlayMusic(requireContext(),tree!!.getLevelUpAudio()) |
| | | TreeTipDialog.show(childFragmentManager,"升级","恭喜!你的树苗已升级为${tree!!.getLevelName()}阶段!") |
| | | TreeTipDialog.show(childFragmentManager,"生命之树",tree!!.getLevelName()) |
| | | }else if (tree!!.status != 2){ |
| | | tree!!.status = 2 |
| | | showTreeAnim(tree!!.getTreeApng(),tree!!.treeLevelType != 1) |
| | |
| | | import top.zibin.luban.Luban |
| | | import top.zibin.luban.OnCompressListener |
| | | import java.io.File |
| | | import java.lang.Exception |
| | | |
| | | |
| | | fun String.uploadWithCompress(act:BaseActivity,callback: StringCallback){ |
| | |
| | | } else |
| | | true |
| | | } |
| | | |
| | |
| | | if (url.endsWith("mp4") || url.endsWith("AVI") || url.endsWith("MP4") || url.endsWith("avi")) { |
| | | new Thread(() -> { |
| | | try { |
| | | Bitmap myBitmap = Glide.with(context).asBitmap().load(url).submit(100, 100).get(); |
| | | Bitmap myBitmap = Glide.with(context).asBitmap().load(url).submit(390, 310).get(); |
| | | new Handler(Looper.getMainLooper()).post(() -> { |
| | | loadBM(context,myBitmap,imageView,num); |
| | | }); |
| | |
| | | android:layout_marginTop="18dp" |
| | | android:drawableStart="@mipmap/pay_wallet" |
| | | android:drawableEnd="@drawable/selector_check_pay" |
| | | android:checked="true" |
| | | android:drawablePadding="7dp"/> |
| | | <RadioButton |
| | | android:layout_width="match_parent" |
| | |
| | | android:layout_height="0dp" |
| | | app:layout_constraintDimensionRatio="390:310" |
| | | android:id="@+id/iv_cover" |
| | | android:visibility="gone" |
| | | app:layout_constraintTop_toTopOf="parent"/> |
| | | <ImageView |
| | | android:layout_width="42dp" |
| | |
| | | android:src="@mipmap/play_detail" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintTop_toTopOf="@id/iv_cover" |
| | | app:layout_constraintBottom_toBottomOf="@id/iv_cover"/> |
| | | app:layout_constraintTop_toTopOf="@id/mVideoView" |
| | | app:layout_constraintBottom_toBottomOf="@id/mVideoView"/> |
| | | <androidx.constraintlayout.widget.Barrier |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/tv_way" |
| | | android:text="微信" |
| | | android:text="支付宝" |
| | | android:layout_marginHorizontal="10dp" |
| | | android:drawableEnd="@mipmap/more_black" |
| | | android:paddingVertical="13dp" |