first commit

This commit is contained in:
hanrenchun 2025-07-01 19:08:46 +08:00
commit c637064c24
124 changed files with 2227 additions and 0 deletions

Binary file not shown.

Binary file not shown.

View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,2 @@
#Mon Jun 30 17:18:21 CST 2025
gradle.version=7.0.2

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,2 @@
#Mon Jun 30 17:58:45 CST 2025
java.home=D\:\\workspace\\zulu-8

View File

3
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

1
.idea/.name Normal file
View File

@ -0,0 +1 @@
jwzs

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AndroidProjectSystem">
<option name="providerId" value="com.android.tools.idea.GradleProjectSystem" />
</component>
</project>

6
.idea/compiler.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="11" />
</component>
</project>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetSelector">
<selectionStates>
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
<DropdownSelection timestamp="2025-07-01T02:47:33.836293500Z">
<Target type="DEFAULT_BOOT">
<handle>
<DeviceId pluginId="LocalEmulator" identifier="path=C:\Users\28758\.android\avd\Pixel_3a.avd" />
</handle>
</Target>
</DropdownSelection>
<DialogSelection />
</SelectionState>
</selectionStates>
</component>
</project>

6
.idea/encodings.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/app/libs/acrabsoft-sjt-sdk-20211216.aar" charset="GBK" />
</component>
</project>

21
.idea/gradle.xml Normal file
View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="CHOOSE_PER_TEST" />
<option name="distributionType" value="LOCAL" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleHome" value="$PROJECT_DIR$/../../../../gradle-7.0.2-bin/gradle-7.0.2" />
<option name="gradleJvm" value="11" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>

View File

