Lint Report: 23 warnings and 2 hints
Issue Types

Overview

Correctness
1warning ScopedStorage: Affected by scoped storage
2warning OldTargetApi: Target SDK attribute is not targeting latest version
1warning SelectedPhotoAccess: Behavior change when requesting photo library access
3warning AndroidGradlePluginVersion: Obsolete Android Gradle Plugin Version
6warning GradleDependency: Obsolete Gradle Dependency
2warning SimilarGradleDependency: Multiple Versions Gradle Dependency
Performance
1warning ObsoleteSdkInt: Obsolete SDK_INT Version Check
2warning UnusedResources: Unused resources
Usability:Icons
2warning MonochromeLauncherIcon: Monochrome icon is not defined
5warning IconDuplicates: Duplicated icons under different names
Included Additional Checks (108)
Disabled Checks (41)

Affected by scoped storage

../../src/main/AndroidManifest.xml:13: WRITE_EXTERNAL_STORAGE is deprecated (and is not granted) when targeting Android 13+. If you need to write to shared storage, use the MediaStore.createWriteRequest intent.
 10 
 11     <uses-permission android:name="android.permission.CAMERA" />
 12     <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
 13     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />                    
 14     <uses-permission android:name="android.permission.READ_CONTACTS" />
 15 
 16     <application
ScopedStorage Correctness Warning Priority 8/10

Target SDK attribute is not targeting latest version

