Lint Report: 24 warnings
Issue Types

Overview

Correctness
5warning InflateParams: Layout Inflation without a Parent
4warning VectorRaster: Vector Image Generation
1warning GradleDependency: Obsolete Gradle Dependency
Security
2warning TrustAllX509TrustManager: Insecure TLS/SSL trust manager
Performance
5warning VectorPath: Long vector paths
Usability:Icons
5warning IconLocation: Image defined in density-independent drawable folder
Productivity
2warning UseKtx: Use KTX extension function
Included Additional Checks (82)
Disabled Checks (41)

Layout Inflation without a Parent

../../src/androidMain/kotlin/com/ustadmobile/libuicompose/components/AztecEditor.kt:128: Avoid passing null as the view root (needed to resolve layout parameters on the inflated layout's root element)
 125   AndroidView(
 126       modifier = modifier,
 127       factory = { context ->
 128           val rootView = LayoutInflater.from(context).inflate(R.layout.aztec_editor, null, false)
 129           val placeholderTextView: TextView = rootView.findViewById(R.id.aztec_placeholder)
 130           if(placeholderText != null) {
 131               placeholderTextView.text = placeholderText
../../src/androidMain/kotlin/com/ustadmobile/libuicompose/components/ClazzLogEditAttendanceToggleGroup.kt:46: Avoid passing null as the view root (needed to resolve layout parameters on the inflated layout's root element)
 43         factory = {  context ->
 44             val view = LayoutInflater.from(context).inflate(
 45                 R.layout.item_clazz_log_attendance_status_toggle_buttons,
 46                 null, false                                                                         
 47             ) as MaterialButtonToggleGroup
 48 
 49             view.isSingleSelection = true
../../src/androidMain/kotlin/com/ustadmobile/libuicompose/components/DatePickerSpinner.kt:32: Avoid passing null as the view root (needed to resolve layout parameters on the inflated layout's root element)
 29   AndroidView(
 30       modifier = modifier,
 31       factory = { context ->
 32           LayoutInflater.from(context).inflate(R.layout.datepicker_spinner, null, false).apply {  
 33               this as DatePicker
 34               init(calendar[Calendar.YEAR],
 35                       calendar[Calendar.MONTH],
../../src/androidMain/kotlin/com/ustadmobile/libuicompose/components/HtmlClickableTextField.kt:78: Avoid passing null as the view root (needed to resolve layout parameters on the inflated layout's root element)
 75         modifier = modifier,
 76         factory = { context ->
 77             LayoutInflater.from(context).inflate(
 78                 R.layout.item_text_input_layout, null, false                                        
 79             ).apply {
 80                 update()
 81                 findViewById<TextInputEditText>(
../../src/androidMain/kotlin/com/ustadmobile/libuicompose/components/webview/UstadWebView.kt:94: Avoid passing null as the view root (needed to resolve layout parameters on the inflated layout's root element)
  91         modifier = modifier,
  92         factory = { context ->
  93               LayoutInflater.from(context).inflate(
  94                   R.layout.screen_xapi, null, false                                                 
  95               ).also {
  96                   val webView = it.findViewById<WebView>(R.id.xapi_screen_webview)
  97                   webView.settings.javaScriptEnabled = true
InflateParams Correctness Warning Priority 5/10

Vector Image Generation

../../src/androidMain/res/drawable/illustration_connect.xml:2: Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more
    1 <vector xmlns:android="http://schemas.android.com/apk/res/android"
    2     android:width="1000dp"                                                                          
    3     android:height="1000dp"
    4     android:viewportWidth="1000"
    5     android:viewportHeight="1000">
../../src/androidMain/res/drawable/illustration_onboarding1.xml:2: Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more
   1 <vector android:height="480dp" android:viewportHeight="1000"
   2     android:viewportWidth="1000" android:width="480dp" xmlns:android="http://schemas.android.com/apk/res/android">
   3     <group>
   4         <clip-path android:pathData="M512,15.32q-5.39,0.26 -10.75,0.61C344.67,26 191.95,105 143.81,263.89 67.9,514.42 36,749.39 192,887.16c151,133.38 293.42,126.41 378.82,6.84 41.75,-51.24 178.41,-87.3 242.94,-119.57s163.22,-163.22 55,-324.55c-22.77,-34.16 -19,-153.73 -9.49,-220.16 7.64,-53.52 -36.7,-108.61 -74.7,-140.21C708.89,26.53 607.79,10.67 512,15.32Z"/>
   5         <path android:fillColor="#ceedbe" android:pathData="M580.84,247.73s-59.4,6.16 -57.16,13.45 54.45,38.57 57.48,60.47Z"/>
../../src/androidMain/res/drawable/illustration_onboarding2.xml:2: Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more
  1 <vector android:height="500dp" android:viewportHeight="1000"
  2     android:viewportWidth="1000" android:width="500dp" xmlns:android="http://schemas.android.com/apk/res/android">
  3     <group>
  4         <clip-path android:pathData="M8.83,542.06c0,-155.18 140.09,-386.37 416.31,-357.3C743,218.23 1023.29,328.32 979.35,535.24 950.2,672.5 744.15,806.84 512.87,824.39 285.43,841.64 8.83,697.25 8.83,542.06Z"/>
  5         <path android:fillColor="#eaf6f2" android:pathData="M8.83,542.06c0,-155.18 140.09,-386.37 416.31,-357.3C743,218.23 1023.29,328.32 979.35,535.24 950.2,672.5 744.15,806.84 512.87,824.39 285.43,841.64 8.83,697.25 8.83,542.06Z"/>
../../src/androidMain/res/drawable/illustration_onboarding3.xml:2: Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more
   1 <vector xmlns:android="http://schemas.android.com/apk/res/android"
   2     android:width="1000dp"                                                                          
   3     android:height="1000dp"
   4     android:viewportWidth="1000"
   5     android:viewportHeight="1000">
VectorRaster Correctness Warning Priority 5/10

Obsolete Gradle Dependency

../../build.gradle.kts:109: A newer version of compileSdkVersion than 34 is available: 35
 106 }
 107 
 108 android {
 109     compileSdk = 34                                                                                 
 110     namespace = "com.ustadmobile.libuicompose"
 111 
 112     sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
GradleDependency Correctness Warning Priority 4/10

Insecure TLS/SSL trust manager

../../../../../../.gradle/caches/modules-2/files-2.1/com.athaydes.rawhttp/rawhttp-core/2.6.0/8bbc07fc8faa95d25f8d4d686336b37f674a84b1/rawhttp-core-2.6.0.jar: checkClientTrusted is empty, which could cause insecure network traffic due to trusting arbitrary TLS/SSL certificates presented by peers
../../../../../../.gradle/caches/modules-2/files-2.1/com.athaydes.rawhttp/rawhttp-core/2.6.0/8bbc07fc8faa95d25f8d4d686336b37f674a84b1/rawhttp-core-2.6.0.jar: checkServerTrusted is empty, which could cause insecure network traffic due to trusting arbitrary TLS/SSL certificates presented by peers
TrustAllX509TrustManager Security Warning Priority 6/10

Long vector paths

../../src/androidMain/res/drawable/ic_delay.xml:11: Very long vector path (1479 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector.
  8       android:pathData="M14.4966,13.9213l0.5776,-0.8037l-1.4566,-1.0799l0,-4.0686l-1.0046,0l0,4.5709z"/>
  9   <path
 10       android:fillColor="#FF000000"
 11       android:pathData="M10.9303,9.0741C10.9303,6.8389 9.0969,5.0056 6.8617,5.0056c-2.2352,0 -4.0686,1.8334 -4.0686,4.0686 0,2.2352 1.8334,4.0686 4.0686,4.0686 2.2352,-0.0251 4.0686,-1.8334 4.0686,-4.0686zM6.3594,6.7134l1.0046,0l0,3.0389l-1.0046,0zM6.7613,11.5605C6.7361,11.5605 6.711,11.5354 6.6608,11.5354 6.6357,11.5354 6.6106,11.5103 6.5603,11.4852 6.5352,11.46 6.5101,11.4349 6.485,11.4349 6.4599,11.4098 6.4348,11.3847 6.4348,11.3596 6.4097,11.3345 6.4097,11.3093 6.3845,11.2842c-0.0251,-0.0251 -0.0251,-0.0502 -0.0251,-0.1005 0,-0.0251 0,-0.0753 0,-0.1005 0,-0.0251 0,-0.0753 0,-0.1005 0,-0.0251 0.0251,-0.0502 0.0251,-0.1005 0,-0.0251 0.0251,-0.0502 0.0502,-0.1005 0.0251,-0.0251 0.0251,-0.0502 0.0502,-0.0753 0.0251,-0.0251 0.0502,-0.0502 0.0753,-0.0502 0.0251,-0.0251 0.0502,-0.0251 0.1005,-0.0502 0.0251,0 0.0502,-0.0251 0.1005,-0.0251 0.0753,0 0.1256,0 0.2009,0 0.0251,0 0.0753,0.0251 0.1005,0.0251 0.0251,0.0251 0.0502,0.0251 0.0753,0.0502 0.0251,0.0251 0.0502,0.0502 0.0753,0.0502 0.0251,0.0251 0.0502,0.0502 0.0502,0.0753 0.0251,0.0251 0.0251,0.0502 0.0502,0.1005 0.0251,0.0251 0.0251,0.0502 0.0251,0.1005 0,0.0251 0,0.0753 0,0.1005 0,0.0251 0,0.0753 0,0.1005 0,0.0251 -0.0251,0.0502 -0.0251,0.1005 0,0.0251 -0.0251,0.0502 -0.0502,0.0753 -0.0251,0.0251 -0.0251,0.0502 -0.0502,0.0753 -0.0251,0.0251 -0.0502,0.0502 -0.0753,0.0502 -0.0251,0.0251 -0.0502,0.0251 -0.0753,0.0502 -0.0251,0.0251 -0.0502,0.0251 -0.1005,0.0251 -0.0251,0 -0.0753,0 -0.1005,0 -0.0251,0.0251 -0.0753,0.0251 -0.1005,0z"/>
 12   <path
 13       android:fillColor="#FF000000"
 14       android:pathData="m13.1153,4.7544c-0.9795,0 -1.9087,0.2009 -2.7375,0.5525 0.2763,0.226 0.5274,0.5023 0.7534,0.7786 0.6279,-0.2009 1.306,-0.3265 1.9841,-0.3265 3.4407,0 6.2535,2.8128 6.2535,6.2535 0,3.4407 -2.8128,6.2284 -6.2535,6.2284 -2.4612,0 -4.5709,-1.4315 -5.6006,-3.4909 -0.2009,0.0251 -0.4269,0.0502 -0.653,0.0502 -0.1507,0 -0.3014,0 -0.4521,-0.0251 1.105,2.6119 3.6918,4.4704 6.7056,4.4704 3.9932,0 7.2581,-3.2649 7.2581,-7.2581C20.3734,7.9942 17.1085,4.7544 13.1153,4.7544Z"/>
../../src/androidMain/res/drawable/illustration_connect.xml:625: Very long vector path (830 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector.
  622       android:pathData="M94.47,431.8s-8.94,-2 -9.43,6.95 5.46,21.84 3.47,26.81 -10.42,4 -13.4,0 -13.4,-13.4 -29.78,-8.44 -3,15.39 7.45,14.4 23.83,0 22.34,8.94c-1.49,5.46 -8.94,3.47 -12.91,3.47s-19.86,5 -17.87,13.9 18.86,3 22.83,1.49 18.37,-1.49 20.85,0.5c0,0 -21.35,6.45 -15.89,15.39s16.88,-3 19.86,-2.48 6.95,3.47 6.45,10.92 13.9,10.92 19.86,7.94 15.39,-6.95 21.35,5 20.85,19.86 20.85,19.86l10.92,-0.5s-11.91,-22.83 -20.35,-35.25 -10.92,-7.94 -6.95,-23.33 9.43,-26.81 4,-27.8 -12.41,6.45 -15.39,16.38 -7.94,13.4 -10.42,7.45S120.78,475 124.75,469s8.44,-14.89 2.48,-16.88 -13.4,2.48 -16.38,13.9 -11.42,6.95 -10.42,-5.46S100.92,432.79 94.47,431.8Z"
  623       android:fillColor="#649d56"/>
  624   <path
  625       android:pathData="M172.58,683.18c-3.75,-3 -7.47,-5.95 -11.09,-9 -0.17,-0.84 -0.34,-1.69 -0.51,-2.57C156,646.23 133.18,605.07 127.24,606s-11.43,-5.95 -15.39,-13.41 -11.94,2 -17.38,5.48l-0.21,0.13c-5.31,3.21 -8.73,-1.18 -8.73,-5.61s-1,-9.4 -5.95,-10.92 -10.92,7 -12.4,11.43 -6.45,5.95 -9.45,1.48 0.51,-13.88 0,-18.85 -5.95,-5.44 -14.38,2 -11.94,7 -16.41,3.5 5.95,-18.39 11.43,-19.86 6.45,-4 3,-5.95S29.94,556.9 29.43,551c0,-14.42 19.86,-4 19.86,-4s-9.91,-17.84 -1.48,-24.29 5.95,1.48 7.93,10.42c1.05,4.68 5.48,8 9.49,10.08A40.74,40.74 0,0 0,72.12 546c-0.25,-7.13 2.24,-15.86 6.49,-15.23s3.29,10.54 5.61,15.44 8.52,6.24 10.16,4.93 0.67,-7.89 3,-13.79 6.58,-1.64 9.19,1.65 4.6,10.16 5.57,14.76 9.19,0.34 15.44,-2.28 5.27,5.23 4.3,8.52 -2.32,9.53 1.35,10.33c8.94,1 12.91,7.93 14.38,16.87s-3.46,12.91 2.49,23.32C154.91,618.94 167.81,665.59 172.58,683.18Z"
  626       android:fillColor="#649d56"/>
  627   <path
  628       android:pathData="M286.88,690.74s-8.77,-29.91 -4.64,-49.51 21.15,-61.38 4.64,-97.48c0,0 20.63,26.3 20.11,64.47S303.38,682 310.08,698s-1.55,46.42 -4.13,53.12Z"
../../src/androidMain/res/drawable/illustration_onboarding1.xml:74: Very long vector path (1266 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector.
  71   <path android:fillColor="#437842" android:pathData="M254.94,403.66a15.74,15.74 0,0 0,-5.59 -5.42,12.94 12.94,0 0,0 -7.19,-1c-4.72,0.6 -9.59,3.45 -11.48,8 -2.34,5.58 -1,11 -0.58,16.67 -0.45,-6.79 1.77,-16.94 9.11,-20.21 9.15,-4.07 16.62,7.53 20,15.54C259.23,413.74 256.85,406.49 254.94,403.66Z"/>
  72   <path android:fillColor="#8a6c4c" android:pathData="M459.52,245.85a44.46,44.46 0,0 1,-4.45 12c-0.69,1.24 -7.47,8.46 -7.47,8.9 0,0 4.92,28.58 -17.72,34.53s-29.9,-7.91 -29.9,-7.91v9.55l4.92,3.61s11.93,29.66 1.35,30.18c-9.18,0.46 -16.81,-6.89 -24.36,-17.72s-18.38,-21 -28.26,-20.38c0,0 14.8,-12.47 15.79,-24.28a18.3,18.3 0,0 0,0.51 -3.43c0.22,-3.35 0.11,-9.22 -1.82,-17.94 -2.44,-11 -1.39,-23.48 1.93,-34.2 6.64,-21.22 32,-33.83 53.52,-30.22a48.13,48.13 0,0 1,30.59 19.65A36.89,36.89 0,0 1,459.85 220C462.15,228.24 461.6,236.92 459.52,245.85Z"/>
  73   <path android:fillColor="#2a2421" android:pathData="M459.85,220c-4.52,1.79 -17.14,4.92 -37.22,-4.85 0,0 -3.2,10.95 -5.36,15.27 -0.85,1.69 -14.81,6.35 -16.71,8 0.61,-0.54 -8,-5 -8.88,-5.09A8,8 0,0 0,384.4 236a18,18 0,0 0,-4.68 15.09c0.14,0.79 3,11.43 2.51,11.75 0,0 -7.69,5 -12.29,8.09 0.22,-3.35 0.11,-9.22 -1.82,-17.94 -2.44,-11 -1.39,-23.48 1.93,-34.2 6.64,-21.22 32,-33.83 53.52,-30.22a48.13,48.13 0,0 1,30.59 19.65A36.89,36.89 0,0 1,459.85 220Z"/>
  74   <path android:fillColor="#a8c9ff" android:pathData="M451.28,440.54a342.66,342.66 0,0 1,2.22 35.15,4.77 4.77,0 0,0 -0.51,0.15c-1.53,0.33 -6.31,1.46 -12,2.81 -6.64,1.57 -13,4.08 -17,5.43 -0.15,0 -0.29,0.11 -0.44,0.15a8,8 0,0 1,-3.32 0.22c-4.41,-0.26 -10.54,-2.33 -14.07,-2.84 -2.62,-0.36 -8.68,-1.17 -14.95,-2 -1.35,-0.18 -2.73,-0.36 -4.08,-0.51 -3.28,-0.44 -6.38,-0.84 -8.9,-1.13 -4.19,-0.51 -11.52,-3.32 -17.72,-5.94 -1.24,-0.51 -2.44,-1.06 -3.54,-1.53 -2.66,-1.17 -4.85,-2.19 -6.13,-2.81 -0.77,-0.33 -1.2,-0.55 -1.2,-0.55 2,-8 -7.44,-49.15 -9.92,-59.65 -0.36,-1.57 -0.58,-2.44 -0.58,-2.44 -2.92,0 -7.33,-2.33 -8.93,-3.28a4.83,4.83 0,0 1,-0.62 -0.33s-6.23,-36.79 -6.89,-60.45 33.51,-43.71 33.51,-43.71c9.22,1.64 20.71,9.55 24.65,18.74s18.74,21 23.66,20.05c14.44,-1.28 -3.72,-31.76 -4.56,-33.14 0.95,0.44 16.26,7.88 23.26,9.48 7.26,1.64 7.91,5.91 7.91,5.91l22.31,35.8a22.21,22.21 0,0 1,-2.66 6.89,35.09 35.09,0 0,1 -7.55,8.75c-1.17,1 -2.3,1.82 -3.28,2.55l-1,0.69c-0.44,0.29 -0.8,0.55 -1.17,0.77q-0.82,0.55 -1.42,0.88a2.31,2.31 0,0 0,-0.44 0.26,5.21 5.21,0 0,0 -0.51,0.26 30.31,30.31 0,0 1,0.66 10.17c0.36,0.58 0.69,1.17 1.06,1.75s0.69,1.2 1,1.82 0.62,1.28 0.95,1.93 0.51,1 0.73,1.53q1.15,2.52 2.19,5.25c0.26,0.69 0.51,1.39 0.73,2.08s0.51,1.42 0.73,2.15a154,154 0,0 1,4.7 18.59C449.57,427.23 450.55,434.09 451.28,440.54Z"/>
  75   <path android:fillColor="#414042" android:pathData="M450.37,487.94a5.22,5.22 0,0 1,-1.86 1.82c-5.87,3.72 -22.42,6.13 -26.21,6.45a149.8,149.8 0,0 1,-24.43 -0.26c-10,-0.95 -8.75,-1.82 -16.77,-3.28s-12,-3.39 -17.14,-4.85 -13.71,-10.1 -13.71,-10.1l0,-0.62 0.62,-9.41c4.48,2.15 20.38,9.44 27.38,10.28 8.2,1 23.33,3 27.93,3.61s13.45,3.94 17.39,2.63 10.54,-3.94 17.43,-5.58c5.65,-1.35 10.43,-2.48 12,-2.81 0.29,1.2 0.22,2.7 0.4,4.08C453.76,483 452.67,483.2 450.37,487.94Z"/>
  76   <path android:fillColor="#233263" android:pathData="M440.49,668.7C436,712.67 439,783.95 439,783.95a70.87,70.87 0,0 1,-14.73 6.31c-3.43,-10.39 -6.85,-32.3 -4.41,-81.27 4.27,-86.44 9.11,-113.31 9.11,-128.34s-0.55,-24.17 -5.36,-39.23c0,0 -0.29,2.15 -0.84,5.72 -0.07,0.58 -0.18,1.2 -0.26,1.9a0.71,0.71 0,0 0,0 0.29c-2.52,16.88 -8.39,55.6 -11,63.8 -1.24,3.94 -4.41,15.46 -7.77,30a1.43,1.43 0,0 1,-0.11 0.51c-2.63,11.48 -5.36,24.83 -7.4,37.84 0,-2 -0.07,-3.17 -0.07,-3.17s-4,34 -5.54,54.29 6.67,79.77 6.67,79.77a61.44,61.44 0,0 1,-7.07 3.57,42.2 42.2,0 0,1 -17.5,3.86c-1.64,-21.29 -7.8,-101.94 -8.71,-124.25 -1.09,-25.78 11.27,-99.9 10.72,-157.36 -0.36,-39.49 -18,-49.84 -28.95,-52.43a53.14,53.14 0,0 1,4.52 -8.68l0,0.62s1.86,1.86 4.38,4c0.8,0.73 1.71,1.49 2.66,2.22a22.81,22.81 0,0 0,6.67 3.9c5.1,1.46 9.11,3.39 17.14,4.85 1.39,0.26 2.52,0.47 3.46,0.73 1.53,0.33 2.63,0.66 3.68,0.95a48.85,48.85 0,0 0,9.63 1.6,152.9 152.9,0 0,0 21.47,0.44c1.17,0 2.15,-0.11 3,-0.18l1.17,-0.11c2.11,-0.26 5.72,-0.77 9.63,-1.53 5.51,-1.06 11.59,-2.62 14.95,-4.56a2,2 0,0 0,0.47 -0.26C456.57,525.86 444.76,626.41 440.49,668.7Z"/>
  77   <path android:fillColor="#00000000"
../../src/androidMain/res/drawable/illustration_onboarding1.xml:76: Very long vector path (1049 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector.
  73   <path android:fillColor="#2a2421" android:pathData="M459.85,220c-4.52,1.79 -17.14,4.92 -37.22,-4.85 0,0 -3.2,10.95 -5.36,15.27 -0.85,1.69 -14.81,6.35 -16.71,8 0.61,-0.54 -8,-5 -8.88,-5.09A8,8 0,0 0,384.4 236a18,18 0,0 0,-4.68 15.09c0.14,0.79 3,11.43 2.51,11.75 0,0 -7.69,5 -12.29,8.09 0.22,-3.35 0.11,-9.22 -1.82,-17.94 -2.44,-11 -1.39,-23.48 1.93,-34.2 6.64,-21.22 32,-33.83 53.52,-30.22a48.13,48.13 0,0 1,30.59 19.65A36.89,36.89 0,0 1,459.85 220Z"/>
  74   <path android:fillColor="#a8c9ff" android:pathData="M451.28,440.54a342.66,342.66 0,0 1,2.22 35.15,4.77 4.77,0 0,0 -0.51,0.15c-1.53,0.33 -6.31,1.46 -12,2.81 -6.64,1.57 -13,4.08 -17,5.43 -0.15,0 -0.29,0.11 -0.44,0.15a8,8 0,0 1,-3.32 0.22c-4.41,-0.26 -10.54,-2.33 -14.07,-2.84 -2.62,-0.36 -8.68,-1.17 -14.95,-2 -1.35,-0.18 -2.73,-0.36 -4.08,-0.51 -3.28,-0.44 -6.38,-0.84 -8.9,-1.13 -4.19,-0.51 -11.52,-3.32 -17.72,-5.94 -1.24,-0.51 -2.44,-1.06 -3.54,-1.53 -2.66,-1.17 -4.85,-2.19 -6.13,-2.81 -0.77,-0.33 -1.2,-0.55 -1.2,-0.55 2,-8 -7.44,-49.15 -9.92,-59.65 -0.36,-1.57 -0.58,-2.44 -0.58,-2.44 -2.92,0 -7.33,-2.33 -8.93,-3.28a4.83,4.83 0,0 1,-0.62 -0.33s-6.23,-36.79 -6.89,-60.45 33.51,-43.71 33.51,-43.71c9.22,1.64 20.71,9.55 24.65,18.74s18.74,21 23.66,20.05c14.44,-1.28 -3.72,-31.76 -4.56,-33.14 0.95,0.44 16.26,7.88 23.26,9.48 7.26,1.64 7.91,5.91 7.91,5.91l22.31,35.8a22.21,22.21 0,0 1,-2.66 6.89,35.09 35.09,0 0,1 -7.55,8.75c-1.17,1 -2.3,1.82 -3.28,2.55l-1,0.69c-0.44,0.29 -0.8,0.55 -1.17,0.77q-0.82,0.55 -1.42,0.88a2.31,2.31 0,0 0,-0.44 0.26,5.21 5.21,0 0,0 -0.51,0.26 30.31,30.31 0,0 1,0.66 10.17c0.36,0.58 0.69,1.17 1.06,1.75s0.69,1.2 1,1.82 0.62,1.28 0.95,1.93 0.51,1 0.73,1.53q1.15,2.52 2.19,5.25c0.26,0.69 0.51,1.39 0.73,2.08s0.51,1.42 0.73,2.15a154,154 0,0 1,4.7 18.59C449.57,427.23 450.55,434.09 451.28,440.54Z"/>
  75   <path android:fillColor="#414042" android:pathData="M450.37,487.94a5.22,5.22 0,0 1,-1.86 1.82c-5.87,3.72 -22.42,6.13 -26.21,6.45a149.8,149.8 0,0 1,-24.43 -0.26c-10,-0.95 -8.75,-1.82 -16.77,-3.28s-12,-3.39 -17.14,-4.85 -13.71,-10.1 -13.71,-10.1l0,-0.62 0.62,-9.41c4.48,2.15 20.38,9.44 27.38,10.28 8.2,1 23.33,3 27.93,3.61s13.45,3.94 17.39,2.63 10.54,-3.94 17.43,-5.58c5.65,-1.35 10.43,-2.48 12,-2.81 0.29,1.2 0.22,2.7 0.4,4.08C453.76,483 452.67,483.2 450.37,487.94Z"/>
  76   <path android:fillColor="#233263" android:pathData="M440.49,668.7C436,712.67 439,783.95 439,783.95a70.87,70.87 0,0 1,-14.73 6.31c-3.43,-10.39 -6.85,-32.3 -4.41,-81.27 4.27,-86.44 9.11,-113.31 9.11,-128.34s-0.55,-24.17 -5.36,-39.23c0,0 -0.29,2.15 -0.84,5.72 -0.07,0.58 -0.18,1.2 -0.26,1.9a0.71,0.71 0,0 0,0 0.29c-2.52,16.88 -8.39,55.6 -11,63.8 -1.24,3.94 -4.41,15.46 -7.77,30a1.43,1.43 0,0 1,-0.11 0.51c-2.63,11.48 -5.36,24.83 -7.4,37.84 0,-2 -0.07,-3.17 -0.07,-3.17s-4,34 -5.54,54.29 6.67,79.77 6.67,79.77a61.44,61.44 0,0 1,-7.07 3.57,42.2 42.2,0 0,1 -17.5,3.86c-1.64,-21.29 -7.8,-101.94 -8.71,-124.25 -1.09,-25.78 11.27,-99.9 10.72,-157.36 -0.36,-39.49 -18,-49.84 -28.95,-52.43a53.14,53.14 0,0 1,4.52 -8.68l0,0.62s1.86,1.86 4.38,4c0.8,0.73 1.71,1.49 2.66,2.22a22.81,22.81 0,0 0,6.67 3.9c5.1,1.46 9.11,3.39 17.14,4.85 1.39,0.26 2.52,0.47 3.46,0.73 1.53,0.33 2.63,0.66 3.68,0.95a48.85,48.85 0,0 0,9.63 1.6,152.9 152.9,0 0,0 21.47,0.44c1.17,0 2.15,-0.11 3,-0.18l1.17,-0.11c2.11,-0.26 5.72,-0.77 9.63,-1.53 5.51,-1.06 11.59,-2.62 14.95,-4.56a2,2 0,0 0,0.47 -0.26C456.57,525.86 444.76,626.41 440.49,668.7Z"/>
  77   <path android:fillColor="#00000000"
  78       android:pathData="M396.52,675.37s-0.58,-4.08 7.11,-31.72"
  79       android:strokeColor="#192345" android:strokeWidth="1.82"/>
../../src/androidMain/res/drawable/illustration_onboarding2.xml:7: Very long vector path (829 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector.
  4   <clip-path android:pathData="M8.83,542.06c0,-155.18 140.09,-386.37 416.31,-357.3C743,218.23 1023.29,328.32 979.35,535.24 950.2,672.5 744.15,806.84 512.87,824.39 285.43,841.64 8.83,697.25 8.83,542.06Z"/>
  5   <path android:fillColor="#eaf6f2" android:pathData="M8.83,542.06c0,-155.18 140.09,-386.37 416.31,-357.3C743,218.23 1023.29,328.32 979.35,535.24 950.2,672.5 744.15,806.84 512.87,824.39 285.43,841.64 8.83,697.25 8.83,542.06Z"/>
  6   <path android:fillColor="#ff4ef9" android:pathData="M342.09,622.71c-2.33,4.12 -4.19,7.41 -5.22,9 -4.32,6.74 -18.27,37.4 -25.48,37.57S286.58,655 286.58,655s16.94,90 18.37,116.56 0.73,33.38 0.73,33.38 -140.87,-27.67 -146.16,-55.64c0,0 17.14,-68.56 32.69,-87.1 4.45,-8.87 -7,-29.63 -14.45,-43s-25.18,-43.71 -24.81,-53c0,0 86,-38.9 97.82,-38.53s19.27,5.95 20,10c0.3,1.69 5.75,15.71 12.36,32.35 3.45,8.74 7.24,18.17 10.76,27 5.75,14.32 10.83,26.87 12.82,31.79 0,0 6.88,-9.47 14.88,-20.56Z"/>
  7   <path android:fillColor="#291e15" android:pathData="M300.53,403.41a65.65,65.65 0,0 1,-20.93 22.29s-10.93,39.93 -12.16,61.68l-0.47,-0.3a18.16,18.16 0,0 1,-4.19 -3.82c-0.37,-0.47 -0.73,-1 -1.1,-1.46a18.55,18.55 0,0 1,-1.46 -2.56l-0.1,0.4a31.36,31.36 0,0 0,-0.7 7,49 49,0 0,0 0.8,8.57c1.79,10.2 4.45,21.26 4.45,21.26 6.21,10.23 9.73,26.61 9.73,26.61 -26.14,-19.5 -51.89,8.87 -57.2,16.87S205.7,575 201.28,578.14s-12.42,11.53 -12.42,11.53c-7.11,0.9 -20.86,-3.09 -36.37,-12s-10.63,-37.7 -4.42,-65.64C152.52,492 165,479 171.68,473.3a56.63,56.63 0,0 0,1.06 17.07s1.86,-12.76 3.19,-20.4a0.1,0.1 0,0 1,0.07 0c0,-0.27 0.07,-0.56 0.1,-0.83 0.1,-0.93 0.2,-1.86 0.33,-2.79 1.93,-13 7.08,-25.81 11.63,-37.9 3.92,-10.46 8.4,-21.23 13.05,-31.59 3.49,-7.71 6.64,-15 13.32,-20.5 11.89,-9.73 29,-12.86 44,-10.76a53,53 0,0 1,8.47 1.93c23.52,7.54 33,34.75 33,34.75C300.1,402.65 300.33,403 300.53,403.41Z"/>
  8   <path android:fillColor="#231f20" android:pathData="M175.94,470c-1.33,7.64 -3.19,20.4 -3.19,20.4a56.63,56.63 0,0 1,-1.06 -17.07A52.28,52.28 0,0 1,175.94 470Z"/>
  9   <path android:fillColor="#7a7a7a" android:pathData="M402.62,481.26l2.32,4.59a3.23,3.23 0,0 1,-0.21 2.9L367.19,554l-26.3,-0.37a4.71,4.71 0,0 1,-3.52 -2.19l-3.1,-5Z"/>
 10   <path android:fillColor="#a6a6a6" android:pathData="M374.53,481.92l-40,62.87a1.69,1.69 0,0 0,1.3 2.6l24.1,1.84a4.45,4.45 0,0 0,4.16 -2.16l38.58,-65A0.75,0.75 0,0 0,402 481l-26.06,0.19A1.67,1.67 0,0 0,374.53 481.92Z"/>
VectorPath Performance Warning Priority 5/10

Image defined in density-independent drawable folder

../../src/androidMain/res/drawable/course_banner_default0.webp: Found bitmap drawable res/drawable/course_banner_default0.webp in densityless folder
../../src/androidMain/res/drawable/course_banner_default1.webp: Found bitmap drawable res/drawable/course_banner_default1.webp in densityless folder
../../src/androidMain/res/drawable/course_banner_default2.webp: Found bitmap drawable res/drawable/course_banner_default2.webp in densityless folder
../../src/androidMain/res/drawable/course_banner_default3.webp: Found bitmap drawable res/drawable/course_banner_default3.webp in densityless folder
../../src/androidMain/res/drawable/course_banner_default4.webp: Found bitmap drawable res/drawable/course_banner_default4.webp in densityless folder
IconLocation Icons Usability Warning Priority 5/10

Use KTX extension function

../../src/androidMain/kotlin/com/ustadmobile/libuicompose/components/UstadAsyncImage.kt:18: Use the KTX extension function String.toUri instead?
 15     modifier: Modifier
 16 ) {
 17     AsyncImage(
 18         model = remember { Uri.parse(uri) },                                                        
 19         contentDescription = contentDescription,
 20         contentScale = contentScale,
 21         modifier = modifier,
../../src/androidMain/kotlin/com/ustadmobile/libuicompose/view/videocontent/VideoContentScreen.kt:147: Use the KTX extension function String.toUri instead?
 144         mediaContentInfo.subtitles.mapNotNull { subtitle ->
 145             val bodyDataUrl = contentManifestMap[subtitle.uri]?.bodyDataUrl
 146             if (bodyDataUrl != null) {
 147                 SubtitleConfiguration.Builder(Uri.parse(bodyDataUrl))                               
 148                     .setMimeType(subtitle.mimeType)
 149                     .also {
 150                         subtitle.langCode?.also { lang -> it.setLanguage(lang) }
UseKtx Productivity Warning Priority 6/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