diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index cfb9126cff..36d7bf4da0 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -64,10 +64,12 @@ import android.widget.EditText; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; +import android.widget.Toast; import com.google.android.material.bottomnavigation.BottomNavigationView; import com.google.android.material.snackbar.Snackbar; +import org.jsoup.Jsoup; import org.xml.sax.XMLReader; import java.io.IOException; @@ -1294,6 +1296,59 @@ public class AdapterMessage extends RecyclerView.Adapter() { + @Override + protected String onExecute(Context context, Bundle args) throws Throwable { + long id = args.getLong("id"); + + DB db = DB.getInstance(context); + EntityMessage message = db.message().getMessage(id); + + StringBuilder sb = new StringBuilder(); + sb.append(context.getString(R.string.title_from)) + .append(' ') + .append(MessageHelper.getFormattedAddresses(message.from, true)) + .append("\r\n"); + + if (message.subject != null) { + sb.append(context.getString(R.string.title_subject)) + .append(' ') + .append(message.subject) + .append("\r\n"); + } + + sb.append("\r\n"); + sb.append(Jsoup.parse(message.read(context)).text()); + + return sb.toString(); + } + + @Override + protected void onExecuted(Bundle args, String text) { + Intent share = new Intent(); + share.setAction(Intent.ACTION_SEND); + share.putExtra(Intent.EXTRA_TEXT, text); + share.setType("text/plain"); + + PackageManager pm = context.getPackageManager(); + if (share.resolveActivity(pm) == null) + Toast.makeText(context, R.string.title_no_viewer, Toast.LENGTH_LONG).show(); + else + context.startActivity(share); + } + + @Override + protected void onException(Bundle args, Throwable ex) { + + } + }.execute(context, owner, args); + + } + private void onShowHeaders(ActionData data) { boolean show_headers = !properties.getValue("headers", data.message.id); properties.setValue("headers", data.message.id, show_headers); @@ -1493,6 +1548,8 @@ public class AdapterMessage extends RecyclerView.Adapter + + Forward Forward raw Reply to all + Share Show headers Manage keywords Add keyword