first commit for branch

This commit is contained in:
wildercayden
2026-03-05 09:33:24 -05:00
parent decc3f207a
commit 0f9078ab50
1384 changed files with 27029 additions and 81292 deletions

View File

@@ -4,10 +4,10 @@
<selectionStates>
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
<DropdownSelection timestamp="2026-03-03T17:00:07.553627400Z">
<DropdownSelection timestamp="2026-03-03T20:42:04.347732800Z">
<Target type="DEFAULT_BOOT">
<handle>
<DeviceId pluginId="LocalEmulator" identifier="path=C:\Users\cayde\.android\avd\Pixel.avd" />
<DeviceId pluginId="PhysicalDevice" identifier="serial=fd94f2c9" />
</handle>
</Target>
</DropdownSelection>

View File

@@ -6,7 +6,6 @@
<GradleProjectSettings>
<option name="testRunner" value="CHOOSE_PER_TEST" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />

10
ScoutingApp/.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/modules/app/Scouting_App.app.androidTest.iml" filepath="$PROJECT_DIR$/.idea/modules/app/Scouting_App.app.androidTest.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/app/Scouting_App.app.main.iml" filepath="$PROJECT_DIR$/.idea/modules/app/Scouting_App.app.main.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/app/Scouting_App.app.unitTest.iml" filepath="$PROJECT_DIR$/.idea/modules/app/Scouting_App.app.unitTest.iml" />
</modules>
</component>
</project>

View File

@@ -35,28 +35,38 @@ android {
packaging {
resources {
excludes += "META-INF/DEPENDENCIES"
excludes += "META-INF/INDEX.LIST"
}
}
}
dependencies {
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.3")
implementation("androidx.multidex:multidex:2.0.1")
implementation(libs.appcompat)
implementation(libs.material)
implementation(libs.activity)
implementation(libs.constraintlayout)
testImplementation(libs.junit)
androidTestImplementation(libs.ext.junit)
androidTestImplementation(libs.espresso.core)
implementation("com.google.apis:google-api-services-sheets:v4-rev581-1.25.0")
implementation("com.google.oauth-client:google-oauth-client:1.34.0")
implementation("com.google.http-client:google-http-client-gson:1.41.1")
implementation("com.google.api-client:google-api-client:1.34.0")
implementation("com.google.auth:google-auth-library-oauth2-http:1.14.0")
implementation("com.google.auth:google-auth-library-credentials:1.14.0")
implementation("com.fasterxml.jackson.core:jackson-databind:2.15.2")
implementation("com.google.code.gson:gson:2.8.9")
implementation("com.squareup.okhttp3:okhttp:4.12.0")
dependencies {
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5")
implementation("androidx.multidex:multidex:2.0.1")
// Core Android UI
implementation(libs.appcompat)
implementation(libs.material)
implementation(libs.activity)
implementation(libs.constraintlayout)
// Google Sheets & Core API (The "1.x" branch fix)
implementation("com.google.apis:google-api-services-sheets:v4-rev581-1.25.0")
implementation("com.google.api-client:google-api-client:1.32.1")
implementation("com.google.oauth-client:google-oauth-client:1.32.1")
implementation("com.google.http-client:google-http-client-gson:1.42.3")
implementation("com.google.auth:google-auth-library-oauth2-http:1.15.0")
// JSON & Networking (Consolidated to stable versions)
implementation("com.google.code.gson:gson:2.10.1")
implementation("com.fasterxml.jackson.core:jackson-databind:2.15.2")
implementation("com.squareup.okhttp3:okhttp:4.12.0")
// Testing
testImplementation(libs.junit)
androidTestImplementation(libs.ext.junit)
androidTestImplementation(libs.espresso.core)
}
}

View File

@@ -1 +0,0 @@
00000000000000000000000000000000

View File

@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<!--
This file is automatically generated by Crashlytics to uniquely
identify the mapping file for your Android application.
Do NOT modify or commit to source control!
-->
<string name="com.google.firebase.crashlytics.mapping_file_id" tools:ignore="UnusedResources,TypographyDashes" translatable="false">00000000000000000000000000000000</string>
</resources>

View File

@@ -1,3 +0,0 @@
<resources>
<string name="com.google.firebase.crashlytics.version_control_info">""</string>
</resources>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 964 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="gcm_defaultSenderId" translatable="false">120318981755</string>
<string name="google_api_key" translatable="false">AIzaSyAViNoGPFuYwjzRLrf7yd0bnn6CzaU526Y</string>
<string name="google_app_id" translatable="false">1:120318981755:android:13354940b959f4018694de</string>
<string name="google_crash_reporting_api_key" translatable="false">AIzaSyAViNoGPFuYwjzRLrf7yd0bnn6CzaU526Y</string>
<string name="google_storage_bucket" translatable="false">scouting-app-88360.firebasestorage.app</string>
<string name="project_id" translatable="false">scouting-app-88360</string>
</resources>

View File

@@ -1 +0,0 @@
1:120318981755:android:13354940b959f4018694de

View File

@@ -1,2 +0,0 @@
#- File Locator -
listingFile=../../../../outputs/apk/androidTest/debug/output-metadata.json

View File

@@ -1,2 +0,0 @@
#- File Locator -
listingFile=../../../../../release/output-metadata.json

View File

@@ -1,2 +0,0 @@
appMetadataVersion=1.1
androidGradlePluginVersion=8.13.2

View File

@@ -1,10 +0,0 @@
{
"version": 3,
"artifactType": {
"type": "COMPATIBLE_SCREEN_MANIFEST",
"kind": "Directory"
},
"applicationId": "com.example.scoutingapp",
"variantName": "release",
"elements": []
}

