Replace usage of android.net.MailTo with androidx.core.net.MailTo

Use the AndroidX version of MailTo instead of the broken platform version.
For more information see https://cketti.de/2020/06/22/android-net-mailto-is-broken/
pull/187/head
cketti 5 years ago
parent 3692ae0509
commit 03003a2605

@ -20,7 +20,6 @@ package eu.faircode.email;
*/ */
import android.content.Intent; import android.content.Intent;
import android.net.MailTo;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.text.Html; import android.text.Html;
@ -28,6 +27,7 @@ import android.text.Spanned;
import android.text.TextUtils; import android.text.TextUtils;
import androidx.core.app.TaskStackBuilder; import androidx.core.app.TaskStackBuilder;
import androidx.core.net.MailTo;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction; import androidx.fragment.app.FragmentTransaction;
@ -89,12 +89,7 @@ public class ActivityCompose extends ActivityBase implements FragmentManager.OnB
Uri uri = intent.getData(); Uri uri = intent.getData();
if (uri != null && "mailto".equals(uri.getScheme())) { if (uri != null && "mailto".equals(uri.getScheme())) {
// https://www.ietf.org/rfc/rfc2368.txt // https://www.ietf.org/rfc/rfc2368.txt
String url = uri.toString(); MailTo mailto = MailTo.parse(uri.toString());
int query = url.indexOf('?', MailTo.MAILTO_SCHEME.length());
if (query > 0)
url = url.substring(0, query) + url.substring(query).replace(":", "%3A");
MailTo mailto = MailTo.parse(url);
String to = mailto.getTo(); String to = mailto.getTo();
if (to != null) if (to != null)

@ -20,11 +20,12 @@ package eu.faircode.email;
*/ */
import android.content.Context; import android.content.Context;
import android.net.MailTo;
import android.net.ParseException; import android.net.ParseException;
import android.net.Uri; import android.net.Uri;
import android.util.Pair; import android.util.Pair;
import androidx.core.net.MailTo;
import java.io.IOException; import java.io.IOException;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.URL; import java.net.URL;

@ -21,10 +21,10 @@ package eu.faircode.email;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.net.MailTo;
import android.net.Uri; import android.net.Uri;
import android.text.TextUtils; import android.text.TextUtils;
import androidx.core.net.MailTo;
import androidx.documentfile.provider.DocumentFile; import androidx.documentfile.provider.DocumentFile;
import androidx.preference.PreferenceManager; import androidx.preference.PreferenceManager;

Loading…
Cancel
Save