package com.dollearn.student.ui.welfare
|
|
import android.app.Activity
|
import android.content.Intent
|
import android.net.Uri
|
import android.os.Build
|
import android.os.Environment
|
import android.provider.Settings
|
import androidx.core.os.bundleOf
|
import cn.sinata.xldutils.activity.SelectPhotoDialog
|
import cn.sinata.xldutils.utils.BaseEvent
|
import cn.sinata.xldutils.utils.SPUtils
|
import cn.sinata.xldutils.utils.myToast
|
import cn.sinata.xldutils.utils.showAllowingStateLoss
|
import com.dollearn.student.R
|
import com.dollearn.student.dialog.ChooseBirthDialog
|
import com.dollearn.student.dialog.LoginRuleDialog
|
import com.dollearn.student.dialog.SexDialog
|
import com.dollearn.student.dialog.TipDialog
|
import com.dollearn.student.network.HttpManager
|
import com.dollearn.student.network.request
|
import com.dollearn.student.ui.H5Activity
|
import com.dollearn.student.ui.TransparentStatusBarActivity
|
import com.dollearn.student.ui.login.LoginActivity
|
import com.dollearn.student.ui.login.RegisterActivity
|
import com.dollearn.student.utils.Const
|
import com.dollearn.student.utils.event.EmptyEvent
|
import com.dollearn.student.utils.extention.clickDelay
|
import com.dollearn.student.utils.extention.uploadWithCompress
|
import com.dollearn.student.utils.interfaces.StringCallback
|
import kotlinx.android.synthetic.main.activity_user_info.*
|
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.Subscribe
|
import org.jetbrains.anko.startActivity
|
import org.jetbrains.anko.startActivityForResult
|
|
class UserInfoActivity:TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_user_info
|
|
private var isUpdate = false
|
|
private var isRefused = false
|
|
override fun initClick() {
|
iv_avatar.setOnClickListener {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
if (Environment.isExternalStorageManager())
|
startActivityForResult<SelectPhotoDialog>(2)
|
else if (!isRefused) {
|
try {
|
val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
|
intent.data = Uri.parse("package:${packageName}")
|
startActivityForResult(intent, 1024)
|
} catch (e: Exception) {
|
val intent = Intent()
|
intent.action = Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
|
startActivityForResult(intent, 1024)
|
}
|
|
} else {
|
myToast("缺少文件权限")
|
}
|
} else
|
startActivityForResult<SelectPhotoDialog>(1)
|
}
|
|
tv_sex.setOnClickListener {
|
SexDialog.show(supportFragmentManager,object :StringCallback{
|
override fun onResult(rst: String) {
|
tv_sex.text = rst
|
updateInfo(null,if (rst == "男") 1 else 2,null)
|
}
|
})
|
}
|
|
tv_birth.setOnClickListener {
|
val chooseBirthDialog = ChooseBirthDialog()
|
chooseBirthDialog.setCallback(object : ChooseBirthDialog.Callback {
|
override fun onOk(s: String) {
|
tv_birth.text = s
|
updateInfo(null,null,s)
|
}
|
})
|
chooseBirthDialog.show(supportFragmentManager, "birth")
|
}
|
|
tv_unregister.setOnClickListener {
|
HttpManager.getH5(4).request(this) { _, data ->
|
data?.let {
|
startActivity<H5Activity>("title" to "注销账号","url" to it)
|
}
|
}
|
}
|
tv_logout.setOnClickListener {
|
val tipDialog = TipDialog()
|
tipDialog.arguments = bundleOf("msg" to "确认退出当前账号吗?")
|
tipDialog.setCallback(object :TipDialog.OnClickCallback{
|
override fun onOk() {
|
myToast("退出成功")
|
SPUtils.instance().remove(Const.User.TOKEN).apply()
|
app.exit()
|
startActivity<LoginActivity>()
|
}
|
|
override fun onCancel() {
|
}
|
})
|
tipDialog.showAllowingStateLoss(supportFragmentManager,"unregister")
|
}
|
|
tv_privacy_rule.clickDelay {
|
HttpManager.getH5(LoginRuleDialog.TYPE_PRIVACY).request(this@UserInfoActivity){ _, data->
|
data?.let {
|
startActivityForResult<H5Activity>(1,"title" to "隐私协议","url" to it,"mustRead" to false)
|
}
|
}
|
}
|
tv_user_rule.clickDelay {
|
HttpManager.getH5(LoginRuleDialog.TYPE_USER).request(this@UserInfoActivity){ _, data->
|
data?.let {
|
startActivityForResult<H5Activity>(2,"title" to "用户协议","url" to it,"mustRead" to false)
|
}
|
}
|
}
|
|
tv_pwd.setOnClickListener {
|
startActivity<RegisterActivity>("type" to RegisterActivity.TYPE_MODIFY_PWD)
|
}
|
|
}
|
|
override fun initView() {
|
EventBus.getDefault().register(this)
|
getUser()
|
}
|
|
private fun getUser(){
|
HttpManager.userDetails().request(this){_,data->
|
// iv_avatar.setImageURI(data?.userImage)
|
// et_name.setText(data?.userName)
|
// et_phone.text= data?.userPhone
|
// tv_sex.text = data?.sex
|
// tv_birth.text = data?.birthday
|
// tv_region.text = data?.address
|
// tv_vip.visibility = if (data?.isVip == 1) View.VISIBLE else View.GONE
|
// tv_vip_title.visibility = tv_vip.visibility
|
// tv_vip.text = data?.memberLifespan
|
}
|
}
|
|
private fun updateInfo(name:String?,gender:Int?,birthday:String?){
|
HttpManager.updateInfo(name,gender,birthday).request(this@UserInfoActivity,false){_,_->
|
myToast("修改成功")
|
isUpdate = true
|
}
|
}
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
super.onActivityResult(requestCode, resultCode, data)
|
if (resultCode == Activity.RESULT_OK && requestCode == 1024 && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R){
|
isRefused = !Environment.isExternalStorageManager()
|
}else if (resultCode == Activity.RESULT_OK&&data!=null){
|
data.getStringExtra("path")!!.uploadWithCompress(this, object : StringCallback {
|
override fun onResult(rst: String) {
|
HttpManager.uploadImage(rst).request(this@UserInfoActivity){_,_->
|
myToast("修改成功")
|
iv_avatar.setImageURI(rst)
|
isUpdate = true
|
}
|
}
|
})
|
}
|
}
|
|
@Subscribe
|
fun onHideKeyboard(e:BaseEvent){
|
if (e.code == 100){
|
et_name.clearFocus()
|
updateInfo(et_name.text.toString(),null,null)
|
}
|
}
|
|
override fun onBackPressed() {
|
if (isUpdate)
|
EventBus.getDefault().post(EmptyEvent(Const.EventCode.REFRESH_USER))
|
EventBus.getDefault().unregister(this)
|
super.onBackPressed()
|
}
|
}
|