View File

@@ -1 +0,0 @@
{"options":{"minApiLevel":"23","isDebugModeEnabled":false},"version":"8.13.19"}

View File

@@ -1,89 +0,0 @@
# This is a configuration file for ProGuard.
# http://proguard.sourceforge.net/index.html#manual/usage.html
#
# Starting with version 2.2 of the Android plugin for Gradle, this file is distributed together with
# the plugin and unpacked at build-time. The files in $ANDROID_HOME are no longer maintained and
# will be ignored by new version of the Android plugin for Gradle.
# Optimizations: If you don't want to optimize, use the proguard-android.txt configuration file
# instead of this one, which turns off the optimization flags.
-allowaccessmodification
# Preserve some attributes that may be required for reflection.
-keepattributes AnnotationDefault,
EnclosingMethod,
InnerClasses,
RuntimeVisibleAnnotations,
RuntimeVisibleParameterAnnotations,
RuntimeVisibleTypeAnnotations,
Signature
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService
-keep public class com.google.android.vending.licensing.ILicensingService
-dontnote com.android.vending.licensing.ILicensingService
-dontnote com.google.vending.licensing.ILicensingService
-dontnote com.google.android.vending.licensing.ILicensingService
# For native methods, see https://www.guardsquare.com/manual/configuration/examples#native
-keepclasseswithmembernames,includedescriptorclasses class * {
native <methods>;
}
# Keep setters in Views so that animations can still work.
-keepclassmembers public class * extends android.view.View {
void set*(***);
*** get*();
}
# We want to keep methods in Activity that could be used in the XML attribute onClick.
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
# For enumeration classes, see https://www.guardsquare.com/manual/configuration/examples#enumerations
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepclassmembers class * implements android.os.Parcelable {
public static final ** CREATOR;
}
# Preserve annotated Javascript interface methods.
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
# The support libraries contains references to newer platform versions.
# Don't warn about those in case this app is linking against an older
# platform version. We know about them, and they are safe.
-dontnote android.support.**
-dontnote androidx.**
-dontwarn android.support.**
-dontwarn androidx.**
# Understand the @Keep support annotation.
-keep class android.support.annotation.Keep
-keep @android.support.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
@android.support.annotation.Keep <methods>;
}
-keepclasseswithmembers class * {
@android.support.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
@android.support.annotation.Keep <init>(...);
}
# These classes are duplicated between android.jar and org.apache.http.legacy.jar.
-dontnote org.apache.http.**
-dontnote android.net.http.**
# These classes are duplicated between android.jar and core-lambda-stubs.jar.
-dontnote java.lang.invoke.**

View File

@@ -1,95 +0,0 @@
# This is a configuration file for ProGuard.
# http://proguard.sourceforge.net/index.html#manual/usage.html
#
# Starting with version 2.2 of the Android plugin for Gradle, this file is distributed together with
# the plugin and unpacked at build-time. The files in $ANDROID_HOME are no longer maintained and
# will be ignored by new version of the Android plugin for Gradle.
# Optimization is turned off by default. Dex does not like code run
# through the ProGuard optimize steps (and performs some
# of these optimizations on its own).
# Note that if you want to enable optimization, you cannot just
# include optimization flags in your own project configuration file;
# instead you will need to point to the
# "proguard-android-optimize.txt" file instead of this one from your
# project.properties file.
-dontoptimize
# Preserve some attributes that may be required for reflection.
-keepattributes AnnotationDefault,
EnclosingMethod,
InnerClasses,
RuntimeVisibleAnnotations,
RuntimeVisibleParameterAnnotations,
RuntimeVisibleTypeAnnotations,
Signature
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService
-keep public class com.google.android.vending.licensing.ILicensingService
-dontnote com.android.vending.licensing.ILicensingService
-dontnote com.google.vending.licensing.ILicensingService
-dontnote com.google.android.vending.licensing.ILicensingService
# For native methods, see https://www.guardsquare.com/manual/configuration/examples#native
-keepclasseswithmembernames,includedescriptorclasses class * {
native <methods>;
}
# Keep setters in Views so that animations can still work.
-keepclassmembers public class * extends android.view.View {
void set*(***);
*** get*();
}
# We want to keep methods in Activity that could be used in the XML attribute onClick.
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
# For enumeration classes, see https://www.guardsquare.com/manual/configuration/examples#enumerations
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepclassmembers class * implements android.os.Parcelable {
public static final ** CREATOR;
}
# Preserve annotated Javascript interface methods.
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
# The support libraries contains references to newer platform versions.
# Don't warn about those in case this app is linking against an older
# platform version. We know about them, and they are safe.
-dontnote android.support.**
-dontnote androidx.**
-dontwarn android.support.**
-dontwarn androidx.**
# Understand the @Keep support annotation.
-keep class android.support.annotation.Keep
-keep @android.support.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
@android.support.annotation.Keep <methods>;
}
-keepclasseswithmembers class * {
@android.support.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
@android.support.annotation.Keep <init>(...);
}
# These classes are duplicated between android.jar and org.apache.http.legacy.jar.
-dontnote org.apache.http.**
-dontnote android.net.http.**
# These classes are duplicated between android.jar and core-lambda-stubs.jar.
-dontnote java.lang.invoke.**

View File

