- 28,932 files - Full Java source code - Smali files - Resources Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
325 lines
10 KiB
Java
325 lines
10 KiB
Java
package com.applovin.impl;
|
||
|
||
import android.graphics.PointF;
|
||
import android.text.Layout;
|
||
import android.text.SpannableString;
|
||
import android.text.style.ForegroundColorSpan;
|
||
import android.text.style.StrikethroughSpan;
|
||
import android.text.style.StyleSpan;
|
||
import android.text.style.UnderlineSpan;
|
||
import androidx.work.WorkRequest;
|
||
import com.applovin.exoplayer2.common.base.Ascii;
|
||
import com.applovin.impl.b5;
|
||
import com.applovin.impl.zk;
|
||
import com.facebook.internal.security.CertificateUtil;
|
||
import com.mbridge.msdk.playercommon.exoplayer2.C;
|
||
import java.util.ArrayList;
|
||
import java.util.Collection;
|
||
import java.util.LinkedHashMap;
|
||
import java.util.List;
|
||
import java.util.Map;
|
||
import java.util.regex.Matcher;
|
||
import java.util.regex.Pattern;
|
||
|
||
/* loaded from: classes.dex */
|
||
public final class xk extends ek {
|
||
private static final Pattern t = Pattern.compile("(?:(\\d+):)?(\\d+):(\\d+)[:.](\\d+)");
|
||
private final boolean o;
|
||
private final yk p;
|
||
private Map q;
|
||
private float r;
|
||
private float s;
|
||
|
||
private static float b(int i) {
|
||
if (i == 0) {
|
||
return 0.05f;
|
||
}
|
||
if (i != 1) {
|
||
return i != 2 ? -3.4028235E38f : 0.95f;
|
||
}
|
||
return 0.5f;
|
||
}
|
||
|
||
public xk(List list) {
|
||
super("SsaDecoder");
|
||
this.r = -3.4028235E38f;
|
||
this.s = -3.4028235E38f;
|
||
if (list == null || list.isEmpty()) {
|
||
this.o = false;
|
||
this.p = null;
|
||
return;
|
||
}
|
||
this.o = true;
|
||
String a = xp.a((byte[]) list.get(0));
|
||
b1.a(a.startsWith("Format:"));
|
||
this.p = (yk) b1.a(yk.a(a));
|
||
a(new bh((byte[]) list.get(1)));
|
||
}
|
||
|
||
private void b(bh bhVar) {
|
||
while (true) {
|
||
String l = bhVar.l();
|
||
if (l == null) {
|
||
return;
|
||
}
|
||
if (bhVar.a() != 0 && bhVar.g() == 91) {
|
||
return;
|
||
}
|
||
String[] split = l.split(CertificateUtil.DELIMITER);
|
||
if (split.length == 2) {
|
||
String lowerCase = Ascii.toLowerCase(split[0].trim());
|
||
lowerCase.hashCode();
|
||
if (lowerCase.equals("playresx")) {
|
||
this.r = Float.parseFloat(split[1].trim());
|
||
} else if (lowerCase.equals("playresy")) {
|
||
try {
|
||
this.s = Float.parseFloat(split[1].trim());
|
||
} catch (NumberFormatException unused) {
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
private static Layout.Alignment e(int i) {
|
||
switch (i) {
|
||
case -1:
|
||
return null;
|
||
case 0:
|
||
default:
|
||
pc.d("SsaDecoder", "Unknown alignment: " + i);
|
||
return null;
|
||
case 1:
|
||
case 4:
|
||
case 7:
|
||
return Layout.Alignment.ALIGN_NORMAL;
|
||
case 2:
|
||
case 5:
|
||
case 8:
|
||
return Layout.Alignment.ALIGN_CENTER;
|
||
case 3:
|
||
case 6:
|
||
case 9:
|
||
return Layout.Alignment.ALIGN_OPPOSITE;
|
||
}
|
||
}
|
||
|
||
private static int c(int i) {
|
||
switch (i) {
|
||
case -1:
|
||
break;
|
||
case 0:
|
||
default:
|
||
pc.d("SsaDecoder", "Unknown alignment: " + i);
|
||
break;
|
||
case 1:
|
||
case 2:
|
||
case 3:
|
||
break;
|
||
case 4:
|
||
case 5:
|
||
case 6:
|
||
break;
|
||
case 7:
|
||
case 8:
|
||
case 9:
|
||
break;
|
||
}
|
||
return Integer.MIN_VALUE;
|
||
}
|
||
|
||
private static Map c(bh bhVar) {
|
||
LinkedHashMap linkedHashMap = new LinkedHashMap();
|
||
zk.a aVar = null;
|
||
while (true) {
|
||
String l = bhVar.l();
|
||
if (l == null || (bhVar.a() != 0 && bhVar.g() == 91)) {
|
||
break;
|
||
}
|
||
if (l.startsWith("Format:")) {
|
||
aVar = zk.a.a(l);
|
||
} else if (l.startsWith("Style:")) {
|
||
if (aVar == null) {
|
||
pc.d("SsaDecoder", "Skipping 'Style:' line before 'Format:' line: " + l);
|
||
} else {
|
||
zk a = zk.a(l, aVar);
|
||
if (a != null) {
|
||
linkedHashMap.put(a.a, a);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return linkedHashMap;
|
||
}
|
||
|
||
private static int d(int i) {
|
||
switch (i) {
|
||
case -1:
|
||
break;
|
||
case 0:
|
||
default:
|
||
pc.d("SsaDecoder", "Unknown alignment: " + i);
|
||
break;
|
||
case 1:
|
||
case 4:
|
||
case 7:
|
||
break;
|
||
case 2:
|
||
case 5:
|
||
case 8:
|
||
break;
|
||
case 3:
|
||
case 6:
|
||
case 9:
|
||
break;
|
||
}
|
||
return Integer.MIN_VALUE;
|
||
}
|
||
|
||
private static int a(long j, List list, List list2) {
|
||
int i;
|
||
int size = list.size() - 1;
|
||
while (true) {
|
||
if (size < 0) {
|
||
i = 0;
|
||
break;
|
||
}
|
||
if (((Long) list.get(size)).longValue() == j) {
|
||
return size;
|
||
}
|
||
if (((Long) list.get(size)).longValue() < j) {
|
||
i = size + 1;
|
||
break;
|
||
}
|
||
size--;
|
||
}
|
||
list.add(i, Long.valueOf(j));
|
||
list2.add(i, i == 0 ? new ArrayList() : new ArrayList((Collection) list2.get(i - 1)));
|
||
return i;
|
||
}
|
||
|
||
private static b5 a(String str, zk zkVar, zk.b bVar, float f, float f2) {
|
||
SpannableString spannableString = new SpannableString(str);
|
||
b5.b a = new b5.b().a(spannableString);
|
||
if (zkVar != null) {
|
||
if (zkVar.c != null) {
|
||
spannableString.setSpan(new ForegroundColorSpan(zkVar.c.intValue()), 0, spannableString.length(), 33);
|
||
}
|
||
float f3 = zkVar.d;
|
||
if (f3 != -3.4028235E38f && f2 != -3.4028235E38f) {
|
||
a.b(f3 / f2, 1);
|
||
}
|
||
boolean z = zkVar.e;
|
||
if (z && zkVar.f) {
|
||
spannableString.setSpan(new StyleSpan(3), 0, spannableString.length(), 33);
|
||
} else if (z) {
|
||
spannableString.setSpan(new StyleSpan(1), 0, spannableString.length(), 33);
|
||
} else if (zkVar.f) {
|
||
spannableString.setSpan(new StyleSpan(2), 0, spannableString.length(), 33);
|
||
}
|
||
if (zkVar.g) {
|
||
spannableString.setSpan(new UnderlineSpan(), 0, spannableString.length(), 33);
|
||
}
|
||
if (zkVar.h) {
|
||
spannableString.setSpan(new StrikethroughSpan(), 0, spannableString.length(), 33);
|
||
}
|
||
}
|
||
int i = bVar.a;
|
||
if (i == -1) {
|
||
i = zkVar != null ? zkVar.b : -1;
|
||
}
|
||
a.b(e(i)).b(d(i)).a(c(i));
|
||
PointF pointF = bVar.b;
|
||
if (pointF != null && f2 != -3.4028235E38f && f != -3.4028235E38f) {
|
||
a.b(pointF.x / f);
|
||
a.a(bVar.b.y / f2, 0);
|
||
} else {
|
||
a.b(b(a.d()));
|
||
a.a(b(a.c()), 0);
|
||
}
|
||
return a.a();
|
||
}
|
||
|
||
@Override // com.applovin.impl.ek
|
||
public nl a(byte[] bArr, int i, boolean z) {
|
||
ArrayList arrayList = new ArrayList();
|
||
ArrayList arrayList2 = new ArrayList();
|
||
bh bhVar = new bh(bArr, i);
|
||
if (!this.o) {
|
||
a(bhVar);
|
||
}
|
||
a(bhVar, arrayList, arrayList2);
|
||
return new al(arrayList, arrayList2);
|
||
}
|
||
|
||
private void a(String str, yk ykVar, List list, List list2) {
|
||
int i;
|
||
b1.a(str.startsWith("Dialogue:"));
|
||
String[] split = str.substring(9).split(",", ykVar.e);
|
||
if (split.length != ykVar.e) {
|
||
pc.d("SsaDecoder", "Skipping dialogue line with fewer columns than format: " + str);
|
||
return;
|
||
}
|
||
long a = a(split[ykVar.a]);
|
||
if (a == C.TIME_UNSET) {
|
||
pc.d("SsaDecoder", "Skipping invalid timing: " + str);
|
||
return;
|
||
}
|
||
long a2 = a(split[ykVar.b]);
|
||
if (a2 == C.TIME_UNSET) {
|
||
pc.d("SsaDecoder", "Skipping invalid timing: " + str);
|
||
return;
|
||
}
|
||
Map map = this.q;
|
||
zk zkVar = (map == null || (i = ykVar.c) == -1) ? null : (zk) map.get(split[i].trim());
|
||
String str2 = split[ykVar.d];
|
||
b5 a3 = a(zk.b.d(str2).replace("\\N", "\n").replace("\\n", "\n").replace("\\h", " "), zkVar, zk.b.b(str2), this.r, this.s);
|
||
int a4 = a(a2, list2, list);
|
||
for (int a5 = a(a, list2, list); a5 < a4; a5++) {
|
||
((List) list.get(a5)).add(a3);
|
||
}
|
||
}
|
||
|
||
private void a(bh bhVar, List list, List list2) {
|
||
yk ykVar = this.o ? this.p : null;
|
||
while (true) {
|
||
String l = bhVar.l();
|
||
if (l == null) {
|
||
return;
|
||
}
|
||
if (l.startsWith("Format:")) {
|
||
ykVar = yk.a(l);
|
||
} else if (l.startsWith("Dialogue:")) {
|
||
if (ykVar == null) {
|
||
pc.d("SsaDecoder", "Skipping dialogue line before complete format: " + l);
|
||
} else {
|
||
a(l, ykVar, list, list2);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
private void a(bh bhVar) {
|
||
while (true) {
|
||
String l = bhVar.l();
|
||
if (l == null) {
|
||
return;
|
||
}
|
||
if ("[Script Info]".equalsIgnoreCase(l)) {
|
||
b(bhVar);
|
||
} else if ("[V4+ Styles]".equalsIgnoreCase(l)) {
|
||
this.q = c(bhVar);
|
||
} else if ("[V4 Styles]".equalsIgnoreCase(l)) {
|
||
pc.c("SsaDecoder", "[V4 Styles] are not supported");
|
||
} else if ("[Events]".equalsIgnoreCase(l)) {
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
|
||
private static long a(String str) {
|
||
Matcher matcher = t.matcher(str.trim());
|
||
return !matcher.matches() ? C.TIME_UNSET : (Long.parseLong((String) xp.a((Object) matcher.group(1))) * 3600000000L) + (Long.parseLong((String) xp.a((Object) matcher.group(2))) * 60000000) + (Long.parseLong((String) xp.a((Object) matcher.group(3))) * 1000000) + (Long.parseLong((String) xp.a((Object) matcher.group(4))) * WorkRequest.MIN_BACKOFF_MILLIS);
|
||
}
|
||
}
|