139 lines
4.0 KiB
Java
139 lines
4.0 KiB
Java
package com.baidu.cloud.videocache;
|
|
|
|
import android.net.Uri;
|
|
import android.text.TextUtils;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class ac {
|
|
public static Uri a(String str, String str2) {
|
|
return Uri.parse(b(str, str2));
|
|
}
|
|
|
|
private static String a(StringBuilder sb, int i, int i2) {
|
|
int i3;
|
|
int i4;
|
|
if (i >= i2) {
|
|
return sb.toString();
|
|
}
|
|
if (sb.charAt(i) == '/') {
|
|
i++;
|
|
}
|
|
int i5 = i;
|
|
int i6 = i2;
|
|
while (true) {
|
|
for (int i7 = i5; i7 <= i6; i7++) {
|
|
if (i7 == i6) {
|
|
i3 = i7;
|
|
} else if (sb.charAt(i7) == '/') {
|
|
i3 = i7 + 1;
|
|
}
|
|
int i8 = i5 + 1;
|
|
if (i7 == i8 && sb.charAt(i5) == '.') {
|
|
sb.delete(i5, i3);
|
|
i6 -= i3 - i5;
|
|
} else {
|
|
if (i7 == i5 + 2 && sb.charAt(i5) == '.' && sb.charAt(i8) == '.') {
|
|
i4 = sb.lastIndexOf("/", i5 - 2) + 1;
|
|
int i9 = i4 > i ? i4 : i;
|
|
sb.delete(i9, i3);
|
|
i6 -= i3 - i9;
|
|
} else {
|
|
i4 = i7 + 1;
|
|
}
|
|
i5 = i4;
|
|
}
|
|
}
|
|
return sb.toString();
|
|
}
|
|
}
|
|
|
|
private static int[] a(String str) {
|
|
int i;
|
|
int[] iArr = new int[4];
|
|
if (TextUtils.isEmpty(str)) {
|
|
iArr[0] = -1;
|
|
return iArr;
|
|
}
|
|
int length = str.length();
|
|
int indexOf = str.indexOf("#");
|
|
if (indexOf != -1) {
|
|
length = indexOf;
|
|
}
|
|
int indexOf2 = str.indexOf("?");
|
|
if (indexOf2 == -1 || indexOf2 > length) {
|
|
indexOf2 = length;
|
|
}
|
|
int indexOf3 = str.indexOf("/");
|
|
if (indexOf3 == -1 && indexOf3 > indexOf2) {
|
|
indexOf3 = indexOf2;
|
|
}
|
|
int indexOf4 = str.indexOf(":");
|
|
if (indexOf4 > indexOf3) {
|
|
indexOf4 = -1;
|
|
}
|
|
int i2 = indexOf4 + 2;
|
|
if (i2 < indexOf2 && str.charAt(indexOf4 + 1) == '/' && str.charAt(i2) == '/') {
|
|
i = str.indexOf(47, indexOf4 + 3);
|
|
if (i == -1 || i > indexOf2) {
|
|
i = indexOf2;
|
|
}
|
|
} else {
|
|
i = indexOf4 + 1;
|
|
}
|
|
iArr[0] = indexOf4;
|
|
iArr[1] = i;
|
|
iArr[2] = indexOf2;
|
|
iArr[3] = length;
|
|
return iArr;
|
|
}
|
|
|
|
private static String b(String str, String str2) {
|
|
StringBuilder sb = new StringBuilder();
|
|
if (str == null) {
|
|
str = "";
|
|
}
|
|
if (str2 == null) {
|
|
str2 = "";
|
|
}
|
|
int[] a = a(str2);
|
|
if (a[0] != -1) {
|
|
sb.append(str2);
|
|
a(sb, a[1], a[2]);
|
|
return sb.toString();
|
|
}
|
|
int[] a2 = a(str);
|
|
if (a[3] == 0) {
|
|
sb.append((CharSequence) str, 0, a2[3]);
|
|
sb.append(str2);
|
|
return sb.toString();
|
|
}
|
|
if (a[2] == 0) {
|
|
sb.append((CharSequence) str, 0, a2[2]);
|
|
sb.append(str2);
|
|
return sb.toString();
|
|
}
|
|
if (a[1] != 0) {
|
|
int i = a2[0] + 1;
|
|
sb.append((CharSequence) str, 0, i);
|
|
sb.append(str2);
|
|
return a(sb, a[1] + i, i + a[2]);
|
|
}
|
|
if (str2.charAt(a[1]) == '/') {
|
|
sb.append((CharSequence) str, 0, a2[1]);
|
|
sb.append(str2);
|
|
return a(sb, a2[1], a2[1] + a[2]);
|
|
}
|
|
if (a2[0] + 2 < a2[1] && a2[1] == a2[2]) {
|
|
sb.append((CharSequence) str, 0, a2[1]);
|
|
sb.append('/');
|
|
sb.append(str2);
|
|
return a(sb, a2[1], a2[1] + a[2] + 1);
|
|
}
|
|
int lastIndexOf = str.lastIndexOf(47, a2[2] - 1);
|
|
int i2 = lastIndexOf == -1 ? a2[1] : lastIndexOf + 1;
|
|
sb.append((CharSequence) str, 0, i2);
|
|
sb.append(str2);
|
|
return a(sb, a2[1], i2 + a[2]);
|
|
}
|
|
}
|