@@ -1,89 +0,0 @@
# This is a configuration file for ProGuard.
# http://proguard.sourceforge.net/index.html#manual/usage.html
#
# Starting with version 2.2 of the Android plugin for Gradle, this file is distributed together with
# the plugin and unpacked at build-time. The files in $ANDROID_HOME are no longer maintained and
# will be ignored by new version of the Android plugin for Gradle.
# Optimizations can be turned on and off in the 'postProcessing' DSL block.
# The configuration below is applied if optimizations are enabled.
-allowaccessmodification
# Preserve some attributes that may be required for reflection.
-keepattributes AnnotationDefault,
EnclosingMethod,
InnerClasses,
RuntimeVisibleAnnotations,
RuntimeVisibleParameterAnnotations,
RuntimeVisibleTypeAnnotations,
Signature
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService
-keep public class com.google.android.vending.licensing.ILicensingService
-dontnote com.android.vending.licensing.ILicensingService
-dontnote com.google.vending.licensing.ILicensingService
-dontnote com.google.android.vending.licensing.ILicensingService
# For native methods, see https://www.guardsquare.com/manual/configuration/examples#native
-keepclasseswithmembernames,includedescriptorclasses class * {
native <methods>;
}
# Keep setters in Views so that animations can still work.
-keepclassmembers public class * extends android.view.View {
void set*(***);
*** get*();
}
# We want to keep methods in Activity that could be used in the XML attribute onClick.
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
# For enumeration classes, see https://www.guardsquare.com/manual/configuration/examples#enumerations
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepclassmembers class * implements android.os.Parcelable {
public static final ** CREATOR;
}
# Preserve annotated Javascript interface methods.
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
# The support libraries contains references to newer platform versions.
# Don't warn about those in case this app is linking against an older
# platform version. We know about them, and they are safe.
-dontnote android.support.**
-dontnote androidx.**
-dontwarn android.support.**
-dontwarn androidx.**
# Understand the @Keep support annotation.
-keep class android.support.annotation.Keep
-keep @android.support.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
@android.support.annotation.Keep <methods>;
}
-keepclasseswithmembers class * {
@android.support.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
@android.support.annotation.Keep <init>(...);
}
# These classes are duplicated between android.jar and org.apache.http.legacy.jar.
-dontnote org.apache.http.**
-dontnote android.net.http.**
# These classes are duplicated between android.jar and core-lambda-stubs.jar.
-dontnote java.lang.invoke.**

View File

