From 6fc34b4f3d5c3d319ec40104af25545308f836b3 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Sat, 23 Nov 2019 11:23:54 +0200 Subject: [PATCH] - More work on avatars. --- .../com/tutpro/baresip/CallListAdapter.kt | 27 ++++++--- .../com/tutpro/baresip/ChatListAdapter.kt | 33 ++++++----- .../com/tutpro/baresip/ContactActivity.kt | 53 ++++++++---------- .../com/tutpro/baresip/ContactListAdapter.kt | 32 ++++++++--- app/src/main/person-web.png | Bin 0 -> 19034 bytes app/src/main/res/drawable/person_image.png | Bin 0 -> 14391 bytes app/src/main/res/layout/activity_calls.xml | 1 + app/src/main/res/layout/activity_contact.xml | 5 +- app/src/main/res/layout/call_row.xml | 28 +++++++-- app/src/main/res/layout/chat_row.xml | 28 +++++++-- app/src/main/res/layout/contact_row.xml | 26 +++++++-- app/src/main/res/values/colors.xml | 1 + 12 files changed, 154 insertions(+), 80 deletions(-) create mode 100644 app/src/main/person-web.png create mode 100644 app/src/main/res/drawable/person_image.png diff --git a/app/src/main/kotlin/com/tutpro/baresip/CallListAdapter.kt b/app/src/main/kotlin/com/tutpro/baresip/CallListAdapter.kt index ae83fa4b..01fdca6b 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/CallListAdapter.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/CallListAdapter.kt @@ -2,6 +2,8 @@ package com.tutpro.baresip import android.content.Context import android.graphics.drawable.GradientDrawable +import android.support.v4.content.ContextCompat +import android.support.v7.widget.CardView import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -19,18 +21,27 @@ class CallListAdapter(private val cxt: Context, private val rows: ArrayList - color = Utils.randomColor() - showTextAvatar(textAvatarView.text.toString(), color) - newAvatar = "text" + val intent = Intent(Intent.ACTION_GET_CONTENT).apply { + addCategory(Intent.CATEGORY_OPENABLE) + type = "image/*" + } + startActivityForResult(intent, READ_REQUEST_CODE) } textAvatarView.setOnLongClickListener { _ -> - val intent = Intent(Intent.ACTION_GET_CONTENT).apply { - addCategory(Intent.CATEGORY_OPENABLE) - type = "image/*" - } - - startActivityForResult(intent, READ_REQUEST_CODE) - + color = Utils.randomColor() + showTextAvatar(textAvatarView.text.toString(), color) + newAvatar = "text" true } cardAvatarView.setOnClickListener { _ -> - color = Utils.randomColor() - showTextAvatar(nameView.text.toString(), color) - newAvatar = "text" + val intent = Intent(Intent.ACTION_GET_CONTENT).apply { + addCategory(Intent.CATEGORY_OPENABLE) + type = "image/*" + } + startActivityForResult(intent, READ_REQUEST_CODE) } cardAvatarView.setOnLongClickListener { _ -> - val intent = Intent(Intent.ACTION_GET_CONTENT).apply { - addCategory(Intent.CATEGORY_OPENABLE) - type = "image/*" - } - - startActivityForResult(intent, READ_REQUEST_CODE) - + color = Utils.randomColor() + showTextAvatar(nameView.text.toString(), color) + newAvatar = "text" true } @@ -225,7 +221,7 @@ class ContactActivity : AppCompatActivity() { } } "image" -> { - contact.avatarImage = (imageAvatarView.drawable as BitmapDrawable).bitmap + contact.avatarImage = (cardImageAvatarView.drawable as BitmapDrawable).bitmap Utils.deleteFile(File(BaresipService.filesPath, "${contact.id}.png")) File(BaresipService.filesPath, "tmp.png") .renameTo(File(BaresipService.filesPath, "${contact.id}.png")) @@ -264,18 +260,13 @@ class ContactActivity : AppCompatActivity() { private fun showTextAvatar(name: String, color: Int) { textAvatarView.visibility = View.VISIBLE cardAvatarView.visibility = View.GONE - imageAvatarView.visibility = View.GONE (textAvatarView.background as GradientDrawable).setColor(color) - if (name.isNotEmpty()) - textAvatarView.text = "${name[0]}" - else - textAvatarView.text = "" + textAvatarView.text = "${name[0]}" } private fun showImageAvatar(image: Bitmap) { textAvatarView.visibility = View.GONE cardAvatarView.visibility = View.VISIBLE - imageAvatarView.visibility = View.VISIBLE - imageAvatarView.setImageBitmap(image) + cardImageAvatarView.setImageBitmap(image) } } diff --git a/app/src/main/kotlin/com/tutpro/baresip/ContactListAdapter.kt b/app/src/main/kotlin/com/tutpro/baresip/ContactListAdapter.kt index dd7e5ae1..8663e4dd 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/ContactListAdapter.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/ContactListAdapter.kt @@ -7,16 +7,17 @@ import android.content.Intent import android.graphics.drawable.GradientDrawable import android.os.Bundle import android.support.v7.app.AlertDialog +import android.support.v7.widget.CardView import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ArrayAdapter import android.widget.ImageButton +import android.widget.ImageView import android.widget.TextView import java.io.File import java.io.IOException - import java.util.* class ContactListAdapter(private val cxt: Context, private val rows: ArrayList, @@ -24,16 +25,30 @@ class ContactListAdapter(private val cxt: Context, private val rows: ArrayList(cxt, R.layout.contact_row, rows) { override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { - val row = rows[position] + val contact = rows[position] val inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater val rowView = inflater.inflate(R.layout.contact_row, parent, false) - val avatarView = rowView.findViewById(R.id.avatar) as TextView - val background = avatarView.background as GradientDrawable - background.setColor(row.color) - if (row.name.length > 0) - avatarView.text = "${row.name[0]}" + val textAvatarView = rowView.findViewById(R.id.TextAvatar) as TextView + val cardAvatarView = rowView.findViewById(R.id.CardAvatar) as CardView + val imageAvatarView = rowView.findViewById(R.id.ImageAvatar) as ImageView + val avatarImage = contact.avatarImage + if (avatarImage != null) { + textAvatarView.visibility = View.GONE + cardAvatarView.visibility = View.VISIBLE + imageAvatarView.visibility = View.VISIBLE + imageAvatarView.setImageBitmap(avatarImage) + } else { + textAvatarView.visibility = View.VISIBLE + cardAvatarView.visibility = View.GONE + imageAvatarView.visibility = View.GONE + (textAvatarView.background as GradientDrawable).setColor(contact.color) + if (contact.name.isNotEmpty()) + textAvatarView.text = "${contact.name[0]}" + else + textAvatarView.text = "" + } val nameView = rowView.findViewById(R.id.contactName) as TextView - nameView.text = row.name + nameView.text = contact.name nameView.textSize = 20f nameView.setPadding(6, 6, 0, 6) if (aor != "") { @@ -75,7 +90,6 @@ class ContactListAdapter(private val cxt: Context, private val rows: ArrayList when (which) { DialogInterface.BUTTON_POSITIVE -> { - val contact = Contact.contacts()[position] val id = contact.id val avatarFile = File(BaresipService.filesPath, "$id.img") if (avatarFile.exists()) { diff --git a/app/src/main/person-web.png b/app/src/main/person-web.png new file mode 100644 index 0000000000000000000000000000000000000000..fdc432a772e2da7d45a16b3049356a81083a2426 GIT binary patch literal 19034 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_calls.xml b/app/src/main/res/layout/activity_calls.xml index 17176242..a9324f85 100644 --- a/app/src/main/res/layout/activity_calls.xml +++ b/app/src/main/res/layout/activity_calls.xml @@ -13,6 +13,7 @@ android:id="@+id/account" android:layout_width="fill_parent" android:layout_height="wrap_content" + android:layout_marginBottom="10dp" android:gravity="center_horizontal" > diff --git a/app/src/main/res/layout/activity_contact.xml b/app/src/main/res/layout/activity_contact.xml index 6b2d7095..184a9fad 100644 --- a/app/src/main/res/layout/activity_contact.xml +++ b/app/src/main/res/layout/activity_contact.xml @@ -11,14 +11,13 @@ android:orientation="vertical"> @@ -34,7 +33,7 @@ diff --git a/app/src/main/res/layout/call_row.xml b/app/src/main/res/layout/call_row.xml index 28fad2a3..82f9e87e 100644 --- a/app/src/main/res/layout/call_row.xml +++ b/app/src/main/res/layout/call_row.xml @@ -1,34 +1,50 @@ + + + + + + + diff --git a/app/src/main/res/layout/chat_row.xml b/app/src/main/res/layout/chat_row.xml index 472e027b..f2188701 100644 --- a/app/src/main/res/layout/chat_row.xml +++ b/app/src/main/res/layout/chat_row.xml @@ -1,30 +1,48 @@ + + + + + + + + android:layout_marginStart="42dp" > + + + + + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 1a0c10e9..30455d0b 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -10,4 +10,5 @@ #e0e0e0 #b00020 #0ca1fd + #ffffff