@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: D./workspace/IdeaProjects/MyApplication-master/myapplication/app/libs/acrabsoft-sjt-sdk-20211216.aar" external-system-id="GRADLE">
<CLASSES>
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/5b829f9407f418c0feceda3673f32990/transformed/jetified-acrabsoft-sjt-sdk-20211216/res" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/5b829f9407f418c0feceda3673f32990/transformed/jetified-acrabsoft-sjt-sdk-20211216/AndroidManifest.xml" />
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/5b829f9407f418c0feceda3673f32990/transformed/jetified-acrabsoft-sjt-sdk-20211216/jars/libs/classes-2.jar!/" />
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/5b829f9407f418c0feceda3673f32990/transformed/jetified-acrabsoft-sjt-sdk-20211216/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.arch.core:core-common:2.1.0" type="java-imported" external-system-id="GRADLE">
<properties groupId="androidx.arch.core" artifactId="core-common" version="2.1.0" baseVersion="2.1.0" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-common/2.1.0/b3152fc64428c9354344bd89848ecddc09b6f07e/core-common-2.1.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-common/2.1.0/80ac2d7c8e6400ce2fbc663cd1a7e1cbef38c4b8/core-common-2.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.arch.core:core-runtime:2.0.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/b39e20052568115d5d6e20e605eabe6a/transformed/core-runtime-2.0.0/jars/classes.jar!/" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/b39e20052568115d5d6e20e605eabe6a/transformed/core-runtime-2.0.0/AndroidManifest.xml" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-runtime/2.0.0/bc41b287c95bc50a3cd27cb1b7cfb301805ba7f1/core-runtime-2.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Gradle: androidx.cardview:cardview:1.0.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/1bc1de6a32330280351f65a0393bdf57/transformed/cardview-1.0.0/AndroidManifest.xml" />
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/1bc1de6a32330280351f65a0393bdf57/transformed/cardview-1.0.0/jars/classes.jar!/" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/1bc1de6a32330280351f65a0393bdf57/transformed/cardview-1.0.0/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.cardview/cardview/1.0.0/c9f3ce7ca74ad2c978230f4094ba6804c5166f9c/cardview-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.collection:collection:1.1.0" type="java-imported" external-system-id="GRADLE">
<properties groupId="androidx.collection" artifactId="collection" version="1.1.0" baseVersion="1.1.0" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.collection/collection/1.1.0/1f27220b47669781457de0d600849a5de0e89909/collection-1.1.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.collection/collection/1.1.0/bae67b0019fbb38498198fcc2d0282a340b71c5b/collection-1.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: androidx.constraintlayout:constraintlayout:2.0.4@aar" external-system-id="GRADLE">
<CLASSES>
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/d3dc1b04020dde5349a563828b949efc/transformed/constraintlayout-2.0.4/res" />
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/d3dc1b04020dde5349a563828b949efc/transformed/constraintlayout-2.0.4/jars/classes.jar!/" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/d3dc1b04020dde5349a563828b949efc/transformed/constraintlayout-2.0.4/AndroidManifest.xml" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@ -0,0 +1,10 @@
<component name="libraryTable">
<library name="Gradle: androidx.constraintlayout:constraintlayout-solver:2.0.4" type="java-imported" external-system-id="GRADLE">
<properties groupId="androidx.constraintlayout" artifactId="constraintlayout-solver" version="2.0.4" baseVersion="2.0.4" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.constraintlayout/constraintlayout-solver/2.0.4/1f001d7db280a89a6c26b26a66eb064bb6d5efeb/constraintlayout-solver-2.0.4.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@ -0,0 +1,16 @@
<component name="libraryTable">
<library name="Gradle: androidx.coordinatorlayout:coordinatorlayout:1.1.0@aar" external-system-id="GRADLE">
<ANNOTATIONS>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/d5ce58f194e6eb15743ad13effdd09da/transformed/coordinatorlayout-1.1.0/annotations.zip!/" />
</ANNOTATIONS>
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/d5ce58f194e6eb15743ad13effdd09da/transformed/coordinatorlayout-1.1.0/jars/classes.jar!/" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/d5ce58f194e6eb15743ad13effdd09da/transformed/coordinatorlayout-1.1.0/AndroidManifest.xml" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/d5ce58f194e6eb15743ad13effdd09da/transformed/coordinatorlayout-1.1.0/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.coordinatorlayout/coordinatorlayout/1.1.0/a15529ac349d76a872ae5ef42b84c320c456cd7f/coordinatorlayout-1.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.cursoradapter:cursoradapter:1.0.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/58c33f79541fa64793747c2f03ce017d/transformed/cursoradapter-1.0.0/AndroidManifest.xml" />
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/58c33f79541fa64793747c2f03ce017d/transformed/cursoradapter-1.0.0/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.cursoradapter/cursoradapter/1.0.0/1e323083b41c31fd4d45510dfce50614963c3c6c/cursoradapter-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.customview:customview:1.0.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/c0d52683149a4f63c5e66613b9f51e2e/transformed/customview-1.0.0/jars/classes.jar!/" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/c0d52683149a4f63c5e66613b9f51e2e/transformed/customview-1.0.0/AndroidManifest.xml" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.customview/customview/1.0.0/61f6a717d144dff3a6bda413d9abeeb2bca71581/customview-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.documentfile:documentfile:1.0.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/5dc1b0d68d5be8d395af6b357c3240c1/transformed/documentfile-1.0.0/AndroidManifest.xml" />
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/5dc1b0d68d5be8d395af6b357c3240c1/transformed/documentfile-1.0.0/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.documentfile/documentfile/1.0.0/a1bed5cf96db96bd06a2feade98fe55653811dc8/documentfile-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,15 @@
<component name="libraryTable">
<library name="Gradle: androidx.drawerlayout:drawerlayout:1.0.0@aar" external-system-id="GRADLE">
<ANNOTATIONS>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/8ede10147567c2507cc51ace41c13ea6/transformed/drawerlayout-1.0.0/annotations.zip!/" />
</ANNOTATIONS>
<CLASSES>
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/8ede10147567c2507cc51ace41c13ea6/transformed/drawerlayout-1.0.0/AndroidManifest.xml" />
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/8ede10147567c2507cc51ace41c13ea6/transformed/drawerlayout-1.0.0/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.drawerlayout/drawerlayout/1.0.0/9ecd4ecb7da215ba4c5c3e00bf8d290dad6f2bc5/drawerlayout-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.dynamicanimation:dynamicanimation:1.0.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/d2646664f8d9727246d320f24126df9c/transformed/dynamicanimation-1.0.0/AndroidManifest.xml" />
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/d2646664f8d9727246d320f24126df9c/transformed/dynamicanimation-1.0.0/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.dynamicanimation/dynamicanimation/1.0.0/5c050e29af5033ff5e2d58ccf657ae92fdfbda4a/dynamicanimation-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.interpolator:interpolator:1.0.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/511e2a36f18b29fdf3f425e3962668f8/transformed/interpolator-1.0.0/jars/classes.jar!/" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/511e2a36f18b29fdf3f425e3962668f8/transformed/interpolator-1.0.0/AndroidManifest.xml" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.interpolator/interpolator/1.0.0/fefd5e3cbc479b6b4a9532d05688a1e659e8d3d2/interpolator-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.legacy:legacy-support-core-utils:1.0.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/6d6e532017af0c907cd34d38d04e17fc/transformed/legacy-support-core-utils-1.0.0/jars/classes.jar!/" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/6d6e532017af0c907cd34d38d04e17fc/transformed/legacy-support-core-utils-1.0.0/AndroidManifest.xml" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.legacy/legacy-support-core-utils/1.0.0/46c37f178088153618cfb0afef08ec96c48f93cb/legacy-support-core-utils-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.lifecycle:lifecycle-livedata:2.0.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/d6b2c6310d0da332cb9475defea77305/transformed/lifecycle-livedata-2.0.0/jars/classes.jar!/" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/d6b2c6310d0da332cb9475defea77305/transformed/lifecycle-livedata-2.0.0/AndroidManifest.xml" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.lifecycle/lifecycle-livedata/2.0.0/740ce61935bd789380c01178bd8ce402402ebd2f/lifecycle-livedata-2.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.loader:loader:1.0.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/d35f0010fbff61dfb15ae12685344215/transformed/loader-1.0.0/AndroidManifest.xml" />
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/d35f0010fbff61dfb15ae12685344215/transformed/loader-1.0.0/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.loader/loader/1.0.0/b9ef587f3e46c7fe5b00264989764e43ff45cada/loader-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.localbroadcastmanager:localbroadcastmanager:1.0.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/eb3bd80f829817dc46cef00554f9b4ab/transformed/localbroadcastmanager-1.0.0/jars/classes.jar!/" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/eb3bd80f829817dc46cef00554f9b4ab/transformed/localbroadcastmanager-1.0.0/AndroidManifest.xml" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.localbroadcastmanager/localbroadcastmanager/1.0.0/3930e99159fd6b7f1d2e7d5fe9af0924ca1faf9/localbroadcastmanager-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,15 @@
<component name="libraryTable">
<library name="Gradle: androidx.print:print:1.0.0@aar" external-system-id="GRADLE">
<ANNOTATIONS>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/998ecad2e598076d0444e5b886cc28b2/transformed/print-1.0.0/annotations.zip!/" />
</ANNOTATIONS>
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/998ecad2e598076d0444e5b886cc28b2/transformed/print-1.0.0/jars/classes.jar!/" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/998ecad2e598076d0444e5b886cc28b2/transformed/print-1.0.0/AndroidManifest.xml" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.print/print/1.0.0/71fc2d9acf7cce6b96230c5af263268b1664914a/print-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,16 @@
<component name="libraryTable">
<library name="Gradle: androidx.recyclerview:recyclerview:1.1.0@aar" external-system-id="GRADLE">
<ANNOTATIONS>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/973d1c6591a02ca84f2ddc5ef5b8076a/transformed/recyclerview-1.1.0/annotations.zip!/" />
</ANNOTATIONS>
<CLASSES>
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/973d1c6591a02ca84f2ddc5ef5b8076a/transformed/recyclerview-1.1.0/AndroidManifest.xml" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/973d1c6591a02ca84f2ddc5ef5b8076a/transformed/recyclerview-1.1.0/res" />
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/973d1c6591a02ca84f2ddc5ef5b8076a/transformed/recyclerview-1.1.0/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.recyclerview/recyclerview/1.1.0/f2bdf79e1977939817f54a9d3e2f6bc52b63bdd0/recyclerview-1.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: androidx.test:core:1.3.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/d8e2c4a7528da0c0e1031b59169d4ead/transformed/jetified-core-1.3.0/AndroidManifest.xml" />
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/d8e2c4a7528da0c0e1031b59169d4ead/transformed/jetified-core-1.3.0/jars/classes.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.test/core/1.3.0/3d046283a0729cb2d5dacdd9b3f8b62203052da5/core-1.3.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.test/core/1.3.0/cab982e254e02674aa7a46e3086986cddd50ca06/core-1.3.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: androidx.test.espresso:espresso-core:3.3.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/2222d57030042fbad78c90873ecf6155/transformed/espresso-core-3.3.0/AndroidManifest.xml" />
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/2222d57030042fbad78c90873ecf6155/transformed/espresso-core-3.3.0/jars/classes.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.test.espresso/espresso-core/3.3.0/8da4ff80a40b70b852341a5ad99c943811400eec/espresso-core-3.3.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.test.espresso/espresso-core/3.3.0/1b378d81de64c2e4740b0856c4ed65c1b76ea1b2/espresso-core-3.3.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: androidx.test.espresso:espresso-idling-resource:3.3.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/ea08a2c2d68b91b463797315cd116356/transformed/espresso-idling-resource-3.3.0/AndroidManifest.xml" />
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/ea08a2c2d68b91b463797315cd116356/transformed/espresso-idling-resource-3.3.0/jars/classes.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.test.espresso/espresso-idling-resource/3.3.0/ac774bb29e6171578dc7508bf390a4a3ccbedfea/espresso-idling-resource-3.3.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.test.espresso/espresso-idling-resource/3.3.0/ee0f3ffdd7782d68dbe1eafa9337872817cb299e/espresso-idling-resource-3.3.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: androidx.test.ext:junit:1.1.2@aar" external-system-id="GRADLE">
<CLASSES>
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/125a34aae9d8e89788673df1e789706f/transformed/jetified-junit-1.1.2/AndroidManifest.xml" />
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/125a34aae9d8e89788673df1e789706f/transformed/jetified-junit-1.1.2/jars/classes.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.test.ext/junit/1.1.2/c69cad63303f01767122a49e379c6121d6721a0b/junit-1.1.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.test.ext/junit/1.1.2/d8ceef67c64321bbf484dc5997a1d2efa319bed7/junit-1.1.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: androidx.test:monitor:1.3.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/6a457e1f098422c217390dc14a822f0b/transformed/monitor-1.3.0/jars/classes.jar!/" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/6a457e1f098422c217390dc14a822f0b/transformed/monitor-1.3.0/AndroidManifest.xml" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.test/monitor/1.3.0/3a80466a460e22ec785a9c0ad1a1cbaf6a08c0ee/monitor-1.3.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.test/monitor/1.3.0/42fd8fe34ba94b2e75f5df0b3184887af6f98670/monitor-1.3.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: androidx.test:runner:1.3.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/25412367bc51f1a9060edc7c97d7b6e8/transformed/runner-1.3.0/jars/classes.jar!/" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/25412367bc51f1a9060edc7c97d7b6e8/transformed/runner-1.3.0/AndroidManifest.xml" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.test/runner/1.3.0/c0fd1f1e715bfa4777ae6a679444f7471205ee7c/runner-1.3.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.test/runner/1.3.0/506c97f735db13fda1943c4eb95f2ccfc7b457e0/runner-1.3.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,16 @@
<component name="libraryTable">
<library name="Gradle: androidx.transition:transition:1.2.0@aar" external-system-id="GRADLE">
<ANNOTATIONS>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/e7a7361ce08649d63b0b54755f88f036/transformed/transition-1.2.0/annotations.zip!/" />
</ANNOTATIONS>
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/e7a7361ce08649d63b0b54755f88f036/transformed/transition-1.2.0/jars/classes.jar!/" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/e7a7361ce08649d63b0b54755f88f036/transformed/transition-1.2.0/AndroidManifest.xml" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/e7a7361ce08649d63b0b54755f88f036/transformed/transition-1.2.0/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.transition/transition/1.2.0/65d2a5dab39f120d3f584fdead252ce81ec7dbee/transition-1.2.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.vectordrawable:vectordrawable:1.1.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/0a2c06990f10f8bf77c6b2eafaa2d2f7/transformed/vectordrawable-1.1.0/AndroidManifest.xml" />
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/0a2c06990f10f8bf77c6b2eafaa2d2f7/transformed/vectordrawable-1.1.0/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.vectordrawable/vectordrawable/1.1.0/1e0694477eed874c50c54b547cc3e5a62a57a62b/vectordrawable-1.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.vectordrawable:vectordrawable-animated:1.1.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/08a78bb58e82e932da1f82c2b8b82824/transformed/vectordrawable-animated-1.1.0/AndroidManifest.xml" />
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/08a78bb58e82e932da1f82c2b8b82824/transformed/vectordrawable-animated-1.1.0/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.vectordrawable/vectordrawable-animated/1.1.0/871a7705cd03bc246947638c712cdd11378233ff/vectordrawable-animated-1.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,16 @@
<component name="libraryTable">
<library name="Gradle: androidx.viewpager2:viewpager2:1.0.0@aar" external-system-id="GRADLE">
<ANNOTATIONS>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/3cb859c1ac0dd29d128e917789be4254/transformed/jetified-viewpager2-1.0.0/annotations.zip!/" />
</ANNOTATIONS>
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/3cb859c1ac0dd29d128e917789be4254/transformed/jetified-viewpager2-1.0.0/jars/classes.jar!/" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/3cb859c1ac0dd29d128e917789be4254/transformed/jetified-viewpager2-1.0.0/res" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/3cb859c1ac0dd29d128e917789be4254/transformed/jetified-viewpager2-1.0.0/AndroidManifest.xml" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.viewpager2/viewpager2/1.0.0/3c3569044e6969f1ee5c3aa03b08e6717a2d782f/viewpager2-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: androidx.viewpager:viewpager:1.0.0@aar" external-system-id="GRADLE">
<CLASSES>
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/70c058259436dcd4c71d85461afd1b6a/transformed/viewpager-1.0.0/AndroidManifest.xml" />
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/70c058259436dcd4c71d85461afd1b6a/transformed/viewpager-1.0.0/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/androidx.viewpager/viewpager/1.0.0/db045f92188b9d247d5f556866f8861ab68528f0/viewpager-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,16 @@
<component name="libraryTable">
<library name="Gradle: com.google.android.material:material:1.3.0@aar" external-system-id="GRADLE">
<ANNOTATIONS>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/fc0e4e87d95d67f047ecdbed3a04c4cc/transformed/material-1.3.0/annotations.zip!/" />
</ANNOTATIONS>
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/fc0e4e87d95d67f047ecdbed3a04c4cc/transformed/material-1.3.0/jars/classes.jar!/" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/fc0e4e87d95d67f047ecdbed3a04c4cc/transformed/material-1.3.0/res" />
<root url="file://$PROJECT_DIR$/../../../../.gradle/caches/transforms-3/fc0e4e87d95d67f047ecdbed3a04c4cc/transformed/material-1.3.0/AndroidManifest.xml" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.google.android.material/material/1.3.0/b42a5159ef2c670d26ce08246ec5aaf8f92e5a42/material-1.3.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,10 @@
<component name="libraryTable">
<library name="Gradle: com.google.code.findbugs:jsr305:2.0.1" type="java-imported" external-system-id="GRADLE">
<properties groupId="com.google.code.findbugs" artifactId="jsr305" version="2.0.1" baseVersion="2.0.1" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.1/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: com.google.code.gson:gson:2.8.5" type="java-imported" external-system-id="GRADLE">
<properties groupId="com.google.code.gson" artifactId="gson" version="2.8.5" baseVersion="2.8.5" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.5/f645ed69d595b24d4cf8b3fbb64cc505bede8829/gson-2.8.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.5/a2841d93c258a70e320be81586e92208a60144f2/gson-2.8.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.5/c5b4c491aecb72e7c32a78da0b5c6b9cda8dee0f/gson-2.8.5-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: com.squareup:javawriter:2.1.1" type="java-imported" external-system-id="GRADLE">
<properties groupId="com.squareup" artifactId="javawriter" version="2.1.1" baseVersion="2.1.1" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.1.1/67ff45d9ae02e583d0f9b3432a5ebbe05c30c966/javawriter-2.1.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.1.1/f591a105db78771d0a1e7a277b3747556c528c22/javawriter-2.1.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.1.1/5b31387d839a5cdaf5b6de3990da01f7f2b963c5/javawriter-2.1.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: com.squareup.okhttp3:okhttp:3.14.9" type="java-imported" external-system-id="GRADLE">
<properties groupId="com.squareup.okhttp3" artifactId="okhttp" version="3.14.9" baseVersion="3.14.9" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.squareup.okhttp3/okhttp/3.14.9/3e6d101343c7ea687cd593e4990f73b25c878383/okhttp-3.14.9.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.squareup.okhttp3/okhttp/3.14.9/b1818d3d87c70e43c103d125a7555965b2bcb98d/okhttp-3.14.9-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.squareup.okhttp3/okhttp/3.14.9/5ad877a6749b53b7b177e7b328ebf59ce06b75af/okhttp-3.14.9-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: com.squareup.okio:okio:1.17.2" type="java-imported" external-system-id="GRADLE">
<properties groupId="com.squareup.okio" artifactId="okio" version="1.17.2" baseVersion="1.17.2" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.squareup.okio/okio/1.17.2/78c7820b205002da4d2d137f6f312bd64b3d6049/okio-1.17.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.squareup.okio/okio/1.17.2/b223e35cf99bb8c3d2a5b369b6b52093a6a750c2/okio-1.17.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.squareup.okio/okio/1.17.2/331ecaeba2fd87c06a0766e8ebe718e1e294f27d/okio-1.17.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: com.squareup.retrofit2:converter-gson:2.9.0" type="java-imported" external-system-id="GRADLE">
<properties groupId="com.squareup.retrofit2" artifactId="converter-gson" version="2.9.0" baseVersion="2.9.0" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.squareup.retrofit2/converter-gson/2.9.0/fc93484fc67ab52b1e0ccbdaa3922d8a6678e097/converter-gson-2.9.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.squareup.retrofit2/converter-gson/2.9.0/76a801b6fd4d1bbd0e04cd7c079ae0e3f9c0dbf8/converter-gson-2.9.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.squareup.retrofit2/converter-gson/2.9.0/c62a3350a231bd6b678e2cad7f23028777f51e13/converter-gson-2.9.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: com.squareup.retrofit2:retrofit:2.9.0" type="java-imported" external-system-id="GRADLE">
<properties groupId="com.squareup.retrofit2" artifactId="retrofit" version="2.9.0" baseVersion="2.9.0" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.squareup.retrofit2/retrofit/2.9.0/d8fdfbd5da952141a665a403348b74538efc05ff/retrofit-2.9.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.squareup.retrofit2/retrofit/2.9.0/920d425bcf21e948cf071783e9a0badbfd880fac/retrofit-2.9.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/com.squareup.retrofit2/retrofit/2.9.0/409e80ce46c84ef7e74b6934032a73b8421eebe5/retrofit-2.9.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: javax.inject:javax.inject:1" type="java-imported" external-system-id="GRADLE">
<properties groupId="javax.inject" artifactId="javax.inject" version="1" baseVersion="1" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/6975da39a7040257bd51d21a231b76c915872d38/javax.inject-1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/70ec961c25111ed9015d1af77772d96383c2d238/javax.inject-1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/a00123f261762a7c5e0ec916a2c7c8298d29c400/javax.inject-1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: junit:junit:4.12" type="java-imported" external-system-id="GRADLE">
<properties groupId="junit" artifactId="junit" version="4.12" baseVersion="4.12" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/junit/junit/4.12/2973d150c0dc1fefe998f834810d68f278ea58ec/junit-4.12.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/junit/junit/4.12/941a8be4506c65f0a9001c08812fb7da1e505e21/junit-4.12-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/junit/junit/4.12/a6c32b40bf3d76eca54e3c601e5d1470c86fcdfa/junit-4.12-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: junit:junit:4.13.2" type="java-imported" external-system-id="GRADLE">
<properties groupId="junit" artifactId="junit" version="4.13.2" baseVersion="4.13.2" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/junit/junit/4.13.2/8ac9e16d933b6fb43bc7f576336b8f4d7eb5ba12/junit-4.13.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/junit/junit/4.13.2/f2f3f384dacd2ade2ddf7aa7e0f4360dfee38672/junit-4.13.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/junit/junit/4.13.2/33987872a811fe4d4001ed494b07854822257f42/junit-4.13.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: org.hamcrest:hamcrest-core:1.3" type="java-imported" external-system-id="GRADLE">
<properties groupId="org.hamcrest" artifactId="hamcrest-core" version="1.3" baseVersion="1.3" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/ad09811315f1d4f5756986575b0ea16b99cd686f/hamcrest-core-1.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/1dc37250fbc78e23a65a67fbbaf71d2e9cbc3c0b/hamcrest-core-1.3-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: org.hamcrest:hamcrest-integration:1.3" type="java-imported" external-system-id="GRADLE">
<properties groupId="org.hamcrest" artifactId="hamcrest-integration" version="1.3" baseVersion="1.3" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-integration/1.3/5de0c73fef18917cd85d0ab70bb23818685e4dfd/hamcrest-integration-1.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-integration/1.3/cc5884d4138d3376f574f6a3992acceedfc37bea/hamcrest-integration-1.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-integration/1.3/ae7787a563e6a1b1f17fd4ac43be3a3c8830cfda/hamcrest-integration-1.3-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="Gradle: org.hamcrest:hamcrest-library:1.3" type="java-imported" external-system-id="GRADLE">
<properties groupId="org.hamcrest" artifactId="hamcrest-library" version="1.3" baseVersion="1.3" />
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/4785a3c21320980282f9f33d0d1264a69040538f/hamcrest-library-1.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/4324046c5f99f3dc91b5370899fa3ae65fd137d2/hamcrest-library-1.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../../.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/47a7ee46628ab7133129cd7cef1e92657bc275e/hamcrest-library-1.3-sources.jar!/" />
</SOURCES>
</library>
</component>

10
.idea/migrations.xml Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectMigrations">
<option name="MigrateToGradleLocalJavaHome">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
</component>
</project>

8
.idea/misc.xml Normal file
View File

@ -0,0 +1,8 @@
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>

12
.idea/modules.xml Normal file
View File

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

9
.idea/myapplication.iml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="com.intellij.execution.junit.AbstractAllInDirectoryConfigurationProducer" />
<option value="com.intellij.execution.junit.AllInPackageConfigurationProducer" />
<option value="com.intellij.execution.junit.PatternConfigurationProducer" />
<option value="com.intellij.execution.junit.TestInClassConfigurationProducer" />
<option value="com.intellij.execution.junit.UniqueIdConfigurationProducer" />
<option value="com.intellij.execution.junit.testDiscovery.JUnitTestDiscoveryConfigurationProducer" />
<option value="org.jetbrains.kotlin.idea.junit.KotlinJUnitRunConfigurationProducer" />
<option value="org.jetbrains.kotlin.idea.junit.KotlinPatternConfigurationProducer" />
</set>
</option>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

1
app/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/build

59
app/build.gradle Normal file
View File

@ -0,0 +1,59 @@
plugins {
id 'com.android.application'
}
android {
compileSdk 31
defaultConfig {
applicationId "com.pxkj.jwzs"
minSdk 21
targetSdk 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
manifestPlaceholders = [
APPID : "320924230000-2-1-32092423SJNB12202505211658160001",
REGIONALISMCODE : "\\0320924230000",
NETWORKAREACODE : "\\02",
]
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
manifestPlaceholders = [
APPID : "320924230000-2-1-32092423SJNB12202505211658160001",
REGIONALISMCODE : "\\0320924230000",
NETWORKAREACODE : "\\02",
]
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
namespace 'com.pxkj.jwzs'
}
dependencies {
implementation fileTree(dir: "libs", include: [".jar", ".aar"])
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation files('libs\\acrabsoft-sjt-sdk-20211216.aar')
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

Binary file not shown.

21
app/proguard-rules.pro vendored Normal file
View File

@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

View File

@ -0,0 +1,26 @@
package com.pxkj.jwzs;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.pxkj.jwzs", appContext.getPackageName());
}
}

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MyApplication"
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.jwzs"
tools:replace="android:allowBackup" >
<meta-data android:name="appId" android:value="${APPID}"/><!-- 应用ID,当应用在平台注册后,由平台生成的平台内唯一标识 -->
<meta-data android:name="regionalismCode" android:value="${REGIONALISMCODE}" /><!--应用归属机构代码320000260300对于纯数字字符串请在前面增加“\0”否则将会取出null值字符串 -->
<meta-data android:name="networkAreaCode" android:value="${NETWORKAREACODE}" /><!--应用所属网络区域也即应用类型1-2-32对于纯数字字符串请在前面增加“\0”否则将会取出null值字符串 -->
<activity
android:name=".FirstActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:exported="false"
android:name=".MainActivity"/>
</application>
</manifest>

