lmw
2024-09-25 92778728b83ce1a34ba21bcdb061afdeca16cce5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package com.sinata.xqmuse.ui.mine
 
import android.Manifest
import android.content.Intent
import android.os.Bundle
import cn.sinata.xldutils.activity.BaseActivity
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.utils.SPUtils
import cn.sinata.xldutils.utils.myToast
import cn.sinata.xldutils.visible
import com.github.zackratos.ultimatebar.UltimateBar
import com.sinata.xqmuse.R
import com.sinata.xqmuse.dialog.TipDialog
import com.sinata.xqmuse.network.Apis
import com.sinata.xqmuse.network.HttpManager
import com.sinata.xqmuse.network.request
import com.sinata.xqmuse.ui.home.ScannerActivity
import com.sinata.xqmuse.utils.extention.clickDelay
import com.sinata.xqmuse.utils.getQRcodeImg
import com.tbruyelle.rxpermissions2.RxPermissions
import kotlinx.android.synthetic.main.activity_share.*
import org.jetbrains.anko.bundleOf
import org.jetbrains.anko.startActivityForResult
import org.jetbrains.anko.toast
 
class ShareActivity:BaseActivity() {
    private val code by lazy {  //不为空则需要直接绑定
        intent.getStringExtra("code")
    }
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_share)
        titleBar.leftClick { finish() }
        UltimateBar.with(this)
            .statusDark(true)
            .create().immersionBar() //沉浸状态栏
        titleBar.titleView.text = "好友推广"
        getShareInfo()
        iv_scan.clickDelay {
            val rxPermissions = RxPermissions(this)
            if (rxPermissions.isGranted(Manifest.permission.CAMERA))
                startActivityForResult<ScannerActivity>(1)
            else if ((SPUtils.instance().getBoolean("CAMERA_REFUSE")))
                myToast("没有相机权限")
            else{
                val tipDialog = cn.sinata.xldutils.widget.TipDialog()
                tipDialog.arguments =
                    bundleOf("msg" to "为了扫描好友二维码,我们需要获取相机访问权限", "ok" to "去授权", "cancel" to "不需要")
                tipDialog.setCallback(object : cn.sinata.xldutils.widget.TipDialog.OnClickCallback {
                    override fun onOk() {
                        rxPermissions.request(Manifest.permission.CAMERA)
                            .subscribe {
                                if (it) {
                                    startActivityForResult<ScannerActivity>(1)
                                } else{
                                    SPUtils.instance().put("CAMERA_REFUSE", true).apply()
                                    myToast("没有相机权限")
                                }
                            }
                    }
 
                    override fun onCancel() {
                        SPUtils.instance().put("CAMERA_REFUSE", true).apply()
                    }
                })
                tipDialog.show(supportFragmentManager, "camera")
            }
        }
        tv_bind.clickDelay {
            val code = et_code.text.toString()
            if (code.length!=6)
                myToast("请填写6位邀请码")
            else
                HttpManager.getBindingUserName(code).request(this){_,data->
                    TipDialog.show(supportFragmentManager,"确认绑定用户“${data}”吗?",object : TipDialog.OnClickCallback{
                        override fun onOk() {
                            HttpManager.binding(code).request(this@ShareActivity){_,_->
                                myToast("绑定成功")
                                getShareInfo()
                            }
                        }
 
                        override fun onCancel() {
                        }
                    })
                }
        }
    }
 
    private fun getShareInfo(){
        HttpManager.peopleList().request(this){_,data->
            tv_rule.text = data?.content
            tv_my_friend.text = "我邀请的好友:${if (data?.people.isNullOrEmpty()) "暂未绑定" else data!!.people}"
            tv_my_invitor.text = data?.invite
            iv_code.setImageBitmap(getQRcodeImg(this, Apis.SHARE_URL+data?.code))
 
            if (data?.invite?.isNullOrEmpty() == true){
                iv_scan.visible()
                tv_bind.visible()
                et_code.visible()
                if (!code.isNullOrEmpty()){
                    et_code.setText(code)
                    tv_bind.callOnClick()
                }
            }else{
                iv_scan.gone()
                tv_bind.gone()
                et_code.gone()
                if (!code.isNullOrEmpty()){
                    myToast("你已经绑定过邀请人")
                }
            }
        }
    }
 
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (resultCode == RESULT_OK&&data!=null){
            val rst = data.getStringExtra("result")?:""
            if (rst.startsWith(Apis.SHARE_URL))
                et_code.setText(rst.substring(rst.length-6))
            else
                myToast("二维码错误")
        }
    }
}