diff --git a/app/build.gradle.kts b/app/build.gradle.kts index f1b9d923..d2e5b427 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -129,6 +129,9 @@ android { detekt { baseline = file("detekt-baseline.xml") + config.setFrom("$rootDir/detekt.yml") + buildUponDefaultConfig = true + allRules = false } dependencies { @@ -140,4 +143,5 @@ dependencies { implementation(libs.androidx.constraintlayout) implementation(libs.tandroidlame) implementation(libs.autofittextview) + detektPlugins(libs.compose.detekt) } diff --git a/app/detekt-baseline.xml b/app/detekt-baseline.xml index 7caad9f0..f4dda697 100644 --- a/app/detekt-baseline.xml +++ b/app/detekt-baseline.xml @@ -8,18 +8,11 @@ EmptyFunctionBlock:TrashAdapter.kt$TrashAdapter${} EmptyFunctionBlock:TrashFragment.kt$TrashFragment${} EmptyFunctionBlock:WidgetRecordDisplayConfigureActivity.kt$WidgetRecordDisplayConfigureActivity.<no name provided>${} - MagicNumber:Activity.kt$1000 - MagicNumber:Activity.kt$1000L MagicNumber:Context.kt$60 MagicNumber:Mp3Recorder.kt$Mp3Recorder$1.25 - MagicNumber:Mp3Recorder.kt$Mp3Recorder$1000 MagicNumber:Mp3Recorder.kt$Mp3Recorder$7200 MagicNumber:Mp3Recorder.kt$Mp3Recorder$8 - MagicNumber:PlayerFragment.kt$PlayerFragment$1000 - MagicNumber:PlayerFragment.kt$PlayerFragment.<no name provided>$1000 MagicNumber:RecorderFragment.kt$RecorderFragment$500 - MagicNumber:RecorderService.kt$RecorderService$1000 - MagicNumber:SettingsActivity.kt$SettingsActivity$1000 MagicNumber:ViewPagerAdapter.kt$ViewPagerAdapter$3 MagicNumber:WidgetRecordDisplayConfigureActivity.kt$WidgetRecordDisplayConfigureActivity$100 MaxLineLength:PlayerFragment.kt$PlayerFragment$if diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml index 4d1a33f3..f55546e3 100644 --- a/app/lint-baseline.xml +++ b/app/lint-baseline.xml @@ -7,8 +7,8 @@ errorLine1="app-build-targetSDK = "34"" errorLine2=" ~~~~"> @@ -29,7 +29,7 @@ errorLine1="distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip" errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -40,19 +40,30 @@ errorLine1="gradlePlugins-agp = "8.10.1"" errorLine2=" ~~~~~~~~"> + + + + @@ -60,14 +71,14 @@ id="Aligned16KB" message="The native library `x86_64/libandroidlame.so` (from `com.github.naman14:TAndroidLame:1.1`) is not 16 KB aligned"> + file="$GRADLE_USER_HOME/caches/8.11.1/transforms/865938d5cceb8e098c463c7b38a51bdf/transformed/jetified-TAndroidLame-1.1/jni/x86_64/libandroidlame.so"/> + file="$GRADLE_USER_HOME/caches/8.11.1/transforms/865938d5cceb8e098c463c7b38a51bdf/transformed/jetified-TAndroidLame-1.1/jni/x86_64/libandroidlame.so"/> diff --git a/detekt.yml b/detekt.yml new file mode 100644 index 00000000..6472c5a3 --- /dev/null +++ b/detekt.yml @@ -0,0 +1,58 @@ +build: + maxIssues: 0 + weights: + complexity: 2 + LongParameterList: 2 + style: 1 + +processors: + active: true + exclude: + - "FunctionCountProcessor" + - "PropertyCountProcessor" + +config: + validation: true + +complexity: + LongParameterList: + active: true + functionThreshold: 10 + constructorThreshold: 8 + ignoreDefaultParameters: true + ignoreAnnotated: + - "Composable" + LongMethod: + active: true + threshold: 120 + ignoreAnnotated: + - "Composable" + - "Preview" + +style: + MagicNumber: + active: true + ignoreAnnotated: ["Composable"] + ignoreEnums: true + ignoreNumbers: ["-1", "0", "1", "2", "42", "1000"] + MaxLineLength: + active: true + maxLineLength: 120 + excludePackageStatements: true + excludeImportStatements: true + +naming: + FunctionNaming: + active: true + ignoreAnnotated: ["Composable", "Preview"] + functionPattern: "[a-z][A-Za-z0-9]*" + +Compose: # io.nlopez.compose.rules + ComposableParametersOrdering: + active: true + ModifierDefaultValue: + active: true + MissingModifierDefaultValue: + active: true + PublicComposablePreview: + active: true diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 927d322a..fa0bfe3a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,6 +5,7 @@ kotlin = "2.1.21" ksp = "2.1.21-2.0.2" #Detekt detekt = "1.23.8" +detektCompose = "0.4.22" #AndroidX androidx-constraintlayout = "2.2.1" androidx-documentfile = "1.1.0" @@ -33,6 +34,8 @@ app-build-kotlinJVMTarget = "17" androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "androidx-constraintlayout" } androidx-documentfile = { module = "androidx.documentfile:documentfile", version.ref = "androidx-documentfile" } androidx-swiperefreshlayout = { module = "androidx.swiperefreshlayout:swiperefreshlayout", version.ref = "androidx-swiperefreshlayout" } +#Compose +compose-detekt = { module = "io.nlopez.compose.rules:detekt", version.ref = "detektCompose" } #Fossify fossify-commons = { module = "org.fossify:commons", version.ref = "commons" } #EventBus diff --git a/lint.xml b/lint.xml index 05685cd8..4b4a7825 100644 --- a/lint.xml +++ b/lint.xml @@ -31,4 +31,5 @@ +