package org.andengine.util;
import org.andengine.util.mime.MIMEType;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.text.TextUtils;
/**
* (c) 2013 Nicolas Gramlich
*
* @author Nicolas Gramlich
* @since 14:34:09 - 14.04.2013
*/
public final class MailUtils {
// ===========================================================
// Constants
// ===========================================================
// ===========================================================
// Fields
// ===========================================================
// ===========================================================
// Constructors
// ===========================================================
private MailUtils() {
}
// ===========================================================
// Getter & Setter
// ===========================================================
// ===========================================================
// Methods for/from SuperClass/Interfaces
// ===========================================================
// ===========================================================
// Methods
// ===========================================================
public static void sendMail(final Context pContext, final int pIntentChooserTitleResID, final String [] pRecipients, final int pSubjectResID, final int pBodyResID) {
final String intentChooserTitle = pContext.getString(pIntentChooserTitleResID);
final String subject = pContext.getString(pSubjectResID);
final String body = pContext.getString(pBodyResID);
MailUtils.sendMail(pContext, intentChooserTitle, pRecipients, subject, body);
}
public static void sendMail(final Context pContext, final String pIntentChooserTitle, final String [] pRecipients, final String pSubject, final String pBody) {
final Intent sendMailIntent = MailUtils.getSendMailIntent(pContext, pRecipients, pSubject, pBody);
pContext.startActivity(Intent.createChooser(sendMailIntent, pIntentChooserTitle));
}
public static Intent getSendMailIntent(final Context pContext, final String [] pRecipients, final String pSubject, final String pBody) {
/* Attempt using ACTION_SENDTO: */
final Intent sendToIntent = new Intent(Intent.ACTION_SENDTO);
final StringBuilder sendToUriStringBuilder = new StringBuilder();
sendToUriStringBuilder.append("mailto:");
if (!org.andengine.util.TextUtils.isEmpty(pRecipients)) {
final String recipientsString = TextUtils.join(",", pRecipients);
sendToUriStringBuilder.append(Uri.encode(recipientsString));
}
if (!TextUtils.isEmpty(pSubject)) {
sendToUriStringBuilder.append("?subject=").append(Uri.encode(pSubject));
}
if (!TextUtils.isEmpty(pBody)) {
if (TextUtils.isEmpty(pSubject)) {
sendToUriStringBuilder.append("?body=");
} else {
sendToUriStringBuilder.append("&body=");
}
sendToUriStringBuilder.append(Uri.encode(pBody));
}
final String sendToUriString = sendToUriStringBuilder.toString();
final Uri sendToUri = Uri.parse(sendToUriString);
sendToIntent.setData(sendToUri);
if (IntentUtils.isIntentResolvable(pContext, sendToIntent)) {
return sendToIntent;
} else {
/* Fallback using ACTION_SEND: */
final Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType(MIMEType.TEXT.getTypeString());
if (!org.andengine.util.TextUtils.isEmpty(pRecipients)) {
sendIntent.putExtra(Intent.EXTRA_EMAIL, pRecipients);
}
if (!TextUtils.isEmpty(pSubject)) {
sendIntent.putExtra(Intent.EXTRA_SUBJECT, pSubject);
}
if (!TextUtils.isEmpty(pBody)) {
sendIntent.putExtra(Intent.EXTRA_TEXT, pBody);
}
return sendIntent;
}
}
// ===========================================================
// Inner and Anonymous Classes
// ===========================================================
}