View File

@ -0,0 +1,10 @@
package com.pxkj.jwzs;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.GET;
public interface ApiService {
@GET("api/login")
Call<ResponseBody> getData();
}

View File

@ -0,0 +1,202 @@
package com.pxkj.jwzs;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.acrabsoft.sdk.ASPSDKUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/**
* Created by 皮蛋 on 2022/03/22.
*/
public abstract class BaseActivity extends AppCompatActivity {
protected String TAG = getClass().getSimpleName();
public static String ACTION_LOGIN = "com.ydjw.ua.ACTION_LOGIN";
public static String ACTION_LOGOUT = "com.ydjw.ua.ACTION_LOGOUT";
protected static String appId = "320924230000-2-1-32092423SJNB12202505211658160001";
// protected static String appId = "320500220500-2-1-32050022SJ97122021091XXXXXXXXXX";
protected static String departId = "320924230000";
// protected static String departId = "3205002xxxxxx";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
IntentFilter filter = new IntentFilter();
filter.addAction(ACTION_LOGIN);
filter.addAction(ACTION_LOGOUT);
registerReceiver(broadcastReceiver, filter);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(broadcastReceiver);
}
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(ACTION_LOGIN.equals(action)){
getCredential();
}else if(ACTION_LOGOUT.equals(action)){
MyApplication.getInstance().finishAll();
}
}
};
protected void init(){
try {
ASPSDKUtils.AndroidManifestInspect(getApplicationContext(), new ASPSDKUtils.AndroidManifestInspectCallBack() {
@Override
public void success(String jsonString) {
Log.e(TAG, "success--->"+jsonString);
Toast.makeText(getApplicationContext(), "正在加载", Toast.LENGTH_SHORT).show();
new Thread(new Runnable() {
@Override
public void run() {
getCredential();
}
}).start();
}
@Override
public void fail(final String err) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), ""+err, Toast.LENGTH_SHORT).show();
}
});
}
});
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
protected void getCredential() {
Log.e(TAG, "获取用户凭证:"+appId);
ASPSDKUtils.getCredential(getApplicationContext(), appId, departId, "2", new ASPSDKUtils.CredentialCallBack() {
@Override
public void success(String messageId, String userCredential, String appCredential) {
Log.e(TAG, "用户认证凭证获取 success \nmessageId---->" + messageId + "\nuserCredential---->" + userCredential + "\nappCredential---->" + appCredential);
try {
JSONObject json = new JSONObject(userCredential);
JSONObject credential = json.optJSONObject("credential");
JSONObject load = credential.optJSONObject("load");
JSONObject userInfo = load.optJSONObject("userInfo");
String xm = userInfo.optString("xm");
String sfzh = userInfo.optString("sfzh");
SpUtils.putString(getApplicationContext(), Constant.XM, xm);
SpUtils.putString(getApplicationContext(), Constant.SFZH, sfzh);
} catch (JSONException e) {
e.printStackTrace();
}
SpUtils.putString(getApplicationContext(), Constant.MESSAGE_ID, messageId);
SpUtils.putString(getApplicationContext(), Constant.USER_CREDENTIAL, userCredential);
SpUtils.putString(getApplicationContext(), Constant.APP_CREDENTIAL, appCredential);
getResourceAddress();
}
@Override
public void fail(String messageId, final String errMsg) {
Log.e(TAG, "用户认证凭证获取 fail \nmessageId---->" + messageId + "\nerrMsg---->" + errMsg);
if(errMsg!=null && errMsg.startsWith("-1")){
// 跳过不显示对话框
}else{
runOnUiThread(new Runnable() {
@Override
public void run() {
createAlertDialog("错误", "" + errMsg, BaseActivity.this);
}
});
}
}
});
}
protected void getResourceAddress() {
Log.e(TAG, "获取资源地址:"+appId);
ASPSDKUtils.getResourceAddress(getApplicationContext(), SpUtils.getString(getApplicationContext(), Constant.MESSAGE_ID, ""), SpUtils.getString(getApplicationContext(), Constant.APP_CREDENTIAL, ""),
new ASPSDKUtils.ResourceAddressCallBack() {
@Override
public void success(String messageId, String resourceList) {
Log.e(TAG, "资源寻址 success \nmessageId---->" + messageId + "\nresourceList---->" + resourceList);
SpUtils.putString(getApplicationContext(), Constant.MESSAGE_ID, messageId);
SpUtils.putString(getApplicationContext(), Constant.RESOURCE_LIST, resourceList);
try {
JSONArray array = new JSONArray(resourceList);
if(array.length()>0){
for(int i=0; i<array.length(); i++){
JSONObject json = array.getJSONObject(i);
String resourceId = json.getString("resourceId");
String resourceAddress = json.getString("resourceAddress");
Log.e(TAG, "resourceId->"+resourceId);
Log.e(TAG, "resourceAddress->"+resourceAddress);
SpUtils.putString(BaseActivity.this, resourceId, resourceAddress);
}
}else{
runOnUiThread(new Runnable() {
@Override
public void run() {
createAlertDialog("提示", "未获取到资源列表", BaseActivity.this);
}
});
}
} catch (JSONException e) {
e.printStackTrace();
}
refresh();
}
@Override
public void fail(String messageId, final String errMsg) {
Log.e(TAG, "资源寻址 fail \nmessageId---->" + messageId + "\nerrMsg---->" + errMsg);
runOnUiThread(new Runnable() {
@Override
public void run() {
createAlertDialog("错误", "" + errMsg, BaseActivity.this);
}
});
}
});
}
protected void createAlertDialog(String title, String content, Context context){
AlertDialog.Builder alertBuilder = new AlertDialog.Builder(context);
alertBuilder.setCancelable(true);
alertBuilder.setTitle(""+title);
alertBuilder.setMessage(""+content);
alertBuilder.setNegativeButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
alertBuilder.create().show();
}
protected abstract void refresh();
}

