show an attendee image at his name too

This commit is contained in:
tibbi 2019-03-14 23:25:18 +01:00
parent 60461933c1
commit 770eab4525
4 changed files with 46 additions and 20 deletions

View File

@ -4,6 +4,8 @@ import android.app.DatePickerDialog
import android.app.TimePickerDialog
import android.content.Intent
import android.database.Cursor
import android.graphics.drawable.Drawable
import android.graphics.drawable.LayerDrawable
import android.net.Uri
import android.os.Bundle
import android.provider.CalendarContract
@ -12,7 +14,9 @@ import android.text.TextUtils
import android.text.method.LinkMovementMethod
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.view.WindowManager
import android.view.inputmethod.EditorInfo
import android.widget.EditText
import android.widget.ImageView
import android.widget.RelativeLayout
@ -76,6 +80,7 @@ class EventActivity : SimpleActivity() {
private var mAttendeeViews = ArrayList<EditText>()
private var mAvailableContacts = ArrayList<Attendee>()
private lateinit var mAttendeePlaceholder: Drawable
private lateinit var mEventStartDateTime: DateTime
private lateinit var mEventEndDateTime: DateTime
private lateinit var mEvent: Event
@ -88,6 +93,8 @@ class EventActivity : SimpleActivity() {
val intent = intent ?: return
mDialogTheme = getDialogTheme()
mWasContactsPermissionChecked = hasPermission(PERMISSION_READ_CONTACTS)
mAttendeePlaceholder = resources.getDrawable(R.drawable.attendee_circular_background)
(mAttendeePlaceholder as LayerDrawable).findDrawableByLayerId(R.id.attendee_circular_background).applyColorFilter(config.primaryColor)
val eventId = intent.getLongExtra(EVENT_ID, 0L)
Thread {
@ -1159,6 +1166,7 @@ class EventActivity : SimpleActivity() {
val autoCompleteView = attendeeHolder.event_attendee
val selectedAttendeeHolder = attendeeHolder.event_contact_attendee
val selectedAttendeeName = selectedAttendeeHolder.event_contact_name
val selectedAttendeeImage = attendeeHolder.event_contact_image
mAttendeeViews.add(autoCompleteView)
autoCompleteView.onTextChangeListener {
@ -1195,6 +1203,8 @@ class EventActivity : SimpleActivity() {
autoCompleteView.focusSearch(View.FOCUS_DOWN)?.requestFocus()
selectedAttendeeName.text = selectedAttendee.getPublicName()
selectedAttendeeHolder.beVisible()
selectedAttendeeImage.beVisible()
selectedAttendee.updateImage(applicationContext, selectedAttendeeImage, mAttendeePlaceholder)
}
}

View File

@ -6,10 +6,6 @@ import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.Filter
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.calendar.pro.R
import com.simplemobiletools.calendar.pro.activities.SimpleActivity
import com.simplemobiletools.calendar.pro.extensions.config
@ -39,21 +35,7 @@ class AutoCompleteTextViewAdapter(val activity: SimpleActivity, val contacts: Ar
item_autocomplete_name?.text = contact.name
item_autocomplete_email?.text = contact.email
if (contact.photoUri.isEmpty()) {
item_autocomplete_image.setImageDrawable(placeholder)
} else {
val options = RequestOptions()
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.error(placeholder)
.centerCrop()
Glide.with(activity)
.load(contact.photoUri)
.transition(DrawableTransitionOptions.withCrossFade())
.apply(options)
.apply(RequestOptions.circleCropTransform())
.into(item_autocomplete_image)
}
contact.updateImage(context, item_autocomplete_image, placeholder)
}
return listItem

View File

@ -1,5 +1,31 @@
package com.simplemobiletools.calendar.pro.models
import android.content.Context
import android.graphics.drawable.Drawable
import android.widget.ImageView
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
data class Attendee(val contactId: Int, var name: String, val email: String, val status: Int, var photoUri: String) {
fun getPublicName() = if (name.isNotEmpty()) name else email
fun updateImage(context: Context, imageView: ImageView, placeholder: Drawable) {
if (photoUri.isEmpty()) {
imageView.setImageDrawable(placeholder)
} else {
val options = RequestOptions()
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.error(placeholder)
.centerCrop()
Glide.with(context)
.load(photoUri)
.transition(DrawableTransitionOptions.withCrossFade())
.apply(options)
.apply(RequestOptions.circleCropTransform())
.into(imageView)
}
}
}

View File

@ -30,12 +30,20 @@
android:layout_alignBottom="@+id/event_attendee"
android:visibility="gone">
<ImageView
android:id="@+id/event_contact_image"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_margin="@dimen/tiny_margin"
android:adjustViewBounds="true"/>
<com.simplemobiletools.commons.views.MyTextView
android:id="@+id/event_contact_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="@dimen/small_margin"
android:layout_marginStart="@dimen/medium_margin"
android:layout_toEndOf="@+id/event_contact_image"
android:lines="1"
android:textSize="@dimen/bigger_text_size"
tools:text="Simple Mobile"/>