117 lines
3.4 KiB
Java
117 lines
3.4 KiB
Java
package androidx.core.net;
|
|
|
|
import android.net.Uri;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.core.util.Preconditions;
|
|
import b.d.b.a.a;
|
|
import java.util.HashMap;
|
|
import java.util.Locale;
|
|
import java.util.Map;
|
|
/* loaded from: classes.dex */
|
|
public final class MailTo {
|
|
private static final String BCC = "bcc";
|
|
private static final String BODY = "body";
|
|
private static final String CC = "cc";
|
|
private static final String MAILTO = "mailto";
|
|
public static final String MAILTO_SCHEME = "mailto:";
|
|
private static final String SUBJECT = "subject";
|
|
private static final String TO = "to";
|
|
private HashMap<String, String> mHeaders = new HashMap<>();
|
|
|
|
private MailTo() {
|
|
}
|
|
|
|
public static boolean isMailTo(@Nullable Uri uri) {
|
|
return uri != null && MAILTO.equals(uri.getScheme());
|
|
}
|
|
|
|
public static boolean isMailTo(@Nullable String str) {
|
|
return str != null && str.startsWith(MAILTO_SCHEME);
|
|
}
|
|
|
|
@NonNull
|
|
public static MailTo parse(@NonNull Uri uri) throws ParseException {
|
|
return parse(uri.toString());
|
|
}
|
|
|
|
@NonNull
|
|
public static MailTo parse(@NonNull String str) throws ParseException {
|
|
String str2;
|
|
String str3;
|
|
Preconditions.checkNotNull(str);
|
|
if (isMailTo(str)) {
|
|
int indexOf = str.indexOf(35);
|
|
if (indexOf != -1) {
|
|
str = str.substring(0, indexOf);
|
|
}
|
|
int indexOf2 = str.indexOf(63);
|
|
if (indexOf2 == -1) {
|
|
str3 = Uri.decode(str.substring(7));
|
|
str2 = null;
|
|
} else {
|
|
str3 = Uri.decode(str.substring(7, indexOf2));
|
|
str2 = str.substring(indexOf2 + 1);
|
|
}
|
|
MailTo mailTo = new MailTo();
|
|
if (str2 != null) {
|
|
for (String str4 : str2.split("&")) {
|
|
String[] split = str4.split("=", 2);
|
|
if (split.length != 0) {
|
|
mailTo.mHeaders.put(Uri.decode(split[0]).toLowerCase(Locale.ROOT), split.length > 1 ? Uri.decode(split[1]) : null);
|
|
}
|
|
}
|
|
}
|
|
String to = mailTo.getTo();
|
|
if (to != null) {
|
|
str3 = a.w(str3, ", ", to);
|
|
}
|
|
mailTo.mHeaders.put(TO, str3);
|
|
return mailTo;
|
|
}
|
|
throw new ParseException("Not a mailto scheme");
|
|
}
|
|
|
|
@Nullable
|
|
public String getBcc() {
|
|
return this.mHeaders.get(BCC);
|
|
}
|
|
|
|
@Nullable
|
|
public String getBody() {
|
|
return this.mHeaders.get(BODY);
|
|
}
|
|
|
|
@Nullable
|
|
public String getCc() {
|
|
return this.mHeaders.get(CC);
|
|
}
|
|
|
|
@Nullable
|
|
public Map<String, String> getHeaders() {
|
|
return this.mHeaders;
|
|
}
|
|
|
|
@Nullable
|
|
public String getSubject() {
|
|
return this.mHeaders.get(SUBJECT);
|
|
}
|
|
|
|
@Nullable
|
|
public String getTo() {
|
|
return this.mHeaders.get(TO);
|
|
}
|
|
|
|
@NonNull
|
|
public String toString() {
|
|
StringBuilder sb = new StringBuilder(MAILTO_SCHEME);
|
|
sb.append('?');
|
|
for (Map.Entry<String, String> entry : this.mHeaders.entrySet()) {
|
|
sb.append(Uri.encode(entry.getKey()));
|
|
sb.append('=');
|
|
sb.append(Uri.encode(entry.getValue()));
|
|
sb.append('&');
|
|
}
|
|
return sb.toString();
|
|
}
|
|
}
|