diff --git a/android/src/main/java/com/chirag/RNMail/RNMailModule.java b/android/src/main/java/com/chirag/RNMail/RNMailModule.java index 658ce6a..a06da0a 100644 --- a/android/src/main/java/com/chirag/RNMail/RNMailModule.java +++ b/android/src/main/java/com/chirag/RNMail/RNMailModule.java @@ -4,6 +4,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.net.Uri; +import android.os.StrictMode; import android.text.Html; import com.facebook.react.bridge.ReactApplicationContext; @@ -26,6 +27,8 @@ public class RNMailModule extends ReactContextBaseJavaModule { public RNMailModule(ReactApplicationContext reactContext) { super(reactContext); this.reactContext = reactContext; + StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); + StrictMode.setVmPolicy(builder.build()); } @Override @@ -53,8 +56,14 @@ private String[] readableArrayToStringArray(ReadableArray r) { @ReactMethod public void mail(ReadableMap options, Callback callback) { - Intent i = new Intent(Intent.ACTION_SENDTO); - i.setData(Uri.parse("mailto:")); + Intent i; + if (options.hasKey("attachment") && !options.isNull("attachment")) { + i = new Intent(Intent.ACTION_SEND); + i.setType("vnd.android.cursor.dir/email"); + } else { + i = new Intent(Intent.ACTION_SENDTO); + i.setData(Uri.parse("mailto:")); + } if (options.hasKey("subject") && !options.isNull("subject")) { i.putExtra(Intent.EXTRA_SUBJECT, options.getString("subject")); @@ -63,7 +72,7 @@ public void mail(ReadableMap options, Callback callback) { if (options.hasKey("body") && !options.isNull("body")) { String body = options.getString("body"); if (options.hasKey("isHTML") && options.getBoolean("isHTML")) { - i.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body)); + i.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body).toString()); } else { i.putExtra(Intent.EXTRA_TEXT, body); }