utiliser une map pour conserver les infos du contact

This commit is contained in:
odrling 2017-12-16 18:12:43 +01:00
parent 91f727d5c0
commit b973615de2

View file

@ -9,14 +9,14 @@ import android.provider.ContactsContract
*/
class NornContact(val number: String?, context: Context) {
val uri: Uri = this.getContactUri()
val name: String?
val avatar: Uri?
val uri: Uri = this.getContactUri()
init {
val row = this.getContactName(context)
this.name = row[0] as String?
this.avatar = row[1] as Uri?
val contact = this.getContact(context)
this.name = contact.get("name") as String?
this.avatar = contact.get("avatar") as Uri?
}
@ -29,14 +29,14 @@ class NornContact(val number: String?, context: Context) {
}
}
private fun getContactName(context: Context): Array<Any?> {
private fun getContact(context: Context): Map<String, Any?> {
val projection = arrayOf(ContactsContract.PhoneLookup.DISPLAY_NAME,
ContactsContract.PhoneLookup.PHOTO_URI)
ContactsContract.PhoneLookup.PHOTO_THUMBNAIL_URI)
return this.query(projection, context)
}
private fun query(projection: Array<String>?, context: Context): Array<Any?> {
private fun query(projection: Array<String>?, context: Context): Map<String, Any?> {
val cursor = context.contentResolver.query(this.uri, projection, null, null, null)
var name: String? = null
@ -44,8 +44,8 @@ class NornContact(val number: String?, context: Context) {
if (cursor != null) {
if (cursor.moveToFirst()) {
name = cursor.getString(0)
val avatarString = cursor.getString(1)
name = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.PhoneLookup.DISPLAY_NAME))
val avatarString = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.PhoneLookup.PHOTO_THUMBNAIL_URI))
avatar = if (avatarString == null) null else Uri.parse(avatarString)
}
@ -53,7 +53,7 @@ class NornContact(val number: String?, context: Context) {
cursor.close()
}
return arrayOf(name, avatar)
return mapOf("name" to name, "avatar" to avatar)
}
}