../../build.gradle.kts:23: 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.
  20     defaultConfig {
  21         applicationId = "com.imecatro.demosales"
  22         minSdk = 26
  23         targetSdk = libs.versions.targetSdk.get().toInt()                                           
  24         versionCode = 22
  25         versionName = "1.14.1"
../../../gradle/libs.versions.toml:34: 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.
  31 ksp = "2.2.0-2.0.2"
  32 
  33 compileSdk = "36"
  34 targetSdk = "35"                                                                                    
  35 
  36 androidxComposeBom = "2026.03.01"
  37 material3AdaptiveNavigationSuite = "1.4.0"
OldTargetApi Correctness Warning Priority 6/10

Behavior change when requesting photo library access

../../src/main/AndroidManifest.xml:12: Your app is currently not handling Selected Photos Access introduced in Android 14+
  9         android:required="false" />
 10 
 11     <uses-permission android:name="android.permission.CAMERA" />
 12     <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />                         
 13     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 14     <uses-permission android:name="android.permission.READ_CONTACTS" />
SelectedPhotoAccess Correctness Warning Priority 5/10

Obsolete Android Gradle Plugin Version

../../../gradle/wrapper/gradle-wrapper.properties:4: A newer version of Gradle than 8.11.1 is available: 8.14.4
 1 #Tue Aug 19 14:07:43 CST 2025
 2 distributionBase=GRADLE_USER_HOME
 3 distributionPath=wrapper/dists
 4 distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip                    
 5 zipStoreBase=GRADLE_USER_HOME
 6 zipStorePath=wrapper/dists
../../../gradle/libs.versions.toml:29: A newer version of com.android.application than 8.10.1 is available: 9.2.0
  26 materialIconsCore = "1.7.8"
  27 navigationCompose = "2.9.7"
  28 roomKtx = "2.8.4"
  29 agp = "8.10.1"                                                                                      
  30 kotlin = "2.2.0"
  31 ksp = "2.2.0-2.0.2"
../../../gradle/libs.versions.toml:29: A newer version of com.android.library than 8.10.1 is available: 9.2.0
  26 materialIconsCore = "1.7.8"
  27 navigationCompose = "2.9.7"
  28 roomKtx = "2.8.4"
  29 agp = "8.10.1"                                                                                      
  30 kotlin = "2.2.0"
  31 ksp = "2.2.0-2.0.2"
AndroidGradlePluginVersion Correctness Warning Priority 4/10

Obsolete Gradle Dependency

../../../gradle/libs.versions.toml:6: A newer version of androidx.camera:camera-camera2 than 1.5.1 is available: 1.6.0
   3 adaptive = "1.2.0"
   4 appcompat = "1.7.1"
   5 barcodeScanning = "17.3.0"
   6 cameraCore = "1.5.1"                                                                                
   7 coilCompose = "2.7.0"
   8 constraintlayoutCompose = "1.1.1"
   9 coreKtx = "1.18.0"
../../../gradle/libs.versions.toml:6: A newer version of androidx.camera:camera-core than 1.5.1 is available: 1.6.0
   3 adaptive = "1.2.0"
   4 appcompat = "1.7.1"
   5 barcodeScanning = "17.3.0"
   6 cameraCore = "1.5.1"                                                                                
   7 coilCompose = "2.7.0"
   8 constraintlayoutCompose = "1.1.1"
   9 coreKtx = "1.18.0"
../../../gradle/libs.versions.toml:6: A newer version of androidx.camera:camera-lifecycle than 1.5.1 is available: 1.6.0
   3 adaptive = "1.2.0"
   4 appcompat = "1.7.1"
   5 barcodeScanning = "17.3.0"
   6 cameraCore = "1.5.1"                                                                                
   7 coilCompose = "2.7.0"
   8 constraintlayoutCompose = "1.1.1"
   9 coreKtx = "1.18.0"
../../../gradle/libs.versions.toml:6: A newer version of androidx.camera:camera-view than 1.5.1 is available: 1.6.0
   3 adaptive = "1.2.0"
   4 appcompat = "1.7.1"
   5 barcodeScanning = "17.3.0"
   6 cameraCore = "1.5.1"                                                                                
   7 coilCompose = "2.7.0"
   8 constraintlayoutCompose = "1.1.1"
   9 coreKtx = "1.18.0"
../../../gradle/libs.versions.toml:27: A newer version of androidx.navigation:navigation-compose than 2.9.7 is available: 2.9.8
  24 mapsCompose = "8.2.2"
  25 material = "1.13.0"
  26 materialIconsCore = "1.7.8"
  27 navigationCompose = "2.9.7"                                                                         
  28 roomKtx = "2.8.4"
  29 agp = "8.10.1"
  30 kotlin = "2.2.0"
../../../gradle/libs.versions.toml:36: A newer version of androidx.compose:compose-bom than 2026.03.01 is available: 2026.04.01
  33 compileSdk = "36"
  34 targetSdk = "35"
  35 
  36 androidxComposeBom = "2026.03.01"                                                                   
  37 material3AdaptiveNavigationSuite = "1.4.0"
  38 uiTestJunit4 = "1.11.0"
GradleDependency Correctness Warning Priority 4/10

Multiple Versions Gradle Dependency

../../../gradle/libs.versions.toml:95: There are multiple dependencies junit:junit but with different version
  92 hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hiltAndroid" }
  93 html-to-pdf-convertor = { module = "io.github.mddanishansari:html-to-pdf-convertor", version.ref = "htmlToPdfConvertor" }
  94 jetbrains-kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test" }
  95 junit = { module = "junit:junit", version.ref = "junit" }                                           
  96 junit-v412 = { module = "junit:junit", version.ref = "junitJunit" }
  97 kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlinReflect" }
  98 kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test" }
../../../gradle/libs.versions.toml:96: There are multiple dependencies junit:junit but with different version
  93 html-to-pdf-convertor = { module = "io.github.mddanishansari:html-to-pdf-convertor", version.ref = "htmlToPdfConvertor" }
  94 jetbrains-kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test" }
  95 junit = { module = "junit:junit", version.ref = "junit" }
  96 junit-v412 = { module = "junit:junit", version.ref = "junitJunit" }                                 
  97 kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlinReflect" }
  98 kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test" }
  99 kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinxCoroutinesCore" }
SimilarGradleDependency Correctness Hint Priority 4/10

Obsolete SDK_INT Version Check

../../src/main/res/mipmap-anydpi-v26: This folder configuration (v26) is unnecessary; minSdkVersion is 26. Merge all the resources in this folder into mipmap-anydpi.
ObsoleteSdkInt Performance Warning Priority 6/10

Unused resources

../../src/main/res/drawable/baseline_home_24.xml:1: The resource R.drawable.baseline_home_24 appears to be unused
 1 <vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
 2       
 3     <path android:fillColor="@android:color/white" android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z"/>
 4     
../../src/main/res/drawable/ic_launcher_background.xml:2: The resource R.drawable.ic_launcher_background appears to be unused
   1 <?xml version="1.0" encoding="utf-8"?>
   2 <vector xmlns:android="http://schemas.android.com/apk/res/android"                                  
   3     android:width="108dp"
   4     android:height="108dp"
   5     android:viewportWidth="108"
UnusedResources Performance Warning Priority 3/10

Monochrome icon is not defined

../../src/main/res/mipmap-anydpi-v26/ic_launcher.xml:2: The application adaptive icon is missing a monochrome tag
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">                          
 3     <background android:drawable="@color/ic_launcher_background"/>
 4     <foreground android:drawable="@drawable/ic_launcher_foreground"/>
 5 </adaptive-icon>
../../src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:2: The application adaptive roundIcon is missing a monochrome tag
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">                          
 3     <background android:drawable="@color/ic_launcher_background"/>
 4     <foreground android:drawable="@drawable/ic_launcher_foreground"/>
 5 </adaptive-icon>
MonochromeLauncherIcon Icons Usability Warning Priority 6/10

Duplicated icons under different names

../../src/main/res/mipmap-hdpi/ic_launcher_round.webp: The following unrelated icon files have identical contents: ic_launcher.webp, ic_launcher_round.webp


    ../../src/main/res/mipmap-mdpi/ic_launcher_round.webp: The following unrelated icon files have identical contents: ic_launcher.webp, ic_launcher_round.webp


      ../../src/main/res/mipmap-xhdpi/ic_launcher_round.webp: The following unrelated icon files have identical contents: ic_launcher.webp, ic_launcher_round.webp


        ../../src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: The following unrelated icon files have identical contents: ic_launcher.webp, ic_launcher_round.webp


          ../../src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: The following unrelated icon files have identical contents: ic_launcher.webp, ic_launcher_round.webp


            IconDuplicates Icons Usability Warning Priority 3/10

            Included Additional Checks

            This card lists all the extra checks run by lint, provided from libraries, build configuration and extra flags. This is included to help you verify whether a particular check is included in analysis when configuring builds. (Note that the list does not include the hundreds of built-in checks into lint, only additional ones.)

            Disabled Checks

            One or more issues were not run by lint, either because the check is not enabled by default, or because it was disabled with a command line flag or via one or more lint.xml configuration files in the project directories.

            Suppressing Warnings and Errors

            Lint errors can be suppressed in a variety of ways:

            1. With a @SuppressLint annotation in the Java code
            2. With a tools:ignore attribute in the XML file
            3. With a //noinspection comment in the source code
            4. With ignore flags specified in the build.gradle file, as explained below
            5. With a lint.xml configuration file in the project
            6. With a lint.xml configuration file passed to lint via the --config flag
            7. With the --ignore flag passed to lint.

            To suppress a lint warning with an annotation, add a @SuppressLint("id") annotation on the class, method or variable declaration closest to the warning instance you want to disable. The id can be one or more issue id's, such as "UnusedResources" or {"UnusedResources","UnusedIds"}, or it can be "all" to suppress all lint warnings in the given scope.

            To suppress a lint warning with a comment, add a //noinspection id comment on the line before the statement with the error.

            To suppress a lint warning in an XML file, add a tools:ignore="id" attribute on the element containing the error, or one of its surrounding elements. You also need to define the namespace for the tools prefix on the root element in your document, next to the xmlns:android declaration:
            xmlns:tools="http://schemas.android.com/tools"

            To suppress a lint warning in a build.gradle file, add a section like this:
            android {
                lintOptions {
                    disable 'TypographyFractions','TypographyQuotes'
                }
            }
            

            Here we specify a comma separated list of issue id's after the disable command. You can also use warning or error instead of disable to change the severity of issues.

            To suppress lint warnings with a configuration XML file, create a file named lint.xml and place it at the root directory of the module in which it applies.

            The format of the lint.xml file is something like the following:
            <?xml version="1.0" encoding="UTF-8"?>
            <lint>
                <!-- Ignore everything in the test source set -->
                <issue id="all">
                    <ignore path="\*/test/\*" />
                </issue>
            
                <!-- Disable this given check in this project -->
                <issue id="IconMissingDensityFolder" severity="ignore" />
            
                <!-- Ignore the ObsoleteLayoutParam issue in the given files -->
                <issue id="ObsoleteLayoutParam">
                    <ignore path="res/layout/activation.xml" />
                    <ignore path="res/layout-xlarge/activation.xml" />
                    <ignore regexp="(foo|bar)\.java" />
                </issue>
            
                <!-- Ignore the UselessLeaf issue in the given file -->
                <issue id="UselessLeaf">
                    <ignore path="res/layout/main.xml" />
                </issue>
            
                <!-- Change the severity of hardcoded strings to "error" -->
                <issue id="HardcodedText" severity="error" />
            </lint>
            

            To suppress lint checks from the command line, pass the --ignore flag with a comma separated list of ids to be suppressed, such as:
            $ lint --ignore UnusedResources,UselessLeaf /my/project/path

            For more information, see https://developer.android.com/studio/write/lint.html#config