@@ -1,560 +0,0 @@
-keep class j$.io.BufferedReaderRetargetClass {
public static j$.util.stream.Stream lines(java.io.BufferedReader);
}
-keep class j$.lang.Iterable$-CC {
public static void $default$forEach(java.lang.Iterable, java.util.function.Consumer);
public static j$.util.Spliterator $default$spliterator(java.lang.Iterable);
}
-keep class j$.lang.Iterable$-EL {
public static void forEach(java.lang.Iterable, java.util.function.Consumer);
public static j$.util.Spliterator spliterator(java.lang.Iterable);
}
-keep interface j$.lang.Iterable {
public void forEach(java.util.function.Consumer);
public j$.util.Spliterator spliterator();
}
-keep class j$.time.Duration {
public int compareTo(j$.time.Duration);
public int getNano();
public long getSeconds();
public boolean isNegative();
public static j$.time.Duration ofMillis(long);
public static j$.time.Duration ofMinutes(long);
public static j$.time.Duration ofNanos(long);
public static j$.time.Duration ofSeconds(long, long);
public long toMillis();
public long toNanos();
}
-keep class j$.time.Instant {
public long getEpochSecond();
public static j$.time.Instant now();
public long toEpochMilli();
}
-keep class j$.time.TimeConversions {
public static java.time.Duration convert(j$.time.Duration);
public static j$.time.Duration convert(java.time.Duration);
}
-keep class j$.util.Collection$-CC {
public static j$.util.stream.Stream $default$parallelStream(java.util.Collection);
public static boolean $default$removeIf(java.util.Collection, java.util.function.Predicate);
public static j$.util.Spliterator $default$spliterator(java.util.Collection);
public static j$.util.stream.Stream $default$stream(java.util.Collection);
public static java.lang.Object[] $default$toArray(java.util.Collection, java.util.function.IntFunction);
}
-keep class j$.util.Collection$-EL {
public static j$.util.stream.Stream parallelStream(java.util.Collection);
public static boolean removeIf(java.util.Collection, java.util.function.Predicate);
public static j$.util.Spliterator spliterator(java.util.Collection);
public static j$.util.stream.Stream stream(java.util.Collection);
}
-keep interface j$.util.Collection {
public void forEach(java.util.function.Consumer);
public j$.util.stream.Stream parallelStream();
public boolean removeIf(java.util.function.Predicate);
public j$.util.Spliterator spliterator();
public j$.util.stream.Stream stream();
public java.lang.Object[] toArray(java.util.function.IntFunction);
}
-keep class j$.util.Comparator$-CC {
public static java.util.Comparator $default$thenComparing(java.util.Comparator, java.util.Comparator);
public static java.util.Comparator $default$thenComparing(java.util.Comparator, java.util.function.Function);
public static java.util.Comparator $default$thenComparing(java.util.Comparator, java.util.function.Function, java.util.Comparator);
public static java.util.Comparator $default$thenComparingDouble(java.util.Comparator, java.util.function.ToDoubleFunction);
public static java.util.Comparator $default$thenComparingInt(java.util.Comparator, java.util.function.ToIntFunction);
public static java.util.Comparator $default$thenComparingLong(java.util.Comparator, java.util.function.ToLongFunction);
public static java.util.Comparator comparing(java.util.function.Function, java.util.Comparator);
public static java.util.Comparator nullsFirst(java.util.Comparator);
public static java.util.Comparator nullsLast(java.util.Comparator);
}
-keep class j$.util.Comparator$-EL {
public static java.util.Comparator reversed(java.util.Comparator);
}
-keep interface j$.util.Comparator {
public java.util.Comparator reversed();
public java.util.Comparator thenComparing(java.util.Comparator);
public java.util.Comparator thenComparing(java.util.function.Function);
public java.util.Comparator thenComparing(java.util.function.Function, java.util.Comparator);
public java.util.Comparator thenComparingDouble(java.util.function.ToDoubleFunction);
public java.util.Comparator thenComparingInt(java.util.function.ToIntFunction);
public java.util.Comparator thenComparingLong(java.util.function.ToLongFunction);
}
-keep class j$.util.DateRetargetClass {
public static j$.time.Instant toInstant(java.util.Date);
}
-keep class j$.util.DesugarArrays {
public static j$.util.stream.DoubleStream stream(double[], int, int);
public static j$.util.stream.IntStream stream(int[], int, int);
public static j$.util.stream.LongStream stream(long[], int, int);
}
-keep class j$.util.DesugarCollections {
public static java.util.Map synchronizedMap(java.util.Map);
}
-keep class j$.util.DesugarTimeZone {
public static java.util.TimeZone getTimeZone(java.lang.String);
}
-keep class j$.util.Iterator$-EL {
public static void forEachRemaining(java.util.Iterator, java.util.function.Consumer);
}
-keep class j$.util.List$-CC {
public static void $default$replaceAll(java.util.List, java.util.function.UnaryOperator);
public static void $default$sort(java.util.List, java.util.Comparator);
public static j$.util.Spliterator $default$spliterator(java.util.List);
}
-keep class j$.util.List$-EL {
public static void replaceAll(java.util.List, java.util.function.UnaryOperator);
public static void sort(java.util.List, java.util.Comparator);
public static j$.util.Spliterator spliterator(java.util.List);
}
-keep interface j$.util.List {
public void forEach(java.util.function.Consumer);
public j$.util.stream.Stream parallelStream();
public boolean removeIf(java.util.function.Predicate);
public void replaceAll(java.util.function.UnaryOperator);
public void sort(java.util.Comparator);
public j$.util.Spliterator spliterator();
public j$.util.stream.Stream stream();
public java.lang.Object[] toArray(java.util.function.IntFunction);
}
-keep class j$.util.Map$-CC {
public static java.lang.Object $default$compute(java.util.Map, java.lang.Object, java.util.function.BiFunction);
public static java.lang.Object $default$computeIfAbsent(java.util.Map, java.lang.Object, java.util.function.Function);
public static java.lang.Object $default$computeIfPresent(java.util.Map, java.lang.Object, java.util.function.BiFunction);
public static void $default$forEach(java.util.Map, java.util.function.BiConsumer);
public static java.lang.Object $default$getOrDefault(java.util.Map, java.lang.Object, java.lang.Object);
public static java.lang.Object $default$merge(java.util.Map, java.lang.Object, java.lang.Object, java.util.function.BiFunction);
public static java.lang.Object $default$putIfAbsent(java.util.Map, java.lang.Object, java.lang.Object);
public static boolean $default$remove(java.util.Map, java.lang.Object, java.lang.Object);
public static java.lang.Object $default$replace(java.util.Map, java.lang.Object, java.lang.Object);
public static boolean $default$replace(java.util.Map, java.lang.Object, java.lang.Object, java.lang.Object);
public static void $default$replaceAll(java.util.Map, java.util.function.BiFunction);
}
-keep class j$.util.Map$-EL {
public static java.lang.Object compute(java.util.Map, java.lang.Object, java.util.function.BiFunction);
public static java.lang.Object computeIfAbsent(java.util.Map, java.lang.Object, java.util.function.Function);
public static java.lang.Object computeIfPresent(java.util.Map, java.lang.Object, java.util.function.BiFunction);
public static void forEach(java.util.Map, java.util.function.BiConsumer);
public static java.lang.Object getOrDefault(java.util.Map, java.lang.Object, java.lang.Object);
public static java.lang.Object merge(java.util.Map, java.lang.Object, java.lang.Object, java.util.function.BiFunction);
public static java.lang.Object putIfAbsent(java.util.Map, java.lang.Object, java.lang.Object);
public static boolean remove(java.util.Map, java.lang.Object, java.lang.Object);
public static java.lang.Object replace(java.util.Map, java.lang.Object, java.lang.Object);
public static boolean replace(java.util.Map, java.lang.Object, java.lang.Object, java.lang.Object);
public static void replaceAll(java.util.Map, java.util.function.BiFunction);
}
-keep interface j$.util.Map {
public java.lang.Object compute(java.lang.Object, java.util.function.BiFunction);
public java.lang.Object computeIfAbsent(java.lang.Object, java.util.function.Function);
public java.lang.Object computeIfPresent(java.lang.Object, java.util.function.BiFunction);
public void forEach(java.util.function.BiConsumer);
public java.lang.Object getOrDefault(java.lang.Object, java.lang.Object);
public java.lang.Object merge(java.lang.Object, java.lang.Object, java.util.function.BiFunction);
public java.lang.Object putIfAbsent(java.lang.Object, java.lang.Object);
public boolean remove(java.lang.Object, java.lang.Object);
public java.lang.Object replace(java.lang.Object, java.lang.Object);
public boolean replace(java.lang.Object, java.lang.Object, java.lang.Object);
public void replaceAll(java.util.function.BiFunction);
}
-keep class j$.util.Objects {
public static boolean equals(java.lang.Object, java.lang.Object);
public static int hash(java.lang.Object[]);
public static int hashCode(java.lang.Object);
public static boolean isNull(java.lang.Object);
public static java.lang.Object requireNonNull(java.lang.Object);
public static java.lang.Object requireNonNull(java.lang.Object, java.lang.String);
public static java.lang.String toString(java.lang.Object);
public static java.lang.String toString(java.lang.Object, java.lang.String);
}
-keep class j$.util.Optional {
public static j$.util.Optional empty();
public java.lang.Object get();
public boolean isPresent();
public j$.util.Optional map(java.util.function.Function);
public static j$.util.Optional of(java.lang.Object);
public static j$.util.Optional ofNullable(java.lang.Object);
public java.lang.Object orElse(java.lang.Object);
public java.lang.Object orElseGet(java.util.function.Supplier);
}
-keep class j$.util.OptionalDouble {
public static j$.util.OptionalDouble empty();
public double getAsDouble();
public boolean isPresent();
public static j$.util.OptionalDouble of(double);
}
-keep class j$.util.OptionalInt {
public static j$.util.OptionalInt empty();
public int getAsInt();
public boolean isPresent();
public static j$.util.OptionalInt of(int);
}
-keep class j$.util.OptionalLong {
public static j$.util.OptionalLong empty();
public long getAsLong();
public boolean isPresent();
public static j$.util.OptionalLong of(long);
}
-keep interface j$.util.PrimitiveIterator$OfDouble {
public double nextDouble();
}
-keep interface j$.util.PrimitiveIterator$OfInt {
public int nextInt();
}
-keep interface j$.util.PrimitiveIterator$OfLong {
public long nextLong();
}
-keep class j$.util.Set$-CC {
public static j$.util.Spliterator $default$spliterator(java.util.Set);
}
-keep class j$.util.Set$-EL {
public static j$.util.Spliterator spliterator(java.util.Set);
}
-keep interface j$.util.Set {
public void forEach(java.util.function.Consumer);
public j$.util.stream.Stream parallelStream();
public boolean removeIf(java.util.function.Predicate);
public j$.util.Spliterator spliterator();
public j$.util.stream.Stream stream();
public java.lang.Object[] toArray(java.util.function.IntFunction);
}
-keep class j$.util.SortedSet$-CC {
public static j$.util.Spliterator $default$spliterator(java.util.SortedSet);
}
-keep class j$.util.SortedSet$-EL {
public static j$.util.Spliterator spliterator(java.util.SortedSet);
}
-keep interface j$.util.SortedSet {
public void forEach(java.util.function.Consumer);
public j$.util.stream.Stream parallelStream();
public boolean removeIf(java.util.function.Predicate);
public j$.util.Spliterator spliterator();
public j$.util.stream.Stream stream();
public java.lang.Object[] toArray(java.util.function.IntFunction);
}
-keep class j$.util.Spliterator$-CC {
public static void $default$forEachRemaining(j$.util.Spliterator, java.util.function.Consumer);
public static java.util.Comparator $default$getComparator(j$.util.Spliterator);
public static long $default$getExactSizeIfKnown(j$.util.Spliterator);
public static boolean $default$hasCharacteristics(j$.util.Spliterator, int);
}
-keep interface j$.util.Spliterator$OfDouble {
public void forEachRemaining(java.util.function.DoubleConsumer);
public boolean tryAdvance(java.util.function.DoubleConsumer);
public j$.util.Spliterator$OfDouble trySplit();
}
-keep interface j$.util.Spliterator$OfInt {
public void forEachRemaining(java.util.function.IntConsumer);
public boolean tryAdvance(java.util.function.IntConsumer);
public j$.util.Spliterator$OfInt trySplit();
}
-keep interface j$.util.Spliterator$OfLong {
public void forEachRemaining(java.util.function.LongConsumer);
public boolean tryAdvance(java.util.function.LongConsumer);
public j$.util.Spliterator$OfLong trySplit();
}
-keep interface j$.util.Spliterator$OfPrimitive {
public void forEachRemaining(java.lang.Object);
public boolean tryAdvance(java.lang.Object);
public j$.util.Spliterator$OfPrimitive trySplit();
}
-keep class j$.util.Spliterator$Wrapper {
public static java.util.Spliterator convert(j$.util.Spliterator);
}
-keep interface j$.util.Spliterator {
public int characteristics();
public long estimateSize();
public void forEachRemaining(java.util.function.Consumer);
public java.util.Comparator getComparator();
public long getExactSizeIfKnown();
public boolean hasCharacteristics(int);
public boolean tryAdvance(java.util.function.Consumer);
public j$.util.Spliterator trySplit();
}
-keep class j$.util.Spliterators$AbstractSpliterator {
protected <init>(long, int);
public void forEachRemaining(java.util.function.Consumer);
public java.util.Comparator getComparator();
public long getExactSizeIfKnown();
public boolean hasCharacteristics(int);
public boolean tryAdvance(java.util.function.Consumer);
}
-keep class j$.util.Spliterators {
public static j$.util.Spliterator emptySpliterator();
public static j$.util.PrimitiveIterator$OfDouble iterator(j$.util.Spliterator$OfDouble);
public static j$.util.PrimitiveIterator$OfInt iterator(j$.util.Spliterator$OfInt);
public static j$.util.PrimitiveIterator$OfLong iterator(j$.util.Spliterator$OfLong);
public static java.util.Iterator iterator(j$.util.Spliterator);
public static j$.util.Spliterator spliterator(java.util.Collection, int);
public static j$.util.Spliterator spliterator(java.util.Iterator, long, int);
public static j$.util.Spliterator$OfDouble spliterator(double[], int, int, int);
public static j$.util.Spliterator$OfInt spliterator(int[], int, int, int);
public static j$.util.Spliterator$OfLong spliterator(long[], int, int, int);
public static j$.util.Spliterator spliterator(java.lang.Object[], int);
public static j$.util.Spliterator spliterator(java.lang.Object[], int, int, int);
public static j$.util.Spliterator spliteratorUnknownSize(java.util.Iterator, int);
}
-keep class j$.util.StringJoiner {
public <init>(java.lang.CharSequence, java.lang.CharSequence, java.lang.CharSequence);
public j$.util.StringJoiner add(java.lang.CharSequence);
}
-keep class j$.util.concurrent.ConcurrentHashMap$KeySetView {
}
-keep class j$.util.concurrent.ConcurrentHashMap {
public <init>();
public <init>(int);
public <init>(int, float, int);
public <init>(java.util.Map);
public void clear();
public boolean containsKey(java.lang.Object);
public java.lang.Object get(java.lang.Object);
public boolean isEmpty();
public java.util.Set keySet();
public static j$.util.concurrent.ConcurrentHashMap$KeySetView newKeySet();
public java.lang.Object put(java.lang.Object, java.lang.Object);
public void putAll(java.util.Map);
public java.lang.Object putIfAbsent(java.lang.Object, java.lang.Object);
public java.lang.Object remove(java.lang.Object);
public boolean remove(java.lang.Object, java.lang.Object);
public boolean replace(java.lang.Object, java.lang.Object, java.lang.Object);
public int size();
public java.lang.String toString();
public java.util.Collection values();
}
-keep class j$.util.concurrent.ConcurrentMap$-CC {
public static java.lang.Object $default$compute(java.util.concurrent.ConcurrentMap, java.lang.Object, java.util.function.BiFunction);
public static java.lang.Object $default$computeIfAbsent(java.util.concurrent.ConcurrentMap, java.lang.Object, java.util.function.Function);
public static java.lang.Object $default$computeIfPresent(java.util.concurrent.ConcurrentMap, java.lang.Object, java.util.function.BiFunction);
public static void $default$forEach(java.util.concurrent.ConcurrentMap, java.util.function.BiConsumer);
public static java.lang.Object $default$getOrDefault(java.util.concurrent.ConcurrentMap, java.lang.Object, java.lang.Object);
public static java.lang.Object $default$merge(java.util.concurrent.ConcurrentMap, java.lang.Object, java.lang.Object, java.util.function.BiFunction);
public static void $default$replaceAll(java.util.concurrent.ConcurrentMap, java.util.function.BiFunction);
}
-keep class j$.util.concurrent.ConcurrentMap$-EL {
public static java.lang.Object compute(java.util.concurrent.ConcurrentMap, java.lang.Object, java.util.function.BiFunction);
public static java.lang.Object getOrDefault(java.util.concurrent.ConcurrentMap, java.lang.Object, java.lang.Object);
}
-keep interface j$.util.concurrent.ConcurrentMap {
public java.lang.Object compute(java.lang.Object, java.util.function.BiFunction);
public java.lang.Object computeIfAbsent(java.lang.Object, java.util.function.Function);
public java.lang.Object computeIfPresent(java.lang.Object, java.util.function.BiFunction);
public void forEach(java.util.function.BiConsumer);
public java.lang.Object getOrDefault(java.lang.Object, java.lang.Object);
public java.lang.Object merge(java.lang.Object, java.lang.Object, java.util.function.BiFunction);
public java.lang.Object putIfAbsent(java.lang.Object, java.lang.Object);
public boolean remove(java.lang.Object, java.lang.Object);
public java.lang.Object replace(java.lang.Object, java.lang.Object);
public boolean replace(java.lang.Object, java.lang.Object, java.lang.Object);
public void replaceAll(java.util.function.BiFunction);
}
-keep class j$.util.concurrent.ThreadLocalRandom {
public static j$.util.concurrent.ThreadLocalRandom current();
public double nextDouble(double);
public int nextInt(int, int);
public long nextLong(long);
public long nextLong(long, long);
}
-keep class j$.util.function.BiConsumer$-CC {
public static java.util.function.BiConsumer $default$andThen(java.util.function.BiConsumer, java.util.function.BiConsumer);
}
-keep class j$.util.function.BiFunction$-CC {
public static java.util.function.BiFunction $default$andThen(java.util.function.BiFunction, java.util.function.Function);
}
-keep class j$.util.function.BiPredicate$-CC {
public static java.util.function.BiPredicate $default$and(java.util.function.BiPredicate, java.util.function.BiPredicate);
public static java.util.function.BiPredicate $default$negate(java.util.function.BiPredicate);
public static java.util.function.BiPredicate $default$or(java.util.function.BiPredicate, java.util.function.BiPredicate);
}
-keep class j$.util.function.Consumer$-CC {
public static java.util.function.Consumer $default$andThen(java.util.function.Consumer, java.util.function.Consumer);
}
-keep class j$.util.function.DoubleConsumer$-CC {
public static java.util.function.DoubleConsumer $default$andThen(java.util.function.DoubleConsumer, java.util.function.DoubleConsumer);
}
-keep class j$.util.function.DoubleUnaryOperator$-CC {
public static java.util.function.DoubleUnaryOperator $default$andThen(java.util.function.DoubleUnaryOperator, java.util.function.DoubleUnaryOperator);
public static java.util.function.DoubleUnaryOperator $default$compose(java.util.function.DoubleUnaryOperator, java.util.function.DoubleUnaryOperator);
}
-keep class j$.util.function.Function$-CC {
public static java.util.function.Function $default$andThen(java.util.function.Function, java.util.function.Function);
public static java.util.function.Function $default$compose(java.util.function.Function, java.util.function.Function);
public static java.util.function.Function identity();
}
-keep class j$.util.function.IntConsumer$-CC {
public static java.util.function.IntConsumer $default$andThen(java.util.function.IntConsumer, java.util.function.IntConsumer);
}
-keep class j$.util.function.LongConsumer$-CC {
public static java.util.function.LongConsumer $default$andThen(java.util.function.LongConsumer, java.util.function.LongConsumer);
}
-keep class j$.util.function.LongUnaryOperator$-CC {
public static java.util.function.LongUnaryOperator $default$andThen(java.util.function.LongUnaryOperator, java.util.function.LongUnaryOperator);
public static java.util.function.LongUnaryOperator $default$compose(java.util.function.LongUnaryOperator, java.util.function.LongUnaryOperator);
}
-keep class j$.util.function.Predicate$-CC {
public static java.util.function.Predicate $default$and(java.util.function.Predicate, java.util.function.Predicate);
public static java.util.function.Predicate $default$negate(java.util.function.Predicate);
public static java.util.function.Predicate $default$or(java.util.function.Predicate, java.util.function.Predicate);
}
-keep interface j$.util.stream.BaseStream {
public void close();
public boolean isParallel();
public java.util.Iterator iterator();
public j$.util.stream.BaseStream onClose(java.lang.Runnable);
public j$.util.stream.BaseStream parallel();
public j$.util.Spliterator spliterator();
}
-keep class j$.util.stream.Collector$-CC {
public static j$.util.stream.Collector of(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BinaryOperator, java.util.function.Function, j$.util.stream.Collector$Characteristics[]);
public static j$.util.stream.Collector of(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BinaryOperator, j$.util.stream.Collector$Characteristics[]);
}
-keep enum j$.util.stream.Collector$Characteristics {
j$.util.stream.Collector$Characteristics CONCURRENT;
j$.util.stream.Collector$Characteristics UNORDERED;
}
-keep interface j$.util.stream.Collector {
}
-keep class j$.util.stream.Collectors {
public static j$.util.stream.Collector collectingAndThen(j$.util.stream.Collector, java.util.function.Function);
public static j$.util.stream.Collector joining(java.lang.CharSequence);
public static j$.util.stream.Collector toList();
public static j$.util.stream.Collector toMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator, java.util.function.Supplier);
}
-keep class j$.util.stream.DoubleStream$-CC {
public static j$.util.stream.DoubleStream empty();
public static j$.util.stream.DoubleStream of(double);
}
-keep interface j$.util.stream.DoubleStream {
public j$.util.stream.Stream boxed();
public java.lang.Object collect(java.util.function.Supplier, java.util.function.ObjDoubleConsumer, java.util.function.BiConsumer);
public j$.util.PrimitiveIterator$OfDouble iterator();
public j$.util.Spliterator$OfDouble spliterator();
public double[] toArray();
}
-keep class j$.util.stream.IntStream$-CC {
public static j$.util.stream.IntStream empty();
public static j$.util.stream.IntStream of(int);
public static j$.util.stream.IntStream range(int, int);
}
-keep class j$.util.stream.IntStream$VivifiedWrapper {
public static j$.util.stream.IntStream convert(java.util.stream.IntStream);
}
-keep class j$.util.stream.IntStream$Wrapper {
public static java.util.stream.IntStream convert(j$.util.stream.IntStream);
}
-keep interface j$.util.stream.IntStream {
public j$.util.stream.Stream boxed();
public java.lang.Object collect(java.util.function.Supplier, java.util.function.ObjIntConsumer, java.util.function.BiConsumer);
public j$.util.PrimitiveIterator$OfInt iterator();
public j$.util.Spliterator$OfInt spliterator();
public int[] toArray();
}
-keep class j$.util.stream.LongStream$-CC {
public static j$.util.stream.LongStream empty();
public static j$.util.stream.LongStream of(long);
}
-keep interface j$.util.stream.LongStream {
public j$.util.stream.Stream boxed();
public java.lang.Object collect(java.util.function.Supplier, java.util.function.ObjLongConsumer, java.util.function.BiConsumer);
public j$.util.PrimitiveIterator$OfLong iterator();
public j$.util.Spliterator$OfLong spliterator();
public long sum();
public long[] toArray();
}
-keep class j$.util.stream.Stream$-CC {
public static j$.util.stream.Stream concat(j$.util.stream.Stream, j$.util.stream.Stream);
public static j$.util.stream.Stream empty();
public static j$.util.stream.Stream generate(java.util.function.Supplier);
public static j$.util.stream.Stream of(java.lang.Object);
}
-keep class j$.util.stream.Stream$VivifiedWrapper {
public static j$.util.stream.Stream convert(java.util.stream.Stream);
}
-keep class j$.util.stream.Stream$Wrapper {
public static java.util.stream.Stream convert(j$.util.stream.Stream);
}
-keep interface j$.util.stream.Stream {
public java.lang.Object collect(j$.util.stream.Collector);
public j$.util.stream.Stream filter(java.util.function.Predicate);
public j$.util.stream.Stream flatMap(java.util.function.Function);
public void forEach(java.util.function.Consumer);
public void forEachOrdered(java.util.function.Consumer);
public j$.util.stream.Stream limit(long);
public j$.util.stream.Stream map(java.util.function.Function);
public j$.util.stream.LongStream mapToLong(java.util.function.ToLongFunction);
public j$.util.stream.Stream peek(java.util.function.Consumer);
public j$.util.stream.Stream skip(long);
}
-keep class j$.util.stream.StreamSupport {
public static j$.util.stream.DoubleStream doubleStream(j$.util.Spliterator$OfDouble, boolean);
public static j$.util.stream.IntStream intStream(j$.util.Spliterator$OfInt, boolean);
public static j$.util.stream.LongStream longStream(j$.util.Spliterator$OfLong, boolean);
public static j$.util.stream.Stream stream(j$.util.Spliterator, boolean);
public static j$.util.stream.Stream stream(java.util.function.Supplier, int, boolean);
}
-keep class java.io.UncheckedIOException {
public <init>(java.io.IOException);
public java.io.IOException getCause();
}
-keep interface java.util.function.BiConsumer {
public void accept(java.lang.Object, java.lang.Object);
}
-keep interface java.util.function.BiFunction {
public java.lang.Object apply(java.lang.Object, java.lang.Object);
}
-keep interface java.util.function.BiPredicate {
public boolean test(java.lang.Object, java.lang.Object);
}
-keep interface java.util.function.BinaryOperator {
}
-keep interface java.util.function.BooleanSupplier {
public boolean getAsBoolean();
}
-keep interface java.util.function.Consumer {
public void accept(java.lang.Object);
}
-keep interface java.util.function.DoubleBinaryOperator {
public double applyAsDouble(double, double);
}
-keep interface java.util.function.DoubleConsumer {
public void accept(double);
}
-keep interface java.util.function.DoubleUnaryOperator {
public double applyAsDouble(double);
}
-keep interface java.util.function.Function {
public java.lang.Object apply(java.lang.Object);
}
-keep interface java.util.function.IntConsumer {
public void accept(int);
}
-keep interface java.util.function.IntFunction {
public java.lang.Object apply(int);
}
-keep interface java.util.function.LongBinaryOperator {
public long applyAsLong(long, long);
}
-keep interface java.util.function.LongConsumer {
public void accept(long);
}
-keep interface java.util.function.LongUnaryOperator {
public long applyAsLong(long);
}
-keep interface java.util.function.ObjDoubleConsumer {
}
-keep interface java.util.function.ObjIntConsumer {
public void accept(java.lang.Object, int);
}
-keep interface java.util.function.ObjLongConsumer {
}
-keep interface java.util.function.Predicate {
public boolean test(java.lang.Object);
}
-keep interface java.util.function.Supplier {
public java.lang.Object get();
}
-keep interface java.util.function.ToDoubleFunction {
}
-keep interface java.util.function.ToIntFunction {
public int applyAsInt(java.lang.Object);
}
-keep interface java.util.function.ToLongFunction {
}
-keep interface java.util.function.UnaryOperator {
}

