From cc2a5ec124a48c5165bcbf06f5aa129f530277ea Mon Sep 17 00:00:00 2001
From: Naveen Singh <36371707+naveensingh@users.noreply.github.com>
Date: Thu, 3 Jul 2025 21:16:18 +0530
Subject: [PATCH] chore: ignore extra translations and update detekt rules
* chore: ignore extra translations in lint
Extra translations are removed automatically by Weblate
* chore: update detekt rules
More compose-friendly
* chore: update lint baselines
---
app/build.gradle.kts | 4 +++
app/detekt-baseline.xml | 12 --------
app/lint-baseline.xml | 33 +++++++++++++---------
detekt.yml | 58 +++++++++++++++++++++++++++++++++++++++
gradle/libs.versions.toml | 3 ++
lint.xml | 1 +
6 files changed, 86 insertions(+), 25 deletions(-)
create mode 100644 detekt.yml
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index c83fe022..ff571ef0 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -132,6 +132,9 @@ android {
detekt {
baseline = file("detekt-baseline.xml")
+ config.setFrom("$rootDir/detekt.yml")
+ buildUponDefaultConfig = true
+ allRules = false
}
dependencies {
@@ -148,4 +151,5 @@ dependencies {
implementation(libs.bundles.room)
ksp(libs.androidx.room.compiler)
+ detektPlugins(libs.compose.detekt)
}
diff --git a/app/detekt-baseline.xml b/app/detekt-baseline.xml
index 832c8c0c..eb43d60c 100644
--- a/app/detekt-baseline.xml
+++ b/app/detekt-baseline.xml
@@ -18,18 +18,10 @@
ForbiddenComment:AlarmController.kt$AlarmController$// TODO: This is a bit of a hack. Skipped alarms should be tracked properly.
ForbiddenComment:AlarmController.kt$AlarmController$// TODO: This works but it is very rudimentary. Snoozed alarms are not being tracked.
ForbiddenComment:AlarmsAdapter.kt$AlarmsAdapter$// TODO: This does not respect config.firstDayOfWeek
- LongMethod:AlarmActivity.kt$AlarmActivity$@SuppressLint("ClickableViewAccessibility") private fun setupAlarmButtons()
- LongMethod:Constants.kt$@Suppress("MagicNumber") fun getAllTimeZones()
- LongMethod:IntentHandlerActivity.kt$IntentHandlerActivity$private fun Intent.dismissAlarm()
- LongMethod:IntentHandlerActivity.kt$IntentHandlerActivity$private fun Intent.setNewAlarm()
- MagicNumber:App.kt$App$1000L
- MagicNumber:App.kt$App.<no name provided>$1000
- MagicNumber:ClockFragment.kt$ClockFragment$1000L
MagicNumber:ClockFragment.kt$ClockFragment$24
MagicNumber:ClockFragment.kt$ClockFragment$3600
MagicNumber:ClockFragment.kt$ClockFragment$60
MagicNumber:Config.kt$Config$300
- MagicNumber:Constants.kt$1000
MagicNumber:Constants.kt$5
MagicNumber:Constants.kt$60
MagicNumber:Constants.kt$7
@@ -59,15 +51,11 @@
MagicNumber:IntentHandlerActivity.kt$IntentHandlerActivity$59
MagicNumber:IntentHandlerActivity.kt$IntentHandlerActivity$60
MagicNumber:Long.kt$100
- MagicNumber:Long.kt$1000
- MagicNumber:Long.kt$1000F
MagicNumber:MainActivity.kt$MainActivity$3
MagicNumber:MyTimePickerDialogDialog.kt$MyTimePickerDialogDialog$3600
MagicNumber:MyTimePickerDialogDialog.kt$MyTimePickerDialogDialog$60
MagicNumber:StopwatchService.kt$StopwatchService.<no name provided>$500L
- MagicNumber:TimeZonesAdapter.kt$TimeZonesAdapter$1000
MagicNumber:TimerAdapter.kt$TimerAdapter$0.7f
- MagicNumber:TimerFragment.kt$TimerFragment$1000
MagicNumber:WidgetAnalogueConfigureActivity.kt$WidgetAnalogueConfigureActivity$100
MagicNumber:WidgetDigitalConfigureActivity.kt$WidgetDigitalConfigureActivity$100
MaxLineLength:DBHelper.kt$DBHelper$"$COL_IS_ENABLED INTEGER, $COL_VIBRATE INTEGER, $COL_SOUND_TITLE TEXT, $COL_SOUND_URI TEXT, $COL_LABEL TEXT, $COL_ONE_SHOT INTEGER)"
diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml
index cebe8547..5298c52c 100644
--- a/app/lint-baseline.xml
+++ b/app/lint-baseline.xml
@@ -51,8 +51,8 @@
errorLine1="app-build-targetSDK = "34""
errorLine2=" ~~~~">
@@ -128,7 +128,7 @@
errorLine1="distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -139,8 +139,8 @@
errorLine1="gradlePlugins-agp = "8.10.1""
errorLine2=" ~~~~~~~~">
@@ -150,8 +150,8 @@
errorLine1="androidx-lifecycle = "2.8.7""
errorLine2=" ~~~~~~~">
@@ -161,8 +161,8 @@
errorLine1="androidx-lifecycle = "2.8.7""
errorLine2=" ~~~~~~~">
@@ -172,8 +172,8 @@
errorLine1="androidx-lifecycle = "2.8.7""
errorLine2=" ~~~~~~~">
@@ -183,8 +183,8 @@
errorLine1="app-build-compileSDKVersion = "34""
errorLine2=" ~~~~">
@@ -859,6 +859,13 @@
column="18"/>
+
+
+
+
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 a86913b4..eb3422aa 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -6,6 +6,7 @@ kotlinxSerializationJson = "1.8.1"
ksp = "2.1.21-2.0.2"
#Detekt
detekt = "1.23.8"
+detektCompose = "0.4.22"
#AndroidX
androidx-constraintlayout = "2.2.1"
androidx-lifecycle = "2.8.7"
@@ -52,6 +53,8 @@ numberpicker = { module = "io.github.ShawnLin013:number-picker", version.ref = "
androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" }
androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "room" }
androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" }
+#Compose
+compose-detekt = { module = "io.nlopez.compose.rules:detekt", version.ref = "detektCompose" }
#Fossify
fossify-commons = { module = "org.fossify:commons", version.ref = "commons" }
[bundles]
diff --git a/lint.xml b/lint.xml
index 05685cd8..4b4a7825 100644
--- a/lint.xml
+++ b/lint.xml
@@ -31,4 +31,5 @@
+