Update dependencies
This commit is contained in:
@@ -3,16 +3,16 @@
|
|||||||
apply plugin: 'com.github.ben-manes.versions'
|
apply plugin: 'com.github.ben-manes.versions'
|
||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
ext.kotlinVersion = '1.3.61'
|
ext.kotlinVersion = '1.3.72'
|
||||||
repositories {
|
repositories {
|
||||||
google()
|
google()
|
||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:4.0.0-beta01'
|
classpath 'com.android.tools.build:gradle:4.0.0-beta04'
|
||||||
classpath 'com.github.ben-manes:gradle-versions-plugin:0.28.0'
|
classpath 'com.github.ben-manes:gradle-versions-plugin:0.28.0'
|
||||||
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.0.0-beta02'
|
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.0.0-beta04'
|
||||||
classpath 'com.google.android.gms:oss-licenses-plugin:0.9.5'
|
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.2'
|
||||||
classpath 'com.google.gms:google-services:4.3.3'
|
classpath 'com.google.gms:google-services:4.3.3'
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
|
||||||
}
|
}
|
||||||
|
|||||||
66
detekt.yml
66
detekt.yml
@@ -1,4 +1,4 @@
|
|||||||
# https://github.com/arturbosch/detekt/blob/1.5.0/detekt-cli/src/main/resources/default-detekt-config.yml
|
# https://github.com/arturbosch/detekt/blob/1.7.1/detekt-cli/src/main/resources/default-detekt-config.yml
|
||||||
|
|
||||||
comments:
|
comments:
|
||||||
active: false
|
active: false
|
||||||
@@ -12,6 +12,7 @@ complexity:
|
|||||||
active: true
|
active: true
|
||||||
threshold: 10
|
threshold: 10
|
||||||
includeStaticDeclarations: false
|
includeStaticDeclarations: false
|
||||||
|
includePrivateDeclarations: false
|
||||||
ComplexMethod:
|
ComplexMethod:
|
||||||
active: true
|
active: true
|
||||||
threshold: 15
|
threshold: 15
|
||||||
@@ -21,7 +22,7 @@ complexity:
|
|||||||
nestingFunctions: run,let,apply,with,also,use,forEach,isNotNull,ifNull
|
nestingFunctions: run,let,apply,with,also,use,forEach,isNotNull,ifNull
|
||||||
LabeledExpression:
|
LabeledExpression:
|
||||||
active: false
|
active: false
|
||||||
ignoredLabels: ""
|
ignoredLabels: ''
|
||||||
LargeClass:
|
LargeClass:
|
||||||
active: true
|
active: true
|
||||||
threshold: 600
|
threshold: 600
|
||||||
@@ -30,8 +31,10 @@ complexity:
|
|||||||
threshold: 60
|
threshold: 60
|
||||||
LongParameterList:
|
LongParameterList:
|
||||||
active: true
|
active: true
|
||||||
threshold: 6
|
functionThreshold: 6
|
||||||
|
constructorThreshold: 7
|
||||||
ignoreDefaultParameters: true
|
ignoreDefaultParameters: true
|
||||||
|
ignoreDataClasses: true
|
||||||
MethodOverloading:
|
MethodOverloading:
|
||||||
active: false
|
active: false
|
||||||
NestedBlockDepth:
|
NestedBlockDepth:
|
||||||
@@ -39,14 +42,14 @@ complexity:
|
|||||||
threshold: 4
|
threshold: 4
|
||||||
StringLiteralDuplication:
|
StringLiteralDuplication:
|
||||||
active: true
|
active: true
|
||||||
excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
|
excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt'
|
||||||
threshold: 3
|
threshold: 3
|
||||||
ignoreAnnotation: true
|
ignoreAnnotation: true
|
||||||
excludeStringsWithLessThan5Characters: true
|
excludeStringsWithLessThan5Characters: true
|
||||||
ignoreStringsRegex: '$^'
|
ignoreStringsRegex: '$^'
|
||||||
TooManyFunctions:
|
TooManyFunctions:
|
||||||
active: true
|
active: true
|
||||||
excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
|
excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt'
|
||||||
thresholdInFiles: 11
|
thresholdInFiles: 11
|
||||||
thresholdInClasses: 11
|
thresholdInClasses: 11
|
||||||
thresholdInInterfaces: 11
|
thresholdInInterfaces: 11
|
||||||
@@ -67,7 +70,7 @@ empty-blocks:
|
|||||||
active: true
|
active: true
|
||||||
EmptyCatchBlock:
|
EmptyCatchBlock:
|
||||||
active: true
|
active: true
|
||||||
allowedExceptionNameRegex: "^(_|(ignore|expected).*)"
|
allowedExceptionNameRegex: '^(_|(ignore|expected).*)'
|
||||||
EmptyClassBlock:
|
EmptyClassBlock:
|
||||||
active: true
|
active: true
|
||||||
EmptyDefaultConstructor:
|
EmptyDefaultConstructor:
|
||||||
@@ -91,6 +94,8 @@ empty-blocks:
|
|||||||
active: true
|
active: true
|
||||||
EmptySecondaryConstructor:
|
EmptySecondaryConstructor:
|
||||||
active: true
|
active: true
|
||||||
|
EmptyTryBlock:
|
||||||
|
active: true
|
||||||
EmptyWhenBlock:
|
EmptyWhenBlock:
|
||||||
active: true
|
active: true
|
||||||
EmptyWhileBlock:
|
EmptyWhileBlock:
|
||||||
@@ -115,7 +120,7 @@ exceptions:
|
|||||||
SwallowedException:
|
SwallowedException:
|
||||||
active: true
|
active: true
|
||||||
ignoredExceptionTypes: 'InterruptedException,NumberFormatException,ParseException,MalformedURLException'
|
ignoredExceptionTypes: 'InterruptedException,NumberFormatException,ParseException,MalformedURLException'
|
||||||
allowedExceptionNameRegex: "^(_|(ignore|expected).*)"
|
allowedExceptionNameRegex: '^(_|(ignore|expected).*)'
|
||||||
ThrowingExceptionFromFinally:
|
ThrowingExceptionFromFinally:
|
||||||
active: false
|
active: false
|
||||||
ThrowingExceptionInMain:
|
ThrowingExceptionInMain:
|
||||||
@@ -127,7 +132,7 @@ exceptions:
|
|||||||
active: true
|
active: true
|
||||||
TooGenericExceptionCaught:
|
TooGenericExceptionCaught:
|
||||||
active: true
|
active: true
|
||||||
excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
|
excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt'
|
||||||
exceptionNames:
|
exceptionNames:
|
||||||
- ArrayIndexOutOfBoundsException
|
- ArrayIndexOutOfBoundsException
|
||||||
- Error
|
- Error
|
||||||
@@ -137,7 +142,7 @@ exceptions:
|
|||||||
- IndexOutOfBoundsException
|
- IndexOutOfBoundsException
|
||||||
- RuntimeException
|
- RuntimeException
|
||||||
- Throwable
|
- Throwable
|
||||||
allowedExceptionNameRegex: "^(_|(ignore|expected).*)"
|
allowedExceptionNameRegex: '^(_|(ignore|expected).*)'
|
||||||
TooGenericExceptionThrown:
|
TooGenericExceptionThrown:
|
||||||
active: true
|
active: true
|
||||||
exceptionNames:
|
exceptionNames:
|
||||||
@@ -166,6 +171,7 @@ formatting:
|
|||||||
FinalNewline:
|
FinalNewline:
|
||||||
active: true
|
active: true
|
||||||
autoCorrect: true
|
autoCorrect: true
|
||||||
|
insertFinalNewLine: true
|
||||||
ImportOrdering:
|
ImportOrdering:
|
||||||
active: false
|
active: false
|
||||||
Indentation:
|
Indentation:
|
||||||
@@ -253,37 +259,37 @@ naming:
|
|||||||
ClassNaming:
|
ClassNaming:
|
||||||
active: true
|
active: true
|
||||||
classPattern: '[A-Z$][a-zA-Z0-9$]*'
|
classPattern: '[A-Z$][a-zA-Z0-9$]*'
|
||||||
excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
|
excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt'
|
||||||
ConstructorParameterNaming:
|
ConstructorParameterNaming:
|
||||||
active: true
|
active: true
|
||||||
excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
|
excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt'
|
||||||
parameterPattern: '[a-z][A-Za-z0-9]*'
|
parameterPattern: '[a-z][A-Za-z0-9]*'
|
||||||
privateParameterPattern: '[a-z][A-Za-z0-9]*'
|
privateParameterPattern: '[a-z][A-Za-z0-9]*'
|
||||||
excludeClassPattern: '$^'
|
excludeClassPattern: '$^'
|
||||||
ignoreOverridden: true
|
ignoreOverridden: true
|
||||||
EnumNaming:
|
EnumNaming:
|
||||||
active: true
|
active: true
|
||||||
excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
|
excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt'
|
||||||
enumEntryPattern: '^[A-Z][_a-zA-Z0-9]*'
|
enumEntryPattern: '^[A-Z][_a-zA-Z0-9]*'
|
||||||
ForbiddenClassName:
|
ForbiddenClassName:
|
||||||
active: true
|
active: true
|
||||||
excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
|
excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt'
|
||||||
forbiddenName: ''
|
forbiddenName: ''
|
||||||
FunctionMaxLength:
|
FunctionMaxLength:
|
||||||
active: true
|
active: true
|
||||||
excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
|
excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt'
|
||||||
maximumFunctionNameLength: 30
|
maximumFunctionNameLength: 30
|
||||||
FunctionMinLength:
|
FunctionMinLength:
|
||||||
active: false
|
active: false
|
||||||
FunctionNaming:
|
FunctionNaming:
|
||||||
active: true
|
active: true
|
||||||
excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
|
excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt'
|
||||||
functionPattern: '^([a-z$][a-zA-Z$0-9]*)|(`.*`)$'
|
functionPattern: '^([a-z$][a-zA-Z$0-9]*)|(`.*`)$'
|
||||||
excludeClassPattern: '$^'
|
excludeClassPattern: '$^'
|
||||||
ignoreOverridden: true
|
ignoreOverridden: true
|
||||||
FunctionParameterNaming:
|
FunctionParameterNaming:
|
||||||
active: true
|
active: true
|
||||||
excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
|
excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt'
|
||||||
parameterPattern: '[a-z][A-Za-z0-9]*'
|
parameterPattern: '[a-z][A-Za-z0-9]*'
|
||||||
excludeClassPattern: '$^'
|
excludeClassPattern: '$^'
|
||||||
ignoreOverridden: true
|
ignoreOverridden: true
|
||||||
@@ -292,33 +298,34 @@ naming:
|
|||||||
rootPackage: ''
|
rootPackage: ''
|
||||||
MatchingDeclarationName:
|
MatchingDeclarationName:
|
||||||
active: true
|
active: true
|
||||||
|
mustBeFirst: true
|
||||||
MemberNameEqualsClassName:
|
MemberNameEqualsClassName:
|
||||||
active: false
|
active: false
|
||||||
ObjectPropertyNaming:
|
ObjectPropertyNaming:
|
||||||
active: true
|
active: true
|
||||||
excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
|
excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt'
|
||||||
constantPattern: '[A-Za-z][_A-Za-z0-9]*'
|
constantPattern: '[A-Za-z][_A-Za-z0-9]*'
|
||||||
propertyPattern: '[A-Za-z][_A-Za-z0-9]*'
|
propertyPattern: '[A-Za-z][_A-Za-z0-9]*'
|
||||||
privatePropertyPattern: '(_)?[A-Za-z][_A-Za-z0-9]*'
|
privatePropertyPattern: '(_)?[A-Za-z][_A-Za-z0-9]*'
|
||||||
PackageNaming:
|
PackageNaming:
|
||||||
active: true
|
active: true
|
||||||
excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
|
excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt'
|
||||||
packagePattern: '^[a-z]+(\.[a-z][A-Za-z0-9]*)*$'
|
packagePattern: '^[a-z]+(\.[a-z][A-Za-z0-9]*)*$'
|
||||||
TopLevelPropertyNaming:
|
TopLevelPropertyNaming:
|
||||||
active: true
|
active: true
|
||||||
excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
|
excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt'
|
||||||
constantPattern: '[A-Z][_A-Z0-9]*'
|
constantPattern: '[A-Z][_A-Z0-9]*'
|
||||||
propertyPattern: '[A-Za-z][_A-Za-z0-9]*'
|
propertyPattern: '[A-Za-z][_A-Za-z0-9]*'
|
||||||
privatePropertyPattern: '_?[A-Za-z][_A-Za-z0-9]*'
|
privatePropertyPattern: '_?[A-Za-z][_A-Za-z0-9]*'
|
||||||
VariableMaxLength:
|
VariableMaxLength:
|
||||||
active: true
|
active: true
|
||||||
excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
|
excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt'
|
||||||
maximumVariableNameLength: 64
|
maximumVariableNameLength: 64
|
||||||
VariableMinLength:
|
VariableMinLength:
|
||||||
active: false
|
active: false
|
||||||
VariableNaming:
|
VariableNaming:
|
||||||
active: true
|
active: true
|
||||||
excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
|
excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt'
|
||||||
variablePattern: '[a-z][A-Za-z0-9]*'
|
variablePattern: '[a-z][A-Za-z0-9]*'
|
||||||
privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*'
|
privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*'
|
||||||
excludeClassPattern: '$^'
|
excludeClassPattern: '$^'
|
||||||
@@ -330,10 +337,10 @@ performance:
|
|||||||
active: true
|
active: true
|
||||||
ForEachOnRange:
|
ForEachOnRange:
|
||||||
active: true
|
active: true
|
||||||
excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
|
excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt'
|
||||||
SpreadOperator:
|
SpreadOperator:
|
||||||
active: true
|
active: true
|
||||||
excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt"
|
excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt'
|
||||||
UnnecessaryTemporaryInstantiation:
|
UnnecessaryTemporaryInstantiation:
|
||||||
active: true
|
active: true
|
||||||
|
|
||||||
@@ -402,11 +409,11 @@ style:
|
|||||||
ForbiddenComment:
|
ForbiddenComment:
|
||||||
active: true
|
active: true
|
||||||
values: 'TODO:,FIXME:,STOPSHIP:'
|
values: 'TODO:,FIXME:,STOPSHIP:'
|
||||||
allowedPatterns: ""
|
allowedPatterns: ''
|
||||||
ForbiddenImport:
|
ForbiddenImport:
|
||||||
active: true
|
active: true
|
||||||
imports: ''
|
imports: []
|
||||||
forbiddenPatterns: ""
|
forbiddenPatterns: ''
|
||||||
ForbiddenMethodCall:
|
ForbiddenMethodCall:
|
||||||
active: true
|
active: true
|
||||||
methods: ''
|
methods: ''
|
||||||
@@ -421,7 +428,7 @@ style:
|
|||||||
active: true
|
active: true
|
||||||
ignoreOverridableFunction: true
|
ignoreOverridableFunction: true
|
||||||
excludedFunctions: 'describeContents'
|
excludedFunctions: 'describeContents'
|
||||||
excludeAnnotatedFunction: "dagger.Provides"
|
excludeAnnotatedFunction: 'dagger.Provides'
|
||||||
LibraryCodeMustSpecifyReturnType:
|
LibraryCodeMustSpecifyReturnType:
|
||||||
active: true
|
active: true
|
||||||
LoopWithTooManyJumpStatements:
|
LoopWithTooManyJumpStatements:
|
||||||
@@ -477,8 +484,7 @@ style:
|
|||||||
UnderscoresInNumericLiterals:
|
UnderscoresInNumericLiterals:
|
||||||
active: false
|
active: false
|
||||||
UnnecessaryAbstractClass:
|
UnnecessaryAbstractClass:
|
||||||
active: true
|
active: false
|
||||||
excludeAnnotatedClasses: "dagger.Module"
|
|
||||||
UnnecessaryAnnotationUseSiteTarget:
|
UnnecessaryAnnotationUseSiteTarget:
|
||||||
active: true
|
active: true
|
||||||
UnnecessaryApply:
|
UnnecessaryApply:
|
||||||
@@ -497,7 +503,7 @@ style:
|
|||||||
active: true
|
active: true
|
||||||
UnusedPrivateMember:
|
UnusedPrivateMember:
|
||||||
active: true
|
active: true
|
||||||
allowedNames: "(_|ignored|expected|serialVersionUID)"
|
allowedNames: '(_|ignored|expected|serialVersionUID)'
|
||||||
UseArrayLiteralsInAnnotations:
|
UseArrayLiteralsInAnnotations:
|
||||||
active: true
|
active: true
|
||||||
UseCheckOrError:
|
UseCheckOrError:
|
||||||
|
|||||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,5 +1,5 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.2.1-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
|||||||
3
gradlew.bat
vendored
3
gradlew.bat
vendored
@@ -29,6 +29,9 @@ if "%DIRNAME%" == "" set DIRNAME=.
|
|||||||
set APP_BASE_NAME=%~n0
|
set APP_BASE_NAME=%~n0
|
||||||
set APP_HOME=%DIRNAME%
|
set APP_HOME=%DIRNAME%
|
||||||
|
|
||||||
|
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||||
|
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||||
|
|
||||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||||
|
|
||||||
|
|||||||
@@ -65,34 +65,34 @@ androidExtensions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
def lifecycleVersion = '2.2.0'
|
def lifecycleVersion = '2.2.0'
|
||||||
def roomVersion = '2.2.4'
|
def roomVersion = '2.2.5'
|
||||||
dependencies {
|
dependencies {
|
||||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.4'
|
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.5'
|
||||||
kapt "androidx.room:room-compiler:$roomVersion"
|
kapt "androidx.room:room-compiler:$roomVersion"
|
||||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||||
implementation 'androidx.browser:browser:1.2.0'
|
implementation 'androidx.browser:browser:1.2.0'
|
||||||
implementation 'androidx.core:core-ktx:1.2.0'
|
implementation 'androidx.core:core-ktx:1.2.0'
|
||||||
implementation 'androidx.emoji:emoji:1.0.0'
|
implementation 'androidx.emoji:emoji:1.0.0'
|
||||||
implementation 'androidx.fragment:fragment-ktx:1.2.2'
|
implementation 'androidx.fragment:fragment-ktx:1.2.4'
|
||||||
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycleVersion"
|
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycleVersion"
|
||||||
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleVersion"
|
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleVersion"
|
||||||
implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleVersion"
|
implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleVersion"
|
||||||
implementation 'androidx.preference:preference:1.1.0'
|
implementation 'androidx.preference:preference:1.1.1'
|
||||||
implementation "androidx.room:room-ktx:$roomVersion"
|
implementation "androidx.room:room-ktx:$roomVersion"
|
||||||
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0'
|
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-rc01'
|
||||||
implementation 'com.android.billingclient:billing-ktx:2.1.0'
|
implementation 'com.android.billingclient:billing-ktx:2.2.0'
|
||||||
implementation 'com.github.topjohnwu.libsu:core:2.5.1'
|
implementation 'com.github.topjohnwu.libsu:core:2.5.1'
|
||||||
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.0'
|
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.0'
|
||||||
implementation 'com.google.android.material:material:1.1.0'
|
implementation 'com.google.android.material:material:1.1.0'
|
||||||
implementation 'com.google.firebase:firebase-analytics:17.2.3'
|
implementation 'com.google.firebase:firebase-analytics:17.3.0'
|
||||||
implementation 'com.google.firebase:firebase-crashlytics:17.0.0-beta01'
|
implementation 'com.google.firebase:firebase-crashlytics:17.0.0-beta04'
|
||||||
implementation 'com.google.zxing:core:3.4.0'
|
implementation 'com.google.zxing:core:3.4.0'
|
||||||
implementation 'com.jakewharton.timber:timber:4.7.1'
|
implementation 'com.jakewharton.timber:timber:4.7.1'
|
||||||
implementation 'com.linkedin.dexmaker:dexmaker:2.25.1'
|
implementation 'com.linkedin.dexmaker:dexmaker:2.25.1'
|
||||||
implementation 'com.takisoft.preferencex:preferencex-simplemenu:1.1.0'
|
implementation 'com.takisoft.preferencex:preferencex-simplemenu:1.1.0'
|
||||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion"
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion"
|
||||||
implementation 'org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3'
|
implementation 'org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3'
|
||||||
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.3'
|
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.5'
|
||||||
testImplementation 'junit:junit:4.13'
|
testImplementation 'junit:junit:4.13'
|
||||||
androidTestImplementation "androidx.room:room-testing:$roomVersion"
|
androidTestImplementation "androidx.room:room-testing:$roomVersion"
|
||||||
androidTestImplementation 'androidx.test:runner:1.2.0'
|
androidTestImplementation 'androidx.test:runner:1.2.0'
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class RepeaterService : Service(), CoroutineScope, WifiP2pManager.ChannelListene
|
|||||||
*/
|
*/
|
||||||
private val p2pManager: WifiP2pManager? by lazy {
|
private val p2pManager: WifiP2pManager? by lazy {
|
||||||
try {
|
try {
|
||||||
app.getSystemService<WifiP2pManager>()
|
app.getSystemService()
|
||||||
} catch (e: RuntimeException) {
|
} catch (e: RuntimeException) {
|
||||||
Timber.w(e)
|
Timber.w(e)
|
||||||
null
|
null
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package be.mygod.vpnhotspot.manage
|
package be.mygod.vpnhotspot.manage
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
|
||||||
import android.annotation.TargetApi
|
import android.annotation.TargetApi
|
||||||
import android.bluetooth.BluetoothAdapter
|
import android.bluetooth.BluetoothAdapter
|
||||||
import android.bluetooth.BluetoothProfile
|
import android.bluetooth.BluetoothProfile
|
||||||
@@ -27,7 +26,7 @@ class BluetoothTethering(context: Context, val stateListener: (Int) -> Unit) :
|
|||||||
* From BluetoothProfile.java.
|
* From BluetoothProfile.java.
|
||||||
*/
|
*/
|
||||||
private const val PAN = 5
|
private const val PAN = 5
|
||||||
private val isTetheringOn by lazy @SuppressLint("PrivateApi") {
|
private val isTetheringOn by lazy {
|
||||||
Class.forName("android.bluetooth.BluetoothPan").getDeclaredMethod("isTetheringOn")
|
Class.forName("android.bluetooth.BluetoothPan").getDeclaredMethod("isTetheringOn")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package be.mygod.vpnhotspot.net
|
package be.mygod.vpnhotspot.net
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.net.ConnectivityManager
|
import android.net.ConnectivityManager
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
@@ -84,7 +83,7 @@ object TetheringManager {
|
|||||||
*/
|
*/
|
||||||
const val TETHERING_BLUETOOTH = 2
|
const val TETHERING_BLUETOOTH = 2
|
||||||
|
|
||||||
private val classOnStartTetheringCallback by lazy @SuppressLint("PrivateApi") {
|
private val classOnStartTetheringCallback by lazy {
|
||||||
Class.forName("android.net.ConnectivityManager\$OnStartTetheringCallback")
|
Class.forName("android.net.ConnectivityManager\$OnStartTetheringCallback")
|
||||||
}
|
}
|
||||||
private val startTethering by lazy {
|
private val startTethering by lazy {
|
||||||
|
|||||||
Reference in New Issue
Block a user