View File

@@ -1,5 +0,0 @@
31=0/.dm
2147483647=0/.dm
28=1/.dm
29=1/.dm
30=1/.dm

View File

@@ -0,0 +1 @@
[{"key":"META-INF/MANIFEST.MF","name":"META-INF/MANIFEST.MF","size":46,"crc":1570773839},{"key":"META-INF/kotlinx-coroutines-android.kotlin_module","name":"META-INF/kotlinx-coroutines-android.kotlin_module","size":75,"crc":1137352818},{"key":"kotlinx/coroutines/android/HandlerContext.class","name":"kotlinx/coroutines/android/HandlerContext.class","size":8338,"crc":1033607857},{"key":"kotlinx/coroutines/android/HandlerDispatcherKt.class","name":"kotlinx/coroutines/android/HandlerDispatcherKt.class","size":10346,"crc":-679992087},{"key":"kotlinx/coroutines/android/HandlerDispatcherKt$awaitFrameSlowPath$lambda$3$$inlined$Runnable$1.class","name":"kotlinx/coroutines/android/HandlerDispatcherKt$awaitFrameSlowPath$lambda$3$$inlined$Runnable$1.class","size":1724,"crc":269342463},{"key":"kotlinx/coroutines/android/HandlerDispatcher.class","name":"kotlinx/coroutines/android/HandlerDispatcher.class","size":2409,"crc":176092634},{"key":"kotlinx/coroutines/android/AndroidExceptionPreHandler.class","name":"kotlinx/coroutines/android/AndroidExceptionPreHandler.class","size":3081,"crc":-1147103113},{"key":"kotlinx/coroutines/android/HandlerContext$scheduleResumeAfterDelay$$inlined$Runnable$1.class","name":"kotlinx/coroutines/android/HandlerContext$scheduleResumeAfterDelay$$inlined$Runnable$1.class","size":2292,"crc":1516820094},{"key":"kotlinx/coroutines/android/AndroidDispatcherFactory.class","name":"kotlinx/coroutines/android/AndroidDispatcherFactory.class","size":2208,"crc":318894566},{"key":"META-INF/com.android.tools/r8-from-1.6.0/coroutines.pro","name":"META-INF/com.android.tools/r8-from-1.6.0/coroutines.pro","size":899,"crc":2032253094},{"key":"META-INF/com.android.tools/r8-upto-3.0.0/coroutines.pro","name":"META-INF/com.android.tools/r8-upto-3.0.0/coroutines.pro","size":558,"crc":1737114335},{"key":"META-INF/com.android.tools/proguard/coroutines.pro","name":"META-INF/com.android.tools/proguard/coroutines.pro","size":300,"crc":-477435061},{"key":"META-INF/proguard/coroutines.pro","name":"META-INF/proguard/coroutines.pro","size":419,"crc":77044690},{"key":"META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory","name":"META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory","size":52,"crc":1268078975},{"key":"META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler","name":"META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler","size":54,"crc":-1889973424},{"key":"META-INF/versions/9/module-info.class","name":"META-INF/versions/9/module-info.class","size":381,"crc":-706149332},{"key":"META-INF/kotlinx_coroutines_android.version","name":"META-INF/kotlinx_coroutines_android.version","size":5,"crc":485120441}]

Some files were not shown because too many files have changed in this diff Show More