lmw
2023-05-12 f67802a41f9e01444d1115f34ecc6e1beb05fc3b
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
127
128
129
package com.fuban.user.ui.mine
 
import android.app.Activity
import android.content.Intent
import android.text.TextUtils
import android.util.Log
import androidx.core.os.bundleOf
import cn.sinata.xldutils.activity.SelectPhotoDialog
import com.fuban.user.R
import com.fuban.user.network.HttpManager
import com.fuban.user.network.request
import java.io.File
import com.fuban.user.ui.TransparentStatusBarActivity
import com.fuban.user.dialog.ChooseBirthDialog
import com.fuban.user.dialog.SingleWheelDialog
import com.fuban.user.interfaces.StringCallback
import com.fuban.user.utils.OSSUtil
import kotlinx.android.synthetic.main.activity_user_info.*
import org.jetbrains.anko.startActivityForResult
import org.jetbrains.anko.toast
import top.zibin.luban.Luban
import top.zibin.luban.OnCompressListener
 
 
class UserInfoActivity : TransparentStatusBarActivity() {
    override fun setContentView() = R.layout.activity_user_info
 
    override fun initClick() {
        tv_name.setOnClickListener {
            startActivityForResult<NickNameActivity>(1, "name" to name)
        }
        iv_head.setOnClickListener {
            startActivityForResult<SelectPhotoDialog>(2)
        }
        tv_sex.setOnClickListener {
            val singleWheelDialog = SingleWheelDialog()
            singleWheelDialog.arguments = bundleOf("data" to arrayListOf("女","男"))
            singleWheelDialog.setCallback(object :StringCallback{
                override fun onRlt(rlt: String) {
                    tv_sex.text = rlt
                    sex = if (rlt == "男") "1" else "2"
                    showDialog()
                    HttpManager.updateInfo(null,null,null,sex).request(this@UserInfoActivity) { _, _ ->
                        dismissDialog()
                    }
                }
            })
            singleWheelDialog.show(supportFragmentManager,"sex")
        }
        tv_birth.setOnClickListener {
            val chooseBirthDialog = ChooseBirthDialog()
            chooseBirthDialog.setCallback(object :ChooseBirthDialog.Callback{
                override fun onOk(s: String) {
                    tv_birth.text = s
                    showDialog()
                    HttpManager.updateInfo(null,s,null,null).request(this@UserInfoActivity) { _, _ ->
                        dismissDialog()
                    }
                }
            })
            chooseBirthDialog.show(supportFragmentManager,"birth")
        }
 
    }
 
    private var url = ""
    private var name = ""
    private var birthday = ""
    private var sex = ""
 
    override fun initView() {
        title = "个人信息"
        url = intent.getStringExtra("avatar")
        name = intent.getStringExtra("nickName")
        sex = intent.getStringExtra("sex")
        birthday = intent.getStringExtra("birthday")
        iv_head.setImageURI(url)
        tv_name.text = name
        tv_sex.text = if (sex == "1")"男" else "女"
        tv_birth.text = birthday
    }
 
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (resultCode == Activity.RESULT_OK && data != null) {
            if (requestCode == 1) {
                name = data.getStringExtra("name")
                tv_name.text = name
            } else {
                Luban.with(this)
                    .load(File(data.getStringExtra("path")))
                    .ignoreBy(100)
                    .setTargetDir(getPath())
                    .filter { path -> !(TextUtils.isEmpty(path) || path.toLowerCase().endsWith(".gif")) }
                    .setCompressListener(object : OnCompressListener {
                        override fun onStart() {
                            showDialog(canCancel = false)
                        }
 
                        override fun onSuccess(file: File) {
                            Log.e("mmp", "压缩完成" + file.name)
                            OSSUtil(this@UserInfoActivity).uploadSingle(file.path,object :OSSUtil.OSSUploadCallBack(){
                                override fun onFial(message: String?) {
                                    super.onFial(message)
                                    dismissDialog()
                                    toast(message ?: "上传失败")
                                }
 
                                override fun onFinish(url: String) {
                                    super.onFinish(url)
                                    this@UserInfoActivity.url = url
                                    HttpManager.updateInfo(url,null,null,null).request(this@UserInfoActivity) { _, _ ->
                                            dismissDialog()
                                            toast("上传成功")
                                            iv_head.setImageURI(url)
                                        }
                                }
                            })
                        }
 
                        override fun onError(e: Throwable) {
                            e.printStackTrace()
                        }
                    }).launch()
            }
            setResult(Activity.RESULT_OK)
        }
    }
}