From 6c879913324470881ee753b2e675aea8348bebf9 Mon Sep 17 00:00:00 2001 From: Naveen Singh <36371707+naveensingh@users.noreply.github.com> Date: Tue, 24 Jun 2025 16:08:05 +0530 Subject: [PATCH] chore: update lint rules and baselines (#218) --- .github/workflows/update-lint-baselines.yml | 11 + .gitignore | 1 + app/build.gradle.kts | 8 +- app/detekt-baseline.xml | 20 +- app/lint-baseline.xml | 436 +++++++++++--------- lint.xml | 34 ++ 6 files changed, 302 insertions(+), 208 deletions(-) create mode 100644 .github/workflows/update-lint-baselines.yml create mode 100644 lint.xml diff --git a/.github/workflows/update-lint-baselines.yml b/.github/workflows/update-lint-baselines.yml new file mode 100644 index 00000000..17043a58 --- /dev/null +++ b/.github/workflows/update-lint-baselines.yml @@ -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 diff --git a/.gitignore b/.gitignore index d209458c..72ae8c3b 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ keystore.jks keystore.properties fastlane/fastlane.json fastlane/report.xml +.kotlin/ diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d9b22342..6f7909ea 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,3 +1,4 @@ +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 @@ -98,7 +99,9 @@ android { } tasks.withType { - 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() @@ -106,8 +109,9 @@ android { lint { checkReleaseBuilds = false abortOnError = true - warningsAsErrors = true + warningsAsErrors = false baseline = file("lint-baseline.xml") + lintConfig = rootProject.file("lint.xml") } bundle { diff --git a/app/detekt-baseline.xml b/app/detekt-baseline.xml index a20693d5..96e88185 100644 --- a/app/detekt-baseline.xml +++ b/app/detekt-baseline.xml @@ -1,6 +1,6 @@ - + ComplexCondition:Activity.kt$(hide && filename.startsWith('.')) || (!hide && !filename.startsWith('.')) ComplexCondition:ItemsAdapter.kt$ItemsAdapter$activity.getDoesFilePathExist(source) && activity.getIsPathDirectory(source) && sourceFile.list()?.isEmpty() == true && sourceFile.getProperSize(true) == 0L && sourceFile.getFileCount(true) == 0 @@ -9,7 +9,6 @@ ComplexCondition:MimeTypesActivity.kt$MimeTypesActivity$mimetype != "image" && mimetype != "video" && mimetype != "audio" && mimetype != "text" && !extraAudioMimeTypes.contains(fullMimetype) && !extraDocumentMimeTypes.contains(fullMimetype) && !archiveMimeTypes.contains(fullMimetype) ComplexCondition:ReadTextActivity.kt$ReadTextActivity$requestCode == SELECT_SAVE_FILE_INTENT && resultCode == Activity.RESULT_OK && resultData != null && resultData.data != null CyclomaticComplexMethod:DecompressActivity.kt$DecompressActivity$private fun decompressTo(destination: String) - CyclomaticComplexMethod:DecompressActivity.kt$DecompressActivity$private fun fillAllListItems(uri: Uri, callback: () -> Unit) CyclomaticComplexMethod:ItemsAdapter.kt$ItemsAdapter$@SuppressLint("NewApi") private fun compressPaths(sourcePaths: List<String>, targetPath: String, password: String? = null): Boolean CyclomaticComplexMethod:ItemsAdapter.kt$ItemsAdapter$override fun actionItemPressed(id: Int) CyclomaticComplexMethod:MainActivity.kt$MainActivity$private fun setupOptionsMenu() @@ -23,7 +22,6 @@ EmptyFunctionBlock:MimeTypesActivity.kt$MimeTypesActivity${} EmptyFunctionBlock:StorageFragment.kt$StorageFragment${} LargeClass:ItemsAdapter.kt$ItemsAdapter : MyRecyclerViewAdapterOnPopupTextUpdate - LargeClass:MainActivity.kt$MainActivity : SimpleActivity LongMethod:DecompressActivity.kt$DecompressActivity$private fun fillAllListItems(uri: Uri, callback: () -> Unit) LongMethod:ItemsAdapter.kt$ItemsAdapter$@SuppressLint("NewApi") private fun compressPaths(sourcePaths: List<String>, targetPath: String, password: String? = null): Boolean LongMethod:MimeTypesActivity.kt$MimeTypesActivity$private fun getProperFileDirItems(callback: (ArrayList<FileDirItem>) -> Unit) @@ -62,7 +60,6 @@ MaxLineLength:CompressAsDialog.kt$CompressAsDialog$val indexOfDot = if (filename.contains('.') && !activity.getIsPathDirectory(path)) filename.lastIndexOf(".") else filename.length MaxLineLength:Config.kt$Config$set(wasStorageAnalysisTabAdded) = prefs.edit().putBoolean(WAS_STORAGE_ANALYSIS_TAB_ADDED, wasStorageAnalysisTabAdded).apply() MaxLineLength:Context.kt$fun Context.isPathOnRoot(path: String) - MaxLineLength:DecompressActivity.kt$DecompressActivity$binding.decompressToolbar.title = realPath?.getFilenameFromPath() ?: Uri.decode(uri.toString().getFilenameFromPath()) MaxLineLength:DecompressActivity.kt$DecompressActivity$updateMaterialActivityViews(decompressCoordinator, decompressList, useTransparentNavigation = true, useTopSearchMenu = false) MaxLineLength:DecompressItemsAdapter.kt$DecompressItemsAdapter$class MaxLineLength:DecompressItemsAdapter.kt$DecompressItemsAdapter$val drawable = fileDrawables.getOrElse(fileName.substringAfterLast(".").lowercase(Locale.getDefault()), { fileDrawable }) @@ -188,35 +185,20 @@ VariableNaming:ItemsAdapter.kt$ItemsAdapter$val SAFPath = getFirstSelectedItemPath() VariableNaming:RecentsFragment.kt$RecentsFragment$private val RECENTS_LIMIT = 50 VariableNaming:StorageFragment.kt$StorageFragment$private val SIZE_DIVIDER = 100000 - WildcardImport:Activity.kt$import org.fossify.commons.extensions.* - WildcardImport:Activity.kt$import org.fossify.filemanager.helpers.* WildcardImport:ChangeSortingDialog.kt$import org.fossify.commons.helpers.* WildcardImport:CompressAsDialog.kt$import org.fossify.commons.extensions.* WildcardImport:CreateNewItemDialog.kt$import org.fossify.commons.extensions.* - WildcardImport:DecompressActivity.kt$import org.fossify.commons.extensions.* WildcardImport:InsertFilenameDialog.kt$import org.fossify.commons.extensions.* - WildcardImport:ItemsAdapter.kt$import org.fossify.commons.dialogs.* - WildcardImport:ItemsAdapter.kt$import org.fossify.commons.extensions.* - WildcardImport:ItemsAdapter.kt$import org.fossify.commons.helpers.* - WildcardImport:ItemsAdapter.kt$import org.fossify.filemanager.databinding.* - WildcardImport:ItemsAdapter.kt$import org.fossify.filemanager.extensions.* - WildcardImport:ItemsAdapter.kt$import org.fossify.filemanager.helpers.* WildcardImport:ItemsFragment.kt$import org.fossify.commons.extensions.* WildcardImport:ItemsFragment.kt$import org.fossify.commons.helpers.* - WildcardImport:MainActivity.kt$import org.fossify.commons.extensions.* - WildcardImport:MainActivity.kt$import org.fossify.commons.helpers.* WildcardImport:ManageFavoritesAdapter.kt$import android.view.* WildcardImport:MimeTypesActivity.kt$import org.fossify.commons.extensions.* WildcardImport:MimeTypesActivity.kt$import org.fossify.filemanager.helpers.* WildcardImport:MyViewPagerFragment.kt$import org.fossify.commons.extensions.* WildcardImport:ReadTextActivity.kt$import org.fossify.commons.extensions.* - WildcardImport:RecentsFragment.kt$import org.fossify.commons.extensions.* WildcardImport:SaveAsActivity.kt$import org.fossify.commons.extensions.* WildcardImport:SaveAsDialog.kt$import org.fossify.commons.extensions.* WildcardImport:SettingsActivity.kt$import org.fossify.commons.extensions.* WildcardImport:SettingsActivity.kt$import org.fossify.commons.helpers.* - WildcardImport:StorageFragment.kt$import org.fossify.commons.extensions.* - WildcardImport:StorageFragment.kt$import org.fossify.commons.helpers.* - WildcardImport:StorageFragment.kt$import org.fossify.filemanager.helpers.* diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml index 321e2942..63084669 100644 --- a/app/lint-baseline.xml +++ b/app/lint-baseline.xml @@ -1,5 +1,5 @@ - + + id="OldTargetApi" + message="Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this version. Consult the `android.os.Build.VERSION_CODES` javadoc for details." + errorLine1="app-build-targetSDK = "34"" + errorLine2=" ~~~~"> + file="$HOME/Projects/Fossify/FossifyOrg/File-Manager/gradle/libs.versions.toml" + line="21" + column="23"/> - - - - - - - - - - - - + message="A newer version of Gradle than 8.11.1 is available: 8.14.2" + errorLine1="distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - - - - - - - - - - - - + column="17"/> + message="A newer version of org.fossify:commons than 3.0.5 is available: 3.1.0" + errorLine1="commons = "3.0.5"" + errorLine2=" ~~~~~~~"> - - - - - - - - + message="A newer version of `compileSdkVersion` than 34 is available: 35" + errorLine1="app-build-compileSDKVersion = "34"" + errorLine2=" ~~~~"> - - - - + file="$HOME/Projects/Fossify/FossifyOrg/File-Manager/gradle/libs.versions.toml" + line="20" + column="31"/> @@ -217,13 +118,13 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -734,7 +635,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> @@ -745,7 +646,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> @@ -756,7 +657,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> @@ -767,10 +668,17 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +