diff --git a/build.gradle.kts b/build.gradle.kts index 0079aee3..6f00c7dc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,9 +12,9 @@ buildscript { } dependencies { - classpath("com.android.tools.build:gradle:4.0.0-beta04") + classpath("com.android.tools.build:gradle:4.0.0-rc01") classpath("com.github.ben-manes:gradle-versions-plugin:0.28.0") - classpath("com.google.firebase:firebase-crashlytics-gradle:2.0.0-beta04") + classpath("com.google.firebase:firebase-crashlytics-gradle:2.1.1") classpath("com.google.android.gms:oss-licenses-plugin:0.10.2") classpath("com.google.gms:google-services:4.3.3") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") diff --git a/detekt.yml b/detekt.yml index 4874946f..fdfc1d2e 100644 --- a/detekt.yml +++ b/detekt.yml @@ -19,10 +19,8 @@ complexity: ignoreSingleWhenExpression: false ignoreSimpleWhenEntries: false ignoreNestingFunctions: false - nestingFunctions: run,let,apply,with,also,use,forEach,isNotNull,ifNull LabeledExpression: active: false - ignoredLabels: '' LargeClass: active: true threshold: 600 @@ -35,6 +33,7 @@ complexity: constructorThreshold: 7 ignoreDefaultParameters: true ignoreDataClasses: true + ignoreAnnotated: [] MethodOverloading: active: false NestedBlockDepth: @@ -42,14 +41,14 @@ complexity: threshold: 4 StringLiteralDuplication: active: true - excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt' + excludes: ['**/test/**', '**/androidTest/**', '**/*.Test.kt', '**/*.Spec.kt', '**/*.Spek.kt'] threshold: 3 ignoreAnnotation: true excludeStringsWithLessThan5Characters: true ignoreStringsRegex: '$^' TooManyFunctions: active: true - excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt' + excludes: ['**/test/**', '**/androidTest/**', '**/*.Test.kt', '**/*.Spec.kt', '**/*.Spek.kt'] thresholdInFiles: 11 thresholdInClasses: 11 thresholdInInterfaces: 11 @@ -105,7 +104,7 @@ exceptions: active: true ExceptionRaisedInUnexpectedLocation: active: true - methodNames: 'toString,hashCode,equals,finalize' + methodNames: [toString, hashCode, equals, finalize] InstanceOfCheckForException: active: false NotImplementedDeclaration: @@ -119,7 +118,11 @@ exceptions: ignoreLabeled: true SwallowedException: active: true - ignoredExceptionTypes: 'InterruptedException,NumberFormatException,ParseException,MalformedURLException' + ignoredExceptionTypes: + - InterruptedException + - NumberFormatException + - ParseException + - MalformedURLException allowedExceptionNameRegex: '^(_|(ignore|expected).*)' ThrowingExceptionFromFinally: active: false @@ -127,12 +130,15 @@ exceptions: active: true ThrowingExceptionsWithoutMessageOrCause: active: true - exceptions: 'IllegalArgumentException,IllegalStateException,IOException' + exceptions: + - IllegalArgumentException + - IllegalStateException + - IOException ThrowingNewInstanceOfSameException: active: true TooGenericExceptionCaught: active: true - excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt' + excludes: ['**/test/**', '**/androidTest/**', '**/*.Test.kt', '**/*.Spec.kt', '**/*.Spek.kt'] exceptionNames: - ArrayIndexOutOfBoundsException - Error @@ -259,37 +265,37 @@ naming: ClassNaming: active: true 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: 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]*' privateParameterPattern: '[a-z][A-Za-z0-9]*' excludeClassPattern: '$^' ignoreOverridden: true EnumNaming: 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]*' ForbiddenClassName: active: true - excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt' - forbiddenName: '' + excludes: ['**/test/**', '**/androidTest/**', '**/*.Test.kt', '**/*.Spec.kt', '**/*.Spek.kt'] + forbiddenName: [] FunctionMaxLength: active: true - excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt' + excludes: ['**/test/**', '**/androidTest/**', '**/*.Test.kt', '**/*.Spec.kt', '**/*.Spek.kt'] maximumFunctionNameLength: 30 FunctionMinLength: active: false FunctionNaming: 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]*)|(`.*`)$' excludeClassPattern: '$^' ignoreOverridden: true FunctionParameterNaming: 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]*' excludeClassPattern: '$^' ignoreOverridden: true @@ -303,29 +309,29 @@ naming: active: false ObjectPropertyNaming: 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]*' propertyPattern: '[A-Za-z][_A-Za-z0-9]*' privatePropertyPattern: '(_)?[A-Za-z][_A-Za-z0-9]*' PackageNaming: 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]*)*$' TopLevelPropertyNaming: 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]*' propertyPattern: '[A-Za-z][_A-Za-z0-9]*' privatePropertyPattern: '_?[A-Za-z][_A-Za-z0-9]*' VariableMaxLength: active: true - excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt' + excludes: ['**/test/**', '**/androidTest/**', '**/*.Test.kt', '**/*.Spec.kt', '**/*.Spek.kt'] maximumVariableNameLength: 64 VariableMinLength: active: false VariableNaming: 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]*' privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*' excludeClassPattern: '$^' @@ -337,10 +343,10 @@ performance: active: true ForEachOnRange: active: true - excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt' + excludes: ['**/test/**', '**/androidTest/**', '**/*.Test.kt', '**/*.Spec.kt', '**/*.Spek.kt'] SpreadOperator: active: true - excludes: '**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt' + excludes: ['**/test/**', '**/androidTest/**', '**/*.Test.kt', '**/*.Spec.kt', '**/*.Spek.kt'] UnnecessaryTemporaryInstantiation: active: true @@ -376,6 +382,10 @@ potential-bugs: active: true UnconditionalJumpStatementInLoop: active: true + UnnecessaryNotNullOperator: + active: false + UnnecessarySafeCall: + active: false UnreachableCode: active: true UnsafeCallOnNullableType: @@ -408,7 +418,7 @@ style: includeLineWrapping: false ForbiddenComment: active: true - values: 'TODO:,FIXME:,STOPSHIP:' + values: ['TODO:', 'FIXME:', 'STOPSHIP:'] allowedPatterns: '' ForbiddenImport: active: true @@ -416,10 +426,10 @@ style: forbiddenPatterns: '' ForbiddenMethodCall: active: true - methods: '' + methods: [] ForbiddenPublicDataClass: active: true - ignorePackages: '*.internal,*.internal.*' + ignorePackages: ['*.internal', '*.internal.*'] ForbiddenVoid: active: true ignoreOverridden: true @@ -428,7 +438,7 @@ style: active: true ignoreOverridableFunction: true excludedFunctions: 'describeContents' - excludeAnnotatedFunction: 'dagger.Provides' + excludeAnnotatedFunction: ['dagger.Provides'] LibraryCodeMustSpecifyReturnType: active: true LoopWithTooManyJumpStatements: diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index f3d88b1c..490fda85 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 6623300b..21e622da 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/mobile/build.gradle.kts b/mobile/build.gradle.kts index fa62d5bd..e2372b65 100644 --- a/mobile/build.gradle.kts +++ b/mobile/build.gradle.kts @@ -71,7 +71,7 @@ dependencies { kapt("androidx.room:room-compiler:$roomVersion") implementation("androidx.browser:browser:1.2.0") implementation("androidx.core:core-ktx:1.3.0-rc01") - implementation("androidx.emoji:emoji:1.1.0-beta01") + implementation("androidx.emoji:emoji:1.1.0-rc01") implementation("androidx.fragment:fragment-ktx:1.2.4") implementation("androidx.lifecycle:lifecycle-common-java8:$lifecycleVersion") implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleVersion") @@ -79,19 +79,19 @@ dependencies { implementation("androidx.preference:preference:1.1.1") implementation("androidx.room:room-ktx:$roomVersion") implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-rc01") - implementation("com.android.billingclient:billing-ktx:2.2.0") + implementation("com.android.billingclient:billing-ktx:2.2.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.material:material:1.1.0") - implementation("com.google.firebase:firebase-analytics-ktx:17.3.0") - implementation("com.google.firebase:firebase-crashlytics:17.0.0-beta04") + implementation("com.google.firebase:firebase-analytics-ktx:17.4.2") + implementation("com.google.firebase:firebase-crashlytics:17.0.0") implementation("com.google.zxing:core:3.4.0") implementation("com.jakewharton.timber:timber:4.7.1") implementation("com.linkedin.dexmaker:dexmaker:2.25.1") implementation("com.takisoft.preferencex:preferencex-simplemenu:1.1.0") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:${rootProject.extra.get("kotlinVersion")}") implementation("org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.2") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.5") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.7") testImplementation("junit:junit:4.13") androidTestImplementation("androidx.room:room-testing:$roomVersion") androidTestImplementation("androidx.test:runner:1.2.0")