Pu Zhibing
2025-12-11 ab0c19e49fabdb8cc6eea454ea455bce2efbb718
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
package com.igo.user.ui.mine
 
import android.app.Activity
import android.content.Intent
import android.text.TextUtils
import android.util.Log
import android.widget.TextView
import androidx.core.os.bundleOf
import cn.sinata.xldutils.activity.SelectPhotoDialog
import cn.sinata.xldutils.utils.SPUtils
import com.facebook.drawee.view.SimpleDraweeView
import com.google.android.datatransport.cct.internal.LogEvent
import com.igo.user.R
import com.igo.user.dialog.ChooseBirthDialog
import com.igo.user.dialog.ChooseBirthEnglishDialog
import com.igo.user.dialog.SingleWheelDialog
import com.igo.user.interfaces.StringCallback
import com.igo.user.network.HttpManager
import com.igo.user.network.request
import com.igo.user.ui.TransparentStatusBarActivity
import org.jetbrains.anko.find
import org.jetbrains.anko.startActivityForResult
import org.jetbrains.anko.toast
import top.zibin.luban.Luban
import top.zibin.luban.OnCompressListener
import java.io.File
 
 
class UserInfoActivity : TransparentStatusBarActivity() {
    override fun setContentView() = R.layout.activity_user_info
 
    private var url = ""
    private var name = ""
    private var birthday = ""
    private var sex = ""
    private var mail = ""
    private var firstName = ""
    private var lastName = ""
 
    private val tv_name by lazy { find<TextView>(R.id.tv_name) }
    private val iv_head by lazy { find<SimpleDraweeView>(R.id.iv_head) }
    private val tv_sex by lazy { find<TextView>(R.id.tv_sex) }
    private val tv_birth by lazy { find<TextView>(R.id.tv_birth) }
    private val tv_mail by lazy { find<TextView>(R.id.tv_mail) }
    private val tv_first_name by lazy { find<TextView>(R.id.tv_first_name) }
    private val tv_last_name by lazy { find<TextView>(R.id.tv_last_name) }
 
    companion object {
        var mysex = ""
        var mybirth = ""
    }
 
    override fun initClick() {
        tv_name.setOnClickListener {
            startActivityForResult<NickNameActivity>(1, "name" to name)
        }
        iv_head.setOnClickListener {
            // startActivityForResult<SelectPhotoDialog>(5)
        }
        tv_sex.setOnClickListener {
            val singleWheelDialog = SingleWheelDialog()
            singleWheelDialog.arguments =
                bundleOf("data" to arrayListOf(getString(R.string.女), getString(R.string.男)))
            singleWheelDialog.setCallback(object : StringCallback {
                override fun onRlt(rlt: String) {
                    tv_sex.text = rlt
                    sex = if (rlt == getString(R.string.男)) "1" else "2"
                    showDialog()
                    HttpManager.updateInfo(null, null, null, sex)
                        .request(this@UserInfoActivity) { _, _ ->
                            mysex = rlt
                            dismissDialog()
                        }
                }
            })
            singleWheelDialog.show(supportFragmentManager, "sex")
        }
        tv_birth.setOnClickListener {
            val language = SPUtils.instance().getString("language", "en")
            if (language == "en" || language == "fr") {
                val chooseBirthDialog = ChooseBirthEnglishDialog()
                chooseBirthDialog.setCallback(object : ChooseBirthEnglishDialog.Callback {
                    override fun onOk(s: String, formatS: String) {
                        tv_birth.text = formatS
                        showDialog()
                        HttpManager.updateInfo(null, s, null, null)
                            .request(this@UserInfoActivity) { _, _ ->
                                mybirth =  formatS
                                dismissDialog()
                            }
                    }
                })
                chooseBirthDialog.show(supportFragmentManager, "birth")
            } else {
                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) { _, _ ->
                                mybirth =  s
                                dismissDialog()
                            }
                    }
                })
                chooseBirthDialog.show(supportFragmentManager, "birth")
            }
        }
        tv_mail.setOnClickListener {
            if (mail.isNullOrEmpty())
                startActivityForResult<SetMailActivity>(2, "mail" to mail, "isRegister" to false)
            else
                startActivityForResult<MailActivity>(2, "mail" to mail)
 
        }
        tv_first_name.setOnClickListener {
//            if (firstName.isNullOrEmpty())
            startActivityForResult<NickNameActivity>(3, "name" to firstName, "type" to 1)
        }
        tv_last_name.setOnClickListener {
//            if (lastName.isNullOrEmpty())
            startActivityForResult<NickNameActivity>(4, "name" to lastName, "type" to 2)
        }
    }
 
    override fun initView() {
        title = getString(R.string.个人信息)
        url = intent.getStringExtra("avatar") ?: ""
        name = intent.getStringExtra("nickName") ?: ""
        sex = intent.getStringExtra("sex") ?: ""
        birthday = intent.getStringExtra("birthday") ?: ""
        mail = intent.getStringExtra("mail") ?: ""
        firstName = intent.getStringExtra("firstName") ?: ""
        lastName = intent.getStringExtra("lastName") ?: ""
        iv_head.setImageURI(url)
        tv_name.text = name
        tv_sex.text =
            mysex.ifEmpty {
                if (sex == "1") getString(R.string.男) else getString(R.string.女)
            }.apply {
                Log.e( "测试1: ", this)
            }
 
 
        tv_birth.text = mybirth.ifEmpty { birthday }.apply {
            Log.e( "测试2: ", this)
        }
        tv_mail.text = mail
        tv_first_name.text = firstName
        tv_last_name.text = lastName
    }
 
    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 if (requestCode == 2) {
                mail = data.getStringExtra("mail") ?: ""
                tv_mail.text = mail
            } else if (requestCode == 3) {
                firstName = data.getStringExtra("name") ?: ""
                tv_first_name.text = firstName
            } else if (requestCode == 4) {
                lastName = data.getStringExtra("name") ?: ""
                tv_last_name.text = lastName
            } 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)
                            HttpManager.uploadFile(file).request(this@UserInfoActivity) { _, data ->
                                data?.let {
                                    this@UserInfoActivity.url = it
                                    HttpManager.updateInfo(url, null, null, null)
                                        .request(this@UserInfoActivity) { _, _ ->
                                            dismissDialog()
                                            toast(getString(R.string.上传成功))
                                            iv_head.setImageURI(url)
                                        }
                                    dismissDialog()
                                }
                            }
                        }
 
                        override fun onError(e: Throwable) {
                            e.printStackTrace()
                        }
                    }).launch()
            }
            setResult(Activity.RESULT_OK)
        }
    }
}