* Decompile and recreate Soul Browser v1.4.85 with APK CI builds Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix CI build: include bundled google.jks and remove PR trigger The apktool build failed in CI because app/unknown/.../google.jks was excluded by the *.jks gitignore rule. Whitelist app-bundled JKS files and commit the missing resource. Also remove the redundant pull_request workflow trigger. Co-authored-by: KaKi87 <KaKi87@pm.me> * Change package ID to com.github.kaki87.soulbrowser Rename the application ID so the rebuilt APK can be installed alongside the original Soul Browser from Google Play. - Update AndroidManifest package, permissions, providers, and actions - Update R class references in smali (com/github/kaki87/soulbrowser/R) - Update shortcuts.xml targetPackage - Rename app label to "Soul Rebuild" for easy identification Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix install compatibility: remove split APK metadata and bundle native libs The rebuilt APK still declared requiredSplitTypes and Play Store split metadata, causing Android to reject standalone installs as incompatible. - Remove requiredSplitTypes and split-related manifest meta-data - Merge native libs from all ABI splits with uncompressed storage - Page-align before signing for extractNativeLibs=false - Add .so to apktool doNotCompress list Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix install failure: use apksigner v2/v3 and bundle arm64 native libs Target SDK 36 requires APK Signature Scheme v2+, but jarsigner only produces v1 signatures, causing Android to reject the install. - Sign with apksigner (v1+v2+v3) instead of jarsigner - Add arm64-v8a native libraries from universal Soul Browser 1.4.79 - Set extractNativeLibs=true for reliable sideload installs - Commit stable debug keystore for consistent signatures across builds Co-authored-by: KaKi87 <KaKi87@pm.me> * Add committed debug keystore for consistent APK signatures Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix startup crash: use original classes2.dex desugar libraries Apktool recompiles smali_classes2 into a broken classes2.dex, causing ClassNotFoundException for j$.com.android.tools.r8.a at ML Kit init. Inject the original classes2.dex (Java 8+ desugar libs) after apktool build instead of using the recompiled version. Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix missing drawable resources from density split APKs The base APK is an app bundle module; density-specific drawables like seek_thumb_nor_b live in config.xhdpi.apk and were missing after rebuild, causing Resources$NotFoundException at runtime. - Merge non-9-patch resources from split APKs before apktool build - Sync public.xml IDs from R smali only when backing files exist - Add 713 density-specific resource IDs to public.xml Co-authored-by: KaKi87 <KaKi87@pm.me> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com>
467 lines
15 KiB
Java
467 lines
15 KiB
Java
package j$.time;
|
|
|
|
import com.google.android.gms.ads.RequestConfiguration;
|
|
import j$.util.Objects;
|
|
import java.io.DataInput;
|
|
import java.io.DataOutput;
|
|
import java.io.InvalidObjectException;
|
|
import java.io.ObjectInputStream;
|
|
import java.io.Serializable;
|
|
import kotlin.jvm.internal.LongCompanionObject;
|
|
import kotlin.time.DurationKt;
|
|
import kotlin.time.InstantKt;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public final class k implements j$.time.temporal.m, j$.time.temporal.o, Comparable, Serializable {
|
|
public static final k e;
|
|
public static final k f;
|
|
public static final k g;
|
|
public static final k[] h = new k[24];
|
|
private static final long serialVersionUID = 6414437269572265201L;
|
|
|
|
/* renamed from: a, reason: collision with root package name */
|
|
public final byte f21230a;
|
|
public final byte b;
|
|
|
|
/* renamed from: c, reason: collision with root package name */
|
|
public final byte f21231c;
|
|
public final int d;
|
|
|
|
static {
|
|
int i = 0;
|
|
while (true) {
|
|
k[] kVarArr = h;
|
|
if (i < kVarArr.length) {
|
|
kVarArr[i] = new k(i, 0, 0, 0);
|
|
i++;
|
|
} else {
|
|
k kVar = kVarArr[0];
|
|
g = kVar;
|
|
k kVar2 = kVarArr[12];
|
|
e = kVar;
|
|
f = new k(23, 59, 59, 999999999);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static k O(int i, int i2, int i3, int i4) {
|
|
j$.time.temporal.a.HOUR_OF_DAY.u(i);
|
|
j$.time.temporal.a.MINUTE_OF_HOUR.u(i2);
|
|
j$.time.temporal.a.SECOND_OF_MINUTE.u(i3);
|
|
j$.time.temporal.a.NANO_OF_SECOND.u(i4);
|
|
return L(i, i2, i3, i4);
|
|
}
|
|
|
|
public static k P(long j) {
|
|
j$.time.temporal.a.NANO_OF_DAY.u(j);
|
|
int i = (int) (j / 3600000000000L);
|
|
long j2 = j - (i * 3600000000000L);
|
|
int i2 = (int) (j2 / 60000000000L);
|
|
long j3 = j2 - (i2 * 60000000000L);
|
|
int i3 = (int) (j3 / 1000000000);
|
|
return L(i, i2, i3, (int) (j3 - (i3 * 1000000000)));
|
|
}
|
|
|
|
public static k M(j$.time.temporal.n nVar) {
|
|
Objects.requireNonNull(nVar, "temporal");
|
|
k kVar = (k) nVar.d(j$.time.temporal.s.g);
|
|
if (kVar != null) {
|
|
return kVar;
|
|
}
|
|
throw new RuntimeException("Unable to obtain LocalTime from TemporalAccessor: " + nVar + " of type " + nVar.getClass().getName());
|
|
}
|
|
|
|
public static k L(int i, int i2, int i3, int i4) {
|
|
if ((i2 | i3 | i4) == 0) {
|
|
return h[i];
|
|
}
|
|
return new k(i, i2, i3, i4);
|
|
}
|
|
|
|
public k(int i, int i2, int i3, int i4) {
|
|
this.f21230a = (byte) i;
|
|
this.b = (byte) i2;
|
|
this.f21231c = (byte) i3;
|
|
this.d = i4;
|
|
}
|
|
|
|
@Override // j$.time.temporal.n
|
|
public final boolean c(j$.time.temporal.r rVar) {
|
|
if (rVar instanceof j$.time.temporal.a) {
|
|
return ((j$.time.temporal.a) rVar).y();
|
|
}
|
|
return rVar != null && rVar.d(this);
|
|
}
|
|
|
|
@Override // j$.time.temporal.n
|
|
public final j$.time.temporal.v i(j$.time.temporal.r rVar) {
|
|
return j$.time.temporal.s.d(this, rVar);
|
|
}
|
|
|
|
@Override // j$.time.temporal.n
|
|
public final int g(j$.time.temporal.r rVar) {
|
|
if (rVar instanceof j$.time.temporal.a) {
|
|
return N(rVar);
|
|
}
|
|
return j$.time.temporal.s.a(this, rVar);
|
|
}
|
|
|
|
@Override // j$.time.temporal.n
|
|
public final long y(j$.time.temporal.r rVar) {
|
|
if (rVar instanceof j$.time.temporal.a) {
|
|
if (rVar == j$.time.temporal.a.NANO_OF_DAY) {
|
|
return W();
|
|
}
|
|
if (rVar == j$.time.temporal.a.MICRO_OF_DAY) {
|
|
return W() / 1000;
|
|
}
|
|
return N(rVar);
|
|
}
|
|
return rVar.i(this);
|
|
}
|
|
|
|
public final int N(j$.time.temporal.r rVar) {
|
|
switch (j.f21229a[((j$.time.temporal.a) rVar).ordinal()]) {
|
|
case 1:
|
|
return this.d;
|
|
case 2:
|
|
throw new RuntimeException("Invalid field 'NanoOfDay' for get() method, use getLong() instead");
|
|
case 3:
|
|
return this.d / 1000;
|
|
case 4:
|
|
throw new RuntimeException("Invalid field 'MicroOfDay' for get() method, use getLong() instead");
|
|
case 5:
|
|
return this.d / DurationKt.NANOS_IN_MILLIS;
|
|
case 6:
|
|
return (int) (W() / 1000000);
|
|
case 7:
|
|
return this.f21231c;
|
|
case 8:
|
|
return X();
|
|
case 9:
|
|
return this.b;
|
|
case 10:
|
|
return (this.f21230a * 60) + this.b;
|
|
case 11:
|
|
return this.f21230a % 12;
|
|
case 12:
|
|
int i = this.f21230a % 12;
|
|
if (i % 12 == 0) {
|
|
return 12;
|
|
}
|
|
return i;
|
|
case 13:
|
|
return this.f21230a;
|
|
case 14:
|
|
byte b = this.f21230a;
|
|
if (b == 0) {
|
|
return 24;
|
|
}
|
|
return b;
|
|
case 15:
|
|
return this.f21230a / 12;
|
|
default:
|
|
throw new RuntimeException(c.a("Unsupported field: ", rVar));
|
|
}
|
|
}
|
|
|
|
@Override // j$.time.temporal.m
|
|
/* renamed from: Y, reason: merged with bridge method [inline-methods] */
|
|
public final k a(long j, j$.time.temporal.r rVar) {
|
|
if (rVar instanceof j$.time.temporal.a) {
|
|
j$.time.temporal.a aVar = (j$.time.temporal.a) rVar;
|
|
aVar.u(j);
|
|
switch (j.f21229a[aVar.ordinal()]) {
|
|
case 1:
|
|
return Z((int) j);
|
|
case 2:
|
|
return P(j);
|
|
case 3:
|
|
return Z(((int) j) * 1000);
|
|
case 4:
|
|
return P(j * 1000);
|
|
case 5:
|
|
return Z(((int) j) * DurationKt.NANOS_IN_MILLIS);
|
|
case 6:
|
|
return P(j * 1000000);
|
|
case 7:
|
|
int i = (int) j;
|
|
if (this.f21231c != i) {
|
|
j$.time.temporal.a.SECOND_OF_MINUTE.u(i);
|
|
return L(this.f21230a, this.b, i, this.d);
|
|
}
|
|
return this;
|
|
case 8:
|
|
return U(j - X());
|
|
case 9:
|
|
int i2 = (int) j;
|
|
if (this.b != i2) {
|
|
j$.time.temporal.a.MINUTE_OF_HOUR.u(i2);
|
|
return L(this.f21230a, i2, this.f21231c, this.d);
|
|
}
|
|
return this;
|
|
case 10:
|
|
return S(j - ((this.f21230a * 60) + this.b));
|
|
case 11:
|
|
return R(j - (this.f21230a % 12));
|
|
case 12:
|
|
if (j == 12) {
|
|
j = 0;
|
|
}
|
|
return R(j - (this.f21230a % 12));
|
|
case 13:
|
|
int i3 = (int) j;
|
|
if (this.f21230a != i3) {
|
|
j$.time.temporal.a.HOUR_OF_DAY.u(i3);
|
|
return L(i3, this.b, this.f21231c, this.d);
|
|
}
|
|
return this;
|
|
case 14:
|
|
if (j == 24) {
|
|
j = 0;
|
|
}
|
|
int i4 = (int) j;
|
|
if (this.f21230a != i4) {
|
|
j$.time.temporal.a.HOUR_OF_DAY.u(i4);
|
|
return L(i4, this.b, this.f21231c, this.d);
|
|
}
|
|
return this;
|
|
case 15:
|
|
return R((j - (this.f21230a / 12)) * 12);
|
|
default:
|
|
throw new RuntimeException(c.a("Unsupported field: ", rVar));
|
|
}
|
|
}
|
|
return (k) rVar.l(this, j);
|
|
}
|
|
|
|
public final k Z(int i) {
|
|
if (this.d == i) {
|
|
return this;
|
|
}
|
|
j$.time.temporal.a.NANO_OF_SECOND.u(i);
|
|
return L(this.f21230a, this.b, this.f21231c, i);
|
|
}
|
|
|
|
@Override // j$.time.temporal.m
|
|
/* renamed from: Q, reason: merged with bridge method [inline-methods] */
|
|
public final k b(long j, j$.time.temporal.t tVar) {
|
|
if (tVar instanceof j$.time.temporal.b) {
|
|
switch (j.b[((j$.time.temporal.b) tVar).ordinal()]) {
|
|
case 1:
|
|
return T(j);
|
|
case 2:
|
|
return T((j % 86400000000L) * 1000);
|
|
case 3:
|
|
return T((j % 86400000) * 1000000);
|
|
case 4:
|
|
return U(j);
|
|
case 5:
|
|
return S(j);
|
|
case 6:
|
|
return R(j);
|
|
case 7:
|
|
return R((j % 2) * 12);
|
|
default:
|
|
throw new RuntimeException("Unsupported unit: " + tVar);
|
|
}
|
|
}
|
|
return (k) tVar.d(this, j);
|
|
}
|
|
|
|
public final k R(long j) {
|
|
return j == 0 ? this : L(((((int) (j % 24)) + this.f21230a) + 24) % 24, this.b, this.f21231c, this.d);
|
|
}
|
|
|
|
public final k S(long j) {
|
|
if (j != 0) {
|
|
int i = (this.f21230a * 60) + this.b;
|
|
int i2 = ((((int) (j % 1440)) + i) + 1440) % 1440;
|
|
if (i != i2) {
|
|
return L(i2 / 60, i2 % 60, this.f21231c, this.d);
|
|
}
|
|
}
|
|
return this;
|
|
}
|
|
|
|
public final k U(long j) {
|
|
if (j != 0) {
|
|
int i = (this.b * 60) + (this.f21230a * 3600) + this.f21231c;
|
|
int i2 = ((((int) (j % 86400)) + i) + 86400) % 86400;
|
|
if (i != i2) {
|
|
return L(i2 / 3600, (i2 / 60) % 60, i2 % 60, this.d);
|
|
}
|
|
}
|
|
return this;
|
|
}
|
|
|
|
public final k T(long j) {
|
|
if (j != 0) {
|
|
long W = W();
|
|
long j2 = (((j % 86400000000000L) + W) + 86400000000000L) % 86400000000000L;
|
|
if (W != j2) {
|
|
return L((int) (j2 / 3600000000000L), (int) ((j2 / 60000000000L) % 60), (int) ((j2 / 1000000000) % 60), (int) (j2 % 1000000000));
|
|
}
|
|
}
|
|
return this;
|
|
}
|
|
|
|
@Override // j$.time.temporal.m
|
|
public final j$.time.temporal.m u(long j, j$.time.temporal.b bVar) {
|
|
return j == Long.MIN_VALUE ? b(LongCompanionObject.MAX_VALUE, bVar).b(1L, bVar) : b(-j, bVar);
|
|
}
|
|
|
|
@Override // j$.time.temporal.n
|
|
public final Object d(h hVar) {
|
|
if (hVar == j$.time.temporal.s.b || hVar == j$.time.temporal.s.f21256a || hVar == j$.time.temporal.s.e || hVar == j$.time.temporal.s.d) {
|
|
return null;
|
|
}
|
|
if (hVar == j$.time.temporal.s.g) {
|
|
return this;
|
|
}
|
|
if (hVar == j$.time.temporal.s.f) {
|
|
return null;
|
|
}
|
|
if (hVar == j$.time.temporal.s.f21257c) {
|
|
return j$.time.temporal.b.NANOS;
|
|
}
|
|
return hVar.d(this);
|
|
}
|
|
|
|
@Override // j$.time.temporal.o
|
|
public final j$.time.temporal.m l(j$.time.temporal.m mVar) {
|
|
return mVar.a(W(), j$.time.temporal.a.NANO_OF_DAY);
|
|
}
|
|
|
|
public final int X() {
|
|
return (this.b * 60) + (this.f21230a * 3600) + this.f21231c;
|
|
}
|
|
|
|
public final long W() {
|
|
return (this.f21231c * 1000000000) + (this.b * 60000000000L) + (this.f21230a * 3600000000000L) + this.d;
|
|
}
|
|
|
|
@Override // java.lang.Comparable
|
|
/* renamed from: K, reason: merged with bridge method [inline-methods] */
|
|
public final int compareTo(k kVar) {
|
|
int compare = Integer.compare(this.f21230a, kVar.f21230a);
|
|
return (compare == 0 && (compare = Integer.compare(this.b, kVar.b)) == 0 && (compare = Integer.compare(this.f21231c, kVar.f21231c)) == 0) ? Integer.compare(this.d, kVar.d) : compare;
|
|
}
|
|
|
|
public final boolean equals(Object obj) {
|
|
if (this == obj) {
|
|
return true;
|
|
}
|
|
if (obj instanceof k) {
|
|
k kVar = (k) obj;
|
|
if (this.f21230a == kVar.f21230a && this.b == kVar.b && this.f21231c == kVar.f21231c && this.d == kVar.d) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Override // j$.time.temporal.m
|
|
/* renamed from: h */
|
|
public final j$.time.temporal.m t(g gVar) {
|
|
return (k) j$.com.android.tools.r8.a.a(gVar, this);
|
|
}
|
|
|
|
public final int hashCode() {
|
|
long W = W();
|
|
return (int) (W ^ (W >>> 32));
|
|
}
|
|
|
|
public final String toString() {
|
|
StringBuilder sb = new StringBuilder(18);
|
|
byte b = this.f21230a;
|
|
byte b2 = this.b;
|
|
byte b3 = this.f21231c;
|
|
int i = this.d;
|
|
sb.append(b < 10 ? "0" : RequestConfiguration.MAX_AD_CONTENT_RATING_UNSPECIFIED);
|
|
sb.append((int) b);
|
|
sb.append(b2 < 10 ? ":0" : ":");
|
|
sb.append((int) b2);
|
|
if (b3 > 0 || i > 0) {
|
|
sb.append(b3 < 10 ? ":0" : ":");
|
|
sb.append((int) b3);
|
|
if (i > 0) {
|
|
sb.append('.');
|
|
if (i % DurationKt.NANOS_IN_MILLIS == 0) {
|
|
sb.append(Integer.toString((i / DurationKt.NANOS_IN_MILLIS) + 1000).substring(1));
|
|
} else if (i % 1000 == 0) {
|
|
sb.append(Integer.toString((i / 1000) + DurationKt.NANOS_IN_MILLIS).substring(1));
|
|
} else {
|
|
sb.append(Integer.toString(i + InstantKt.NANOS_PER_SECOND).substring(1));
|
|
}
|
|
}
|
|
}
|
|
return sb.toString();
|
|
}
|
|
|
|
private Object writeReplace() {
|
|
return new s((byte) 4, this);
|
|
}
|
|
|
|
private void readObject(ObjectInputStream objectInputStream) {
|
|
throw new InvalidObjectException("Deserialization via serialization delegate");
|
|
}
|
|
|
|
public final void a0(DataOutput dataOutput) {
|
|
if (this.d == 0) {
|
|
if (this.f21231c == 0) {
|
|
if (this.b == 0) {
|
|
dataOutput.writeByte(~this.f21230a);
|
|
return;
|
|
} else {
|
|
dataOutput.writeByte(this.f21230a);
|
|
dataOutput.writeByte(~this.b);
|
|
return;
|
|
}
|
|
}
|
|
dataOutput.writeByte(this.f21230a);
|
|
dataOutput.writeByte(this.b);
|
|
dataOutput.writeByte(~this.f21231c);
|
|
return;
|
|
}
|
|
dataOutput.writeByte(this.f21230a);
|
|
dataOutput.writeByte(this.b);
|
|
dataOutput.writeByte(this.f21231c);
|
|
dataOutput.writeInt(this.d);
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
/* JADX WARN: Type inference failed for: r5v4, types: [int] */
|
|
public static k V(DataInput dataInput) {
|
|
int readInt;
|
|
int i;
|
|
int readByte = dataInput.readByte();
|
|
byte b = 0;
|
|
if (readByte < 0) {
|
|
readByte = ~readByte;
|
|
i = 0;
|
|
readInt = 0;
|
|
} else {
|
|
byte readByte2 = dataInput.readByte();
|
|
if (readByte2 < 0) {
|
|
?? r5 = ~readByte2;
|
|
readInt = 0;
|
|
b = r5;
|
|
i = 0;
|
|
} else {
|
|
byte readByte3 = dataInput.readByte();
|
|
if (readByte3 < 0) {
|
|
i = ~readByte3;
|
|
readInt = 0;
|
|
b = readByte2;
|
|
} else {
|
|
readInt = dataInput.readInt();
|
|
b = readByte2;
|
|
i = readByte3;
|
|
}
|
|
}
|
|
}
|
|
return O(readByte, b, i, readInt);
|
|
}
|
|
}
|