* 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>
348 lines
12 KiB
Java
348 lines
12 KiB
Java
package j$.util.stream;
|
|
|
|
import j$.util.DesugarArrays;
|
|
import j$.util.Spliterator;
|
|
import j$.util.Spliterators;
|
|
import j$.util.stream.IntStream;
|
|
import java.util.Comparator;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.Optional;
|
|
import java.util.Spliterator;
|
|
import java.util.function.BiConsumer;
|
|
import java.util.function.BiFunction;
|
|
import java.util.function.BinaryOperator;
|
|
import java.util.function.Consumer;
|
|
import java.util.function.Function;
|
|
import java.util.function.IntFunction;
|
|
import java.util.function.Predicate;
|
|
import java.util.function.Supplier;
|
|
import java.util.function.ToDoubleFunction;
|
|
import java.util.function.ToIntFunction;
|
|
import java.util.function.ToLongFunction;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public interface Stream<T> extends BaseStream<T, Stream<T>> {
|
|
|
|
/* loaded from: classes2.dex */
|
|
public final /* synthetic */ class Wrapper implements java.util.stream.Stream {
|
|
public /* synthetic */ Wrapper() {
|
|
}
|
|
|
|
public static /* synthetic */ java.util.stream.Stream convert(Stream stream) {
|
|
if (stream == null) {
|
|
return null;
|
|
}
|
|
return stream instanceof z6 ? ((z6) stream).f21516a : new Wrapper();
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ boolean allMatch(Predicate predicate) {
|
|
return Stream.this.allMatch(predicate);
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ boolean anyMatch(Predicate predicate) {
|
|
return Stream.this.anyMatch(predicate);
|
|
}
|
|
|
|
@Override // java.util.stream.BaseStream, java.lang.AutoCloseable
|
|
public final /* synthetic */ void close() {
|
|
Stream.this.close();
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ Object collect(Supplier supplier, BiConsumer biConsumer, BiConsumer biConsumer2) {
|
|
return Stream.this.collect(supplier, biConsumer, biConsumer2);
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ Object collect(java.util.stream.Collector collector) {
|
|
return Stream.this.collect(collector == null ? null : collector instanceof h ? ((h) collector).f21428a : new g(collector));
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ long count() {
|
|
return Stream.this.count();
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ java.util.stream.Stream distinct() {
|
|
return convert(Stream.this.distinct());
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ java.util.stream.Stream dropWhile(Predicate predicate) {
|
|
return convert(Stream.this.dropWhile(predicate));
|
|
}
|
|
|
|
public final /* synthetic */ boolean equals(Object obj) {
|
|
Stream stream = Stream.this;
|
|
if (obj instanceof Wrapper) {
|
|
obj = Stream.this;
|
|
}
|
|
return stream.equals(obj);
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ java.util.stream.Stream filter(Predicate predicate) {
|
|
return convert(Stream.this.filter(predicate));
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ Optional findAny() {
|
|
return j$.com.android.tools.r8.a.B(Stream.this.findAny());
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ Optional findFirst() {
|
|
return j$.com.android.tools.r8.a.B(Stream.this.findFirst());
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ java.util.stream.Stream flatMap(Function function) {
|
|
return convert(Stream.this.d(v3.m0(function)));
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ java.util.stream.DoubleStream flatMapToDouble(Function function) {
|
|
return a0.f(Stream.this.y(v3.m0(function)));
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ java.util.stream.IntStream flatMapToInt(Function function) {
|
|
return IntStream.Wrapper.convert(Stream.this.n(v3.m0(function)));
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ java.util.stream.LongStream flatMapToLong(Function function) {
|
|
return i1.f(Stream.this.l(v3.m0(function)));
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ void forEach(Consumer consumer) {
|
|
Stream.this.forEach(consumer);
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ void forEachOrdered(Consumer consumer) {
|
|
Stream.this.forEachOrdered(consumer);
|
|
}
|
|
|
|
public final /* synthetic */ int hashCode() {
|
|
return Stream.this.hashCode();
|
|
}
|
|
|
|
@Override // java.util.stream.BaseStream
|
|
public final /* synthetic */ boolean isParallel() {
|
|
return Stream.this.isParallel();
|
|
}
|
|
|
|
@Override // java.util.stream.BaseStream
|
|
public final /* synthetic */ Iterator iterator() {
|
|
return Stream.this.iterator();
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ java.util.stream.Stream limit(long j) {
|
|
return convert(Stream.this.limit(j));
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ java.util.stream.Stream map(Function function) {
|
|
return convert(Stream.this.map(function));
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ java.util.stream.DoubleStream mapToDouble(ToDoubleFunction toDoubleFunction) {
|
|
return a0.f(Stream.this.mapToDouble(toDoubleFunction));
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ java.util.stream.IntStream mapToInt(ToIntFunction toIntFunction) {
|
|
return IntStream.Wrapper.convert(Stream.this.mapToInt(toIntFunction));
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ java.util.stream.LongStream mapToLong(ToLongFunction toLongFunction) {
|
|
return i1.f(Stream.this.mapToLong(toLongFunction));
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ Optional max(Comparator comparator) {
|
|
return j$.com.android.tools.r8.a.B(Stream.this.max(comparator));
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ Optional min(Comparator comparator) {
|
|
return j$.com.android.tools.r8.a.B(Stream.this.min(comparator));
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ boolean noneMatch(Predicate predicate) {
|
|
return Stream.this.noneMatch(predicate);
|
|
}
|
|
|
|
@Override // java.util.stream.BaseStream
|
|
public final /* synthetic */ java.util.stream.BaseStream onClose(Runnable runnable) {
|
|
return f.f(Stream.this.onClose(runnable));
|
|
}
|
|
|
|
@Override // java.util.stream.BaseStream
|
|
public final /* synthetic */ java.util.stream.BaseStream parallel() {
|
|
return f.f(Stream.this.parallel());
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ java.util.stream.Stream peek(Consumer consumer) {
|
|
return convert(Stream.this.peek(consumer));
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ Object reduce(Object obj, BiFunction biFunction, BinaryOperator binaryOperator) {
|
|
return Stream.this.reduce(obj, biFunction, binaryOperator);
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ Object reduce(Object obj, BinaryOperator binaryOperator) {
|
|
return Stream.this.reduce(obj, binaryOperator);
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ Optional reduce(BinaryOperator binaryOperator) {
|
|
return j$.com.android.tools.r8.a.B(Stream.this.reduce(binaryOperator));
|
|
}
|
|
|
|
@Override // java.util.stream.BaseStream
|
|
public final /* synthetic */ java.util.stream.BaseStream sequential() {
|
|
return f.f(Stream.this.sequential());
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ java.util.stream.Stream skip(long j) {
|
|
return convert(Stream.this.skip(j));
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ java.util.stream.Stream sorted() {
|
|
return convert(Stream.this.sorted());
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ java.util.stream.Stream sorted(Comparator comparator) {
|
|
return convert(Stream.this.sorted(comparator));
|
|
}
|
|
|
|
@Override // java.util.stream.BaseStream
|
|
public final /* synthetic */ Spliterator spliterator() {
|
|
return Spliterator.Wrapper.convert(Stream.this.spliterator());
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ java.util.stream.Stream takeWhile(Predicate predicate) {
|
|
return convert(Stream.this.takeWhile(predicate));
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ Object[] toArray() {
|
|
return Stream.this.toArray();
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ Object[] toArray(IntFunction intFunction) {
|
|
return Stream.this.toArray(intFunction);
|
|
}
|
|
|
|
@Override // java.util.stream.Stream
|
|
public final /* synthetic */ List toList() {
|
|
return Stream.this.toList();
|
|
}
|
|
|
|
@Override // java.util.stream.BaseStream
|
|
public final /* synthetic */ java.util.stream.BaseStream unordered() {
|
|
return f.f(Stream.this.unordered());
|
|
}
|
|
}
|
|
|
|
boolean allMatch(Predicate predicate);
|
|
|
|
boolean anyMatch(Predicate<? super T> predicate);
|
|
|
|
<R, A> R collect(Collector<? super T, A, R> collector);
|
|
|
|
Object collect(Supplier supplier, BiConsumer biConsumer, BiConsumer biConsumer2);
|
|
|
|
long count();
|
|
|
|
Stream d(j$.util.p pVar);
|
|
|
|
Stream distinct();
|
|
|
|
Stream dropWhile(Predicate predicate);
|
|
|
|
Stream<T> filter(Predicate<? super T> predicate);
|
|
|
|
j$.util.Optional findAny();
|
|
|
|
j$.util.Optional<T> findFirst();
|
|
|
|
void forEach(Consumer<? super T> consumer);
|
|
|
|
void forEachOrdered(Consumer consumer);
|
|
|
|
LongStream l(j$.util.p pVar);
|
|
|
|
Stream limit(long j);
|
|
|
|
<R> Stream<R> map(Function<? super T, ? extends R> function);
|
|
|
|
DoubleStream mapToDouble(ToDoubleFunction toDoubleFunction);
|
|
|
|
IntStream mapToInt(ToIntFunction toIntFunction);
|
|
|
|
LongStream mapToLong(ToLongFunction toLongFunction);
|
|
|
|
j$.util.Optional max(Comparator comparator);
|
|
|
|
j$.util.Optional min(Comparator comparator);
|
|
|
|
IntStream n(j$.util.p pVar);
|
|
|
|
boolean noneMatch(Predicate predicate);
|
|
|
|
Stream peek(Consumer consumer);
|
|
|
|
j$.util.Optional reduce(BinaryOperator binaryOperator);
|
|
|
|
Object reduce(Object obj, BiFunction biFunction, BinaryOperator binaryOperator);
|
|
|
|
Object reduce(Object obj, BinaryOperator binaryOperator);
|
|
|
|
Stream skip(long j);
|
|
|
|
Stream sorted();
|
|
|
|
Stream sorted(Comparator comparator);
|
|
|
|
Stream takeWhile(Predicate predicate);
|
|
|
|
Object[] toArray();
|
|
|
|
Object[] toArray(IntFunction intFunction);
|
|
|
|
List toList();
|
|
|
|
DoubleStream y(j$.util.p pVar);
|
|
|
|
/* renamed from: j$.util.stream.Stream$-CC */
|
|
/* loaded from: classes2.dex */
|
|
public final /* synthetic */ class CC {
|
|
public static <T> Stream<T> empty() {
|
|
return StreamSupport.stream(Spliterators.f21291a, false);
|
|
}
|
|
|
|
public static <T> Stream<T> of(T... tArr) {
|
|
return DesugarArrays.stream(tArr);
|
|
}
|
|
}
|
|
}
|