<?xml version="1.0" encoding="UTF-8"?>
<issues format="6" by="lint 8.9.3" type="baseline" client="gradle" dependencies="false" name="AGP (8.9.3)" variant="all" version="8.9.3">

    <issue
        id="MissingPermission"
        message="Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with `checkPermission`) or explicitly handle a potential `SecurityException`"
        errorLine1="                    val subscriptionInfo = subscriptionManager.getActiveSubscriptionInfo(subscriptionId)"
        errorLine2="                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/sms/receivers/SmsReceiver.kt"
            line="170"
            column="44"/>
    </issue>

    <issue
        id="MissingPermission"
        message="Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with `checkPermission`) or explicitly handle a potential `SecurityException`"
        errorLine1="            val activeSubscriptions = subscriptionManager.activeSubscriptionInfoList"
        errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/sms/SmsSender.kt"
            line="433"
            column="39"/>
    </issue>

    <issue
        id="BatteryLife"
        message="Use of `REQUEST_IGNORE_BATTERY_OPTIMIZATIONS` violates the Play Store Content Policy regarding acceptable use cases, as described in https://developer.android.com/training/monitoring-device-state/doze-standby.html"
        errorLine1="                action = Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"
        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/helpers/SystemManager.kt"
            line="65"
            column="35"/>
    </issue>

    <issue
        id="BatteryLife"
        message="Use of `REQUEST_IGNORE_BATTERY_OPTIMIZATIONS` violates the Play Store Content Policy regarding acceptable use cases, as described in https://developer.android.com/training/monitoring-device-state/doze-standby.html"
        errorLine1="                action = Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"
        errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/helpers/SystemManager.kt"
            line="65"
            column="35"/>
    </issue>

    <issue
        id="CustomSplashScreen"
        message="The application should not provide its own launch screen"
        errorLine1="class SplashActivity : AppCompatActivity() {"
        errorLine2="      ~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/activities/SplashActivity.kt"
            line="12"
            column="7"/>
    </issue>

    <issue
        id="ProtectedPermissions"
        message="Permission is only granted to system apps"
        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.MODIFY_PHONE_STATE&quot; />"
        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/AndroidManifest.xml"
            line="54"
            column="22"/>
    </issue>

    <issue
        id="ProtectedPermissions"
        message="Permission is only granted to system apps"
        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.BIND_ACCESSIBILITY_SERVICE&quot; />"
        errorLine2="                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/AndroidManifest.xml"
            line="58"
            column="22"/>
    </issue>

    <issue
        id="SelectedPhotoAccess"
        message="Your app is currently not handling Selected Photos Access introduced in Android 14+"
        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.READ_MEDIA_IMAGES&quot; />"
        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/AndroidManifest.xml"
            line="44"
            column="36"/>
    </issue>

    <issue
        id="SelectedPhotoAccess"
        message="Your app is currently not handling Selected Photos Access introduced in Android 14+"
        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.READ_MEDIA_VIDEO&quot; />"
        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/AndroidManifest.xml"
            line="45"
            column="36"/>
    </issue>

    <issue
        id="AndroidGradlePluginVersion"
        message="A newer version of com.android.application than 8.9.3 is available: 9.3.2"
        errorLine1="gradlePlugins-agp = &quot;8.9.3&quot;"
        errorLine2="                    ~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="15"
            column="21"/>
    </issue>

    <issue
        id="AndroidGradlePluginVersion"
        message="A newer version of com.android.application than 8.9.3 is available: 9.3.2"
        errorLine1="gradlePlugins-agp = &quot;8.9.3&quot;"
        errorLine2="                    ~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="15"
            column="21"/>
    </issue>

    <issue
        id="AndroidGradlePluginVersion"
        message="A newer version of com.android.application than 8.9.3 is available: 9.3.2"
        errorLine1="gradlePlugins-agp = &quot;8.9.3&quot;"
        errorLine2="                    ~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="15"
            column="21"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.work:work-runtime-ktx than 2.9.0 is available: 2.11.2"
        errorLine1="    implementation(&quot;androidx.work:work-runtime-ktx:2.9.0&quot;)"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="223"
            column="20"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of com.google.android.material:material than 1.11.0 is available: 1.14.0"
        errorLine1="    implementation(&quot;com.google.android.material:material:1.11.0&quot;)"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="227"
            column="20"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of com.google.firebase:firebase-messaging-ktx than 23.4.1 is available: 24.1.2"
        errorLine1="    implementation(&quot;com.google.firebase:firebase-messaging-ktx:23.4.1&quot;)"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="230"
            column="20"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.camera:camera-camera2 than 1.3.1 is available: 1.6.1"
        errorLine1="    implementation(&quot;androidx.camera:camera-camera2:1.3.1&quot;)"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="238"
            column="20"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.camera:camera-lifecycle than 1.3.1 is available: 1.6.1"
        errorLine1="    implementation(&quot;androidx.camera:camera-lifecycle:1.3.1&quot;)"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="239"
            column="20"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.camera:camera-view than 1.3.1 is available: 1.6.1"
        errorLine1="    implementation(&quot;androidx.camera:camera-view:1.3.1&quot;)"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="240"
            column="20"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.test.ext:junit than 1.1.5 is available: 1.3.0"
        errorLine1="    testImplementation(&quot;androidx.test.ext:junit:1.1.5&quot;)"
        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="251"
            column="24"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.test:core than 1.5.0 is available: 1.7.0"
        errorLine1="    testImplementation(&quot;androidx.test:core:1.5.0&quot;)"
        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="252"
            column="24"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.test.ext:junit than 1.1.5 is available: 1.3.0"
        errorLine1="    androidTestImplementation(&quot;androidx.test.ext:junit:1.1.5&quot;)"
        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="255"
            column="31"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.test.espresso:espresso-core than 3.5.1 is available: 3.7.0"
        errorLine1="    androidTestImplementation(&quot;androidx.test.espresso:espresso-core:3.5.1&quot;)"
        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="256"
            column="31"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.test:runner than 1.5.2 is available: 1.7.0"
        errorLine1="    androidTestImplementation(&quot;androidx.test:runner:1.5.2&quot;)"
        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="258"
            column="31"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.test:rules than 1.5.0 is available: 1.7.0"
        errorLine1="    androidTestImplementation(&quot;androidx.test:rules:1.5.0&quot;)"
        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="259"
            column="31"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.core:core-ktx than 1.13.1 is available: 1.19.0"
        errorLine1="androidx-core-ktx = &quot;1.13.1&quot;"
        errorLine2="                    ~~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="8"
            column="21"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.core:core-ktx than 1.13.1 is available: 1.19.0"
        errorLine1="androidx-core-ktx = &quot;1.13.1&quot;"
        errorLine2="                    ~~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="8"
            column="21"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.core:core-ktx than 1.13.1 is available: 1.19.0"
        errorLine1="androidx-core-ktx = &quot;1.13.1&quot;"
        errorLine2="                    ~~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="8"
            column="21"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.core:core-splashscreen than 1.0.1 is available: 1.2.0"
        errorLine1="androidx-core-splashscreen = &quot;1.0.1&quot;"
        errorLine2="                             ~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="9"
            column="30"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.core:core-splashscreen than 1.0.1 is available: 1.2.0"
        errorLine1="androidx-core-splashscreen = &quot;1.0.1&quot;"
        errorLine2="                             ~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="9"
            column="30"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.core:core-splashscreen than 1.0.1 is available: 1.2.0"
        errorLine1="androidx-core-splashscreen = &quot;1.0.1&quot;"
        errorLine2="                             ~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="9"
            column="30"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.room:room-compiler than 2.6.1 is available: 2.8.4"
        errorLine1="room = &quot;2.6.1&quot;"
        errorLine2="       ~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="13"
            column="8"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.room:room-compiler than 2.6.1 is available: 2.8.4"
        errorLine1="room = &quot;2.6.1&quot;"
        errorLine2="       ~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="13"
            column="8"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.room:room-compiler than 2.6.1 is available: 2.8.4"
        errorLine1="room = &quot;2.6.1&quot;"
        errorLine2="       ~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="13"
            column="8"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.room:room-ktx than 2.6.1 is available: 2.8.4"
        errorLine1="room = &quot;2.6.1&quot;"
        errorLine2="       ~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="13"
            column="8"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.room:room-ktx than 2.6.1 is available: 2.8.4"
        errorLine1="room = &quot;2.6.1&quot;"
        errorLine2="       ~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="13"
            column="8"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.room:room-ktx than 2.6.1 is available: 2.8.4"
        errorLine1="room = &quot;2.6.1&quot;"
        errorLine2="       ~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="13"
            column="8"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.room:room-runtime than 2.6.1 is available: 2.8.4"
        errorLine1="room = &quot;2.6.1&quot;"
        errorLine2="       ~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="13"
            column="8"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.room:room-runtime than 2.6.1 is available: 2.8.4"
        errorLine1="room = &quot;2.6.1&quot;"
        errorLine2="       ~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="13"
            column="8"/>
    </issue>

    <issue
        id="GradleDependency"
        message="A newer version of androidx.room:room-runtime than 2.6.1 is available: 2.8.4"
        errorLine1="room = &quot;2.6.1&quot;"
        errorLine2="       ~~~~~~~">
        <location
            file="$HOME/Web/zender-legacy/zender-gateway/gradle/libs.versions.toml"
            line="13"
            column="8"/>
    </issue>

    <issue
        id="PluralsCandidate"
        message="Formatting %d followed by words (&quot;and&quot;): This should probably be a plural rather than a string"
        errorLine1="    &lt;string name=&quot;log_fcm_deleting_campaign&quot;>Deleting campaign #%1$d and associated messages…&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="421"
            column="5"/>
    </issue>

    <issue
        id="PluralsCandidate"
        message="Formatting %d followed by words (&quot;and&quot;): This should probably be a plural rather than a string"
        errorLine1="    &lt;string name=&quot;log_fcm_campaign_delete_success&quot;>Campaign #%1$d and %2$d messages deleted successfully&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="422"
            column="5"/>
    </issue>

    <issue
        id="PluralsCandidate"
        message="Formatting %d followed by words (&quot;messages&quot;): This should probably be a plural rather than a string"
        errorLine1="    &lt;string name=&quot;log_fcm_fetching_messages_to_max&quot;>Fetching %1$d messages to reach maximum of %2$d&lt;/string>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="425"
            column="5"/>
    </issue>

    <issue
        id="PermissionImpliesUnsupportedChromeOsHardware"
        message="Permission exists without corresponding hardware `&lt;uses-feature android:name=&quot;android.hardware.camera&quot; required=&quot;false&quot;>` tag"
        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.CAMERA&quot; />"
        errorLine2="     ~~~~~~~~~~~~~~~">
        <location
            file="src/main/AndroidManifest.xml"
            line="59"
            column="6"/>
    </issue>

    <issue
        id="HardwareIds"
        message="Using `getString` to get device identifiers is not recommended"
        errorLine1="        val androidId = Settings.Secure.getString(context.contentResolver, Settings.Secure.ANDROID_ID)"
        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/helpers/DeviceInfoProvider.kt"
            line="15"
            column="25"/>
    </issue>

    <issue
        id="HardwareIds"
        message="Using `getLine1Number` to get device identifiers is not recommended"
        errorLine1="                        telephonyManager.createForSubscriptionId(subId).line1Number"
        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/mms/MmsPduBuilder.kt"
            line="334"
            column="25"/>
    </issue>

    <issue
        id="HardwareIds"
        message="Using `getLine1Number` to get device identifiers is not recommended"
        errorLine1="                telephonyManager.line1Number"
        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/mms/MmsPduBuilder.kt"
            line="344"
            column="17"/>
    </issue>

    <issue
        id="SystemPermissionTypo"
        message="Did you mean `android.permission.WRITE_OBB`?"
        errorLine1="    &lt;uses-permission android:name=&quot;android.permission.WRITE_SMS&quot; />"
        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/AndroidManifest.xml"
            line="7"
            column="36"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 26"
        errorLine1="            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/helpers/AppUpdateManager.kt"
            line="59"
            column="17"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 26"
        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/helpers/AppUpdateManager.kt"
            line="251"
            column="13"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 26"
        errorLine1="            val uri = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {"
        errorLine2="                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/helpers/AppUpdateManager.kt"
            line="275"
            column="27"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 26"
        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/receivers/DeviceBootReceiver.kt"
            line="92"
            column="13"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is never &lt; 26"
        errorLine1="        if (Build.VERSION.SDK_INT &lt; MIN_SDK_VERSION) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/activities/LoginActivity.kt"
            line="123"
            column="13"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 26"
        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/services/MessageQueueService.kt"
            line="178"
            column="13"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 26"
        errorLine1="            if (simSlot != null &amp;&amp; Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {"
        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/mms/MmsPduBuilder.kt"
            line="322"
            column="36"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 26"
        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/ui/notifications/NotificationChannelManager.kt"
            line="20"
            column="13"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 26"
        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/helpers/NotificationManager.kt"
            line="115"
            column="13"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 26"
        errorLine1="            Build.VERSION.SDK_INT >= Build.VERSION_CODES.M -> {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/sms/receivers/ScheduledSmsReceiver.kt"
            line="67"
            column="13"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT` is never true here"
        errorLine1="            Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT -> {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/sms/receivers/ScheduledSmsReceiver.kt"
            line="82"
            column="13"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 26"
        errorLine1="        val subscriptionId = if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP_MR1) {"
        errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/sms/receivers/SmsReceiver.kt"
            line="76"
            column="34"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 26"
        errorLine1="                        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {"
        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/sms/receivers/SmsReceiver.kt"
            line="88"
            column="29"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 26"
        errorLine1="                android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP_MR1 -> {"
        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/sms/receivers/SmsReceiver.kt"
            line="168"
            column="17"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 26"
        errorLine1="            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {"
        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/sms/receivers/SmsReceiver.kt"
            line="186"
            column="17"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 26"
        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/sms/SmsServiceManager.kt"
            line="82"
            column="13"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is never &lt; 26"
        errorLine1="        if (Build.VERSION.SDK_INT &lt; Build.VERSION_CODES.M) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/helpers/SystemManager.kt"
            line="28"
            column="13"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 26"
        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/helpers/UssdManager.kt"
            line="46"
            column="13"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="This folder configuration (`v26`) is unnecessary; `minSdkVersion` is 26. Merge all the resources in this folder into `mipmap-anydpi`.">
        <location
            file="src/main/res/mipmap-anydpi-v26"/>
    </issue>

    <issue
        id="StaticFieldLeak"
        message="Do not place Android context classes in static fields (static reference to `GatewayActivity` which has field `terminalTextView` pointing to `TextView`); this is a memory leak"
        errorLine1="        private var instance: GatewayActivity? = null"
        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/activities/GatewayActivity.kt"
            line="62"
            column="9"/>
    </issue>

    <issue
        id="Overdraw"
        message="Possible overdraw: Root element paints background `?android:attr/colorBackground` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"
        errorLine1="    android:background=&quot;?android:attr/colorBackground&quot;>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/layout/activity_login.xml"
            line="20"
            column="5"/>
    </issue>

    <issue
        id="Overdraw"
        message="Possible overdraw: Root element paints background `@android:color/black` with a theme that also paints a background (inferred theme is `@style/AppTheme_NoActionBar`)"
        errorLine1="    android:background=&quot;@android:color/black&quot;>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/layout/activity_qr_scanner.xml"
            line="6"
            column="5"/>
    </issue>

    <issue
        id="Overdraw"
        message="Possible overdraw: Root element paints background `@color/splash_background` with a theme that also paints a background (inferred theme is `@style/SplashTheme`)"
        errorLine1="    android:background=&quot;@color/splash_background&quot;>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/layout/activity_splash.xml"
            line="5"
            column="5"/>
    </issue>

    <issue
        id="Overdraw"
        message="Possible overdraw: Root element paints background `?android:attr/colorBackground` with a theme that also paints a background (inferred theme is `@style/TerminalTheme`)"
        errorLine1="    android:background=&quot;?android:attr/colorBackground&quot;>"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/layout/activity_terminal.xml"
            line="6"
            column="5"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.color.qr_login_button_color` appears to be unused"
        errorLine1="    &lt;color name=&quot;qr_login_button_color&quot;>@color/colorPrimary&lt;/color>  &lt;!-- QR login button text color -->"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/colors.xml"
            line="10"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.color.black` appears to be unused"
        errorLine1="    &lt;color name=&quot;black&quot;>#FF000000&lt;/color>"
        errorLine2="           ~~~~~~~~~~~~">
        <location
            file="src/main/res/values/colors.xml"
            line="17"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.color.splash_text` appears to be unused"
        errorLine1="    &lt;color name=&quot;splash_text&quot;>#FF000000&lt;/color>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/colors.xml"
            line="22"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.color.splash_progress` appears to be unused"
        errorLine1="    &lt;color name=&quot;splash_progress&quot;>@color/colorPrimary&lt;/color>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/colors.xml"
            line="23"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.dimen.bigger_avatar_size` appears to be unused"
        errorLine1="    &lt;dimen name=&quot;bigger_avatar_size&quot;>64dp&lt;/dimen>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/dimens.xml"
            line="3"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.dimen.play_outline_size` appears to be unused"
        errorLine1="    &lt;dimen name=&quot;play_outline_size&quot;>36dp&lt;/dimen>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/dimens.xml"
            line="4"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.dimen.attachment_preview_size` appears to be unused"
        errorLine1="    &lt;dimen name=&quot;attachment_preview_size&quot;>64dp&lt;/dimen>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/dimens.xml"
            line="5"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.dimen.attachment_preview_min_height` appears to be unused"
        errorLine1="    &lt;dimen name=&quot;attachment_preview_min_height&quot;>@dimen/attachment_preview_size&lt;/dimen>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/dimens.xml"
            line="6"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.dimen.attachment_preview_max_width` appears to be unused"
        errorLine1="    &lt;dimen name=&quot;attachment_preview_max_width&quot;>156dp&lt;/dimen>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/dimens.xml"
            line="7"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.dimen.remove_attachment_size` appears to be unused"
        errorLine1="    &lt;dimen name=&quot;remove_attachment_size&quot;>24dp&lt;/dimen>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/dimens.xml"
            line="8"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.dimen.pin_icon_size` appears to be unused"
        errorLine1="    &lt;dimen name=&quot;pin_icon_size&quot;>15dp&lt;/dimen>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/dimens.xml"
            line="9"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.dimen.vcard_property_start_margin` appears to be unused"
        errorLine1="    &lt;dimen name=&quot;vcard_property_start_margin&quot;>64dp&lt;/dimen>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/dimens.xml"
            line="10"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.dimen.small_icon_size` appears to be unused"
        errorLine1="    &lt;dimen name=&quot;small_icon_size&quot;>20dp&lt;/dimen>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/dimens.xml"
            line="11"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.dimen.medium_icon_size` appears to be unused"
        errorLine1="    &lt;dimen name=&quot;medium_icon_size&quot;>36dp&lt;/dimen>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/dimens.xml"
            line="12"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.dimen.attachment_button_height` appears to be unused"
        errorLine1="    &lt;dimen name=&quot;attachment_button_height&quot;>96dp&lt;/dimen>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/dimens.xml"
            line="13"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.dimen.attachment_button_width` appears to be unused"
        errorLine1="    &lt;dimen name=&quot;attachment_button_width&quot;>90dp&lt;/dimen>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/dimens.xml"
            line="14"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.dimen.snackbar_margin` appears to be unused"
        errorLine1="    &lt;dimen name=&quot;snackbar_margin&quot;>16dp&lt;/dimen>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/dimens.xml"
            line="16"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.dimen.normal_margin` appears to be unused"
        errorLine1="    &lt;dimen name=&quot;normal_margin&quot;>16dp&lt;/dimen>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/dimens.xml"
            line="19"
            column="12"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.package_name` appears to be unused"
        errorLine1="    &lt;string name=&quot;package_name&quot;>dev.titansys.smsgateway&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/donottranslate.xml"
            line="2"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.mms_file_size_limit_100kb` appears to be unused"
        errorLine1="    &lt;string name=&quot;mms_file_size_limit_100kb&quot;>100KB&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/donottranslate.xml"
            line="4"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.mms_file_size_limit_200kb` appears to be unused"
        errorLine1="    &lt;string name=&quot;mms_file_size_limit_200kb&quot;>200KB&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/donottranslate.xml"
            line="5"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.mms_file_size_limit_300kb` appears to be unused"
        errorLine1="    &lt;string name=&quot;mms_file_size_limit_300kb&quot;>300KB&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/donottranslate.xml"
            line="6"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.mms_file_size_limit_600kb` appears to be unused"
        errorLine1="    &lt;string name=&quot;mms_file_size_limit_600kb&quot;>600KB&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/donottranslate.xml"
            line="7"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.mms_file_size_limit_1mb` appears to be unused"
        errorLine1="    &lt;string name=&quot;mms_file_size_limit_1mb&quot;>1MB&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/donottranslate.xml"
            line="8"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.mms_file_size_limit_2mb` appears to be unused"
        errorLine1="    &lt;string name=&quot;mms_file_size_limit_2mb&quot;>2MB&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/donottranslate.xml"
            line="9"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.sms` appears to be unused"
        errorLine1="    &lt;string name=&quot;sms&quot;>SMS&lt;/string>"
        errorLine2="            ~~~~~~~~~~">
        <location
            file="src/main/res/values/donottranslate.xml"
            line="10"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.mms` appears to be unused"
        errorLine1="    &lt;string name=&quot;mms&quot;>MMS&lt;/string>"
        errorLine2="            ~~~~~~~~~~">
        <location
            file="src/main/res/values/donottranslate.xml"
            line="11"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.message_details_sim` appears to be unused"
        errorLine1="    &lt;string name=&quot;message_details_sim&quot;>SIM&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/donottranslate.xml"
            line="12"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.mipmap.ic_launcher_background` appears to be unused">
        <location
            file="src/main/res/mipmap-xxxhdpi/ic_launcher_background.png"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.mipmap.ic_launcher_foreground` appears to be unused">
        <location
            file="src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.mipmap.ic_launcher_monochrome` appears to be unused">
        <location
            file="src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.drawable.ic_messenger` appears to be unused">
        <location
            file="src/main/res/drawable-hdpi/ic_messenger.png"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.login_with_qr` appears to be unused"
        errorLine1="    &lt;string name=&quot;login_with_qr&quot;>Login with QR Code&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="28"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.invalid_qr_format` appears to be unused"
        errorLine1="    &lt;string name=&quot;invalid_qr_format&quot;>Invalid QR code format!&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="34"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.unable_to_login_em2001` appears to be unused"
        errorLine1="    &lt;string name=&quot;unable_to_login_em2001&quot;>Unable to login: EM2001&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="39"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.unable_to_login_em2002` appears to be unused"
        errorLine1="    &lt;string name=&quot;unable_to_login_em2002&quot;>Unable to login: EM2002&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="40"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.unable_to_login_em2003` appears to be unused"
        errorLine1="    &lt;string name=&quot;unable_to_login_em2003&quot;>Unable to login: EM2003&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="41"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.unable_to_login_em2005` appears to be unused"
        errorLine1="    &lt;string name=&quot;unable_to_login_em2005&quot;>Unable to login: EM2005&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="43"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.unable_to_login_em2006` appears to be unused"
        errorLine1="    &lt;string name=&quot;unable_to_login_em2006&quot;>Unable to login: EM2006&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="44"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.unable_to_login_em2007` appears to be unused"
        errorLine1="    &lt;string name=&quot;unable_to_login_em2007&quot;>Unable to login: EM2007&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="45"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.unable_to_login_em2008` appears to be unused"
        errorLine1="    &lt;string name=&quot;unable_to_login_em2008&quot;>Unable to login: EM2008&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="46"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.unable_to_login_em2009` appears to be unused"
        errorLine1="    &lt;string name=&quot;unable_to_login_em2009&quot;>Unable to login: EM2009&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="47"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.unable_to_login_em2010` appears to be unused"
        errorLine1="    &lt;string name=&quot;unable_to_login_em2010&quot;>Unable to login: EM2010&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="48"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.unable_to_login_em2011` appears to be unused"
        errorLine1="    &lt;string name=&quot;unable_to_login_em2011&quot;>Unable to login: EM2011&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="49"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.contacts_permission_denied` appears to be unused"
        errorLine1="    &lt;string name=&quot;contacts_permission_denied&quot;>Contacts permission denied - contact names won\&apos;t be shown&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="94"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.notification_permission_denied` appears to be unused"
        errorLine1="    &lt;string name=&quot;notification_permission_denied&quot;>Notification permission denied - foreground services will still work&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="95"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.exclusion_required` appears to be unused"
        errorLine1="    &lt;string name=&quot;exclusion_required&quot;>Exclusion Required&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="100"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.battery_optimization_message` appears to be unused"
        errorLine1="    &lt;string name=&quot;battery_optimization_message&quot;>App must be excluded from battery optimization to ensure reliable message delivery.&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="103"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.battery_optimization_error` appears to be unused"
        errorLine1="    &lt;string name=&quot;battery_optimization_error&quot;>Could not request battery optimization permission.&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="104"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.battery_optimization_enabled` appears to be unused"
        errorLine1="    &lt;string name=&quot;battery_optimization_enabled&quot;>Battery optimization still enabled - app may not work reliably&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="105"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.battery_optimization_disabled` appears to be unused"
        errorLine1="    &lt;string name=&quot;battery_optimization_disabled&quot;>Battery optimization disabled - app can run in background&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="106"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.update_available_message` appears to be unused"
        errorLine1="    &lt;string name=&quot;update_available_message&quot;>A new version (%s) is available. Please update to the latest version.&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="113"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.channel_sms_sending` appears to be unused"
        errorLine1="    &lt;string name=&quot;channel_sms_sending&quot;>SMS Sending&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="119"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.channel_sms_sending_desc` appears to be unused"
        errorLine1="    &lt;string name=&quot;channel_sms_sending_desc&quot;>Notifications for SMS sending progress&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="120"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.channel_ussd_sending` appears to be unused"
        errorLine1="    &lt;string name=&quot;channel_ussd_sending&quot;>USSD Sending&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="121"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.channel_ussd_sending_desc` appears to be unused"
        errorLine1="    &lt;string name=&quot;channel_ussd_sending_desc&quot;>Notifications for USSD sending progress&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="122"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.channel_message_processing` appears to be unused"
        errorLine1="    &lt;string name=&quot;channel_message_processing&quot;>Message Processing&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="123"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.channel_message_processing_desc` appears to be unused"
        errorLine1="    &lt;string name=&quot;channel_message_processing_desc&quot;>Unified notifications for all message processing activities&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="124"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.notification_processing_messages` appears to be unused"
        errorLine1="    &lt;string name=&quot;notification_processing_messages&quot;>Processing messages…&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="162"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.notification_fetching_database` appears to be unused"
        errorLine1="    &lt;string name=&quot;notification_fetching_database&quot;>Fetching messages from database…&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="163"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.notification_waiting_next` appears to be unused"
        errorLine1="    &lt;string name=&quot;notification_waiting_next&quot;>Waiting %1$ds before next message (%2$d/%3$d)&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="164"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.notification_processing_completed` appears to be unused"
        errorLine1="    &lt;string name=&quot;notification_processing_completed&quot;>Processing completed successfully&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="165"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.error_failed_to_store_sms` appears to be unused"
        errorLine1="    &lt;string name=&quot;error_failed_to_store_sms&quot;>Failed to store SMS in database&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="264"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.error_processing_sms` appears to be unused"
        errorLine1="    &lt;string name=&quot;error_processing_sms&quot;>Error processing SMS: %s&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="265"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.error_cannot_sync_missing_credentials` appears to be unused"
        errorLine1="    &lt;string name=&quot;error_cannot_sync_missing_credentials&quot;>Cannot sync received SMS: missing credentials&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="266"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.error_syncing_received_messages` appears to be unused"
        errorLine1="    &lt;string name=&quot;error_syncing_received_messages&quot;>Error syncing received messages: %s&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="267"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.error_scheduling_sms_sync` appears to be unused"
        errorLine1="    &lt;string name=&quot;error_scheduling_sms_sync&quot;>Error scheduling SMS sync: %s&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="268"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_message_sync_failed` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_message_sync_failed&quot;>Message sync failed, will retry: %1$s - %2$s&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="320"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_message_status_sync_failed` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_message_status_sync_failed&quot;>Message status sync failed, will retry: %1$s - %2$s&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="326"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_device_settings_updated` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_device_settings_updated&quot;>Device settings updated successfully!&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="364"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_device_deleted` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_device_deleted&quot;>Device deleted from the server…&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="365"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_deleting_device` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_deleting_device&quot;>Deleting device…&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="366"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_campaign_updated` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_campaign_updated&quot; tools:ignore=&quot;PluralsCandidate&quot;>Campaign #%d has been updated!&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="367"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_campaign_deleted` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_campaign_deleted&quot;>Campaign deleted from the server…&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="368"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_deleting_campaign` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_deleting_campaign&quot; tools:ignore=&quot;PluralsCandidate&quot;>Deleting campaign #%d and associated messages…&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="369"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_campaign_messages_deleted` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_campaign_messages_deleted&quot; tools:ignore=&quot;PluralsCandidate&quot;>Campaign #%1$d and %2$d messages deleted successfully&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="370"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_fcm_fetching_ussd` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_fcm_fetching_ussd&quot;>Fetching USSD codes from the server…&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="371"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_fcm_deleted_ussd` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_fcm_deleted_ussd&quot;>Deleted USSD #%d…&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="373"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_fcm_fetching_count` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_fcm_fetching_count&quot; tools:ignore=&quot;PluralsCandidate&quot;>Fetching %1$d messages to reach maximum of %2$d&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="374"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_fcm_fetched_messages` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_fcm_fetched_messages&quot; tools:ignore=&quot;PluralsCandidate&quot;>Fetched %d messages from the server…&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="375"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_fcm_skipping_message` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_fcm_skipping_message&quot;>Skipping message %d - already exists&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="376"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_fcm_fetched_ussd` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_fcm_fetched_ussd&quot;>Fetched %d USSD codes from the server…&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="377"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_fcm_skipping_ussd` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_fcm_skipping_ussd&quot;>Skipping USSD #%d - already exists&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="378"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_fcm_stored_ussd` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_fcm_stored_ussd&quot;>Stored new USSD #%d…&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="379"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_fcm_token_sync_failed` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_fcm_token_sync_failed&quot;>Token sync failed, will retry: %1$s - %2$s&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="380"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_msg_queued` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_msg_queued&quot; tools:ignore=&quot;PluralsCandidate&quot;>Queued: %1$d priority, %2$d standard items&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="393"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.string.log_msg_processing_failed` appears to be unused"
        errorLine1="    &lt;string name=&quot;log_msg_processing_failed&quot; tools:ignore=&quot;PluralsCandidate&quot;>%1$s item #%2$d processing failed&lt;/string>"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/strings.xml"
            line="394"
            column="13"/>
    </issue>

    <issue
        id="UnusedResources"
        message="The resource `R.style.roundedImageView` appears to be unused"
        errorLine1="    &lt;style name=&quot;roundedImageView&quot; parent=&quot;&quot;>"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/res/values/styles.xml"
            line="42"
            column="12"/>
    </issue>

    <issue
        id="IconXmlAndPng"
        message="The following images appear both as density independent `.xml` files and as bitmap files: src/main/res/drawable/ic_launcher_foreground.xml, src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png">
        <location
            file="src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png"/>
        <location
            file="src/main/res/drawable/ic_launcher_foreground.xml"/>
    </issue>

    <issue
        id="IconXmlAndPng"
        message="The following images appear both as density independent `.xml` files and as bitmap files: src/main/res/drawable/ic_launcher_monochrome.xml, src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png">
        <location
            file="src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png"/>
        <location
            file="src/main/res/drawable/ic_launcher_monochrome.xml"/>
    </issue>

    <issue
        id="IconLocation"
        message="Found bitmap drawable `res/drawable/logo.png` in densityless folder">
        <location
            file="src/main/res/drawable/logo.png"/>
    </issue>

    <issue
        id="UnnecessaryRequiredFeature"
        message="Consider whether this feature (`android.hardware.telephony`) really is required for the app to function; you can set `android:required=&quot;false&quot;` to indicate that the feature is used but not required"
        errorLine1="    &lt;uses-feature android:name=&quot;android.hardware.telephony&quot; />"
        errorLine2="                                ~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/AndroidManifest.xml"
            line="34"
            column="33"/>
    </issue>

    <issue
        id="UseKtx"
        message="Use the KTX extension function `String.toUri` instead?"
        errorLine1="                    Uri.parse(&quot;package:${context.packageName}&quot;)"
        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/helpers/AppUpdateManager.kt"
            line="255"
            column="21"/>
    </issue>

    <issue
        id="UseKtx"
        message="Use the KTX extension function `SharedPreferences.edit` instead?"
        errorLine1="        prefs.edit().clear().apply()"
        errorLine2="        ~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/helpers/SessionManager.kt"
            line="54"
            column="9"/>
    </issue>

    <issue
        id="UseKtx"
        message="Use the KTX extension function `SharedPreferences.edit` instead?"
        errorLine1="        prefs.edit().putString(KEY_SITE_URL, if (url.endsWith(&quot;/&quot;)) url else &quot;$url/&quot;).apply()"
        errorLine2="        ~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/helpers/SessionManager.kt"
            line="73"
            column="9"/>
    </issue>

    <issue
        id="UseKtx"
        message="Use the KTX extension function `String.toUri` instead?"
        errorLine1="            val uri = Uri.parse(&quot;content://sms/sent&quot;)"
        errorLine2="                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/sms/SmsSender.kt"
            line="382"
            column="23"/>
    </issue>

    <issue
        id="UseKtx"
        message="Use the KTX extension function `String.toUri` instead?"
        errorLine1="                data = Uri.parse(&quot;package:${activity.packageName}&quot;)"
        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/helpers/SystemManager.kt"
            line="66"
            column="24"/>
    </issue>

    <issue
        id="UseKtx"
        message="Use the KTX extension function `String.toUri` instead?"
        errorLine1="                data = Uri.parse(&quot;package:${activity.packageName}&quot;)"
        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/helpers/SystemManager.kt"
            line="66"
            column="24"/>
    </issue>

    <issue
        id="UseKtx"
        message="Use the KTX extension function `SharedPreferences.edit` instead?"
        errorLine1="            context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)"
        errorLine2="            ^">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/helpers/SystemManager.kt"
            line="107"
            column="13"/>
    </issue>

    <issue
        id="UseKtx"
        message="Use the KTX extension function `SharedPreferences.edit` instead?"
        errorLine1="            context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)"
        errorLine2="            ^">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/helpers/SystemManager.kt"
            line="141"
            column="13"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    implementation(&quot;androidx.work:work-runtime-ktx:2.9.0&quot;)"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="223"
            column="20"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    implementation(&quot;com.google.android.material:material:1.11.0&quot;)"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="227"
            column="20"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    implementation(&quot;com.google.firebase:firebase-messaging-ktx:23.4.1&quot;)"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="230"
            column="20"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    implementation(&quot;com.squareup.retrofit2:retrofit:2.11.0&quot;)"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="233"
            column="20"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    implementation(&quot;com.squareup.retrofit2:converter-gson:2.11.0&quot;)"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="234"
            column="20"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    implementation(&quot;com.squareup.okhttp3:logging-interceptor:4.12.0&quot;)"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="235"
            column="20"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    implementation(&quot;androidx.camera:camera-camera2:1.3.1&quot;)"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="238"
            column="20"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    implementation(&quot;androidx.camera:camera-lifecycle:1.3.1&quot;)"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="239"
            column="20"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    implementation(&quot;androidx.camera:camera-view:1.3.1&quot;)"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="240"
            column="20"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    implementation(&quot;com.google.zxing:core:3.5.2&quot;)"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="241"
            column="20"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    testImplementation(&quot;junit:junit:4.13.2&quot;)"
        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="247"
            column="24"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    testImplementation(&quot;org.robolectric:robolectric:4.11.1&quot;)"
        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="248"
            column="24"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    testImplementation(&quot;io.mockk:mockk:1.13.8&quot;)"
        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="249"
            column="24"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    testImplementation(&quot;org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3&quot;)"
        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="250"
            column="24"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    testImplementation(&quot;androidx.test.ext:junit:1.1.5&quot;)"
        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="251"
            column="24"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    testImplementation(&quot;androidx.test:core:1.5.0&quot;)"
        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="252"
            column="24"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    androidTestImplementation(&quot;androidx.test.ext:junit:1.1.5&quot;)"
        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="255"
            column="31"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    androidTestImplementation(&quot;androidx.test.espresso:espresso-core:3.5.1&quot;)"
        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="256"
            column="31"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    androidTestImplementation(&quot;io.mockk:mockk-android:1.13.8&quot;)"
        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="257"
            column="31"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    androidTestImplementation(&quot;androidx.test:runner:1.5.2&quot;)"
        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="258"
            column="31"/>
    </issue>

    <issue
        id="UseTomlInstead"
        message="Use version catalog instead"
        errorLine1="    androidTestImplementation(&quot;androidx.test:rules:1.5.0&quot;)"
        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="build.gradle.kts"
            line="259"
            column="31"/>
    </issue>

    <issue
        id="SetTextI18n"
        message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
        errorLine1="        progressText?.text = &quot;$downloadedSize / $totalSize ($progress%)&quot;"
        errorLine2="                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/kotlin/dev/titansys/smsgateway/helpers/AppUpdateManager.kt"
            line="181"
            column="30"/>
    </issue>

</issues>
