Back to project page slf4android.
The source code is released under:
MIT License
If you think the Android project slf4android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package pl.brightinventions.slf4android; /* ww w . j a v a 2 s.com*/ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.AsyncTask; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; class EmailErrorReport { private static final Logger LOG = LoggerFactory.getLogger(EmailErrorReport.class.getSimpleName()); private final List<String> emailAddresses; private String message; private String emailSubject; private String emailBody; private List<AsyncTask<?, ?, File>> attachments = new ArrayList<AsyncTask<?, ?, File>>(); EmailErrorReport(String message, List<String> emailAddresses, String emailSubject, String emailBody) { this.message = message; this.emailAddresses = emailAddresses; this.emailSubject = emailSubject; this.emailBody = emailBody; } public void addFileAttachmentFrom(AsyncTask<?, ?, File> attachment) { attachments.add(attachment); } public void configureRecipients(Intent sendEmail) { String[] emails = new String[emailAddresses.size()]; emailAddresses.toArray(emails); sendEmail.putExtra(Intent.EXTRA_EMAIL, emails); } public void configureSubject(Intent sendEmail) { sendEmail.putExtra(Intent.EXTRA_SUBJECT, emailSubject); } public void configureMessage(Intent sendEmail) { sendEmail.putExtra(Intent.EXTRA_TEXT, emailBody + message); } public void configureAttachments(Intent sendEmail) { ArrayList<Uri> attachmentsUris = new ArrayList<Uri>(); for (AsyncTask<?, ?, File> fileAttachmentSource : attachments) { Uri uri = buildAttachmentUri(fileAttachmentSource); if (uri != null) { attachmentsUris.add(uri); } } sendEmail.putParcelableArrayListExtra(Intent.EXTRA_STREAM, attachmentsUris); } private Uri buildAttachmentUri(AsyncTask<?, ?, File> attachmentTask) { try { File file = attachmentTask.get(5, TimeUnit.SECONDS); if (file != null) { return Uri.fromFile(file); } else { LOG.warn("Attachment task {} returned null", attachmentTask.getClass().getSimpleName()); } } catch (InterruptedException e) { LOG.warn("Interrupted while waiting for attachment", e); } catch (ExecutionException e) { LOG.warn("Error while waiting for attachment", e); } catch (TimeoutException e) { LOG.warn("Timed out while waiting for attachment", e); } return null; } }