chore: update lint rules and baselines (#161)

This commit is contained in:
Naveen Singh
2025-06-24 16:12:29 +05:30
committed by GitHub
parent d1045a248d
commit 70368f2e84
6 changed files with 553 additions and 404 deletions

View File

@@ -0,0 +1,11 @@
name: Update lint baselines
on:
workflow_dispatch:
schedule:
- cron: "0 0 1 * *"
jobs:
update-lint-baselines:
uses: FossifyOrg/.github/.github/workflows/update-lint-baselines.yml@main
secrets: inherit

1
.gitignore vendored
View File

@@ -10,3 +10,4 @@ keystore.jks
keystore.properties
fastlane/fastlane.json
fastlane/report.xml
.kotlin/

View File

@@ -1,6 +1,7 @@
import java.io.FileInputStream
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.konan.properties.Properties
import java.io.FileInputStream
plugins {
alias(libs.plugins.android)
@@ -101,7 +102,9 @@ android {
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = project.libs.versions.app.build.kotlinJVMTarget.get()
compilerOptions.jvmTarget.set(
JvmTarget.fromTarget(project.libs.versions.app.build.kotlinJVMTarget.get())
)
}
namespace = project.property("APP_ID").toString()
@@ -109,8 +112,9 @@ android {
lint {
checkReleaseBuilds = false
abortOnError = true
warningsAsErrors = true
warningsAsErrors = false
baseline = file("lint-baseline.xml")
lintConfig = rootProject.file("lint.xml")
}
bundle {

View File

@@ -1,10 +1,7 @@
<?xml version="1.0" ?>
<SmellBaseline>
<ManuallySuppressedIssues></ManuallySuppressedIssues>
<ManuallySuppressedIssues/>
<CurrentIssues>
<ID>ComplexCondition:MainActivity.kt$MainActivity$config.showNotePicker &amp;&amp; savedInstanceState == null &amp;&amp; hasNoIntent &amp;&amp; !mIsPasswordProtectionPending</ID>
<ID>ComplexCondition:MainActivity.kt$MainActivity$requestCode == PICK_EXPORT_FILE_INTENT &amp;&amp; resultCode == Activity.RESULT_OK &amp;&amp; resultData != null &amp;&amp; resultData.data != null &amp;&amp; mNotes.isNotEmpty()</ID>
<ID>ComplexCondition:MainActivity.kt$MainActivity$requestCode == PICK_OPEN_FILE_INTENT &amp;&amp; resultCode == RESULT_OK &amp;&amp; resultData != null &amp;&amp; resultData.data != null</ID>
<ID>ComplexCondition:TextFragment.kt$TextFragment$config.showKeyboard &amp;&amp; isMenuVisible &amp;&amp; (!note!!.isLocked() || shouldShowLockedContent)</ID>
<ID>CyclomaticComplexMethod:MainActivity.kt$MainActivity$private fun refreshMenuItems()</ID>
<ID>CyclomaticComplexMethod:MainActivity.kt$MainActivity$private fun setupOptionsMenu()</ID>
@@ -47,28 +44,8 @@
<ID>MaxLineLength:ExportNotesDialog.kt$ExportNotesDialog$activity.getAlertDialogBuilder().setPositiveButton(org.fossify.commons.R.string.ok, null).setNegativeButton(org.fossify.commons.R.string.cancel, null)</ID>
<ID>MaxLineLength:ImportFolderDialog.kt$ImportFolderDialog$class</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$!config.autosaveNotes &amp;&amp; showSaveButton &amp;&amp; (::mCurrentNote.isInitialized &amp;&amp; mCurrentNote.type == NoteType.TYPE_TEXT)</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$(drawable as LayerDrawable).findDrawableByLayerId(R.id.shortcut_plus_background).applyColorFilter(appIconColor)</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$// if we got here by some other app invoking the file open intent, we have no permission for updating the original file itself</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$ConfirmationDialog</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$Note(null, title.substringBeforeLast('.'), fileText, NoteType.TYPE_CHECKLIST, "", PROTECTION_NONE, "")</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$displayNewNoteDialog(note.value, title = it.title, it.path, setChecklistAsDefault = true)</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$faqItems.add(FAQItem(org.fossify.commons.R.string.faq_10_title_commons, org.fossify.commons.R.string.faq_10_text_commons))</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$faqItems.add(FAQItem(org.fossify.commons.R.string.faq_2_title_commons, org.fossify.commons.R.string.faq_2_text_commons))</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$faqItems.add(FAQItem(org.fossify.commons.R.string.faq_6_title_commons, org.fossify.commons.R.string.faq_6_text_commons))</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$faqItems.add(FAQItem(org.fossify.commons.R.string.faq_7_title_commons, org.fossify.commons.R.string.faq_7_text_commons))</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.lock_note).isVisible = mNotes.isNotEmpty() &amp;&amp; (::mCurrentNote.isInitialized &amp;&amp; !mCurrentNote.isLocked())</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.more_apps_from_us).isVisible = !resources.getBoolean(org.fossify.commons.R.bool.hide_google_relations)</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.unlock_note).isVisible = mNotes.isNotEmpty() &amp;&amp; (::mCurrentNote.isInitialized &amp;&amp; mCurrentNote.isLocked())</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$fun</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$getPagerAdapter().updateCurrentNoteData(binding.viewPager.currentItem, mCurrentNote.path, mCurrentNote.value)</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$if</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$intent.flags = intent.flags or Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NO_HISTORY</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$private</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$private fun isCurrentItemChecklist()</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$updateMaterialActivityViews(binding.mainCoordinator, null, useTransparentNavigation = false, useTopSearchMenu = false)</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$val newChecklist = Note(null, getCurrentFormattedDateTime(), "", NoteType.TYPE_CHECKLIST, "", PROTECTION_NONE, "")</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$val newTextNote = Note(null, getCurrentFormattedDateTime(), "", NoteType.TYPE_TEXT, "", PROTECTION_NONE, "")</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$}</ID>
<ID>MaxLineLength:MyWidgetProvider.kt$MyWidgetProvider$PendingIntent.getActivity(context, widgetId, startActivityIntent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)</ID>
<ID>MaxLineLength:MyWidgetProvider.kt$MyWidgetProvider$val pendingIntent = PendingIntent.getActivity(context, widget.widgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)</ID>
<ID>MaxLineLength:NewChecklistItemDialog.kt$NewChecklistItemDialog$if</ID>
@@ -87,12 +64,6 @@
<ID>MaxLineLength:RenameNoteDialog.kt$RenameNoteDialog$class</ID>
<ID>MaxLineLength:SettingsActivity.kt$SettingsActivity$NotesHelper.ImportResult.IMPORT_PARTIAL -&gt; toast(org.fossify.commons.R.string.importing_some_entries_failed)</ID>
<ID>MaxLineLength:SettingsActivity.kt$SettingsActivity$binding.settingsUseEnglishHolder.beVisibleIf((config.wasUseEnglishToggled || Locale.getDefault().language != "en") &amp;&amp; !isTiramisuPlus())</ID>
<ID>MaxLineLength:SettingsActivity.kt$SettingsActivity$org.fossify.commons.R.string.fingerprint_setup_successfully</ID>
<ID>MaxLineLength:SettingsActivity.kt$SettingsActivity$updateMaterialActivityViews(binding.settingsCoordinator, binding.settingsHolder, useTransparentNavigation = true, useTopSearchMenu = false)</ID>
<ID>MaxLineLength:SettingsActivity.kt$SettingsActivity$val items = listOf(GRAVITY_START, GRAVITY_CENTER, GRAVITY_END).map { RadioItem(it, getGravityOptionLabel(it)) }</ID>
<ID>MaxLineLength:SettingsActivity.kt$SettingsActivity$val leftToRightDirection = TextUtilsCompat.getLayoutDirectionFromLocale(Locale.getDefault()) == ViewCompat.LAYOUT_DIRECTION_LTR</ID>
<ID>MaxLineLength:TasksAdapter.kt$TasksAdapter$menu.findItem(R.id.cab_move_to_bottom).isVisible = selectedItems.none { it.isDone } || !activity.config.moveDoneChecklistItems</ID>
<ID>MaxLineLength:TasksAdapter.kt$TasksAdapter$menu.findItem(R.id.cab_move_to_top).isVisible = selectedItems.none { it.isDone } || !activity.config.moveDoneChecklistItems</ID>
<ID>MaxLineLength:TasksAdapter.kt$TasksAdapter$private fun getSelectedItems()</ID>
<ID>MaxLineLength:TasksAdapter.kt$TasksAdapter$text = resources.getQuantityString(R.plurals.num_checked_items, completedTasks.tasks.size, completedTasks.tasks.size)</ID>
<ID>MaxLineLength:TasksFragment.kt$TasksFragment$note.getNoteStoredValue(requireActivity())?.split("\n")?.map { it.trim() }?.filter { it.isNotBlank() }</ID>
@@ -109,7 +80,6 @@
<ID>MaxLineLength:WidgetConfigureActivity.kt$WidgetConfigureActivity$val sampleValue = if (note.value.isEmpty() || mIsCustomizingColors) getString(R.string.widget_config) else note.value</ID>
<ID>NestedBlockDepth:MainActivity.kt$MainActivity$private fun checkIntents(intent: Intent)</ID>
<ID>NestedBlockDepth:Note.kt$Note$fun getNoteStoredValue(context: Context): String?</ID>
<ID>NestedBlockDepth:OpenNoteAdapter.kt$OpenNoteAdapter$private fun Note.getFormattedValue(context: Context): CharSequence?</ID>
<ID>NestedBlockDepth:TasksFragment.kt$TasksFragment$private fun prepareTaskItems(): List&lt;NoteItem&gt;</ID>
<ID>ReturnCount:TasksFragment.kt$TasksFragment$private fun saveNote(callback: () -&gt; Unit = {})</ID>
<ID>ReturnCount:TextFragment.kt$TextFragment$fun saveText(force: Boolean, callback: ((note: Note) -&gt; Unit)? = null)</ID>
@@ -150,12 +120,6 @@
<ID>WildcardImport:ExportFilesDialog.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:ExportNotesDialog.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:ImportFolderDialog.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:MainActivity.kt$import org.fossify.commons.dialogs.*</ID>
<ID>WildcardImport:MainActivity.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:MainActivity.kt$import org.fossify.commons.helpers.*</ID>
<ID>WildcardImport:MainActivity.kt$import org.fossify.notes.dialogs.*</ID>
<ID>WildcardImport:MainActivity.kt$import org.fossify.notes.extensions.*</ID>
<ID>WildcardImport:MainActivity.kt$import org.fossify.notes.helpers.*</ID>
<ID>WildcardImport:ManageAutoBackupsDialog.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:NewChecklistItemDialog.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:NewNoteDialog.kt$import org.fossify.commons.extensions.*</ID>
@@ -164,10 +128,6 @@
<ID>WildcardImport:NotesDao.kt$import androidx.room.*</ID>
<ID>WildcardImport:OpenNoteAdapter.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:RenameNoteDialog.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:SettingsActivity.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:SettingsActivity.kt$import org.fossify.commons.helpers.*</ID>
<ID>WildcardImport:SettingsActivity.kt$import org.fossify.notes.extensions.*</ID>
<ID>WildcardImport:SettingsActivity.kt$import org.fossify.notes.helpers.*</ID>
<ID>WildcardImport:TasksFragment.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:TextFragment.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:UnlockNotesDialog.kt$import org.fossify.commons.extensions.*</ID>

View File

File diff suppressed because it is too large Load Diff

34
lint.xml Normal file
View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<lint>
<!-- Fatal -->
<issue id="ExportedReceiver" severity="error" />
<issue id="ExportedService" severity="error" />
<issue id="ExportedContentProvider" severity="error" />
<issue id="MissingPermission" severity="error" />
<issue id="NotificationPermission" severity="error" />
<issue id="UnsafeOptInUsageError" severity="error" />
<issue id="StringFormatMatches" severity="error" />
<issue id="StringFormatInvalid" severity="error" />
<issue id="StringFormatCount" severity="error" />
<issue id="Range" severity="error" />
<issue id="CheckResult" severity="error" />
<issue id="WrongThread" severity="error" />
<issue id="Recycle" severity="error" />
<issue id="StaticFieldLeak" severity="error" />
<issue id="UseRequireInsteadOfGet" severity="error" />
<issue id="ClickableViewAccessibility" severity="error" />
<issue id="RtlSymmetry" severity="warning" />
<issue id="SetTextI18n" severity="warning" />
<!-- Warnings -->
<issue id="AllowBackup" severity="warning" />
<issue id="MissingTranslation" severity="warning" />
<issue id="UnusedResources" severity="warning" />
<issue id="UnusedQuantity" severity="warning" />
<issue id="MissingQuantity" severity="warning" />
<issue id="ContentDescription" severity="warning" />
<issue id="VectorPath" severity="warning" />
<issue id="IconDensities" severity="warning" />
<issue id="GradleDependency" severity="warning" />
<issue id="Overdraw" severity="warning" />
</lint>