mirror of https://github.com/LeOS-GSI/LeOS-Genesis
bug fixes
parent
92978ffae9
commit
5a5b44b52d
|
@ -0,0 +1,13 @@
|
||||||
|
*.iml
|
||||||
|
.gradle
|
||||||
|
/local.properties
|
||||||
|
/.idea/caches
|
||||||
|
/.idea/libraries
|
||||||
|
/.idea/modules.xml
|
||||||
|
/.idea/workspace.xml
|
||||||
|
/.idea/navEditor.xml
|
||||||
|
/.idea/assetWizardSettings.xml
|
||||||
|
.DS_Store
|
||||||
|
/build
|
||||||
|
/captures
|
||||||
|
.externalNativeBuild
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,2 @@
|
||||||
|
#Sat Feb 23 19:06:54 PKT 2019
|
||||||
|
gradle.version=4.10.1
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,35 @@
|
||||||
|
<component name="ProjectCodeStyleConfiguration">
|
||||||
|
<code_scheme name="Project" version="173">
|
||||||
|
<JetCodeStyleSettings>
|
||||||
|
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
|
||||||
|
</JetCodeStyleSettings>
|
||||||
|
<Objective-C-extensions>
|
||||||
|
<file>
|
||||||
|
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
|
||||||
|
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
|
||||||
|
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
|
||||||
|
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
|
||||||
|
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
|
||||||
|
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
|
||||||
|
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
|
||||||
|
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
|
||||||
|
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
|
||||||
|
</file>
|
||||||
|
<class>
|
||||||
|
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
|
||||||
|
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
|
||||||
|
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
|
||||||
|
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
|
||||||
|
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
|
||||||
|
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
|
||||||
|
</class>
|
||||||
|
<extensions>
|
||||||
|
<pair source="cpp" header="h" fileNamingConvention="NONE" />
|
||||||
|
<pair source="c" header="h" fileNamingConvention="NONE" />
|
||||||
|
</extensions>
|
||||||
|
</Objective-C-extensions>
|
||||||
|
<codeStyleSettings language="kotlin">
|
||||||
|
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
|
||||||
|
</codeStyleSettings>
|
||||||
|
</code_scheme>
|
||||||
|
</component>
|
|
@ -0,0 +1,5 @@
|
||||||
|
<component name="ProjectCodeStyleConfiguration">
|
||||||
|
<state>
|
||||||
|
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
|
||||||
|
</state>
|
||||||
|
</component>
|
|
@ -0,0 +1,18 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="GradleSettings">
|
||||||
|
<option name="linkedExternalProjectsSettings">
|
||||||
|
<GradleProjectSettings>
|
||||||
|
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||||
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
|
<option name="modules">
|
||||||
|
<set>
|
||||||
|
<option value="$PROJECT_DIR$" />
|
||||||
|
<option value="$PROJECT_DIR$/app" />
|
||||||
|
</set>
|
||||||
|
</option>
|
||||||
|
<option name="resolveModulePerSourceSet" value="false" />
|
||||||
|
</GradleProjectSettings>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: android.arch.core:common:1.1.1@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.core/common/1.1.1/e55b70d1f5620db124b3e85a7f4bdc7bd48d9f95/common-1.1.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.core/common/1.1.1/ae9b923fc99c1fc5a7a9b6cedc6df8b2b8529c54/common-1.1.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: android.arch.core:runtime:1.1.1@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runtime-1.1.1.aar/f8d85eb718ff9ecd9bd9cdfef36ccd37/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runtime-1.1.1.aar/f8d85eb718ff9ecd9bd9cdfef36ccd37/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.core/runtime/1.1.1/25df553df10af32bede9dd768a2d15299543d84/runtime-1.1.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: android.arch.lifecycle:common:1.1.1@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/common/1.1.1/207a6efae6a3555e326de41f76bdadd9a239cbce/common-1.1.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/common/1.1.1/bcdaa509a856d1430e736b102f899aa9870a8f83/common-1.1.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: android.arch.lifecycle:livedata:1.1.1@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/livedata-1.1.1.aar/b4d4be5aeb83a8df6a5739f1c39b2d13/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/livedata-1.1.1.aar/b4d4be5aeb83a8df6a5739f1c39b2d13/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/livedata/1.1.1/bf27acaa4953c98cd519756ed7b7caacf94407d4/livedata-1.1.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: android.arch.lifecycle:livedata-core:1.1.1@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/livedata-core-1.1.1.aar/152f4299ecfa5f8f913617573a3a1995/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/livedata-core-1.1.1.aar/152f4299ecfa5f8f913617573a3a1995/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/livedata-core/1.1.1/c38818e006ea7a408c05e3090364332d46494ef/livedata-core-1.1.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: android.arch.lifecycle:runtime:1.1.1@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runtime-1.1.1.aar/26e3a120f49f802845cd2edaa7ee838e/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runtime-1.1.1.aar/26e3a120f49f802845cd2edaa7ee838e/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/runtime/1.1.1/8e4214221b3797b863dc9998d16abb4af043e784/runtime-1.1.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: android.arch.lifecycle:viewmodel:1.1.1@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/viewmodel-1.1.1.aar/c64163b46247df00cb3a3df82a2ae6d1/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/viewmodel-1.1.1.aar/c64163b46247df00cb3a3df82a2ae6d1/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/viewmodel/1.1.1/d1cc8e805317f171be63c68341f499acda7e42d6/viewmodel-1.1.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:animated-vector-drawable:28.0.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/animated-vector-drawable-28.0.0.aar/d20b2fd144796947b8eaea02e5743f98/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/animated-vector-drawable-28.0.0.aar/d20b2fd144796947b8eaea02e5743f98/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:appcompat-v7:28.0.0@aar">
|
||||||
|
<ANNOTATIONS>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-28.0.0.aar/1068de0dac7f1f74be2e15c354f2997a/annotations.zip!/" />
|
||||||
|
</ANNOTATIONS>
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-28.0.0.aar/1068de0dac7f1f74be2e15c354f2997a/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-28.0.0.aar/1068de0dac7f1f74be2e15c354f2997a/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:asynclayoutinflater:28.0.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/asynclayoutinflater-28.0.0.aar/99810413812545dd0883212e38272e46/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/asynclayoutinflater-28.0.0.aar/99810413812545dd0883212e38272e46/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,9 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:collections:28.0.0@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/collections/28.0.0/c1bcdade4d3cc2836130424a3f3e4182c666a745/collections-28.0.0.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support.constraint:constraint-layout:1.1.3@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/constraint-layout-1.1.3.aar/32d7f96d7749b374515f7b74f88c9e02/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/constraint-layout-1.1.3.aar/32d7f96d7749b374515f7b74f88c9e02/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,9 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support.constraint:constraint-layout-solver:1.1.3@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support.constraint/constraint-layout-solver/1.1.3/bde0667d7414c16ed62d3cfe993cff7f9d732373/constraint-layout-solver-1.1.3.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:coordinatorlayout:28.0.0@aar">
|
||||||
|
<ANNOTATIONS>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/coordinatorlayout-28.0.0.aar/55e6827e59b7c44566ef94a99f2ee3ed/annotations.zip!/" />
|
||||||
|
</ANNOTATIONS>
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/coordinatorlayout-28.0.0.aar/55e6827e59b7c44566ef94a99f2ee3ed/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/coordinatorlayout-28.0.0.aar/55e6827e59b7c44566ef94a99f2ee3ed/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:cursoradapter:28.0.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/cursoradapter-28.0.0.aar/af95b8ecd7a12d10ecb79e65c91d0d31/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/cursoradapter-28.0.0.aar/af95b8ecd7a12d10ecb79e65c91d0d31/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:customtabs:26.1.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/customtabs-26.1.0.aar/9e614d5a399b17ca2d8befd8c142f7da/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/customtabs-26.1.0.aar/9e614d5a399b17ca2d8befd8c142f7da/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/customtabs/26.1.0/fc3c2c5fd86e4c7bced338c640762c0a9a7ac1e/customtabs-26.1.0-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:customview:28.0.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/customview-28.0.0.aar/e7d0b8d73c3059960aa9b1e47039d1ab/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/customview-28.0.0.aar/e7d0b8d73c3059960aa9b1e47039d1ab/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:documentfile:28.0.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/documentfile-28.0.0.aar/5c79dbf27d8e8bb7c3412cc757746ca1/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/documentfile-28.0.0.aar/5c79dbf27d8e8bb7c3412cc757746ca1/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:drawerlayout:28.0.0@aar">
|
||||||
|
<ANNOTATIONS>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/drawerlayout-28.0.0.aar/96305d0d271ff7aed12469aaa05652a7/annotations.zip!/" />
|
||||||
|
</ANNOTATIONS>
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/drawerlayout-28.0.0.aar/96305d0d271ff7aed12469aaa05652a7/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/drawerlayout-28.0.0.aar/96305d0d271ff7aed12469aaa05652a7/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:interpolator:28.0.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/interpolator-28.0.0.aar/e03c315865474b026224f61e82d3bb1b/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/interpolator-28.0.0.aar/e03c315865474b026224f61e82d3bb1b/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:loader:28.0.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/loader-28.0.0.aar/a14b5b766e3d0b85d61ecb560c75578d/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/loader-28.0.0.aar/a14b5b766e3d0b85d61ecb560c75578d/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:localbroadcastmanager:28.0.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/localbroadcastmanager-28.0.0.aar/f5d9ed61cb46454558fc86073351b6ec/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/localbroadcastmanager-28.0.0.aar/f5d9ed61cb46454558fc86073351b6ec/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:print:28.0.0@aar">
|
||||||
|
<ANNOTATIONS>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/print-28.0.0.aar/0ce6c102762770f05c3961ceb048e6cc/annotations.zip!/" />
|
||||||
|
</ANNOTATIONS>
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/print-28.0.0.aar/0ce6c102762770f05c3961ceb048e6cc/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/print-28.0.0.aar/0ce6c102762770f05c3961ceb048e6cc/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:slidingpanelayout:28.0.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/slidingpanelayout-28.0.0.aar/f916d10df0bec0e2eec2d2c700487185/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/slidingpanelayout-28.0.0.aar/f916d10df0bec0e2eec2d2c700487185/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,9 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:support-annotations:28.0.0@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-annotations/28.0.0/ed73f5337a002d1fd24339d5fb08c2c9d9ca60d8/support-annotations-28.0.0.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:support-compat:28.0.0@aar">
|
||||||
|
<ANNOTATIONS>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-compat-28.0.0.aar/226cb14f94b177bee978bb2acad289fb/annotations.zip!/" />
|
||||||
|
</ANNOTATIONS>
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-compat-28.0.0.aar/226cb14f94b177bee978bb2acad289fb/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-compat-28.0.0.aar/226cb14f94b177bee978bb2acad289fb/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:support-core-ui:28.0.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-ui-28.0.0.aar/7e2a173daa57118ea0a2cbefce62f907/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-ui-28.0.0.aar/7e2a173daa57118ea0a2cbefce62f907/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:support-core-utils:28.0.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-utils-28.0.0.aar/c64a95e3d736f5d96fd57210c6cd3386/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-utils-28.0.0.aar/c64a95e3d736f5d96fd57210c6cd3386/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:support-fragment:28.0.0@aar">
|
||||||
|
<ANNOTATIONS>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-fragment-28.0.0.aar/cab68d2683162ba0ef8a12cdc750c4ab/annotations.zip!/" />
|
||||||
|
</ANNOTATIONS>
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-fragment-28.0.0.aar/cab68d2683162ba0ef8a12cdc750c4ab/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-fragment-28.0.0.aar/cab68d2683162ba0ef8a12cdc750c4ab/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:support-media-compat:26.1.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/2956dfa8739db2a3d7f28e1b6be7b9cc/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/2956dfa8739db2a3d7f28e1b6be7b9cc/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-media-compat/26.1.0/774fd1164ec32514eec562953f723a1920a7fef7/support-media-compat-26.1.0-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:support-v4:26.1.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/ee1d7d7607fc64a0ca6241d838c53a5f/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/ee1d7d7607fc64a0ca6241d838c53a5f/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-v4/26.1.0/9c53eab3272b3b26583b17facac2e90d264b2788/support-v4-26.1.0-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:support-vector-drawable:28.0.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-vector-drawable-28.0.0.aar/84da01f44ffeedf49f8666ec95103d07/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-vector-drawable-28.0.0.aar/84da01f44ffeedf49f8666ec95103d07/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:swiperefreshlayout:28.0.0@aar">
|
||||||
|
<ANNOTATIONS>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/swiperefreshlayout-28.0.0.aar/3dfbc470bbb9011cc20ef131042b89dd/annotations.zip!/" />
|
||||||
|
</ANNOTATIONS>
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/swiperefreshlayout-28.0.0.aar/3dfbc470bbb9011cc20ef131042b89dd/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/swiperefreshlayout-28.0.0.aar/3dfbc470bbb9011cc20ef131042b89dd/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support.test.espresso:espresso-core:3.0.2@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/espresso-core-3.0.2.aar/e01110d60bc2393a08f309b411b054c1/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/espresso-core-3.0.2.aar/e01110d60bc2393a08f309b411b054c1/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support.test.espresso/espresso-core/3.0.2/433f4f601a3f3835691d80838dd7ff9414931b05/espresso-core-3.0.2-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support.test.espresso:espresso-idling-resource:3.0.2@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/espresso-idling-resource-3.0.2.aar/c8b58ae8753ca5157ba59e390258a7f5/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/espresso-idling-resource-3.0.2.aar/c8b58ae8753ca5157ba59e390258a7f5/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support.test.espresso/espresso-idling-resource/3.0.2/6071e2b310c16836ba475a94df377e2f75928546/espresso-idling-resource-3.0.2-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support.test:monitor:1.0.2@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/monitor-1.0.2.aar/c6d5abead8ee7de1d71814675b0c1f5b/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/monitor-1.0.2.aar/c6d5abead8ee7de1d71814675b0c1f5b/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support.test/monitor/1.0.2/5764301056100b445e9ba31df7d1b554a55450f6/monitor-1.0.2-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support.test:runner:1.0.2@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runner-1.0.2.aar/8d14e64c2cd5a282a63a39db1fe49144/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runner-1.0.2.aar/8d14e64c2cd5a282a63a39db1fe49144/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support.test/runner/1.0.2/b2ce2342744a66e935dbc4a298259709a4c1f042/runner-1.0.2-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:versionedparcelable:28.0.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/versionedparcelable-28.0.0.aar/ca8550429dee43f2ab0aa672243ad465/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/versionedparcelable-28.0.0.aar/ca8550429dee43f2ab0aa672243ad465/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.android.support:viewpager:28.0.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/viewpager-28.0.0.aar/6605cf1a0eec27a749dbf53cb6866e06/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/viewpager-28.0.0.aar/6605cf1a0eec27a749dbf53cb6866e06/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.google.android.gms:play-services-ads:17.1.1@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/play-services-ads-17.1.1.aar/3a9e9cb51051342ae67a4787bbdc4744/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/play-services-ads-17.1.1.aar/3a9e9cb51051342ae67a4787bbdc4744/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.google.android.gms:play-services-ads-base:17.1.1@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/play-services-ads-base-17.1.1.aar/d8b81522aa4fb0c9881308103af20a5d/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/play-services-ads-base-17.1.1.aar/d8b81522aa4fb0c9881308103af20a5d/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.google.android.gms:play-services-ads-identifier:16.0.0@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/play-services-ads-identifier-16.0.0.aar/a76f2bf57456e78d0f334c353f54b769/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/play-services-ads-identifier-16.0.0.aar/a76f2bf57456e78d0f334c353f54b769/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.google.android.gms:play-services-ads-lite:17.1.1@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-17.1.1.aar/079576cb8eb051d508955baca2636923/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/play-services-ads-lite-17.1.1.aar/079576cb8eb051d508955baca2636923/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.google.android.gms:play-services-basement:16.0.1@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/play-services-basement-16.0.1.aar/40dda6520ec5ccd5eb201c32d5806f49/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/play-services-basement-16.0.1.aar/40dda6520ec5ccd5eb201c32d5806f49/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.google.android.gms:play-services-gass:17.1.1@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/play-services-gass-17.1.1.aar/52287cb8d31e3399d497260995f0d42d/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/play-services-gass-17.1.1.aar/52287cb8d31e3399d497260995f0d42d/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.google.android.gms:play-services-measurement-base:16.0.4@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/play-services-measurement-base-16.0.4.aar/a0a7d57db21df3db7b48d14710c394c6/res" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/play-services-measurement-base-16.0.4.aar/a0a7d57db21df3db7b48d14710c394c6/jars/classes.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.android.gms/play-services-measurement-base/16.0.4/73a2e465a7105bad4fc553c80674804c082d57c6/play-services-measurement-base-16.0.4-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.google.android.gms:play-services-measurement-sdk-api:16.0.3@aar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/play-services-measurement-sdk-api-16.0.3.aar/75094b41c05af11c2663fe4129896321/jars/classes.jar!/" />
|
||||||
|
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/play-services-measurement-sdk-api-16.0.3.aar/75094b41c05af11c2663fe4129896321/res" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.android.gms/play-services-measurement-sdk-api/16.0.3/d4ba99429969bd7aa80a487a1da83e351f723c8/play-services-measurement-sdk-api-16.0.3-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,9 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.google.code.findbugs:jsr305:2.0.1@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.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>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.squareup:javawriter:2.1.1@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.1.1/67ff45d9ae02e583d0f9b3432a5ebbe05c30c966/javawriter-2.1.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.1.1/5b31387d839a5cdaf5b6de3990da01f7f2b963c5/javawriter-2.1.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.squareup.okhttp3:okhttp:3.4.2@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup.okhttp3/okhttp/3.4.2/ccde00f7ccc77af5a6d5752e2cb21f6d8998289f/okhttp-3.4.2.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup.okhttp3/okhttp/3.4.2/27f62476dfeacb8e8d2595988cd67995e65e9a42/okhttp-3.4.2-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: com.squareup.okio:okio:1.9.0@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup.okio/okio/1.9.0/f824591a0016efbaeddb8300bee54832a1398cfa/okio-1.9.0.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup.okio/okio/1.9.0/3aaaf83694e8c88e8c33c71b609f0ad506007a4a/okio-1.9.0-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: cz.msebera.android:httpclient:4.4.1.2@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/cz.msebera.android/httpclient/4.4.1.2/64950d33e2d3095cc831b414063bea45524103d4/httpclient-4.4.1.2.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/cz.msebera.android/httpclient/4.4.1.2/dc00b4620edb43617cdbeafe1f82256396061cd6/httpclient-4.4.1.2-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: info.guardianproject.netcipher:netcipher:2.0.0-alpha1@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/info.guardianproject.netcipher/netcipher/2.0.0-alpha1/ae8a4b71384a385d70d0f461de0a3f1ff574993a/netcipher-2.0.0-alpha1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/info.guardianproject.netcipher/netcipher/2.0.0-alpha1/dd26bcd0c80ba588707acb4db9562997527ab964/netcipher-2.0.0-alpha1-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: info.guardianproject.netcipher:netcipher-okhttp3:2.0.0-alpha1@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/info.guardianproject.netcipher/netcipher-okhttp3/2.0.0-alpha1/40120ab7198a682cf12b8cc60373e914b7a84e81/netcipher-okhttp3-2.0.0-alpha1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/info.guardianproject.netcipher/netcipher-okhttp3/2.0.0-alpha1/db0d340380e38ea1dab5c783ccec176c63d04a28/netcipher-okhttp3-2.0.0-alpha1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: javax.inject:javax.inject:1@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/6975da39a7040257bd51d21a231b76c915872d38/javax.inject-1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/a00123f261762a7c5e0ec916a2c7c8298d29c400/javax.inject-1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: junit:junit:4.12@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/2973d150c0dc1fefe998f834810d68f278ea58ec/junit-4.12.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/a6c32b40bf3d76eca54e3c601e5d1470c86fcdfa/junit-4.12-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: net.sf.kxml:kxml2:2.3.0@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.kxml/kxml2/2.3.0/ccbc77a5fd907ef863c29f3596c6f54ffa4e9442/kxml2-2.3.0.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.kxml/kxml2/2.3.0/309cd2cff7260e465792fda3dcbb063b730d8050/kxml2-2.3.0-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: org.apache.httpcomponents:httpcore:4.4.1@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.4.1/f5aa318bda4c6c8d688c9d00b90681dcd82ce636/httpcore-4.4.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.4.1/9700be0d0a331691654a8e901943c9a74e33c5fc/httpcore-4.4.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: org.hamcrest:hamcrest-core:1.3@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/1dc37250fbc78e23a65a67fbbaf71d2e9cbc3c0b/hamcrest-core-1.3-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-integration/1.3/5de0c73fef18917cd85d0ab70bb23818685e4dfd/hamcrest-integration-1.3.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-integration/1.3/ae7787a563e6a1b1f17fd4ac43be3a3c8830cfda/hamcrest-integration-1.3-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: org.hamcrest:hamcrest-library:1.3@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/4785a3c21320980282f9f33d0d1264a69040538f/hamcrest-library-1.3.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/47a7ee46628ab7133129cd7cef1e92657bc275e/hamcrest-library-1.3-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: org.jetbrains:annotations:13.0@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/5991ca87ef1fb5544943d9abc5a9a37583fabe03/annotations-13.0-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: org.jetbrains.kotlin:kotlin-stdlib:1.3.20@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.20/eb2a232734e09fcd1b958a5c7520a93c6de38b32/kotlin-stdlib-1.3.20.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.20/3a9a71152b278d5e36e7346554b4dbb03e565e30/kotlin-stdlib-1.3.20-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:1.3.20@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.20/7d7934e26ce34da1a0a8d00e38038d7cf3375e89/kotlin-stdlib-common-1.3.20.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.20/60070a2fbed969e9b73f214cb41072eabedf299a/kotlin-stdlib-common-1.3.20-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,11 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Gradle: org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.20@jar">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.20/aa17d6fd473ce53061a7b2b9d2ae96f547cae93d/kotlin-stdlib-jdk7-1.3.20.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.20/5a49cbde078f91493083eb35b8b44138ccfea188/kotlin-stdlib-jdk7-1.3.20-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="JDK" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectType">
|
||||||
|
<option name="id" value="Android" />
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/Genesis Search App.iml" filepath="$PROJECT_DIR$/Genesis Search App.iml" />
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="RunConfigurationProducerService">
|
||||||
|
<option name="ignoredProducers">
|
||||||
|
<set>
|
||||||
|
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
|
||||||
|
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
|
||||||
|
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
|
||||||
|
</set>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,10 @@
|
||||||
|
# GenesisApp
|
||||||
|
|
||||||
|
GenesisApp is search engine with ability to find content on tor network / deepweb / darkweb. the privacy of users is respected there is no cookies and no javascript and there is not third part code or external code.
|
||||||
|
|
||||||
|
The app lets you search the sites in the deep web with the keywords and shows you a site tab with title, url and an preview of the content.
|
||||||
|
|
||||||
|
You can share the site url with the title via email or via messaging app.
|
||||||
|
To view the websites you must use the Tor browser or to be connected to the Tor network by vpn.
|
||||||
|
On android phones you can use Orfox Browser with Orbot to connect to the Tor network.
|
||||||
|
Anonymous connection to tor network.
|
|
@ -0,0 +1 @@
|
||||||
|
/build
|
|
@ -0,0 +1,44 @@
|
||||||
|
apply plugin: 'com.android.application'
|
||||||
|
|
||||||
|
apply plugin: 'kotlin-android'
|
||||||
|
|
||||||
|
apply plugin: 'kotlin-android-extensions'
|
||||||
|
apply plugin: 'maven'
|
||||||
|
|
||||||
|
android {
|
||||||
|
compileSdkVersion 28
|
||||||
|
defaultConfig {
|
||||||
|
applicationId "com.example.myapplication"
|
||||||
|
minSdkVersion 21
|
||||||
|
targetSdkVersion 28
|
||||||
|
versionCode 1
|
||||||
|
versionName "1.0"
|
||||||
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||||
|
}
|
||||||
|
buildTypes {
|
||||||
|
release {
|
||||||
|
minifyEnabled false
|
||||||
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||||
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||||||
|
implementation 'com.android.support:appcompat-v7:28.0.0'
|
||||||
|
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
|
||||||
|
testImplementation 'junit:junit:4.12'
|
||||||
|
androidTestImplementation 'com.android.support.test:runner:1.0.2'
|
||||||
|
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
|
||||||
|
implementation 'com.google.android.gms:play-services-ads:17.1.1'
|
||||||
|
implementation "cz.msebera.android:httpclient:4.4.1.2"
|
||||||
|
compile 'info.guardianproject.netcipher:netcipher:2.0.0-alpha1'
|
||||||
|
compile 'info.guardianproject.netcipher:netcipher-okhttp3:2.0.0-alpha1'
|
||||||
|
compile 'com.squareup.okhttp3:okhttp:3.4.2'
|
||||||
|
compile 'org.apache.httpcomponents:httpcore:4.4.1'
|
||||||
|
}
|
||||||
|
|
||||||
|
apply plugin: 'com.android.application'
|
||||||
|
apply plugin: 'kotlin-android'
|
||||||
|
apply plugin: 'kotlin-android-extensions'
|
|
@ -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
|
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]
|
|
@ -0,0 +1,24 @@
|
||||||
|
package com.example.myapplication
|
||||||
|
|
||||||
|
import android.support.test.InstrumentationRegistry
|
||||||
|
import android.support.test.runner.AndroidJUnit4
|
||||||
|
|
||||||
|
import org.junit.Test
|
||||||
|
import org.junit.runner.RunWith
|
||||||
|
|
||||||
|
import org.junit.Assert.*
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instrumented test, which will execute on an Android device.
|
||||||
|
*
|
||||||
|
* See [testing documentation](http://d.android.com/tools/testing).
|
||||||
|
*/
|
||||||
|
@RunWith(AndroidJUnit4::class)
|
||||||
|
class ExampleInstrumentedTest {
|
||||||
|
@Test
|
||||||
|
fun useAppContext() {
|
||||||
|
// Context of the app under test.
|
||||||
|
val appContext = InstrumentationRegistry.getTargetContext()
|
||||||
|
assertEquals("com.example.myapplication", appContext.packageName)
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
package="com.example.myapplication">
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.INTERNET"/>
|
||||||
|
|
||||||
|
<application
|
||||||
|
android:allowBackup="true"
|
||||||
|
android:icon="@mipmap/ic_launcher_v1"
|
||||||
|
android:label="@string/app_name"
|
||||||
|
android:roundIcon="@mipmap/ic_launcher_round_v1"
|
||||||
|
android:supportsRtl="true"
|
||||||
|
android:theme="@style/AppTheme"
|
||||||
|
android:usesCleartextTraffic="true">
|
||||||
|
<activity android:name=".applicationController"
|
||||||
|
android:screenOrientation="portrait" >
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.MAIN"/>
|
||||||
|
|
||||||
|
<category android:name="android.intent.category.LAUNCHER"/>
|
||||||
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.android.gms.ads.APPLICATION_ID"
|
||||||
|
android:value="ca-app-pub-5074525529134731~2926711128"/>
|
||||||
|
</application>
|
||||||
|
|
||||||
|
</manifest>
|
|
@ -0,0 +1,490 @@
|
||||||
|
package com.example.myapplication;
|
||||||
|
|
||||||
|
import android.os.Build;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.net.InetSocketAddress;
|
||||||
|
import java.net.Socket;
|
||||||
|
import java.security.cert.Certificate;
|
||||||
|
import java.security.cert.X509Certificate;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.net.SocketFactory;
|
||||||
|
import javax.net.ssl.HostnameVerifier;
|
||||||
|
import javax.net.ssl.SSLContext;
|
||||||
|
import javax.net.ssl.SSLHandshakeException;
|
||||||
|
import javax.net.ssl.SSLPeerUnverifiedException;
|
||||||
|
import javax.net.ssl.SSLSession;
|
||||||
|
import javax.net.ssl.SSLSocket;
|
||||||
|
import javax.security.auth.x500.X500Principal;
|
||||||
|
|
||||||
|
import cz.msebera.android.httpclient.HttpHost;
|
||||||
|
import cz.msebera.android.httpclient.conn.socket.LayeredConnectionSocketFactory;
|
||||||
|
import cz.msebera.android.httpclient.conn.ssl.DefaultHostnameVerifier;
|
||||||
|
import cz.msebera.android.httpclient.conn.ssl.SSLContexts;
|
||||||
|
import cz.msebera.android.httpclient.conn.ssl.SSLInitializationException;
|
||||||
|
import cz.msebera.android.httpclient.conn.ssl.X509HostnameVerifier;
|
||||||
|
import cz.msebera.android.httpclient.conn.util.PublicSuffixMatcherLoader;
|
||||||
|
import cz.msebera.android.httpclient.protocol.HttpContext;
|
||||||
|
import cz.msebera.android.httpclient.util.Args;
|
||||||
|
import cz.msebera.android.httpclient.util.TextUtils;
|
||||||
|
|
||||||
|
/*
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.apache.http.HttpHost;
|
||||||
|
import org.apache.http.annotation.ThreadSafe;
|
||||||
|
import org.apache.http.conn.socket.LayeredConnectionSocketFactory;
|
||||||
|
import org.apache.http.conn.util.PublicSuffixMatcherLoader;
|
||||||
|
import org.apache.http.protocol.HttpContext;
|
||||||
|
import org.apache.http.ssl.SSLContexts;
|
||||||
|
import org.apache.http.util.Args;
|
||||||
|
import org.apache.http.util.TextUtils;
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Layered socket factory for TLS/SSL connections.
|
||||||
|
* <p>
|
||||||
|
* SSLSocketFactory can be used to validate the identity of the HTTPS server against a list of
|
||||||
|
* trusted certificates and to authenticate to the HTTPS server using a private key.
|
||||||
|
* <p>
|
||||||
|
* SSLSocketFactory will enable server authentication when supplied with
|
||||||
|
* a {@link java.security.KeyStore trust-store} file containing one or several trusted certificates. The client
|
||||||
|
* secure socket will reject the connection during the SSL session handshake if the target HTTPS
|
||||||
|
* server attempts to authenticate itself with a non-trusted certificate.
|
||||||
|
* <p>
|
||||||
|
* Use JDK keytool utility to import a trusted certificate and generate a trust-store file:
|
||||||
|
* <pre>
|
||||||
|
* keytool -import -alias "my server cert" -file server.crt -keystore my.truststore
|
||||||
|
* </pre>
|
||||||
|
* <p>
|
||||||
|
* In special cases the standard trust verification process can be bypassed by using a custom
|
||||||
|
* {@link org.apache.http.conn.ssl.TrustStrategy}. This interface is primarily intended for allowing self-signed
|
||||||
|
* certificates to be accepted as trusted without having to add them to the trust-store file.
|
||||||
|
* <p>
|
||||||
|
* SSLSocketFactory will enable client authentication when supplied with
|
||||||
|
* a {@link java.security.KeyStore key-store} file containing a private key/public certificate
|
||||||
|
* pair. The client secure socket will use the private key to authenticate
|
||||||
|
* itself to the target HTTPS server during the SSL session handshake if
|
||||||
|
* requested to do so by the server.
|
||||||
|
* The target HTTPS server will in its turn verify the certificate presented
|
||||||
|
* by the client in order to establish client's authenticity.
|
||||||
|
* <p>
|
||||||
|
* Use the following sequence of actions to generate a key-store file
|
||||||
|
* </p>
|
||||||
|
* <ul>
|
||||||
|
* <li>
|
||||||
|
* <p>
|
||||||
|
* Use JDK keytool utility to generate a new key
|
||||||
|
* </p>
|
||||||
|
* <pre>keytool -genkey -v -alias "my client key" -validity 365 -keystore my.keystore</pre>
|
||||||
|
* <p>
|
||||||
|
* For simplicity use the same password for the key as that of the key-store
|
||||||
|
* </p>
|
||||||
|
* </li>
|
||||||
|
* <li>
|
||||||
|
* <p>
|
||||||
|
* Issue a certificate signing request (CSR)
|
||||||
|
* </p>
|
||||||
|
* <pre>keytool -certreq -alias "my client key" -file mycertreq.csr -keystore my.keystore</pre>
|
||||||
|
* </li>
|
||||||
|
* <li>
|
||||||
|
* <p>
|
||||||
|
* Send the certificate request to the trusted Certificate Authority for signature.
|
||||||
|
* One may choose to act as her own CA and sign the certificate request using a PKI
|
||||||
|
* tool, such as OpenSSL.
|
||||||
|
* </p>
|
||||||
|
* </li>
|
||||||
|
* <li>
|
||||||
|
* <p>
|
||||||
|
* Import the trusted CA root certificate
|
||||||
|
* </p>
|
||||||
|
* <pre>keytool -import -alias "my trusted ca" -file caroot.crt -keystore my.keystore</pre>
|
||||||
|
* </li>
|
||||||
|
* <li>
|
||||||
|
* <p>
|
||||||
|
* Import the PKCS#7 file containing the complete certificate chain
|
||||||
|
* </p>
|
||||||
|
* <pre>keytool -import -alias "my client key" -file mycert.p7 -keystore my.keystore</pre>
|
||||||
|
* </li>
|
||||||
|
* <li>
|
||||||
|
* <p>
|
||||||
|
* Verify the content of the resultant keystore file
|
||||||
|
* </p>
|
||||||
|
* <pre>keytool -list -v -keystore my.keystore</pre>
|
||||||
|
* </li>
|
||||||
|
* </ul>
|
||||||
|
*
|
||||||
|
* @since 4.3
|
||||||
|
*/
|
||||||
|
// @ThreadSafe @SuppressWarnings("deprecation")
|
||||||
|
public class SSLConnectionSocketFactory implements
|
||||||
|
LayeredConnectionSocketFactory {
|
||||||
|
private final static String TAG = "HttpClient";
|
||||||
|
public static final String TLS = "TLS";
|
||||||
|
public static final String SSL = "SSL";
|
||||||
|
public static final String SSLV2 = "SSLv2";
|
||||||
|
|
||||||
|
/*
|
||||||
|
@Deprecated
|
||||||
|
public static final X509HostnameVerifier ALLOW_ALL_HOSTNAME_VERIFIER
|
||||||
|
= AllowAllHostnameVerifier.INSTANCE;
|
||||||
|
@Deprecated
|
||||||
|
public static final X509HostnameVerifier BROWSER_COMPATIBLE_HOSTNAME_VERIFIER
|
||||||
|
= BrowserCompatHostnameVerifier.INSTANCE;
|
||||||
|
@Deprecated
|
||||||
|
public static final X509HostnameVerifier STRICT_HOSTNAME_VERIFIER
|
||||||
|
= StrictHostnameVerifier.INSTANCE;
|
||||||
|
*/
|
||||||
|
|
||||||
|
// private final Log log = LogFactory.getLog(getClass());
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 4.4
|
||||||
|
*/
|
||||||
|
public static HostnameVerifier getDefaultHostnameVerifier() {
|
||||||
|
return new DefaultHostnameVerifier(
|
||||||
|
PublicSuffixMatcherLoader.getDefault());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtains default SSL socket factory with an SSL context based on the standard JSSE
|
||||||
|
* trust material ({@code cacerts} file in the security properties directory).
|
||||||
|
* System properties are not taken into consideration.
|
||||||
|
*
|
||||||
|
* @return default SSL socket factory
|
||||||
|
*/
|
||||||
|
public static SSLConnectionSocketFactory getSocketFactory() throws
|
||||||
|
SSLInitializationException {
|
||||||
|
return new SSLConnectionSocketFactory(
|
||||||
|
SSLContexts.createDefault(), getDefaultHostnameVerifier());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String[] split(final String s) {
|
||||||
|
if (TextUtils.isBlank(s)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return s.split(" *, *");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtains default SSL socket factory with an SSL context based on system properties
|
||||||
|
* as described in
|
||||||
|
* <a href="http://docs.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html">
|
||||||
|
* Java™ Secure Socket Extension (JSSE) Reference Guide</a>.
|
||||||
|
*
|
||||||
|
* @return default system SSL socket factory
|
||||||
|
*/
|
||||||
|
public static SSLConnectionSocketFactory getSystemSocketFactory() throws
|
||||||
|
SSLInitializationException {
|
||||||
|
return new SSLConnectionSocketFactory(
|
||||||
|
(javax.net.ssl.SSLSocketFactory) javax.net.ssl.SSLSocketFactory.getDefault(),
|
||||||
|
split(System.getProperty("https.protocols")),
|
||||||
|
split(System.getProperty("https.cipherSuites")),
|
||||||
|
getDefaultHostnameVerifier());
|
||||||
|
}
|
||||||
|
|
||||||
|
private final javax.net.ssl.SSLSocketFactory socketfactory;
|
||||||
|
private final HostnameVerifier hostnameVerifier;
|
||||||
|
private final String[] supportedProtocols;
|
||||||
|
private final String[] supportedCipherSuites;
|
||||||
|
|
||||||
|
public SSLConnectionSocketFactory(final SSLContext sslContext) {
|
||||||
|
this(sslContext, getDefaultHostnameVerifier());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated (4.4) Use {@link #SSLConnectionSocketFactory(SSLContext,
|
||||||
|
* HostnameVerifier)}
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public SSLConnectionSocketFactory(
|
||||||
|
final SSLContext sslContext, final X509HostnameVerifier hostnameVerifier) {
|
||||||
|
this(Args.notNull(sslContext, "SSL context").getSocketFactory(),
|
||||||
|
null, null, hostnameVerifier);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated (4.4) Use {@link #SSLConnectionSocketFactory(SSLContext,
|
||||||
|
* String[], String[], HostnameVerifier)}
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public SSLConnectionSocketFactory(
|
||||||
|
final SSLContext sslContext,
|
||||||
|
final String[] supportedProtocols,
|
||||||
|
final String[] supportedCipherSuites,
|
||||||
|
final X509HostnameVerifier hostnameVerifier) {
|
||||||
|
this(Args.notNull(sslContext, "SSL context").getSocketFactory(),
|
||||||
|
supportedProtocols, supportedCipherSuites, hostnameVerifier);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated (4.4) Use {@link #SSLConnectionSocketFactory(javax.net.ssl.SSLSocketFactory,
|
||||||
|
* HostnameVerifier)}
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public SSLConnectionSocketFactory(
|
||||||
|
final javax.net.ssl.SSLSocketFactory socketfactory,
|
||||||
|
final X509HostnameVerifier hostnameVerifier) {
|
||||||
|
this(socketfactory, null, null, hostnameVerifier);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated (4.4) Use {@link #SSLConnectionSocketFactory(javax.net.ssl.SSLSocketFactory,
|
||||||
|
* String[], String[], HostnameVerifier)}
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public SSLConnectionSocketFactory(
|
||||||
|
final javax.net.ssl.SSLSocketFactory socketfactory,
|
||||||
|
final String[] supportedProtocols,
|
||||||
|
final String[] supportedCipherSuites,
|
||||||
|
final X509HostnameVerifier hostnameVerifier) {
|
||||||
|
this(socketfactory, supportedProtocols, supportedCipherSuites, (HostnameVerifier) hostnameVerifier);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 4.4
|
||||||
|
*/
|
||||||
|
public SSLConnectionSocketFactory(
|
||||||
|
final SSLContext sslContext, final HostnameVerifier hostnameVerifier) {
|
||||||
|
this(Args.notNull(sslContext, "SSL context").getSocketFactory(),
|
||||||
|
null, null, hostnameVerifier);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 4.4
|
||||||
|
*/
|
||||||
|
public SSLConnectionSocketFactory(
|
||||||
|
final SSLContext sslContext,
|
||||||
|
final String[] supportedProtocols,
|
||||||
|
final String[] supportedCipherSuites,
|
||||||
|
final HostnameVerifier hostnameVerifier) {
|
||||||
|
this(Args.notNull(sslContext, "SSL context").getSocketFactory(),
|
||||||
|
supportedProtocols, supportedCipherSuites, hostnameVerifier);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 4.4
|
||||||
|
*/
|
||||||
|
public SSLConnectionSocketFactory(
|
||||||
|
final javax.net.ssl.SSLSocketFactory socketfactory,
|
||||||
|
final HostnameVerifier hostnameVerifier) {
|
||||||
|
this(socketfactory, null, null, hostnameVerifier);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 4.4
|
||||||
|
*/
|
||||||
|
public SSLConnectionSocketFactory(
|
||||||
|
final javax.net.ssl.SSLSocketFactory socketfactory,
|
||||||
|
final String[] supportedProtocols,
|
||||||
|
final String[] supportedCipherSuites,
|
||||||
|
final HostnameVerifier hostnameVerifier) {
|
||||||
|
this.socketfactory = Args.notNull(socketfactory, "SSL socket factory");
|
||||||
|
this.supportedProtocols = supportedProtocols;
|
||||||
|
this.supportedCipherSuites = supportedCipherSuites;
|
||||||
|
this.hostnameVerifier = hostnameVerifier != null ? hostnameVerifier : getDefaultHostnameVerifier();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs any custom initialization for a newly created SSLSocket
|
||||||
|
* (before the SSL handshake happens).
|
||||||
|
* <p>
|
||||||
|
* The default implementation is a no-op, but could be overridden to, e.g.,
|
||||||
|
* call {@link SSLSocket#setEnabledCipherSuites(String[])}.
|
||||||
|
*
|
||||||
|
* @throws IOException may be thrown if overridden
|
||||||
|
*/
|
||||||
|
protected void prepareSocket(final SSLSocket socket) throws IOException {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Socket createSocket(final HttpContext context) throws IOException {
|
||||||
|
return SocketFactory.getDefault().createSocket();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Socket connectSocket(
|
||||||
|
final int connectTimeout,
|
||||||
|
final Socket socket,
|
||||||
|
final HttpHost host,
|
||||||
|
final InetSocketAddress remoteAddress,
|
||||||
|
final InetSocketAddress localAddress,
|
||||||
|
final HttpContext context) throws IOException {
|
||||||
|
Args.notNull(host, "HTTP host");
|
||||||
|
Args.notNull(remoteAddress, "Remote address");
|
||||||
|
final Socket sock = socket != null ? socket : createSocket(context);
|
||||||
|
if (localAddress != null) {
|
||||||
|
sock.bind(localAddress);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
if (connectTimeout > 0 && sock.getSoTimeout() == 0) {
|
||||||
|
sock.setSoTimeout(connectTimeout);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
if (this.log.isDebugEnabled()) {
|
||||||
|
this.log.debug("Connecting socket to " + remoteAddress + " with timeout " + connectTimeout);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
sock.connect(remoteAddress, connectTimeout);
|
||||||
|
} catch (final IOException ex) {
|
||||||
|
try {
|
||||||
|
sock.close();
|
||||||
|
} catch (final IOException ignore) {
|
||||||
|
}
|
||||||
|
throw ex;
|
||||||
|
}
|
||||||
|
// Setup SSL layering if necessary
|
||||||
|
if (sock instanceof SSLSocket) {
|
||||||
|
final SSLSocket sslsock = (SSLSocket) sock;
|
||||||
|
// this.log.debug("Starting handshake");
|
||||||
|
sslsock.startHandshake();
|
||||||
|
verifyHostname(sslsock, host.getHostName());
|
||||||
|
return sock;
|
||||||
|
} else {
|
||||||
|
return createLayeredSocket(sock, host.getHostName(), remoteAddress.getPort(), context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Socket createLayeredSocket(
|
||||||
|
final Socket socket,
|
||||||
|
final String target,
|
||||||
|
final int port,
|
||||||
|
final HttpContext context) throws IOException {
|
||||||
|
final SSLSocket sslsock = (SSLSocket) this.socketfactory.createSocket(
|
||||||
|
socket,
|
||||||
|
target,
|
||||||
|
port,
|
||||||
|
true);
|
||||||
|
if (supportedProtocols != null) {
|
||||||
|
sslsock.setEnabledProtocols(supportedProtocols);
|
||||||
|
} else {
|
||||||
|
// If supported protocols are not explicitly set, remove all SSL protocol versions
|
||||||
|
final String[] allProtocols = sslsock.getEnabledProtocols();
|
||||||
|
final List<String> enabledProtocols = new ArrayList<String>(allProtocols.length);
|
||||||
|
for (String protocol : allProtocols) {
|
||||||
|
if (!protocol.startsWith("SSL")) {
|
||||||
|
enabledProtocols.add(protocol);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!enabledProtocols.isEmpty()) {
|
||||||
|
sslsock.setEnabledProtocols(enabledProtocols.toArray(new String[enabledProtocols.size()]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (supportedCipherSuites != null) {
|
||||||
|
sslsock.setEnabledCipherSuites(supportedCipherSuites);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
if (this.log.isDebugEnabled()) {
|
||||||
|
this.log.debug("Enabled protocols: " + Arrays.asList(sslsock.getEnabledProtocols()));
|
||||||
|
this.log.debug("Enabled cipher suites:" + Arrays.asList(sslsock.getEnabledCipherSuites()));
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
prepareSocket(sslsock);
|
||||||
|
|
||||||
|
// Android specific code to enable SNI
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||||
|
if (Log.isLoggable(TAG, Log.DEBUG)) {
|
||||||
|
Log.d(TAG, "Enabling SNI for " + target);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Method method = sslsock.getClass().getMethod("setHostname", String.class);
|
||||||
|
method.invoke(sslsock, target);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
if (Log.isLoggable(TAG, Log.DEBUG)) {
|
||||||
|
Log.d(TAG, "SNI configuration failed", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// End of Android specific code
|
||||||
|
|
||||||
|
// this.log.debug("Starting handshake");
|
||||||
|
sslsock.startHandshake();
|
||||||
|
verifyHostname(sslsock, target);
|
||||||
|
return sslsock;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void verifyHostname(final SSLSocket sslsock, final String hostname) throws IOException {
|
||||||
|
try {
|
||||||
|
SSLSession session = sslsock.getSession();
|
||||||
|
if (session == null) {
|
||||||
|
// In our experience this only happens under IBM 1.4.x when
|
||||||
|
// spurious (unrelated) certificates show up in the server'
|
||||||
|
// chain. Hopefully this will unearth the real problem:
|
||||||
|
final InputStream in = sslsock.getInputStream();
|
||||||
|
in.available();
|
||||||
|
// If ssl.getInputStream().available() didn't cause an
|
||||||
|
// exception, maybe at least now the session is available?
|
||||||
|
session = sslsock.getSession();
|
||||||
|
if (session == null) {
|
||||||
|
// If it's still null, probably a startHandshake() will
|
||||||
|
// unearth the real problem.
|
||||||
|
sslsock.startHandshake();
|
||||||
|
session = sslsock.getSession();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (session == null) {
|
||||||
|
throw new SSLHandshakeException("SSL session not available");
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
if (this.log.isDebugEnabled()) {
|
||||||
|
this.log.debug("Secure session established");
|
||||||
|
this.log.debug(" negotiated protocol: " + session.getProtocol());
|
||||||
|
this.log.debug(" negotiated cipher suite: " + session.getCipherSuite());
|
||||||
|
try {
|
||||||
|
final Certificate[] certs = session.getPeerCertificates();
|
||||||
|
final X509Certificate x509 = (X509Certificate) certs[0];
|
||||||
|
final X500Principal peer = x509.getSubjectX500Principal();
|
||||||
|
this.log.debug(" peer principal: " + peer.toString());
|
||||||
|
final Collection<List<?>> altNames1 = x509.getSubjectAlternativeNames();
|
||||||
|
if (altNames1 != null) {
|
||||||
|
final List<String> altNames = new ArrayList<String>();
|
||||||
|
for (final List<?> aC : altNames1) {
|
||||||
|
if (!aC.isEmpty()) {
|
||||||
|
altNames.add((String) aC.get(1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.log.debug(" peer alternative names: " + altNames);
|
||||||
|
}
|
||||||
|
final X500Principal issuer = x509.getIssuerX500Principal();
|
||||||
|
this.log.debug(" issuer principal: " + issuer.toString());
|
||||||
|
final Collection<List<?>> altNames2 = x509.getIssuerAlternativeNames();
|
||||||
|
if (altNames2 != null) {
|
||||||
|
final List<String> altNames = new ArrayList<String>();
|
||||||
|
for (final List<?> aC : altNames2) {
|
||||||
|
if (!aC.isEmpty()) {
|
||||||
|
altNames.add((String) aC.get(1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.log.debug(" issuer alternative names: " + altNames);
|
||||||
|
}
|
||||||
|
} catch (Exception ignore) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!this.hostnameVerifier.verify(hostname, session)) {
|
||||||
|
final Certificate[] certs = session.getPeerCertificates();
|
||||||
|
final X509Certificate x509 = (X509Certificate) certs[0];
|
||||||
|
final X500Principal x500Principal = x509.getSubjectX500Principal();
|
||||||
|
throw new SSLPeerUnverifiedException("Host name '" + hostname + "' does not match " +
|
||||||
|
"the certificate subject provided by the peer (" + x500Principal.toString() + ")");
|
||||||
|
}
|
||||||
|
// verifyHostName() didn't blowup - good!
|
||||||
|
} catch (final IOException iox) {
|
||||||
|
// close the socket before re-throwing the exception
|
||||||
|
try {
|
||||||
|
sslsock.close();
|
||||||
|
} catch (final Exception x) { /*ignore*/ }
|
||||||
|
throw iox;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,85 @@
|
||||||
|
package com.example.myapplication;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import javax.net.ssl.TrustManager;
|
||||||
|
|
||||||
|
import android.webkit.WebView;
|
||||||
|
import info.guardianproject.netcipher.client.StrongBuilder;
|
||||||
|
import info.guardianproject.netcipher.client.StrongOkHttpClientBuilder;
|
||||||
|
import okhttp3.OkHttpClient;
|
||||||
|
import okhttp3.Request;
|
||||||
|
import okhttp3.Response;
|
||||||
|
|
||||||
|
public class StrongBuild implements StrongBuilder.Callback<OkHttpClient> {
|
||||||
|
|
||||||
|
private static final StrongBuild ourInstance = new StrongBuild();
|
||||||
|
|
||||||
|
public static StrongBuild getInstance() {
|
||||||
|
return ourInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String url;
|
||||||
|
public String htmlCode;
|
||||||
|
public WebView view;
|
||||||
|
|
||||||
|
public void loadURL(String url, WebView view, Context applicationContext){
|
||||||
|
try{
|
||||||
|
this.url = url;
|
||||||
|
this.view = view;
|
||||||
|
StrongOkHttpClientBuilder.
|
||||||
|
forMaxSecurity(applicationContext).
|
||||||
|
withTorValidation().
|
||||||
|
withBestProxy().
|
||||||
|
build(StrongBuild.this);
|
||||||
|
|
||||||
|
}catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
Log.e("info", "ERROR");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onConnected(final OkHttpClient okHttpClient){
|
||||||
|
Log.e("info" , "CONNECTED Strong Builder");
|
||||||
|
|
||||||
|
view.loadDataWithBaseURL(null, "ASD", "text/html", "utf-8", null);
|
||||||
|
new Thread(new Runnable(){
|
||||||
|
@Override
|
||||||
|
public void run(){
|
||||||
|
try{
|
||||||
|
Request request = new Request.Builder().url(url).build();
|
||||||
|
Response response = okHttpClient.newCall(request).execute();
|
||||||
|
|
||||||
|
Log.e("info", "RESPONSE: "+response.toString());
|
||||||
|
Log.e("info", response.body().string());
|
||||||
|
htmlCode = response.body().string();
|
||||||
|
|
||||||
|
Log.d("LOADING : " ,"LOADING");
|
||||||
|
view.loadDataWithBaseURL(null, htmlCode, "text/html", "utf-8", null);
|
||||||
|
|
||||||
|
}catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
Log.e("info", "ERROR - ATTEMPTING CONNECTION TO ONION DOMAIN");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).start();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onConnectionException(Exception e){
|
||||||
|
Log.e("info" , "Exception");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTimeout(){
|
||||||
|
Log.e("info" , "Timeout");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onInvalid(){
|
||||||
|
Log.e("info" , "Invalid");
|
||||||
|
}
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue