2021-06-27 20:44:35 +00:00
|
|
|
package androidx.core.net;
|
|
|
|
|
|
|
|
import android.net.Uri;
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import c.d.b.a.a;
|
|
|
|
public final class UriCompat {
|
|
|
|
private UriCompat() {
|
|
|
|
}
|
|
|
|
|
|
|
|
@NonNull
|
|
|
|
public static String toSafeString(@NonNull Uri uri) {
|
|
|
|
String scheme = uri.getScheme();
|
|
|
|
String schemeSpecificPart = uri.getSchemeSpecificPart();
|
|
|
|
if (scheme != null) {
|
|
|
|
if (scheme.equalsIgnoreCase("tel") || scheme.equalsIgnoreCase("sip") || scheme.equalsIgnoreCase("sms") || scheme.equalsIgnoreCase("smsto") || scheme.equalsIgnoreCase("mailto") || scheme.equalsIgnoreCase("nfc")) {
|
|
|
|
StringBuilder sb = new StringBuilder(64);
|
|
|
|
sb.append(scheme);
|
|
|
|
sb.append(':');
|
|
|
|
if (schemeSpecificPart != null) {
|
|
|
|
for (int i = 0; i < schemeSpecificPart.length(); i++) {
|
|
|
|
char charAt = schemeSpecificPart.charAt(i);
|
|
|
|
if (charAt == '-' || charAt == '@' || charAt == '.') {
|
|
|
|
sb.append(charAt);
|
|
|
|
} else {
|
|
|
|
sb.append('x');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return sb.toString();
|
|
|
|
} else if (scheme.equalsIgnoreCase("http") || scheme.equalsIgnoreCase("https") || scheme.equalsIgnoreCase("ftp") || scheme.equalsIgnoreCase("rtsp")) {
|
2021-07-27 04:36:47 +00:00
|
|
|
StringBuilder K = a.K("//");
|
2021-06-27 20:44:35 +00:00
|
|
|
String str = "";
|
2021-07-27 04:36:47 +00:00
|
|
|
K.append(uri.getHost() != null ? uri.getHost() : str);
|
2021-06-27 20:44:35 +00:00
|
|
|
if (uri.getPort() != -1) {
|
2021-07-27 04:36:47 +00:00
|
|
|
StringBuilder K2 = a.K(":");
|
|
|
|
K2.append(uri.getPort());
|
|
|
|
str = K2.toString();
|
2021-06-27 20:44:35 +00:00
|
|
|
}
|
2021-07-27 04:36:47 +00:00
|
|
|
schemeSpecificPart = a.C(K, str, "/...");
|
2021-06-27 20:44:35 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
StringBuilder sb2 = new StringBuilder(64);
|
|
|
|
if (scheme != null) {
|
|
|
|
sb2.append(scheme);
|
|
|
|
sb2.append(':');
|
|
|
|
}
|
|
|
|
if (schemeSpecificPart != null) {
|
|
|
|
sb2.append(schemeSpecificPart);
|
|
|
|
}
|
|
|
|
return sb2.toString();
|
|
|
|
}
|
|
|
|
}
|