diff --git a/build.gradle b/build.gradle index 2c63ff6f..ad268e94 100644 --- a/build.gradle +++ b/build.gradle @@ -12,10 +12,10 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:3.5.0' - classpath 'com.github.ben-manes:gradle-versions-plugin:0.25.0' + classpath 'com.android.tools.build:gradle:3.5.1' + classpath 'com.github.ben-manes:gradle-versions-plugin:0.27.0' classpath 'com.google.gms:google-services:4.3.2' - classpath 'io.fabric.tools:gradle:1.31.0' + classpath 'io.fabric.tools:gradle:1.31.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" } } @@ -25,6 +25,7 @@ allprojects { google() jcenter() maven { url 'https://jitpack.io' } + maven { url "https://kotlin.bintray.com/kotlinx" } } } diff --git a/detekt.yml b/detekt.yml index 732569a4..464703f0 100644 --- a/detekt.yml +++ b/detekt.yml @@ -1,4 +1,4 @@ -# https://github.com/arturbosch/detekt/blob/1.0.1/detekt-cli/src/main/resources/default-detekt-config.yml +# https://github.com/arturbosch/detekt/blob/1.1.0/detekt-cli/src/main/resources/default-detekt-config.yml comments: active: false @@ -93,8 +93,7 @@ exceptions: active: true methodNames: 'toString,hashCode,equals,finalize' InstanceOfCheckForException: - active: true - excludes: "**/test/**,**/androidTest/**,**/*.Test.kt,**/*.Spec.kt,**/*.Spek.kt" + active: false NotImplementedDeclaration: active: true PrintStackTrace: @@ -103,6 +102,7 @@ exceptions: active: false ReturnFromFinally: active: true + ignoreLabeled: true SwallowedException: active: true ignoredExceptionTypes: 'InterruptedException,NumberFormatException,ParseException,MalformedURLException' @@ -325,6 +325,8 @@ performance: potential-bugs: active: true + Deprecation: + active: true DuplicateCaseInWhenExpression: active: true EqualsAlwaysReturnsTrueOrFalse: @@ -333,6 +335,8 @@ potential-bugs: active: true ExplicitGarbageCollectionCall: active: true + HasPlatformType: + active: true InvalidRange: active: true IteratorHasNextCallsNextMethod: @@ -378,9 +382,11 @@ style: ForbiddenComment: active: true values: 'TODO:,FIXME:,STOPSHIP:' + allowedPatterns: "" ForbiddenImport: active: true imports: '' + forbiddenPatterns: "" ForbiddenVoid: active: true ignoreOverridden: true @@ -389,6 +395,7 @@ style: active: true ignoreOverridableFunction: true excludedFunctions: 'describeContents' + excludeAnnotatedFunction: "dagger.Provides" LibraryCodeMustSpecifyReturnType: active: true LoopWithTooManyJumpStatements: @@ -419,11 +426,13 @@ style: OptionalUnit: active: true OptionalWhenBraces: - active: true + active: false PreferToOverPairSyntax: active: false ProtectedMemberInFinalClass: active: true + RedundantExplicitType: + active: true RedundantVisibilityModifierRule: active: true ReturnCount: @@ -461,10 +470,14 @@ style: UnusedPrivateMember: active: true allowedNames: "(_|ignored|expected|serialVersionUID)" + UseArrayLiteralsInAnnotations: + active: true UseCheckOrError: active: true UseDataClass: active: false + UseIfInsteadOfWhen: + active: false UseRequire: active: true UselessCallOnNotNull: diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ca9d6281..3a54a333 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-5.6.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.3-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/mobile/build.gradle b/mobile/build.gradle index cf287a50..cab6a2cf 100644 --- a/mobile/build.gradle +++ b/mobile/build.gradle @@ -13,8 +13,8 @@ def aux = [ 'com.crashlytics.sdk.android:crashlytics:2.10.1', 'com.google.firebase:firebase-analytics:17.2.0', ] -def lifecycleVersion = '2.2.0-alpha05' -def roomVersion = '2.1.0' +def lifecycleVersion = '2.2.0-rc01' +def roomVersion = '2.2.1' android { compileSdkVersion 29 @@ -31,11 +31,10 @@ android { versionCode 215 versionName '2.6.2' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - javaCompileOptions { - annotationProcessorOptions { - arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] - } - } + javaCompileOptions.annotationProcessorOptions.arguments = [ + "room.incremental": "true", + "room.schemaLocation": "$projectDir/schemas".toString(), + ] buildConfigField "boolean", "DONATIONS", "true" } buildTypes { @@ -75,7 +74,7 @@ androidExtensions { dependencies { kapt "androidx.room:room-compiler:$roomVersion" implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation 'androidx.browser:browser:1.2.0-alpha08' + implementation 'androidx.browser:browser:1.2.0-alpha09' implementation 'androidx.core:core-ktx:1.1.0' implementation 'androidx.emoji:emoji:1.0.0' implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycleVersion" @@ -88,14 +87,14 @@ dependencies { implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0' implementation 'com.android.billingclient:billing:2.0.3' implementation 'com.github.topjohnwu.libsu:core:2.5.1' - implementation 'com.google.android.material:material:1.1.0-alpha10' + implementation 'com.google.android.material:material:1.1.0-beta01' implementation 'com.jakewharton.timber:timber:4.7.1' implementation 'com.linkedin.dexmaker:dexmaker:2.25.0' implementation 'com.takisoft.preferencex:preferencex-simplemenu:1.0.0' implementation 'net.glxn.qrgen:android:2.0' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion" - implementation 'org.jetbrains.kotlinx:kotlinx-collections-immutable:0.2' - implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.1' + implementation 'org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3' + implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.2' for (dep in aux) { freedomImplementation dep googleImplementation dep @@ -104,5 +103,5 @@ dependencies { androidTestImplementation "androidx.room:room-testing:$roomVersion" androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' - androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.1-beta01' + androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.1' } diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/LocalOnlyHotspotService.kt b/mobile/src/main/java/be/mygod/vpnhotspot/LocalOnlyHotspotService.kt index 4aefbef7..f1485d1f 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/LocalOnlyHotspotService.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/LocalOnlyHotspotService.kt @@ -17,7 +17,6 @@ import be.mygod.vpnhotspot.util.StickyEvent1 import be.mygod.vpnhotspot.util.broadcastReceiver import be.mygod.vpnhotspot.widget.SmartSnackbar import kotlinx.coroutines.* -import timber.log.Timber @RequiresApi(26) class LocalOnlyHotspotService : IpNeighbourMonitoringService(), CoroutineScope { diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/net/Routing.kt b/mobile/src/main/java/be/mygod/vpnhotspot/net/Routing.kt index 3b88602f..c8aaae26 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/net/Routing.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/net/Routing.kt @@ -115,7 +115,7 @@ class Routing(private val caller: Any, private val downstream: String) : IpNeigh private val hostAddress = try { val addresses = NetworkInterface.getByName(downstream)!!.interfaceAddresses!! .filter { it.address is Inet4Address } - if (addresses.size > 1) Timber.w(IllegalArgumentException("More than one addresses was found: $addresses")) + if (addresses.size > 1) error("More than one addresses was found: $addresses") addresses.first() } catch (e: Exception) { throw InterfaceNotFoundException(e)