lmw
2024-11-26 b8d8f9b855fdd453d06d78d2565f091db208ec8e
支付
1个文件已删除
2个文件已添加
20个文件已修改
299 ■■■■ 已修改文件
app/src/main/java/com/sinata/xqmuse/MainActivity.kt 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/network/ApiService.kt 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/network/Apis.kt 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/network/HttpManager.kt 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/network/entity/BankInfo.kt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/network/entity/ThirdPayInfo.kt 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/network/entity/TreeInfo.kt 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/ui/course/BuyCourseActivity.kt 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/ui/course/OfflineCourseActivity.kt 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/ui/discovery/PlaceDetailActivity.kt 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/ui/home/BuyVoiceActivity.kt 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/ui/mine/BindCardActivity.kt 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/ui/mine/VipActivity.kt 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/ui/mine/WalletActivity.kt 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/utils/extention/WeparkEx.kt 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/utils/glide/GlideUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_buy_course.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_offline_course.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_recharge.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/mipmap-xxhdpi/bg_guide.jpg 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/mipmap-xxhdpi/bg_guide.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/sinata/xqmuse/MainActivity.kt
@@ -361,7 +361,8 @@
            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){
app/src/main/java/com/sinata/xqmuse/network/ApiService.kt
@@ -58,14 +58,6 @@
    ): 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,
@@ -435,6 +427,11 @@
        @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>>
@@ -463,8 +460,9 @@
        @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(
app/src/main/java/com/sinata/xqmuse/network/Apis.kt
@@ -59,7 +59,6 @@
    const val successOrderVoice = "meditation/client/meditation/meditation/successOrder"
    const val saveViewingHistory = "user/user/app-user-viewing-history/saveViewingHistory"
    /**
     * 我的
     */
@@ -110,7 +109,6 @@
    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"
@@ -123,6 +121,7 @@
    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"
    /**
app/src/main/java/com/sinata/xqmuse/network/HttpManager.kt
@@ -28,17 +28,6 @@
    }
    /**
     * 支付
     */
    fun pay(
        id: String,
        payType: Int,
        buyType: Int
    ): Flowable<ResultData<PayInfo>> {
        return request().pay(id,payType, buyType)
    }
    /**
     * 支付结果
     */
    fun success(
@@ -183,8 +172,8 @@
        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>> {
@@ -504,6 +493,13 @@
        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()
    }
@@ -593,8 +589,8 @@
    /**
     * 支付
     */
    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)
    }
    /**
app/src/main/java/com/sinata/xqmuse/network/entity/BankInfo.kt
@@ -6,5 +6,6 @@
    val cardholder: String,
    val cellPhone: String,
    val identityCard: String,
    val code: String,
    val id: String?=null
)
app/src/main/java/com/sinata/xqmuse/network/entity/ThirdPayInfo.kt
New file
@@ -0,0 +1,27 @@
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)
    }
}
app/src/main/java/com/sinata/xqmuse/network/entity/TreeInfo.kt
@@ -57,15 +57,15 @@
    }
    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->"亲爱的家人,生命之树的种子已植入这片沃土,请以农夫的心态用心浇灌,为你加油哦。"
    }
}
app/src/main/java/com/sinata/xqmuse/ui/course/BuyCourseActivity.kt
@@ -22,6 +22,7 @@
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
@@ -32,6 +33,7 @@
    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 {
@@ -112,8 +114,13 @@
    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
        }
@@ -161,9 +168,35 @@
            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)
app/src/main/java/com/sinata/xqmuse/ui/course/OfflineCourseActivity.kt
@@ -1,5 +1,6 @@
package com.sinata.xqmuse.ui.course
import android.view.View
import android.webkit.WebChromeClient
import android.webkit.WebSettings
import android.webkit.WebViewClient
@@ -31,6 +32,7 @@
    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() }
@@ -90,7 +92,8 @@
                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()
@@ -122,12 +125,16 @@
    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()
            }
        }
    }
app/src/main/java/com/sinata/xqmuse/ui/discovery/PlaceDetailActivity.kt
@@ -100,7 +100,7 @@
                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>"
app/src/main/java/com/sinata/xqmuse/ui/home/BuyVoiceActivity.kt
@@ -16,6 +16,7 @@
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
@@ -25,6 +26,7 @@
    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 {
@@ -62,8 +64,13 @@
    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
        }
@@ -110,6 +117,7 @@
                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)
            }
        }
    }
@@ -126,10 +134,36 @@
                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)
app/src/main/java/com/sinata/xqmuse/ui/mine/BindCardActivity.kt
@@ -62,7 +62,7 @@
                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()
app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt
@@ -18,6 +18,7 @@
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
@@ -26,8 +27,9 @@
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 {
@@ -79,15 +81,34 @@
        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() {
@@ -103,6 +124,11 @@
    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){
app/src/main/java/com/sinata/xqmuse/ui/mine/VipActivity.kt
@@ -22,6 +22,7 @@
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 {
@@ -29,6 +30,7 @@
    private val price = arrayListOf<Double>()
    private val adapter = VipPriceAdapter(price)
    private var orderId = ""
    override fun initClick() {
        iv_back.setOnClickListener { finish() }
@@ -55,16 +57,11 @@
                    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)
@@ -137,6 +134,26 @@
        }
    }
    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()
@@ -153,4 +170,9 @@
    override fun onPayError(msg: String) {
    }
    override fun onResume() {
        super.onResume()
        checkPayStatus()
    }
}
app/src/main/java/com/sinata/xqmuse/ui/mine/WalletActivity.kt
@@ -19,6 +19,7 @@
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
@@ -35,10 +36,14 @@
        iv_back.setOnClickListener { finish() }
        tv_action.setOnClickListener {
            toast("暂未开放")
            return@setOnClickListener
            startActivity<RechargeActivity>()
        }
        tv_withdraw.clickDelay {
            toast("暂未开放")
            return@clickDelay
            startActivity<WithdrawActivity>("balance" to balance)
        }
app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt
@@ -107,7 +107,7 @@
                            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)
app/src/main/java/com/sinata/xqmuse/utils/extention/WeparkEx.kt
@@ -30,7 +30,6 @@
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){
@@ -129,3 +128,4 @@
    } else
        true
}
app/src/main/java/com/sinata/xqmuse/utils/glide/GlideUtil.java
@@ -72,7 +72,7 @@
        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);
                    });
app/src/main/res/layout/activity_buy_course.xml
@@ -338,7 +338,6 @@
                    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"
app/src/main/res/layout/activity_offline_course.xml
@@ -16,6 +16,7 @@
        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"
@@ -24,8 +25,8 @@
        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"
app/src/main/res/layout/activity_recharge.xml
@@ -18,7 +18,7 @@
            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"
app/src/main/res/mipmap-xxhdpi/bg_guide.jpg
app/src/main/res/mipmap-xxhdpi/bg_guide.png
Binary files differ