View File

@ -0,0 +1,19 @@
package com.pxkj.jwzs;
/**
* Created by 皮蛋 on 2021/9/16.
*/
class Constant {
public static final String MESSAGE_ID = "messageId";
public static final String USER_CREDENTIAL = "userCredential";
public static final String APP_CREDENTIAL = "appCredential";
public static final String RESOURCE_LIST = "resourceList";
public static final String XM = "XM";
public static final String SFZH = "SFZH";
public static final String PERSONDEPT = "PERSONDEPT";
public static final String PERSONDEPTNAME = "PERSONDEPTNAME";
}

View File

@ -0,0 +1,90 @@
package com.pxkj.jwzs;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import androidx.annotation.Nullable;
import java.io.IOException;
public class FirstActivity extends BaseActivity {
private TextView tvApiResult;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // 必须先加载布局再初始化控件
// 初始化TextView关键绑定布局中的tv_api_result
tvApiResult = findViewById(R.id.tv_api_result);
Button btnTestApi = findViewById(R.id.btn_test_api);
btnTestApi.setOnClickListener(v -> {
tvApiResult.setText("测试中..."); // 此时tvApiResult已初始化不会空指针
fetchData();
});
init(); // 调用父类方法
}
private void fetchData() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://50.146.63.127:82/app/api/")
// .baseUrl("http://218.92.207.242:50021/gwgl/")
.addConverterFactory(GsonConverterFactory.create())
.build();
ApiService service = retrofit.create(ApiService.class);
Call<ResponseBody> call = service.getData(); // 假设ApiService中定义的接口是正确的
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
// 确保tvApiResult不为null双重保险
if (tvApiResult == null) return;
if (response.isSuccessful()) {
try {
String result = response.body().string();
tvApiResult.setText("请求成功:\n" + result);
} catch (IOException e) {
tvApiResult.setText("响应解析失败:\n" + e.getMessage());
}
} else {
tvApiResult.setText("HTTP错误:\n状态码=" + response.code());
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
// 确保tvApiResult不为null双重保险
if (tvApiResult == null) return;
// 显示具体错误原因如网络不可达超时等
String errorMsg = "请求失败:\n";
if (t.getMessage() != null) {
errorMsg += t.getMessage();
} else {
errorMsg += "未知错误";
}
tvApiResult.setText(errorMsg);
}
});
}
@Override
protected void refresh() {
// 寻址成功后在这跳转下个页面
startActivity(new Intent(this, MainActivity.class));
}
}

