| | |
| | | package com.sinata.xqmuse.ui.mine |
| | | |
| | | import android.Manifest |
| | | import android.content.Intent |
| | | import android.os.Bundle |
| | | import android.webkit.WebChromeClient |
| | | import android.webkit.WebSettings |
| | | import android.webkit.WebViewClient |
| | | 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.dialog.ShareDialog |
| | | 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 com.sinata.xqmuse.utils.interfaces.StringCallback |
| | | import kotlinx.android.synthetic.main.activity_share.* |
| | | import org.jetbrains.anko.bundleOf |
| | | import org.jetbrains.anko.startActivityForResult |
| | | import org.jetbrains.anko.toast |
| | | import org.jetbrains.anko.backgroundColor |
| | | |
| | | 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 = "好友推广" |
| | | val settings = webView.settings |
| | | settings.javaScriptEnabled = true |
| | | settings.javaScriptCanOpenWindowsAutomatically = true |
| | | settings.defaultTextEncodingName = "utf-8" |
| | | settings.domStorageEnabled = true |
| | | settings.setSupportZoom(true) |
| | | // settings.textZoom = 200 |
| | | settings.useWideViewPort = true |
| | | settings.loadWithOverviewMode = true |
| | | settings.layoutAlgorithm = WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING |
| | | webView.webChromeClient = object : WebChromeClient() {} |
| | | webView.webViewClient = object : WebViewClient() {} |
| | | webView.backgroundColor = 0 |
| | | webView.background.alpha = 0 |
| | | 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("没有相机权限") |
| | | } |
| | | } |
| | | } |
| | | iv_back.setOnClickListener { finish() } |
| | | tv_action.setOnClickListener { |
| | | val shareDialog = ShareDialog() |
| | | shareDialog.callback = object :StringCallback{ |
| | | override fun onResult(rst: String) { |
| | | |
| | | 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() { |
| | | } |
| | | }) |
| | | } |
| | | shareDialog.show(supportFragmentManager,"share") |
| | | } |
| | | } |
| | | |
| | | 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("你已经绑定过邀请人") |
| | | } |
| | | HttpManager.shareInfo().request(this){_,data-> |
| | | data?.apply { |
| | | iv_code.setImageURI(qrCode) |
| | | 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>" |
| | | webView!!.loadDataWithBaseURL( |
| | | null, |
| | | sHead + rules, |
| | | "text/html", |
| | | "utf-8", |
| | | null |
| | | ) |
| | | } |
| | | } |
| | | } |
| | | |
| | | 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("二维码错误") |
| | | } |
| | | } |
| | | } |