From e6cbdffb5b6d9f8de36325463f499875825ae4f9 Mon Sep 17 00:00:00 2001 From: str4d Date: Sat, 17 May 2014 06:54:58 +0000 Subject: [PATCH] Show attachments and delivery status in email list --- res/layout/listitem_email.xml | 31 ++++++++++++++++++++++ src/i2p/bote/android/EmailListAdapter.java | 24 +++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/res/layout/listitem_email.xml b/res/layout/listitem_email.xml index 804336a..de605a6 100644 --- a/res/layout/listitem_email.xml +++ b/res/layout/listitem_email.xml @@ -56,4 +56,35 @@ android:text="##:## XX" android:textAppearance="?android:attr/textAppearanceSmall" /> + + + + + + diff --git a/src/i2p/bote/android/EmailListAdapter.java b/src/i2p/bote/android/EmailListAdapter.java index ef3770b..655b1bf 100644 --- a/src/i2p/bote/android/EmailListAdapter.java +++ b/src/i2p/bote/android/EmailListAdapter.java @@ -6,9 +6,11 @@ import java.text.DateFormat; import java.util.List; import javax.mail.MessagingException; +import javax.mail.Part; import i2p.bote.android.util.BoteHelper; import i2p.bote.email.Email; +import i2p.bote.email.EmailDestination; import i2p.bote.fileencryption.PasswordException; import android.content.Context; import android.graphics.Bitmap; @@ -80,10 +82,32 @@ public class EmailListAdapter extends ArrayAdapter { sent.setText(DateFormat.getInstance().format( email.getSentDate())); + List parts = email.getParts(); + for (Part part : parts) { + if (Part.ATTACHMENT.equalsIgnoreCase(part.getDisposition())) { + ((ImageView) v.findViewById( + R.id.email_attachment)).setVisibility(View.VISIBLE); + break; + } + } + if (email.isNew()) { subject.setTypeface(Typeface.DEFAULT_BOLD); from.setTypeface(Typeface.DEFAULT_BOLD); } + + // Set email status if we sent it + String fromDest = EmailDestination.extractBase64Dest(fromAddress); + if (fromDest != null && BoteHelper.getIdentity(fromDest) != null) { + TextView emailStatus = (TextView) v.findViewById(R.id.email_status_text); + if (email.isDelivered()) + ((ImageView) v.findViewById( + R.id.email_status)).setVisibility(View.VISIBLE); + else if (email.getDeliveryPercentage() > 0) + emailStatus.setText(email.getDeliveryPercentage() + "%"); + else + emailStatus.setText(BoteHelper.getEmailStatus(email)); + } } catch (MessagingException e) { subject.setText("ERROR: " + e.getMessage()); } catch (PasswordException e) {