chore: ignore extra translations in lint (#451)

* chore: ignore extra translations in lint

Extra translations are removed automatically by Weblate

* chore: update detekt rules

More compose-friendly

* chore: update lint baselines
This commit is contained in:
Naveen Singh 2025-07-03 21:17:43 +05:30 committed by GitHub
parent aa129c7700
commit 251248f21a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 75 additions and 37 deletions

View file

@ -132,6 +132,9 @@ android {
detekt {
baseline = file("detekt-baseline.xml")
config.setFrom("$rootDir/detekt.yml")
buildUponDefaultConfig = true
allRules = false
}
dependencies {
@ -147,4 +150,5 @@ dependencies {
implementation(libs.kotlinx.serialization.json)
implementation(libs.bundles.room)
ksp(libs.androidx.room.compiler)
detektPlugins(libs.compose.detekt)
}

View file

@ -27,36 +27,15 @@
<ID>ForbiddenComment:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$// TODO: Need to check whether SC still trying to deliver the SMS to destination and will send the report again?</ID>
<ID>FunctionParameterNaming:Config.kt$Config$SIMId: Int</ID>
<ID>LargeClass:ThreadActivity.kt$ThreadActivity : SimpleActivity</ID>
<ID>LongMethod:Context.kt$@SuppressLint("NewApi") fun Context.getMmsAttachment(id: Long, getImageResolutions: Boolean): MessageAttachment</ID>
<ID>LongMethod:Context.kt$fun Context.getConversations( threadId: Long? = null, privateContacts: ArrayList&lt;SimpleContact&gt; = ArrayList(), ): ArrayList&lt;Conversation&gt;</ID>
<ID>LongMethod:Context.kt$fun Context.getMMS( threadId: Long? = null, getImageResolutions: Boolean = false, sortOrder: String? = null, dateFrom: Int = -1, ): ArrayList&lt;Message&gt;</ID>
<ID>LongMethod:Context.kt$fun Context.getMessages( threadId: Long, getImageResolutions: Boolean, dateFrom: Int = -1, includeScheduledMessages: Boolean = true, limit: Int = MESSAGES_LIMIT, ): ArrayList&lt;Message&gt;</ID>
<ID>LongMethod:MainActivity.kt$MainActivity$private fun getNewConversations(cachedConversations: ArrayList&lt;Conversation&gt;)</ID>
<ID>LongMethod:MainActivity.kt$MainActivity$private fun showSearchResults( messages: List&lt;Message&gt;, conversations: List&lt;Conversation&gt;, searchedText: String, )</ID>
<ID>LongMethod:MessagesReader.kt$MessagesReader$@SuppressLint("NewApi") private fun getParts(mmsId: Long): List&lt;MmsPart&gt;</ID>
<ID>LongMethod:MessagesReader.kt$MessagesReader$private fun getMmsMessages( threadIds: List&lt;Long&gt;, includeTextOnlyAttachment: Boolean = false ): List&lt;MmsBackup&gt;</ID>
<ID>LongMethod:NotificationHelper.kt$NotificationHelper$@SuppressLint("NewApi") fun showMessageNotification( messageId: Long, address: String, body: String, threadId: Long, bitmap: Bitmap?, sender: String?, alertOnlyOnce: Boolean = false )</ID>
<ID>LongMethod:ThreadActivity.kt$ThreadActivity$private fun setupAttachmentPickerView()</ID>
<ID>LongMethod:ThreadActivity.kt$ThreadActivity$private fun setupButtons()</ID>
<ID>LongMethod:ThreadActivity.kt$ThreadActivity$private fun setupThread()</ID>
<ID>LongParameterList:AttachmentPreviews.kt$( activity: Activity, uri: Uri, attachment: Boolean = false, onClick: (() -&gt; Unit)? = null, onLongClick: (() -&gt; Unit)? = null, onVCardLoaded: (() -&gt; Unit)? = null, )</ID>
<ID>LongParameterList:AttachmentPreviews.kt$( uri: Uri, title: String, mimeType: String, onClick: (() -&gt; Unit)? = null, onLongClick: (() -&gt; Unit)? = null, onRemoveButtonClicked: (() -&gt; Unit)? = null )</ID>
<ID>LongParameterList:Context.kt$( address: String, subject: String, body: String, date: Long, read: Int, threadId: Long, type: Int, subscriptionId: Int, )</ID>
<ID>LongParameterList:Context.kt$( uri: Uri, projection: Array&lt;String&gt;, selection: String? = null, selectionArgs: Array&lt;String&gt;? = null, sortOrder: String? = null, callback: (cursor: Cursor) -&gt; Unit, )</ID>
<ID>LongParameterList:MessagingUtils.kt$MessagingUtils$( subId: Int, dest: String, text: String, timestamp: Long, threadId: Long, status: Int = Sms.STATUS_NONE, type: Int = Sms.MESSAGE_TYPE_OUTBOX, messageId: Long? = null )</ID>
<ID>LongParameterList:NotificationHelper.kt$NotificationHelper$( messageId: Long, address: String, body: String, threadId: Long, bitmap: Bitmap?, sender: String?, alertOnlyOnce: Boolean = false )</ID>
<ID>LongParameterList:SmsReceiver.kt$SmsReceiver$( context: Context, address: String, subject: String, body: String, date: Long, read: Int, threadId: Long, type: Int, subscriptionId: Int, status: Int )</ID>
<ID>LongParameterList:SmsSender.kt$SmsSender$( subId: Int, dest: String, messages: ArrayList&lt;String&gt;, serviceCenter: String?, requireDeliveryReport: Boolean, messageUri: Uri )</ID>
<ID>LongParameterList:SmsSender.kt$SmsSender$( subId: Int, destination: String, body: String, serviceCenter: String?, requireDeliveryReport: Boolean, messageUri: Uri )</ID>
<ID>MagicNumber:Activity.kt$1000000</ID>
<ID>MagicNumber:BaseConversationsAdapter.kt$BaseConversationsAdapter$0.7f</ID>
<ID>MagicNumber:BaseConversationsAdapter.kt$BaseConversationsAdapter$0.8f</ID>
<ID>MagicNumber:BaseConversationsAdapter.kt$BaseConversationsAdapter$0.9f</ID>
<ID>MagicNumber:BaseConversationsAdapter.kt$BaseConversationsAdapter$1.2f</ID>
<ID>MagicNumber:BaseConversationsAdapter.kt$BaseConversationsAdapter$1000L</ID>
<ID>MagicNumber:ContactsAdapter.kt$ContactsAdapter$1.2f</ID>
<ID>MagicNumber:Context.kt$10</ID>
<ID>MagicNumber:Context.kt$1000</ID>
<ID>MagicNumber:Context.kt$500L</ID>
<ID>MagicNumber:ImageCompressor.kt$ImageCompressor$0.6f</ID>
<ID>MagicNumber:ImageCompressor.kt$ImageCompressor$100</ID>
@ -68,11 +47,8 @@
<ID>MagicNumber:ImageCompressor.kt$ImageCompressor$6</ID>
<ID>MagicNumber:ImageCompressor.kt$ImageCompressor$8</ID>
<ID>MagicNumber:ImageCompressor.kt$ImageCompressor$90f</ID>
<ID>MagicNumber:MainActivity.kt$MainActivity$1000L</ID>
<ID>MagicNumber:MainActivity.kt$MainActivity$30</ID>
<ID>MagicNumber:Message.kt$Message$1000L</ID>
<ID>MagicNumber:Message.kt$Message.Companion$31</ID>
<ID>MagicNumber:MessageDetailsDialog.kt$MessageDetailsDialog$1000L</ID>
<ID>MagicNumber:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$3</ID>
<ID>MagicNumber:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$4</ID>
<ID>MagicNumber:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$5</ID>
@ -93,7 +69,6 @@
<ID>MagicNumber:SettingsActivity.kt$SettingsActivity$6</ID>
<ID>MagicNumber:SettingsActivity.kt$SettingsActivity$7</ID>
<ID>MagicNumber:ShortcutHelper.kt$ShortcutHelper$99</ID>
<ID>MagicNumber:SmsReceiver.kt$SmsReceiver$1000</ID>
<ID>MagicNumber:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$0x03</ID>
<ID>MagicNumber:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$0x3f</ID>
<ID>MagicNumber:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$16</ID>
@ -101,8 +76,6 @@
<ID>MagicNumber:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$3</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$0.4f</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$0.9f</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$1000</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$1000L</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$14</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$15</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$150</ID>
@ -113,7 +86,6 @@
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$300</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$500L</ID>
<ID>MagicNumber:ThreadAdapter.kt$ThreadAdapter$0.8f</ID>
<ID>MagicNumber:ThreadAdapter.kt$ThreadAdapter$1000L</ID>
<ID>MagicNumber:ThreadAdapter.kt$ThreadAdapter$4</ID>
<ID>MagicNumber:VCardViewerAdapter.kt$VCardViewerAdapter.VCardContactViewHolder$1.1f</ID>
<ID>MagicNumber:VCardViewerAdapter.kt$VCardViewerAdapter.VCardPropertyViewHolder$1.1f</ID>

View file

@ -18,8 +18,8 @@
errorLine1="app-build-targetSDK = &quot;34&quot;"
errorLine2=" ~~~~">
<location
file="$HOME/work/Messages/Messages/gradle/libs.versions.toml"
line="25"
file="$HOME/Projects/Fossify/FossifyOrg/Messages/gradle/libs.versions.toml"
line="26"
column="23"/>
</issue>
@ -40,7 +40,7 @@
errorLine1="distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="$HOME/work/Messages/Messages/gradle/wrapper/gradle-wrapper.properties"
file="$HOME/Projects/Fossify/FossifyOrg/Messages/gradle/wrapper/gradle-wrapper.properties"
line="3"
column="17"/>
</issue>
@ -51,8 +51,8 @@
errorLine1="gradlePlugins-agp = &quot;8.10.1&quot;"
errorLine2=" ~~~~~~~~">
<location
file="$HOME/work/Messages/Messages/gradle/libs.versions.toml"
line="22"
file="$HOME/Projects/Fossify/FossifyOrg/Messages/gradle/libs.versions.toml"
line="23"
column="21"/>
</issue>
@ -62,8 +62,8 @@
errorLine1="androidx-lifecycleprocess = &quot;2.8.7&quot;"
errorLine2=" ~~~~~~~">
<location
file="$HOME/work/Messages/Messages/gradle/libs.versions.toml"
line="12"
file="$HOME/Projects/Fossify/FossifyOrg/Messages/gradle/libs.versions.toml"
line="13"
column="29"/>
</issue>
@ -73,8 +73,8 @@
errorLine1="app-build-compileSDKVersion = &quot;34&quot;"
errorLine2=" ~~~~">
<location
file="$HOME/work/Messages/Messages/gradle/libs.versions.toml"
line="24"
file="$HOME/Projects/Fossify/FossifyOrg/Messages/gradle/libs.versions.toml"
line="25"
column="31"/>
</issue>

58
detekt.yml Normal file
View file

@ -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

View file

@ -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-swiperefreshlayout = "1.1.0"
@ -38,6 +39,8 @@ androidx-swiperefreshlayout = { module = "androidx.swiperefreshlayout:swiperefre
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" }
indicator-fast-scroll = { module = "org.fossify:IndicatorFastScroll", version.ref = "indicator-fast-scroll" }

View file

@ -31,4 +31,5 @@
<issue id="IconDensities" severity="warning" />
<issue id="GradleDependency" severity="warning" />
<issue id="Overdraw" severity="warning" />
<issue id="ExtraTranslation" severity="warning" />
</lint>