View File

@ -0,0 +1,19 @@
package com.pxkj.jwzs;
import android.os.Bundle;
public class MainActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 所有其它页面均继承BaseActivity
}
@Override
protected void refresh() {
// 不用实现任何功能
}
}

View File

@ -0,0 +1,48 @@
package com.pxkj.jwzs;
import android.app.Activity;
import android.util.Log;
import com.acrabsoft.sdk.AppStoreApplication;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* Created by 皮蛋 on 2021/9/15.
*/
public class MyApplication extends AppStoreApplication {
public static List<Activity> activitys = new ArrayList<>();
private static MyApplication instance;
@Override
public void onCreate() {
super.onCreate();
instance = this;
registerActivityLifecycleCallbacks(new MyLifecycleHandler(MyApplication.this));
}
public static MyApplication getInstance() {
return instance;
}
public static void finishAll(){
if(activitys!=null){
Log.e("MyApplication", "activitys -->"+activitys.size());
Iterator<Activity> iterator = activitys.iterator();
while(iterator.hasNext()){
Activity activity = iterator.next();
activity.finish();
iterator.remove(); //注意这个地方
}
}
}
}

View File

@ -0,0 +1,48 @@
package com.pxkj.jwzs;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
public class MyLifecycleHandler implements Application.ActivityLifecycleCallbacks {
private Context context;
private String TAG = "MyLifecycleHandler";
protected MyLifecycleHandler(Context context){
this.context = context;
}
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
Log.e(TAG, "onActivityCreated");
MyApplication.getInstance().activitys.add(activity);
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
}

