Refactoring

pull/156/head
M66B 6 years ago
parent cf7cddd1a9
commit 02cba3b9f9

@ -254,9 +254,9 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
private RecyclerView rvImage;
private Group grpAddresses;
private Group grpHeaders;
private Group grpAttachments;
private Group grpExpanded;
private Group grpImages;
private AdapterAttachment adapterAttachment;
@ -357,9 +357,9 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
adapterImage = new AdapterImage(context, owner);
rvImage.setAdapter(adapterImage);
grpAddresses = itemView.findViewById(R.id.grpAddresses);
grpHeaders = itemView.findViewById(R.id.grpHeaders);
grpAttachments = itemView.findViewById(R.id.grpAttachments);
grpExpanded = itemView.findViewById(R.id.grpExpanded);
grpImages = itemView.findViewById(R.id.grpImages);
}
@ -683,9 +683,9 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
private void clearExpanded() {
cowner.stop();
grpAddresses.setVisibility(View.GONE);
grpHeaders.setVisibility(View.GONE);
grpAttachments.setVisibility(View.GONE);
grpExpanded.setVisibility(View.GONE);
grpImages.setVisibility(View.GONE);
ibSearchContact.setVisibility(View.GONE);
@ -721,6 +721,8 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
btnSaveAttachments.setVisibility(View.GONE);
tvNoInternetAttachments.setVisibility(View.GONE);
bnvActions.setVisibility(View.GONE);
tbHtml.setVisibility(View.GONE);
ibImages.setVisibility(View.GONE);
ibFull.setVisibility(View.GONE);
@ -755,7 +757,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
boolean show_headers = properties.getValue("headers", message.id);
boolean show_html = properties.getValue("html", message.id);
grpExpanded.setVisibility(View.VISIBLE);
grpAddresses.setVisibility(View.VISIBLE);
boolean hasFrom = (message.from != null && message.from.length > 0);
boolean hasTo = (message.to != null && message.to.length > 0);
@ -776,6 +778,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
grpAttachments.setVisibility(message.attachments > 0 ? View.VISIBLE : View.GONE);
bnvActions.setVisibility(View.VISIBLE);
bnvActions.setTag(null);
for (int i = 0; i < bnvActions.getMenu().size(); i++)
bnvActions.getMenu().getItem(i).setVisible(false);

@ -4,219 +4,37 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:id="@+id/vSeparatorAddress"
android:layout_width="0dp"
android:layout_height="1dp"
android:background="?attr/colorSeparator"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/ivExpanderAddress"
android:layout_width="0dp"
android:layout_height="24dp"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:background="?android:attr/selectableItemBackground"
android:contentDescription="@string/title_legend_expander"
android:src="@drawable/expander"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/vSeparatorAddress" />
<include
android:id="@+id/inAddresses"
layout="@layout/include_addresses"
layout="@layout/include_message_addresses"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ivExpanderAddress" />
<View
android:id="@+id/vSeparatorHeaders"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginStart="6dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="6dp"
android:background="?attr/colorSeparator"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/inAddresses" />
<TextView
android:id="@+id/tvHeaders"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="6dp"
android:fontFamily="monospace"
android:minHeight="24dp"
android:text="Headers"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textIsSelectable="true"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/vSeparatorHeaders" />
<eu.faircode.email.ContentLoadingProgressBar
android:id="@+id/pbHeaders"
style="@style/Base.Widget.AppCompat.ProgressBar"
android:layout_width="24dp"
android:layout_height="24dp"
android:indeterminate="true"
app:layout_constraintBottom_toBottomOf="@id/tvHeaders"
app:layout_constraintEnd_toEndOf="@id/tvHeaders"
app:layout_constraintStart_toStartOf="@id/tvHeaders"
app:layout_constraintTop_toTopOf="@id/tvHeaders" />
<TextView
android:id="@+id/tvNoInternetHeaders"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_no_internet"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintBottom_toBottomOf="@id/tvHeaders"
app:layout_constraintEnd_toEndOf="@id/tvHeaders"
app:layout_constraintStart_toStartOf="@id/tvHeaders"
app:layout_constraintTop_toTopOf="@id/tvHeaders" />
<View
android:id="@+id/vSeparatorAttachments"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginStart="6dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="6dp"
android:background="?attr/colorSeparator"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvHeaders" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvAttachment"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="6dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/vSeparatorAttachments" />
app:layout_constraintTop_toTopOf="parent" />
<CheckBox
android:id="@+id/cbInline"
android:layout_width="wrap_content"
<include
android:id="@+id/inHeaders"
layout="@layout/include_message_headers"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:text="@string/title_show_inline"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rvAttachment" />
app:layout_constraintTop_toBottomOf="@id/inAddresses" />
<Button
android:id="@+id/btnDownloadAttachments"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
<include
android:id="@+id/inAttachments"
layout="@layout/include_message_attachments"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minWidth="0dp"
android:minHeight="0dp"
android:text="@string/title_download_all"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbInline" />
<Button
android:id="@+id/btnSaveAttachments"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="0dp"
android:minHeight="0dp"
android:text="@string/title_save_all"
app:layout_constraintEnd_toEndOf="@id/rvAttachment"
app:layout_constraintTop_toBottomOf="@id/cbInline" />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/barrier_internet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:constraint_referenced_ids="btnDownloadAttachments,btnSaveAttachments" />
<TextView
android:id="@+id/tvNoInternetAttachments"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:text="@string/title_no_internet"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintEnd_toEndOf="@id/rvAttachment"
app:layout_constraintStart_toStartOf="@id/rvAttachment"
app:layout_constraintTop_toBottomOf="@id/barrier_internet" />
app:layout_constraintTop_toBottomOf="@id/inHeaders" />
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bnvActions"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:background="?attr/colorSeparator"
app:itemIconTint="@color/bottomnav_foreground"
app:itemTextColor="@color/bottomnav_foreground"
app:labelVisibilityMode="labeled"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvNoInternetAttachments"
app:menu="@menu/action_message" />
<ToggleButton
android:id="@+id/tbHtml"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
<include
android:id="@+id/inNavigation"
layout="@layout/include_message_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginTop="3dp"
android:minWidth="0dp"
android:minHeight="0dp"
android:textOff="@string/title_show_html"
android:textOn="@string/title_show_formatted"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/bnvActions" />
<ImageButton
android:id="@+id/ibImages"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:layout_marginEnd="6dp"
android:contentDescription="@string/title_legend_show_images"
android:src="@drawable/baseline_image_24"
app:layout_constraintEnd_toStartOf="@+id/ibFull"
app:layout_constraintTop_toBottomOf="@id/bnvActions" />
<ImageButton
android:id="@+id/ibFull"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:layout_marginEnd="6dp"
android:contentDescription="@string/title_legend_show_full"
android:src="@drawable/baseline_fullscreen_24"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/bnvActions" />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/barrier_body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:constraint_referenced_ids="tbHtml,ibImages,ibFull" />
app:layout_constraintTop_toBottomOf="@id/inAttachments" />
<eu.faircode.email.ContentLoadingProgressBar
android:id="@+id/pbBody"
@ -227,7 +45,7 @@
android:padding="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/barrier_body" />
app:layout_constraintTop_toBottomOf="@id/inNavigation" />
<TextView
android:id="@+id/tvNoInternetBody"
@ -238,7 +56,7 @@
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/barrier_body" />
app:layout_constraintTop_toBottomOf="@id/inNavigation" />
<TextView
android:id="@+id/tvBody"
@ -255,22 +73,4 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvNoInternetBody" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grpHeaders"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="vSeparatorHeaders,tvHeaders" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grpAttachments"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="vSeparatorAttachments,rvAttachment" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grpExpanded"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="vSeparatorAddress,ivExpanderAddress,bnvActions" />
</androidx.constraintlayout.widget.ConstraintLayout>

@ -4,6 +4,27 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:id="@+id/vSeparatorAddress"
android:layout_width="0dp"
android:layout_height="1dp"
android:background="?attr/colorSeparator"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/ivExpanderAddress"
android:layout_width="0dp"
android:layout_height="24dp"
android:background="?android:attr/selectableItemBackground"
android:contentDescription="@string/title_legend_expander"
android:src="@drawable/expander"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/vSeparatorAddress" />
<ImageButton
android:id="@+id/ibSearchContact"
android:layout_width="wrap_content"
@ -12,7 +33,7 @@
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/baseline_search_24"
app:layout_constraintEnd_toStartOf="@+id/ibNotifyContact"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toBottomOf="@id/ivExpanderAddress" />
<ImageButton
android:id="@+id/ibNotifyContact"
@ -23,17 +44,18 @@
android:contentDescription="@string/title_legend_notify"
android:src="@drawable/baseline_notifications_24"
app:layout_constraintEnd_toStartOf="@+id/ibAddContact"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toBottomOf="@id/ivExpanderAddress" />
<ImageButton
android:id="@+id/ibAddContact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="12dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/title_legend_contacts"
android:src="@drawable/baseline_import_contacts_24"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toBottomOf="@id/ivExpanderAddress" />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/barrier_action"
@ -46,6 +68,7 @@
android:id="@+id/tvFromExTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:text="@string/title_from"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent"
@ -56,6 +79,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:text="From"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textIsSelectable="true"
@ -67,6 +91,7 @@
android:id="@+id/tvToTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:text="@string/title_to"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent"
@ -77,6 +102,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:text="To"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textIsSelectable="true"
@ -88,6 +114,7 @@
android:id="@+id/tvReplyToTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:text="@string/title_reply_to"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent"
@ -98,6 +125,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:text="Reply to"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textIsSelectable="true"
@ -109,6 +137,7 @@
android:id="@+id/tvCcTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:text="@string/title_cc"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent"
@ -119,6 +148,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:text="Cc"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textIsSelectable="true"
@ -130,6 +160,7 @@
android:id="@+id/tvBccTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:text="@string/title_bcc"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent"
@ -140,6 +171,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:text="Bcc"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textIsSelectable="true"
@ -151,6 +183,7 @@
android:id="@+id/tvIdentityTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:text="@string/title_via_identity"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent"
@ -161,6 +194,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:text="user@example.org"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textIsSelectable="true"
@ -172,6 +206,7 @@
android:id="@+id/tvTimeExTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:text="@string/title_received"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent"
@ -182,6 +217,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:text="12:34:56"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textIsSelectable="true"
@ -193,6 +229,7 @@
android:id="@+id/tvSizeExTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:text="@string/title_size"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent"
@ -203,6 +240,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:text="123 KB"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textIsSelectable="true"
@ -225,6 +263,8 @@
android:id="@+id/tvSubjectEx"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:text="Subject"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textIsSelectable="true"
@ -236,6 +276,8 @@
android:id="@+id/tvFlags"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:text="Flags"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textIsSelectable="true"
@ -247,10 +289,18 @@
android:id="@+id/tvKeywords"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:text="Keywords"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textIsSelectable="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvFlags" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grpAddresses"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="vSeparatorAddress,ivExpanderAddress" />
</androidx.constraintlayout.widget.ConstraintLayout>

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:id="@+id/vSeparatorAttachments"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginStart="6dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="6dp"
android:background="?attr/colorSeparator"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvAttachment"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="6dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/vSeparatorAttachments" />
<CheckBox
android:id="@+id/cbInline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:text="@string/title_show_inline"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rvAttachment" />
<Button
android:id="@+id/btnDownloadAttachments"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="0dp"
android:minHeight="0dp"
android:text="@string/title_download_all"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbInline" />
<Button
android:id="@+id/btnSaveAttachments"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="0dp"
android:minHeight="0dp"
android:text="@string/title_save_all"
app:layout_constraintEnd_toEndOf="@id/rvAttachment"
app:layout_constraintTop_toBottomOf="@id/cbInline" />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/barrier_internet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:constraint_referenced_ids="btnDownloadAttachments,btnSaveAttachments" />
<TextView
android:id="@+id/tvNoInternetAttachments"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:text="@string/title_no_internet"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintEnd_toEndOf="@id/rvAttachment"
app:layout_constraintStart_toStartOf="@id/rvAttachment"
app:layout_constraintTop_toBottomOf="@id/barrier_internet" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grpAttachments"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="vSeparatorAttachments,rvAttachment" />
</androidx.constraintlayout.widget.ConstraintLayout>

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:id="@+id/vSeparatorHeaders"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginStart="6dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="6dp"
android:background="?attr/colorSeparator"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tvHeaders"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="6dp"
android:fontFamily="monospace"
android:minHeight="30dp"
android:text="Headers"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textIsSelectable="true"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/vSeparatorHeaders" />
<eu.faircode.email.ContentLoadingProgressBar
android:id="@+id/pbHeaders"
style="@style/Base.Widget.AppCompat.ProgressBar"
android:layout_width="24dp"
android:layout_height="24dp"
android:indeterminate="true"
app:layout_constraintBottom_toBottomOf="@id/tvHeaders"
app:layout_constraintEnd_toEndOf="@id/tvHeaders"
app:layout_constraintStart_toStartOf="@id/tvHeaders"
app:layout_constraintTop_toTopOf="@id/tvHeaders" />
<TextView
android:id="@+id/tvNoInternetHeaders"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_no_internet"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintBottom_toBottomOf="@id/tvHeaders"
app:layout_constraintEnd_toEndOf="@id/tvHeaders"
app:layout_constraintStart_toStartOf="@id/tvHeaders"
app:layout_constraintTop_toTopOf="@id/tvHeaders" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grpHeaders"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="vSeparatorHeaders,tvHeaders" />
</androidx.constraintlayout.widget.ConstraintLayout>

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:id="@+id/vSeparatorImages"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginStart="6dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="6dp"
android:background="?attr/colorSeparator"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvImage"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/vSeparatorImages" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grpImages"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="vSeparatorImages,rvImage" />
</androidx.constraintlayout.widget.ConstraintLayout>

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bnvActions"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:background="?attr/colorSeparator"
app:itemIconTint="@color/bottomnav_foreground"
app:itemTextColor="@color/bottomnav_foreground"
app:labelVisibilityMode="labeled"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:menu="@menu/action_message" />
<ToggleButton
android:id="@+id/tbHtml"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginTop="3dp"
android:minWidth="0dp"
android:minHeight="0dp"
android:textOff="@string/title_show_html"
android:textOn="@string/title_show_formatted"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/bnvActions" />
<ImageButton
android:id="@+id/ibImages"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:layout_marginEnd="6dp"
android:contentDescription="@string/title_legend_show_images"
android:src="@drawable/baseline_image_24"
app:layout_constraintEnd_toStartOf="@+id/ibFull"
app:layout_constraintTop_toBottomOf="@id/bnvActions" />
<ImageButton
android:id="@+id/ibFull"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:layout_marginEnd="6dp"
android:contentDescription="@string/title_legend_show_full"
android:src="@drawable/baseline_fullscreen_24"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/bnvActions" />
</androidx.constraintlayout.widget.ConstraintLayout>

@ -350,31 +350,12 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/inMessage" />
<View
android:id="@+id/vSeparatorImages"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginStart="6dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="6dp"
android:background="?attr/colorSeparator"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/vwBody" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvImage"
android:layout_width="0dp"
<include
android:id="@+id/inImages"
layout="@layout/include_message_images"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/vSeparatorImages" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grpImages"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="vSeparatorImages,rvImage" />
app:layout_constraintTop_toBottomOf="@id/vwBody" />
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>

@ -343,31 +343,12 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/inMessage" />
<View
android:id="@+id/vSeparatorImages"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginStart="6dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="6dp"
android:background="?attr/colorSeparator"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/vwBody" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvImage"
android:layout_width="0dp"
<include
android:id="@+id/inImages"
layout="@layout/include_message_images"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/vSeparatorImages" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grpImages"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="vSeparatorImages,rvImage" />
app:layout_constraintTop_toBottomOf="@id/vwBody" />
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>

Loading…
Cancel
Save