diff --git a/app/src/main/java/i2p/bote/android/ViewEmailFragment.java b/app/src/main/java/i2p/bote/android/ViewEmailFragment.java index 093405f..99536f6 100644 --- a/app/src/main/java/i2p/bote/android/ViewEmailFragment.java +++ b/app/src/main/java/i2p/bote/android/ViewEmailFragment.java @@ -2,6 +2,7 @@ package i2p.bote.android; import android.content.Intent; import android.graphics.Bitmap; +import android.graphics.Typeface; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; @@ -14,6 +15,7 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TableRow; import android.widget.TextView; +import android.widget.Toast; import java.io.IOException; import java.security.GeneralSecurityException; @@ -74,6 +76,7 @@ public class ViewEmailFragment extends Fragment { } private void displayEmail(Email email, View v) { + View sigInvalid = v.findViewById(R.id.signature_invalid); TextView subject = (TextView) v.findViewById(R.id.email_subject); ImageView picture = (ImageView) v.findViewById(R.id.picture); TextView sender = (TextView) v.findViewById(R.id.email_sender); @@ -95,13 +98,28 @@ public class ViewEmailFragment extends Fragment { picture.setImageBitmap(BoteHelper.getIdenticonForAddress(fromAddress, lp.width, lp.height)); } - sender.setText(BoteHelper.getDisplayAddress(fromAddress)); + final String senderDisplay = BoteHelper.getDisplayAddress(fromAddress); + + if (!email.isSignatureValid() && !email.isAnonymous()) { + sigInvalid.setVisibility(View.VISIBLE); + sigInvalid.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Toast.makeText(getActivity(), getString(R.string.signature_invalid, senderDisplay), Toast.LENGTH_LONG).show(); + } + }); + } + + sender.setText(senderDisplay); + if (email.isAnonymous() && !BoteHelper.isSentEmail(email)) + sender.setTypeface(Typeface.DEFAULT, Typeface.ITALIC); Address[] emailRecipients = email.getToAddresses(); if (emailRecipients != null) { for (Address recipient : emailRecipients) { TextView tv = new TextView(getActivity()); tv.setText(BoteHelper.getDisplayAddress(recipient.toString())); + tv.setTextAppearance(getActivity(), R.style.TextAppearance_AppCompat_Secondary); recipients.addView(tv); } } diff --git a/app/src/main/res/layout/fragment_view_email.xml b/app/src/main/res/layout/fragment_view_email.xml index f239e72..2dca38d 100644 --- a/app/src/main/res/layout/fragment_view_email.xml +++ b/app/src/main/res/layout/fragment_view_email.xml @@ -1,126 +1,162 @@ - + android:layout_height="match_parent"> + android:orientation="vertical"> + android:orientation="vertical" + android:paddingBottom="@dimen/activity_vertical_margin"> - + android:orientation="horizontal" + android:padding="@dimen/listitem_horizontal_margin"> + + + + + + android:src="@drawable/ic_contact_picture"/> + + + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" + android:layout_below="@+id/email_sender" + android:layout_marginEnd="@dimen/listitem_horizontal_margin" + android:layout_marginLeft="@dimen/listitem_text_left_margin" + android:layout_marginRight="@dimen/listitem_horizontal_margin" + android:layout_marginStart="@dimen/listitem_text_left_margin"> + android:layout_height="wrap_content"> - - - - - - - + android:layout_marginEnd="4dp" + android:layout_marginRight="4dp" + android:text="@string/email_to" + android:textAppearance="@style/TextAppearance.AppCompat.Secondary"/> + android:orientation="vertical"> + android:layout_height="wrap_content"> + android:layout_marginEnd="4dp" + android:layout_marginRight="4dp" + android:text="@string/label_sent" + android:textAppearance="@style/TextAppearance.AppCompat.Secondary"/> + android:layout_height="wrap_content" + android:textAppearance="@style/TextAppearance.AppCompat.Secondary"/> + android:layout_height="wrap_content"> + android:layout_marginEnd="4dp" + android:layout_marginRight="4dp" + android:text="@string/email_received" + android:textAppearance="@style/TextAppearance.AppCompat.Secondary"/> + android:layout_height="wrap_content" + android:textAppearance="@style/TextAppearance.AppCompat.Secondary"/> + android:visibility="gone"> + android:layout_marginEnd="4dp" + android:layout_marginRight="4dp" + android:text="@string/email_status" + android:textAppearance="@style/TextAppearance.AppCompat.Secondary"/> + android:layout_height="wrap_content" + android:textAppearance="@style/TextAppearance.AppCompat.Secondary"/> @@ -129,10 +165,10 @@ android:id="@+id/email_content" android:layout_width="match_parent" android:layout_height="wrap_content" + android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" - android:paddingTop="@dimen/activity_vertical_margin" - android:paddingBottom="@dimen/activity_vertical_margin" /> + android:paddingTop="@dimen/activity_vertical_margin"/> diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 0bc3e5f..1d7ba81 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -6,6 +6,7 @@ 16dp 48dp + 18sp 16sp 14sp diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4515b0a..1167cf8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -98,6 +98,7 @@ Error while sending email: %s Error saving email metadata: %s Email not found + This email does not have a valid signature. It was probably not sent by %s. From: To: Sent: diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 10f305a..acca1b9 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -25,6 +25,10 @@ @dimen/text_size_primary + +