View File

@ -0,0 +1,282 @@
package com.pxkj.jwzs;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.text.TextUtils;
import android.util.Base64;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
public class SpUtils {
private static SharedPreferences sp;
private static SharedPreferences getSp(Context context) {
if (sp == null) {
sp = context.getSharedPreferences("SpUtil22", Context.MODE_PRIVATE);
}
return sp;
}
/**
* 存入字符串
*
* @param context 上下文
* @param key 字符串的键
* @param value 字符串的值
*/
public static void putString(Context context, String key, String value) {
SharedPreferences preferences = getSp(context);
//存入数据
Editor editor = preferences.edit();
editor.putString(key, value);
editor.commit();
}
/**
* 获取字符串
*
* @param context 上下文
* @param key 字符串的键
* @return 得到的字符串
*/
public static String getString(Context context, String key) {
SharedPreferences preferences = getSp(context);
return preferences.getString(key, "");
}
/**
* 获取字符串
*
* @param context 上下文
* @param key 字符串的键
* @param value 字符串的默认值
* @return 得到的字符串
*/
public static String getString(Context context, String key, String value) {
SharedPreferences preferences = getSp(context);
return preferences.getString(key, value);
}
/**
* 保存布尔值
*
* @param context 上下文
* @param key
* @param value
*/
public static void putBoolean(Context context, String key, boolean value) {
SharedPreferences sp = getSp(context);
Editor editor = sp.edit();
editor.putBoolean(key, value);
editor.commit();
}
/**
* 获取布尔值
*
* @param context 上下文
* @param key
* @param defValue 默认值
* @return 返回保存的值
*/
public static boolean getBoolean(Context context, String key, boolean defValue) {
SharedPreferences sp = getSp(context);
return sp.getBoolean(key, defValue);
}
/**
* 保存long值
*
* @param context 上下文
* @param key
* @param value
*/
public static void putLong(Context context, String key, long value) {
SharedPreferences sp = getSp(context);
Editor editor = sp.edit();
editor.putLong(key, value);
editor.commit();
}
/**
* 获取long值
*
* @param context 上下文
* @param key
* @param defValue 默认值
* @return 保存的值
*/
public static long getLong(Context context, String key, long defValue) {
SharedPreferences sp = getSp(context);
return sp.getLong(key, defValue);
}
/**
* 保存int值
*
* @param context 上下文
* @param key
* @param value
*/
public static void putInt(Context context, String key, int value) {
SharedPreferences sp = getSp(context);
Editor editor = sp.edit();
editor.putInt(key, value);
editor.commit();
}
/**
* 获取long值
*
* @param context 上下文
* @param key
* @param defValue 默认值
* @return 保存的值
*/
public static int getInt(Context context, String key, int defValue) {
SharedPreferences sp = getSp(context);
return sp.getInt(key, defValue);
}
/**
* 保存对象
*
* @param context 上下文
* @param key
* @param obj 要保存的对象Serializable的子类
* @param <T> 泛型定义
*/
public static <T extends Serializable> void putObject(Context context, String key, T obj) {
try {
put(context, key, obj);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取对象
*
* @param context 上下文
* @param key
* @param <T> 指定泛型
* @return 泛型对象
*/
public static <T extends Serializable> T getObject(Context context, String key) {
try {
return (T) get(context, key);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 存储List集合
* @param context 上下文
* @param key 存储的键
* @param list 存储的集合
*/
public static void putList(Context context, String key, List<? extends Serializable> list) {
try {
put(context, key, list);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取List集合
* @param context 上下文
* @param key
* @param <E> 指定泛型
* @return List集合
*/
public static <E extends Serializable> List<E> getList(Context context, String key) {
try {
return (List<E>) get(context, key);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 存储Map集合
* @param context 上下文
* @param key
* @param map 存储的集合
* @param <K> 指定Map的键
* @param <V> 指定Map的值
*/
public static <K extends Serializable, V extends Serializable> void putMap(Context context,
String key, Map<K, V> map)
{
try {
put(context, key, map);
} catch (Exception e) {
e.printStackTrace();
}
}
public static <K extends Serializable, V extends Serializable> Map<K, V> getMap(Context context,
String key)
{
try {
return (Map<K, V>) get(context, key);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**存储对象*/
private static void put(Context context, String key, Object obj)
throws IOException
{
if (obj == null) {//判断对象是否为空
return;
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = null;
oos = new ObjectOutputStream(baos);
oos.writeObject(obj);
// 将对象放到OutputStream中
// 将对象转换成byte数组并将其进行base64编码
String objectStr = new String(Base64.encode(baos.toByteArray(), Base64.DEFAULT));
baos.close();
oos.close();
putString(context, key, objectStr);
}
/**获取对象*/
private static Object get(Context context, String key)
throws IOException, ClassNotFoundException
{
String wordBase64 = getString(context, key);
// 将base64格式字符串还原成byte数组
if (TextUtils.isEmpty(wordBase64)) { //不可少否则在下面会报java.io.StreamCorruptedException
return null;
}
byte[] objBytes = Base64.decode(wordBase64.getBytes(), Base64.DEFAULT);
ByteArrayInputStream bais = new ByteArrayInputStream(objBytes);
ObjectInputStream ois = new ObjectInputStream(bais);
// 将byte数组转换成product对象
Object obj = ois.readObject();
bais.close();
ois.close();
return obj;
}
}

View File

@ -0,0 +1,30 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
<aapt:attr name="android:fillColor">
<gradient
android:endX="85.84757"
android:endY="92.4963"
android:startX="42.9492"
android:startY="49.59793"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>

View File

@ -0,0 +1,170 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#3DDC84"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
</vector>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/btn_test_api"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="测试接口"
android:layout_marginTop="32dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_api_result"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:layout_marginHorizontal="16dp"
android:padding="16dp"
android:background="#F0F0F0"
android:text="点击按钮测试接口..."
android:textColor="#333333"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btn_test_api" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

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