From 663413032551eecff869a8caeb8271752e5106a7 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 7 May 2020 15:51:23 +0200 Subject: [PATCH] moving some contact handling related things in Commons --- app/build.gradle | 2 +- .../activities/NewConversationActivity.kt | 3 +-- .../adapters/AutoCompleteTextViewAdapter.kt | 4 +-- .../smsmessenger/adapters/ContactsAdapter.kt | 4 +-- .../adapters/ConversationsAdapter.kt | 7 +++-- .../smsmessenger/adapters/ThreadAdapter.kt | 4 +-- .../smsmessenger/extensions/Context.kt | 26 +------------------ 7 files changed, 12 insertions(+), 38 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e9a22fb2..d8153f6a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,7 +56,7 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.27.11' + implementation 'com.simplemobiletools:commons:5.27.12' implementation 'org.greenrobot:eventbus:3.2.0' implementation 'com.klinkerapps:android-smsmms:5.2.6' implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a' diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt index f3890054..aa399cb2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/NewConversationActivity.kt @@ -16,7 +16,6 @@ import com.simplemobiletools.smsmessenger.adapters.ContactsAdapter import com.simplemobiletools.smsmessenger.extensions.config import com.simplemobiletools.smsmessenger.extensions.getSuggestedContacts import com.simplemobiletools.smsmessenger.extensions.getThreadId -import com.simplemobiletools.smsmessenger.extensions.loadImage import com.simplemobiletools.smsmessenger.helpers.* import kotlinx.android.synthetic.main.activity_conversation.* import kotlinx.android.synthetic.main.item_suggested_contact.view.* @@ -150,7 +149,7 @@ class NewConversationActivity : SimpleActivity() { val contact = it layoutInflater.inflate(R.layout.item_suggested_contact, null).apply { suggested_contact_name.text = contact.name - loadImage(contact.photoUri, suggested_contact_image, contact.name) + ContactsHelper(this@NewConversationActivity).loadContactImage(contact.photoUri, suggested_contact_image, contact.name) suggestions_holder.addView(this) setOnClickListener { launchThreadActivity(contact.phoneNumber, contact.name) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/AutoCompleteTextViewAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/AutoCompleteTextViewAdapter.kt index f87730e8..85f61852 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/AutoCompleteTextViewAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/AutoCompleteTextViewAdapter.kt @@ -7,10 +7,10 @@ import android.widget.ArrayAdapter import android.widget.Filter import android.widget.TextView import com.simplemobiletools.commons.extensions.normalizeString +import com.simplemobiletools.commons.helpers.ContactsHelper import com.simplemobiletools.commons.models.SimpleContact import com.simplemobiletools.smsmessenger.R import com.simplemobiletools.smsmessenger.activities.SimpleActivity -import com.simplemobiletools.smsmessenger.extensions.loadImage class AutoCompleteTextViewAdapter(val activity: SimpleActivity, val contacts: ArrayList) : ArrayAdapter(activity, 0, contacts) { @@ -28,7 +28,7 @@ class AutoCompleteTextViewAdapter(val activity: SimpleActivity, val contacts: Ar findViewById(R.id.item_contact_name).text = contact.name findViewById(R.id.item_contact_number).text = contact.phoneNumber - context.loadImage(contact.photoUri, findViewById(R.id.item_contact_image), contact.name) + ContactsHelper(context).loadContactImage(contact.photoUri, findViewById(R.id.item_contact_image), contact.name) } return listItem diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ContactsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ContactsAdapter.kt index fe09ad15..73e21c43 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ContactsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ContactsAdapter.kt @@ -7,12 +7,12 @@ import android.widget.ImageView import android.widget.TextView import com.bumptech.glide.Glide import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter +import com.simplemobiletools.commons.helpers.ContactsHelper import com.simplemobiletools.commons.models.SimpleContact import com.simplemobiletools.commons.views.FastScroller import com.simplemobiletools.commons.views.MyRecyclerView import com.simplemobiletools.smsmessenger.R import com.simplemobiletools.smsmessenger.activities.SimpleActivity -import com.simplemobiletools.smsmessenger.extensions.loadImage import java.util.* class ContactsAdapter( @@ -66,7 +66,7 @@ class ContactsAdapter( findViewById(R.id.item_contact_number).text = contact.phoneNumber findViewById(R.id.item_contact_number).setTextColor(textColor) - context.loadImage(contact.photoUri, findViewById(R.id.item_contact_tmb), contact.name) + ContactsHelper(context).loadContactImage(contact.photoUri, findViewById(R.id.item_contact_tmb), contact.name) } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt index d33aee50..af580930 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ConversationsAdapter.kt @@ -9,14 +9,13 @@ import com.bumptech.glide.Glide import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter import com.simplemobiletools.commons.dialogs.ConfirmationDialog import com.simplemobiletools.commons.extensions.formatDateOrTime -import com.simplemobiletools.commons.extensions.getColoredGroupIcon +import com.simplemobiletools.commons.helpers.ContactsHelper import com.simplemobiletools.commons.helpers.ensureBackgroundThread import com.simplemobiletools.commons.views.FastScroller import com.simplemobiletools.commons.views.MyRecyclerView import com.simplemobiletools.smsmessenger.R import com.simplemobiletools.smsmessenger.activities.SimpleActivity import com.simplemobiletools.smsmessenger.extensions.deleteConversation -import com.simplemobiletools.smsmessenger.extensions.loadImage import com.simplemobiletools.smsmessenger.helpers.refreshMessages import com.simplemobiletools.smsmessenger.models.Conversation import kotlinx.android.synthetic.main.item_conversation.view.* @@ -141,12 +140,12 @@ class ConversationsAdapter( // at group conversations we use an icon as the placeholder, not any letter val placeholder = if (conversation.isGroupConversation) { - activity.getColoredGroupIcon(conversation.title) + ContactsHelper(context).getColoredGroupIcon(conversation.title) } else { null } - context.loadImage(conversation.photoUri, conversation_image, conversation.title, placeholder) + ContactsHelper(context).loadContactImage(conversation.photoUri, conversation_image, conversation.title, placeholder) } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt index ad7443ff..648c8e28 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt @@ -20,13 +20,13 @@ import com.bumptech.glide.request.target.Target import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter import com.simplemobiletools.commons.dialogs.ConfirmationDialog import com.simplemobiletools.commons.extensions.* +import com.simplemobiletools.commons.helpers.ContactsHelper import com.simplemobiletools.commons.helpers.ensureBackgroundThread import com.simplemobiletools.commons.views.FastScroller import com.simplemobiletools.commons.views.MyRecyclerView import com.simplemobiletools.smsmessenger.R import com.simplemobiletools.smsmessenger.activities.SimpleActivity import com.simplemobiletools.smsmessenger.extensions.deleteMessage -import com.simplemobiletools.smsmessenger.extensions.loadImage import com.simplemobiletools.smsmessenger.helpers.* import com.simplemobiletools.smsmessenger.models.Message import com.simplemobiletools.smsmessenger.models.ThreadDateTime @@ -186,7 +186,7 @@ class ThreadAdapter( if (message.isReceivedMessage()) { thread_message_sender_photo.beVisible() thread_message_body.setTextColor(textColor) - context.loadImage(message.senderPhotoUri, thread_message_sender_photo, message.senderName) + ContactsHelper(context).loadContactImage(message.senderPhotoUri, thread_message_sender_photo, message.senderName) } else { thread_message_sender_photo?.beGone() val background = context.getAdjustedPrimaryColor() diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt index 350ecc0e..7a256c45 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -9,8 +9,6 @@ import android.content.ContentValues import android.content.Context import android.content.Intent import android.graphics.Bitmap -import android.graphics.drawable.BitmapDrawable -import android.graphics.drawable.Drawable import android.media.AudioAttributes import android.media.AudioManager import android.media.RingtoneManager @@ -18,12 +16,7 @@ import android.net.Uri import android.provider.ContactsContract.PhoneLookup import android.provider.Telephony.* import android.text.TextUtils -import android.widget.ImageView import androidx.core.app.NotificationCompat -import com.bumptech.glide.Glide -import com.bumptech.glide.load.engine.DiskCacheStrategy -import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions -import com.bumptech.glide.request.RequestOptions import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.* import com.simplemobiletools.commons.models.SimpleContact @@ -506,7 +499,7 @@ fun Context.showReceivedMessageNotification(address: String, body: String, threa val summaryText = getString(R.string.new_message) val sender = getNameAndPhotoFromPhoneNumber(address)?.name ?: "" - val largeIcon = bitmap ?: getContactLetterIcon(sender) + val largeIcon = bitmap ?: ContactsHelper(this).getContactLetterIcon(sender) val builder = NotificationCompat.Builder(this, channelId) .setContentTitle(sender) .setContentText(body) @@ -523,20 +516,3 @@ fun Context.showReceivedMessageNotification(address: String, body: String, threa notificationManager.notify(threadID, builder.build()) } - -fun Context.loadImage(path: String, imageView: ImageView, placeholderName: String, placeholderImage: Drawable? = null) { - val placeholder = placeholderImage ?: BitmapDrawable(resources, getContactLetterIcon(placeholderName)) - - val options = RequestOptions() - .diskCacheStrategy(DiskCacheStrategy.RESOURCE) - .error(placeholder) - .centerCrop() - - Glide.with(this) - .load(path) - .transition(DrawableTransitionOptions.withCrossFade()) - .placeholder(placeholder) - .apply(options) - .apply(RequestOptions.circleCropTransform()) - .into(imageView) -}