18034727885
2026-07-20 f0b2c58bd5235a6eec25ca7f40f937421ae8e8fa
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.igo.user.ui.trip
 
import android.Manifest
import android.app.Activity
import android.content.Intent
import android.database.Cursor
import android.graphics.Typeface
import android.net.Uri
import android.provider.ContactsContract
import android.view.Gravity
import android.view.View
import android.widget.EditText
import android.widget.TextView
import cn.sinata.xldutils.utils.LanguageUtil
import cn.sinata.xldutils.utils.myToast
import cn.sinata.xldutils.utils.optString
import com.igo.user.R
import com.igo.user.network.HttpManager
import com.igo.user.network.request
import com.igo.user.ui.H5Activity
import com.igo.user.ui.TransparentStatusBarActivity
import com.igo.user.ui.login.AreaCodeActivity
import com.igo.user.utils.Const
import com.tbruyelle.rxpermissions2.RxPermissions
import org.jetbrains.anko.find
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.startActivityForResult
 
class OrderOtherActivity:TransparentStatusBarActivity() {
    override fun setContentView() = R.layout.activity_order_other
 
    private val areaCode by lazy { find<TextView>(R.id.areaCode) }
    private val tv_action by lazy { find<View>(R.id.tv_action) }
    private val tv_contact by lazy { find<View>(R.id.tv_contact) }
    private val tv_rule by lazy { find<TextView>(R.id.tv_rule) }
    private val tv_tip by lazy { find<TextView>(R.id.tv_tip) }
    private val et_phone by lazy { find<EditText>(R.id.et_phone) }
    private val et_name by lazy { find<EditText>(R.id.et_name) }
 
    override fun initClick() {
        areaCode.setOnClickListener {
            startActivityForResult<AreaCodeActivity>(10086)
        }
        tv_contact.setOnClickListener {
            RxPermissions(this).request(Manifest.permission.READ_CONTACTS).subscribe {
                if (it) {
                    startActivityForResult(Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI), 1)
                } else {
                    myToast(getString(R.string.没有权限))
                }
            }
        }
        tv_action.setOnClickListener {
            var phone = et_phone.text.toString()
            if (phone.isEmpty()) {
                myToast(getString(R.string.请填写手机号))
                return@setOnClickListener
            }
            phone = areaCode.text.toString().replace("+", "") + phone
 
            val name = et_name.text.toString()
            if (name.isEmpty()) {
                myToast(getString(R.string.请输入姓名))
                return@setOnClickListener
            }
            setResult(Activity.RESULT_OK, intent.putExtra("name", name).putExtra("phone", phone))
            finish()
        }
    }
 
    override fun initView() {
        title = getString(R.string.乘车人信息)
        HttpManager.getH5(2).request(this){ _, data->
            data?.let {
                tv_rule.setOnClickListener {_->
                    startActivity<H5Activity>("title" to getString(R.string.用户服务协议),"url" to it.optString("content"))
                }
            }
        }
 
        val language = LanguageUtil.getLanguage()
        if (language == Const.Language.CHINESE){
            tv_tip.gravity = Gravity.CENTER
            tv_rule.typeface = Typeface.DEFAULT
        }
    }
 
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (data != null && resultCode == Activity.RESULT_OK) {
            if (requestCode == 10086) {
                data.getStringExtra("code")?.let {
                    areaCode.text = it
                }
            } else {
                val uri = data.data
                if (uri != null) {
                    val contacts = getPhoneContacts(uri)
                    et_name.setText(contacts[0])
                    et_phone.setText(contacts[1].replace(" ", ""))
                    et_phone.setSelection(et_phone.text.length)
 
                }
            }
        }
    }
 
    private fun getPhoneContacts(uri: Uri): ArrayList<String> {
        val contact: ArrayList<String> = arrayListOf()
        val cr = contentResolver
        val cursor: Cursor? = cr.query(uri, null, null, null, null)
        cursor?.let {
            cursor.moveToFirst()
            val nameFieldColumnIndex = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)
            contact.add(cursor.getString(nameFieldColumnIndex))
            val contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID))
            val phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
                ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId, null, null)
            if (phone != null) {
                phone.moveToFirst()
                contact.add(phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)))
            }
            phone?.close()
            cursor.close()
        }
 
        return contact
    }
}