diff --git a/app/src/main/java/eu/faircode/email/FragmentMessage.java b/app/src/main/java/eu/faircode/email/FragmentMessage.java index aed80bb7..efd8bdd2 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessage.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessage.java @@ -19,6 +19,7 @@ package eu.faircode.email; Copyright 2018 by Marcel Bokhorst (M66B) */ +import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -31,6 +32,7 @@ import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; import android.preference.PreferenceManager; +import android.provider.ContactsContract; import android.text.Editable; import android.text.Html; import android.text.Layout; @@ -93,11 +95,12 @@ public class FragmentMessage extends FragmentEx { private ViewGroup view; private View vwAnswerAnchor; private ImageView ivFlagged; + private ImageView ivAvatar; private TextView tvFrom; private TextView tvTime; + private TextView tvCount; private TextView tvTo; private TextView tvSubject; - private TextView tvCount; private TextView tvReplyTo; private TextView tvCc; private TextView tvBcc; @@ -152,11 +155,12 @@ public class FragmentMessage extends FragmentEx { // Get controls vwAnswerAnchor = view.findViewById(R.id.vwAnswerAnchor); ivFlagged = view.findViewById(R.id.ivFlagged); + ivAvatar = view.findViewById(R.id.ivAvatar); tvFrom = view.findViewById(R.id.tvFrom); tvTime = view.findViewById(R.id.tvTime); + tvCount = view.findViewById(R.id.tvCount); tvTo = view.findViewById(R.id.tvTo); tvSubject = view.findViewById(R.id.tvSubject); - tvCount = view.findViewById(R.id.tvCount); tvReplyTo = view.findViewById(R.id.tvReplyTo); tvCc = view.findViewById(R.id.tvCc); tvBcc = view.findViewById(R.id.tvBcc); @@ -387,11 +391,10 @@ public class FragmentMessage extends FragmentEx { ivFlagged.setImageResource(message.ui_flagged ? R.drawable.baseline_star_24 : R.drawable.baseline_star_border_24); tvFrom.setText(MessageHelper.getFormattedAddresses(message.from, true)); tvTime.setText(message.sent == null ? null : df.format(new Date(message.sent))); + tvCount.setText(Integer.toString(message.count)); tvTo.setText(MessageHelper.getFormattedAddresses(message.to, true)); tvSubject.setText(message.subject); - tvCount.setText(Integer.toString(message.count)); - tvReplyTo.setText(MessageHelper.getFormattedAddresses(message.reply, true)); tvCc.setText(MessageHelper.getFormattedAddresses(message.cc, true)); tvBcc.setText(MessageHelper.getFormattedAddresses(message.bcc, true)); @@ -427,6 +430,17 @@ public class FragmentMessage extends FragmentEx { setSeen(); + if (message.avatar == null) { + ViewGroup.LayoutParams lp = ivAvatar.getLayoutParams(); + lp.height = 0; + lp.width = 0; + ivAvatar.setLayoutParams(lp); + } else { + ContentResolver resolver = getContext().getContentResolver(); + InputStream is = ContactsContract.Contacts.openContactPhotoInputStream(resolver, Uri.parse(message.avatar)); + ivAvatar.setImageDrawable(Drawable.createFromStream(is, "avatar")); + } + pbWait.setVisibility(View.GONE); grpHeader.setVisibility(free ? View.GONE : View.VISIBLE); diff --git a/app/src/main/res/layout/fragment_message.xml b/app/src/main/res/layout/fragment_message.xml index 85a2686c..41f844f2 100644 --- a/app/src/main/res/layout/fragment_message.xml +++ b/app/src/main/res/layout/fragment_message.xml @@ -25,6 +25,16 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@+id/tvFrom" /> + + + + + + + app:layout_constraintTop_toTopOf="@id/tvTime" /> + app:layout_constraintTop_toBottomOf="@id/tvTime" /> + app:layout_constraintTop_toBottomOf="@id/tvTime" /> - - - - + app:constraint_referenced_ids="ivFlagged,ivAvatar,tvFrom,tvToTitle,tvTo,tvSize,tvTime,tvSubject" />