710 lines
25 KiB
XML
710 lines
25 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<issues format="6" by="lint 7.1.1" type="baseline" client="gradle" dependencies="false" name="AGP (7.1.1)" variant="all" version="7.1.1">
|
|
|
|
<issue
|
|
id="InflateParams"
|
|
message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
|
|
errorLine1=" val view = inflater.inflate(R.layout.jukebox_volume, null)"
|
|
errorLine2=" ~~~~">
|
|
<location
|
|
file="src/main/kotlin/org/moire/ultrasonic/service/JukeboxMediaPlayer.kt"
|
|
line="331"
|
|
column="66"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="PluralsCandidate"
|
|
message="Formatting %d followed by words ("tracks"): This should probably be a plural rather than a string"
|
|
errorLine1=" <string name="select_album.n_selected">%d tracks selected</string>"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/values/strings.xml"
|
|
line="154"
|
|
column="5"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="AllowAllHostnameVerifier"
|
|
message="Using the `AllowAllHostnameVerifier` HostnameVerifier is unsafe because it always returns true, which could cause insecure network traffic due to trusting TLS/SSL server certificates for wrong hostnames"
|
|
errorLine1=" public static final X509HostnameVerifier ALLOW_ALL_HOSTNAME_VERIFIER = new AllowAllHostnameVerifier();"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/service/ssl/SSLSocketFactory.java"
|
|
line="142"
|
|
column="73"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="TrustAllX509TrustManager"
|
|
message="`checkClientTrusted` is empty, which could cause insecure network traffic due to trusting arbitrary TLS/SSL certificates presented by peers">
|
|
<location
|
|
file="org/moire/ultrasonic/api/subsonic/SubsonicAPIClient$allowSelfSignedCertificates$trustManager$1.class"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="TrustAllX509TrustManager"
|
|
message="`checkServerTrusted` is empty, which could cause insecure network traffic due to trusting arbitrary TLS/SSL certificates presented by peers">
|
|
<location
|
|
file="org/moire/ultrasonic/api/subsonic/SubsonicAPIClient$allowSelfSignedCertificates$trustManager$1.class"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ExportedContentProvider"
|
|
message="Exported content providers can provide access to potentially sensitive data"
|
|
errorLine1=" <provider"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/AndroidManifest.xml"
|
|
line="135"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ExportedReceiver"
|
|
message="Exported receiver does not require permission"
|
|
errorLine1=" <receiver android:name=".receiver.UltrasonicIntentReceiver">"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/AndroidManifest.xml"
|
|
line="74"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ExportedService"
|
|
message="Exported service does not require permission"
|
|
errorLine1=" <service android:name=".playback.PlaybackService""
|
|
errorLine2=" ~~~~~~~">
|
|
<location
|
|
file="src/main/AndroidManifest.xml"
|
|
line="64"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="IntentFilterExportedReceiver"
|
|
message="As of Android 12, `android:exported` must be set; use `true` to make the activity \
available to other apps, and `false` otherwise. For launcher activities, this should be set to `true`."
|
|
errorLine1=" <activity android:name=".activity.NavigationActivity""
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/AndroidManifest.xml"
|
|
line="41"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="IntentFilterExportedReceiver"
|
|
message="As of Android 12, `android:exported` must be set; use `true` to make the activity \
available to other apps, and `false` otherwise."
|
|
errorLine1=" <receiver android:name=".receiver.UltrasonicIntentReceiver">"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/AndroidManifest.xml"
|
|
line="74"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="IntentFilterExportedReceiver"
|
|
message="As of Android 12, `android:exported` must be set; use `true` to make the activity \
available to other apps, and `false` otherwise."
|
|
errorLine1=" <receiver"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/AndroidManifest.xml"
|
|
line="86"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="IntentFilterExportedReceiver"
|
|
message="As of Android 12, `android:exported` must be set; use `true` to make the activity \
available to other apps, and `false` otherwise."
|
|
errorLine1=" <receiver"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/AndroidManifest.xml"
|
|
line="97"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="IntentFilterExportedReceiver"
|
|
message="As of Android 12, `android:exported` must be set; use `true` to make the activity \
available to other apps, and `false` otherwise."
|
|
errorLine1=" <receiver"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/AndroidManifest.xml"
|
|
line="108"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="IntentFilterExportedReceiver"
|
|
message="As of Android 12, `android:exported` must be set; use `true` to make the activity \
available to other apps, and `false` otherwise."
|
|
errorLine1=" <receiver"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/AndroidManifest.xml"
|
|
line="119"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="IntentFilterExportedReceiver"
|
|
message="As of Android 12, `android:exported` must be set; use `true` to make the activity \
available to other apps, and `false` otherwise."
|
|
errorLine1=" <receiver android:name=".receiver.MediaButtonIntentReceiver">"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/AndroidManifest.xml"
|
|
line="130"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ObsoleteLayoutParam"
|
|
message="Invalid layout param in a `LinearLayout`: `layout_above`"
|
|
errorLine1=" android:layout_above="@+id/bottom">"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/time_span_dialog.xml"
|
|
line="12"
|
|
column="9"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ObsoleteLayoutParam"
|
|
message="Invalid layout param in a `LinearLayout`: `layout_below`"
|
|
errorLine1=" android:layout_below="@+id/top">"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/time_span_dialog.xml"
|
|
line="28"
|
|
column="9"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="Overdraw"
|
|
message="Possible overdraw: Root element paints background `@drawable/appwidget_dark_bg_trans` with a theme that also paints a background (inferred theme is `@style/NoActionBar`)"
|
|
errorLine1=" a:background="@drawable/appwidget_dark_bg_trans""
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x1.xml"
|
|
line="7"
|
|
column="5"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="Overdraw"
|
|
message="Possible overdraw: Root element paints background `@drawable/appwidget_dark_bg_trans` with a theme that also paints a background (inferred theme is `@style/NoActionBar`)"
|
|
errorLine1=" a:background="@drawable/appwidget_dark_bg_trans""
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x2.xml"
|
|
line="7"
|
|
column="5"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="Overdraw"
|
|
message="Possible overdraw: Root element paints background `@drawable/appwidget_dark_bg_trans` with a theme that also paints a background (inferred theme is `@style/NoActionBar`)"
|
|
errorLine1=" a:background="@drawable/appwidget_dark_bg_trans""
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x3.xml"
|
|
line="7"
|
|
column="5"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="Overdraw"
|
|
message="Possible overdraw: Root element paints background `@drawable/appwidget_dark_bg_trans` with a theme that also paints a background (inferred theme is `@style/NoActionBar`)"
|
|
errorLine1=" a:background="@drawable/appwidget_dark_bg_trans" >"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x4.xml"
|
|
line="8"
|
|
column="5"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="UnusedResources"
|
|
message="The resource `R.drawable.ic_baseline_close` appears to be unused"
|
|
errorLine1="<vector xmlns:android="http://schemas.android.com/apk/res/android""
|
|
errorLine2="^">
|
|
<location
|
|
file="src/main/res/drawable/ic_baseline_close.xml"
|
|
line="1"
|
|
column="1"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="UnusedResources"
|
|
message="The resource `R.drawable.ic_menu_arrow` appears to be unused"
|
|
errorLine1="<vector xmlns:android="http://schemas.android.com/apk/res/android""
|
|
errorLine2="^">
|
|
<location
|
|
file="src/main/res/drawable/ic_menu_arrow.xml"
|
|
line="1"
|
|
column="1"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="IconDuplicates"
|
|
message="The following unrelated icon files have identical contents: list_pressed_holo_dark.9.png, list_pressed_holo_light.9.png">
|
|
<location
|
|
file="src/main/res/drawable-hdpi/list_pressed_holo_light.9.png"/>
|
|
<location
|
|
file="src/main/res/drawable-hdpi/list_pressed_holo_dark.9.png"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="Autofill"
|
|
message="Missing `autofillHints` attribute"
|
|
errorLine1=" <EditText"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/chat.xml"
|
|
line="27"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="Autofill"
|
|
message="Missing `autofillHints` attribute"
|
|
errorLine1=" <EditText"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/save_playlist.xml"
|
|
line="9"
|
|
column="6"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="Autofill"
|
|
message="Missing `autofillHints` attribute"
|
|
errorLine1=" <EditText"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/share_details.xml"
|
|
line="30"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="Autofill"
|
|
message="Missing `autofillHints` attribute"
|
|
errorLine1=" <EditText"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/time_span_dialog.xml"
|
|
line="30"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="Autofill"
|
|
message="Missing `autofillHints` attribute"
|
|
errorLine1=" <EditText"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/update_playlist.xml"
|
|
line="18"
|
|
column="4"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="Autofill"
|
|
message="Missing `autofillHints` attribute"
|
|
errorLine1=" <EditText"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/update_playlist.xml"
|
|
line="40"
|
|
column="4"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ClickableViewAccessibility"
|
|
message="Custom view ``AutoRepeatButton`` has `setOnTouchListener` called on it but does not override `performClick`"
|
|
errorLine1=" this.setOnTouchListener(new OnTouchListener()"
|
|
errorLine2=" ^">
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/view/AutoRepeatButton.java"
|
|
line="36"
|
|
column="3"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageView"
|
|
errorLine2=" ~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x1.xml"
|
|
line="10"
|
|
column="6"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageButton"
|
|
errorLine2=" ~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x1.xml"
|
|
line="76"
|
|
column="14"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageButton"
|
|
errorLine2=" ~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x1.xml"
|
|
line="85"
|
|
column="14"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageButton"
|
|
errorLine2=" ~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x1.xml"
|
|
line="94"
|
|
column="14"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageView"
|
|
errorLine2=" ~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x2.xml"
|
|
line="10"
|
|
column="6"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageButton"
|
|
errorLine2=" ~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x2.xml"
|
|
line="97"
|
|
column="14"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageButton"
|
|
errorLine2=" ~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x2.xml"
|
|
line="106"
|
|
column="14"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageButton"
|
|
errorLine2=" ~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x2.xml"
|
|
line="115"
|
|
column="14"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageView"
|
|
errorLine2=" ~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x3.xml"
|
|
line="10"
|
|
column="6"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageButton"
|
|
errorLine2=" ~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x3.xml"
|
|
line="82"
|
|
column="14"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageButton"
|
|
errorLine2=" ~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x3.xml"
|
|
line="91"
|
|
column="14"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageButton"
|
|
errorLine2=" ~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x3.xml"
|
|
line="100"
|
|
column="14"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageView"
|
|
errorLine2=" ~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x4.xml"
|
|
line="10"
|
|
column="6"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageButton"
|
|
errorLine2=" ~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x4.xml"
|
|
line="83"
|
|
column="14"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageButton"
|
|
errorLine2=" ~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x4.xml"
|
|
line="92"
|
|
column="14"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageButton"
|
|
errorLine2=" ~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x4.xml"
|
|
line="101"
|
|
column="14"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageButton"
|
|
errorLine2=" ~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/chat.xml"
|
|
line="38"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageView"
|
|
errorLine2=" ~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/chat_item.xml"
|
|
line="7"
|
|
column="6"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageView"
|
|
errorLine2=" ~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/chat_item_reverse.xml"
|
|
line="64"
|
|
column="6"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="LabelFor"
|
|
message="Missing accessibility label: provide either a view with an `android:labelFor` that references this view or provide an `android:hint`"
|
|
errorLine1=" <EditText"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/save_playlist.xml"
|
|
line="9"
|
|
column="6"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="LabelFor"
|
|
message="Missing accessibility label: provide either a view with an `android:labelFor` that references this view or provide an `android:hint`"
|
|
errorLine1=" <EditText"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/share_details.xml"
|
|
line="30"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="LabelFor"
|
|
message="Missing accessibility label: provide either a view with an `android:labelFor` that references this view or provide an `android:hint`"
|
|
errorLine1=" <EditText"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/time_span_dialog.xml"
|
|
line="30"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="HardcodedText"
|
|
message="Hardcoded string "Title", should use `@string` resource"
|
|
errorLine1=" a:text="Title""
|
|
errorLine2=" ~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x1.xml"
|
|
line="46"
|
|
column="17"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="HardcodedText"
|
|
message="Hardcoded string "Artist", should use `@string` resource"
|
|
errorLine1=" a:text="Artist""
|
|
errorLine2=" ~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x1.xml"
|
|
line="64"
|
|
column="17"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="HardcodedText"
|
|
message="Hardcoded string "Title", should use `@string` resource"
|
|
errorLine1=" a:text="Title""
|
|
errorLine2=" ~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x2.xml"
|
|
line="48"
|
|
column="17"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="HardcodedText"
|
|
message="Hardcoded string "Artist", should use `@string` resource"
|
|
errorLine1=" a:text="Artist""
|
|
errorLine2=" ~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x2.xml"
|
|
line="65"
|
|
column="17"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="HardcodedText"
|
|
message="Hardcoded string "Album", should use `@string` resource"
|
|
errorLine1=" a:text="Album""
|
|
errorLine2=" ~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x2.xml"
|
|
line="82"
|
|
column="17"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="HardcodedText"
|
|
message="Hardcoded string "Title", should use `@string` resource"
|
|
errorLine1=" a:text="Title""
|
|
errorLine2=" ~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x3.xml"
|
|
line="50"
|
|
column="17"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="HardcodedText"
|
|
message="Hardcoded string "Artist", should use `@string` resource"
|
|
errorLine1=" a:text="Artist""
|
|
errorLine2=" ~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x3.xml"
|
|
line="66"
|
|
column="17"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="HardcodedText"
|
|
message="Hardcoded string "Title", should use `@string` resource"
|
|
errorLine1=" a:text="Title""
|
|
errorLine2=" ~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x4.xml"
|
|
line="51"
|
|
column="17"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="HardcodedText"
|
|
message="Hardcoded string "Artist", should use `@string` resource"
|
|
errorLine1=" a:text="Artist""
|
|
errorLine2=" ~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/appwidget4x4.xml"
|
|
line="67"
|
|
column="17"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="HardcodedText"
|
|
message="Hardcoded string "0 dB", should use `@string` resource"
|
|
errorLine1=" a:text="0 dB""
|
|
errorLine2=" ~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/equalizer_bar.xml"
|
|
line="19"
|
|
column="13"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="HardcodedText"
|
|
message="Hardcoded string "http://", should use `@string` resource"
|
|
errorLine1=" a:text="http://""
|
|
errorLine2=" ~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/server_edit.xml"
|
|
line="43"
|
|
column="13"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="RelativeOverlap"
|
|
message="`@id/current_playing_duration` can overlap `@id/current_playing_position` if @string/util.no_time, @string/util.no_time grow due to localized text expansion"
|
|
errorLine1=" <TextView"
|
|
errorLine2=" ~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/player_slider.xml"
|
|
line="29"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
</issues>
|