mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-01-12 16:55:05 +01:00
show an attendee image at his name too
This commit is contained in:
parent
60461933c1
commit
770eab4525
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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"/>
|
||||
|
Loading…
Reference in New Issue
Block a user