From 829897b5e1c8229e686a77a17fa98102477bc236 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 11 Dec 2017 20:29:25 +0100 Subject: [PATCH] show the user photo at Details, if available --- .../contacts/activities/ContactActivity.kt | 38 ++++++++++++++++++- app/src/main/res/layout/activity_contact.xml | 4 +- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt index 580e21b5..0d775039 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/activities/ContactActivity.kt @@ -1,10 +1,19 @@ package com.simplemobiletools.contacts.activities import android.graphics.drawable.ColorDrawable +import android.graphics.drawable.Drawable import android.os.Bundle import android.view.Menu import android.view.MenuItem import android.view.WindowManager +import com.bumptech.glide.Glide +import com.bumptech.glide.load.DataSource +import com.bumptech.glide.load.engine.DiskCacheStrategy +import com.bumptech.glide.load.engine.GlideException +import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions +import com.bumptech.glide.request.RequestListener +import com.bumptech.glide.request.RequestOptions +import com.bumptech.glide.request.target.Target import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.PERMISSION_WRITE_CONTACTS import com.simplemobiletools.contacts.R @@ -53,9 +62,29 @@ class ContactActivity : SimpleActivity() { contact_send_email.beVisibleIf(contact!!.email.isNotEmpty()) - contact_photo.applyColorFilter(config.primaryColor.getContrastColor()) contact_photo.background = ColorDrawable(config.primaryColor) + if (contact!!.photoUri.isEmpty()) { + applyPhotoPlaceholder() + } else { + val options = RequestOptions() + .diskCacheStrategy(DiskCacheStrategy.RESOURCE) + .centerCrop() + + Glide.with(this) + .load(contact!!.photoUri) + .transition(DrawableTransitionOptions.withCrossFade()) + .apply(options) + .listener(object : RequestListener { + override fun onResourceReady(resource: Drawable?, model: Any?, target: Target?, dataSource: DataSource?, isFirstResource: Boolean) = false + + override fun onLoadFailed(e: GlideException?, model: Any?, target: Target?, isFirstResource: Boolean): Boolean { + applyPhotoPlaceholder() + return true + } + }).into(contact_photo) + } + val textColor = config.textColor contact_send_sms.applyColorFilter(textColor) contact_start_call.applyColorFilter(textColor) @@ -106,6 +135,13 @@ class ContactActivity : SimpleActivity() { supportActionBar?.title = resources.getString(R.string.new_contact) } + private fun applyPhotoPlaceholder() { + val placeholder = resources.getColoredBitmap(R.drawable.ic_person, config.primaryColor.getContrastColor()) + val padding = resources.getDimension(R.dimen.activity_margin).toInt() + contact_photo.setPadding(padding, padding, padding, padding) + contact_photo.setImageBitmap(placeholder) + } + private fun saveContact() { } diff --git a/app/src/main/res/layout/activity_contact.xml b/app/src/main/res/layout/activity_contact.xml index 7128f637..39502427 100644 --- a/app/src/main/res/layout/activity_contact.xml +++ b/app/src/main/res/layout/activity_contact.xml @@ -14,9 +14,7 @@ + android:layout_height="@dimen/contact_photo_size"/>