diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 424f88591a..bc51909a4a 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -446,6 +446,9 @@ public class AdapterMessage extends RecyclerView.Adapter(); properties.setAttachments(message.id, attachments); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + boolean hide_attachments = prefs.getBoolean("hide_attachments", false); + boolean show_inline = properties.getValue("inline", message.id); Log.i("Show inline=" + show_inline); @@ -3528,13 +3538,32 @@ public class AdapterMessage extends RecyclerView.Adapter 0 && !hide_attachments ? View.VISIBLE : View.GONE); + + vSeparatorAttachments.setVisibility(show.size() > 0 ? View.VISIBLE : View.GONE); + + tvAttachments.setText(context.getResources() + .getQuantityString(R.plurals.title_attachments, show.size(), show.size())); + tvAttachments.setVisibility(show.size() > 0 && hide_attachments ? View.VISIBLE : View.GONE); + + ibExpanderAttachments.setImageLevel(hide_attachments ? 1 /* more */ : 0 /* less */); + ibExpanderAttachments.setVisibility(show.size() > 0 ? View.VISIBLE : View.GONE); + ibExpanderAttachments.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + prefs.edit().putBoolean("hide_attachments", !hide_attachments).apply(); + cowner.restart(); + bindAttachments(message, properties.getAttachments(message.id), false); + } + }); + cbInline.setOnCheckedChangeListener(null); cbInline.setChecked(show_inline); - cbInline.setVisibility(has_inline ? View.VISIBLE : View.GONE); + cbInline.setVisibility(has_inline && !hide_attachments ? View.VISIBLE : View.GONE); - ibSaveAttachments.setVisibility(available > 1 && unavailable == 0 ? View.VISIBLE : View.GONE); - ibDownloadAttachments.setVisibility(downloadable > 1 && suitable ? View.VISIBLE : View.GONE); - tvNoInternetAttachments.setVisibility(downloading && !suitable ? View.VISIBLE : View.GONE); + ibSaveAttachments.setVisibility(available > 1 && unavailable == 0 && !hide_attachments ? View.VISIBLE : View.GONE); + ibDownloadAttachments.setVisibility(downloadable > 1 && suitable && !hide_attachments ? View.VISIBLE : View.GONE); + tvNoInternetAttachments.setVisibility(downloading && !suitable && !hide_attachments ? View.VISIBLE : View.GONE); cbInline.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override @@ -3556,8 +3585,6 @@ public class AdapterMessage extends RecyclerView.Adapter 0 ? View.VISIBLE : View.GONE); - if (calendar != null && bind_extras) bindCalendar(message, calendar); diff --git a/app/src/main/res/layout/include_message_attachments.xml b/app/src/main/res/layout/include_message_attachments.xml index e84bc700b9..720b846bd5 100644 --- a/app/src/main/res/layout/include_message_attachments.xml +++ b/app/src/main/res/layout/include_message_attachments.xml @@ -14,6 +14,30 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + + + + app:layout_constraintTop_toBottomOf="@+id/tvAttachments" /> - - diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2da3443770..1353094909 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -91,6 +91,11 @@ Delete %1$d messages permanently? + + One attachment + %1$d attachments + + Treat %1$d message as spam? Treat %1$d messages as spam?