package com.sinata.xqmuse.ui.mine
|
|
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 cn.sinata.xldutils.activity.SelectPhotoDialog
|
import cn.sinata.xldutils.utils.myToast
|
import com.sinata.xqmuse.R
|
import com.sinata.xqmuse.dialog.*
|
import com.sinata.xqmuse.network.HttpManager
|
import com.sinata.xqmuse.network.entity.UserInfo
|
import com.sinata.xqmuse.network.request
|
import com.sinata.xqmuse.ui.TransparentStatusBarActivity
|
import com.sinata.xqmuse.utils.Const
|
import com.sinata.xqmuse.utils.event.EmptyEvent
|
import com.sinata.xqmuse.utils.extention.clickDelay
|
import com.sinata.xqmuse.utils.extention.uploadWithCompress
|
import com.sinata.xqmuse.utils.interfaces.StringCallback
|
import kotlinx.android.synthetic.main.activity_user_info.*
|
import org.greenrobot.eventbus.EventBus
|
import org.jetbrains.anko.startActivityForResult
|
|
class UserInfoActivity:TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_user_info
|
|
private val userInfo by lazy { intent.getParcelableExtra<UserInfo>("user") }
|
|
override fun initClick() {
|
iv_avatar.setOnClickListener {
|
startActivityForResult<SelectPhotoDialog>(1)
|
}
|
|
tv_name.clickDelay {
|
InputNameDialog.show(supportFragmentManager,userInfo?.name?:"",object :StringCallback{
|
override fun onResult(rst: String) {
|
updateInfo(name = rst)
|
}
|
})
|
}
|
|
tv_sex.clickDelay {
|
SingleWheelDialog.show(supportFragmentManager,null,null,object :StringCallback{
|
override fun onResult(rst: String) {
|
tv_sex.text = rst
|
updateInfo(gender = if (rst == "男") 1 else 2)
|
}
|
})
|
}
|
|
tv_birth.clickDelay {
|
val chooseBirthDialog = ChooseBirthDialog()
|
chooseBirthDialog.setCallback(object : ChooseBirthDialog.Callback {
|
override fun onOk(s: String) {
|
tv_birth.text = s
|
updateInfo(birthday = s.replace(".","-"))
|
}
|
})
|
chooseBirthDialog.show(supportFragmentManager, "birth")
|
}
|
|
tv_height.clickDelay {
|
InputHeightDialog.show(supportFragmentManager,userInfo?.height?:"","身高",object :StringCallback{
|
override fun onResult(rst: String) {
|
tv_height.text = "${rst}cm"
|
updateInfo(height = rst.toInt())
|
userInfo?.height = rst
|
}
|
})
|
}
|
|
tv_weight.clickDelay {
|
ChooseWeightDialog.show(
|
supportFragmentManager,
|
"设置体重",userInfo?.getUnitName()?:"",
|
if (userInfo?.weight.isNullOrEmpty()) null else userInfo?.weight,
|
object : StringCallback {
|
override fun onResult(rst: String) {
|
tv_weight.text = "${rst}${userInfo?.getUnitName()}"
|
userInfo?.weight = rst
|
updateInfo(weight = rst.toDouble())
|
}
|
},"保存")
|
}
|
|
tv_waistline.clickDelay {
|
InputHeightDialog.show(supportFragmentManager,userInfo?.waistline?:"","腰围",object :StringCallback{
|
override fun onResult(rst: String) {
|
tv_waistline.text = "${rst}cm"
|
userInfo?.waistline = rst
|
updateInfo(waistline = rst.toInt())
|
}
|
})
|
}
|
}
|
|
override fun initView() {
|
userInfo?.apply {
|
iv_avatar.setImageURI(headImg)
|
tv_name.text = name
|
tv_sex.text = if (gender == "1") "男" else if (gender == "2") "女" else ""
|
tv_birth.text = birthday.replace("-",".")
|
if (!weight.isNullOrEmpty()&&weight.toDouble() != 0.0){
|
tv_weight.text = "${weight}${getUnitName()}"
|
}
|
if (!height.isNullOrEmpty()&&height.toDouble() != 0.0){
|
tv_height.text = "${height}cm"
|
}
|
if (!waistline.isNullOrEmpty()&&waistline.toDouble() != 0.0){
|
tv_waistline.text = "${waistline}cm"
|
}
|
}
|
}
|
|
|
|
private fun updateInfo(avatar:String?=null,name:String?=null,gender:Int?=null,birthday:String?=null,weight:Double?=null,height:Int?=null,waistline:Int?=null){
|
HttpManager.updateInfo(name,gender, birthday, weight,waistline, height, avatar).request(this@UserInfoActivity,true){_,_->
|
myToast("修改成功")
|
EventBus.getDefault().post(EmptyEvent(Const.EventCode.USER_INFO_CHANGED))
|
if (!name.isNullOrEmpty()){
|
tv_name.text = name
|
userInfo?.name = name
|
}
|
}
|
}
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
super.onActivityResult(requestCode, resultCode, data)
|
if (resultCode == Activity.RESULT_OK&&data!=null){
|
data.getStringExtra("path")!!.uploadWithCompress(this, object : StringCallback {
|
override fun onResult(rst: String) {
|
iv_avatar.setImageURI(rst)
|
updateInfo(rst)
|
}
|
})
|
}
|
}
|
}
|