mirror of
https://github.com/ultrasonic/ultrasonic
synced 2024-12-14 01:35:06 +01:00
4b36730358
Signed-off-by: Óscar García Amor <ogarcia@connectical.com>
4872 lines
180 KiB
XML
4872 lines
180 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<issues format="5" by="lint 4.0.0" client="gradle" variant="release" version="4.0.0">
|
||
|
||
<issue
|
||
id="ObsoleteLintCustomCheck"
|
||
message="Lint found an issue registry (`androidx.annotation.experimental.lint.ExperimentalIssueRegistry`) which did not specify the Lint API version it was compiled with.

**This means that the lint checks are likely not compatible.**

If you are the author of this lint check, make your lint `IssueRegistry` class contain
 override val api: Int = com.android.tools.lint.detector.api.CURRENT_API
or from Java,
 @Override public int getApi() { return com.android.tools.lint.detector.api.ApiKt.CURRENT_API; }

If you are just using lint checks from a third party library you have no control over, you can disable these lint checks (if they misbehave) like this:

 android {
 lintOptions {
 disable "UnsafeExperimentalUsageError",
 "UnsafeExperimentalUsageWarning"
 }
 }
">
|
||
<location
|
||
file="../../../../.gradle/caches/transforms-2/files-2.1/a5739005f919352cf20461ea51e3b581/jetified-annotation-experimental-1.0.0/jars/lint.jar"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ScrollViewSize"
|
||
message="This LinearLayout should use `android:layout_height="wrap_content"`"
|
||
errorLine1=" a:layout_height="fill_parent">"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/lyrics.xml"
|
||
line="18"
|
||
column="17"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ApplySharedPref"
|
||
message="Consider using `apply()` instead; `commit` writes its data to persistent storage immediately, whereas `apply` will handle it in the background"
|
||
errorLine1=" editor.commit();"
|
||
errorLine2=" ~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/MainActivity.java"
|
||
line="252"
|
||
column="4"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ApplySharedPref"
|
||
message="Consider using `apply()` instead; `commit` writes its data to persistent storage immediately, whereas `apply` will handle it in the background"
|
||
errorLine1=" editor.commit();"
|
||
errorLine2=" ~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/Util.java"
|
||
line="128"
|
||
column="3"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ApplySharedPref"
|
||
message="Consider using `apply()` instead; `commit` writes its data to persistent storage immediately, whereas `apply` will handle it in the background"
|
||
errorLine1=" editor.commit();"
|
||
errorLine2=" ~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/Util.java"
|
||
line="203"
|
||
column="4"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ApplySharedPref"
|
||
message="Consider using `apply()` instead; `commit` writes its data to persistent storage immediately, whereas `apply` will handle it in the background"
|
||
errorLine1=" editor.commit();"
|
||
errorLine2=" ~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/Util.java"
|
||
line="1380"
|
||
column="3"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ApplySharedPref"
|
||
message="Consider using `apply()` instead; `commit` writes its data to persistent storage immediately, whereas `apply` will handle it in the background"
|
||
errorLine1=" editor.commit();"
|
||
errorLine2=" ~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/Util.java"
|
||
line="1388"
|
||
column="3"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ApplySharedPref"
|
||
message="Consider using `apply()` instead; `commit` writes its data to persistent storage immediately, whereas `apply` will handle it in the background"
|
||
errorLine1=" editor.commit();"
|
||
errorLine2=" ~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/Util.java"
|
||
line="1396"
|
||
column="3"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="CutPasteId"
|
||
message="The id `R.id.now_playing_control_play` has already been looked up in this method; possible cut & paste error?"
|
||
errorLine1=" ImageView nowPlayingControlPlay = (ImageView) nowPlayingView.findViewById(R.id.now_playing_control_play);"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/SubsonicTabActivity.java"
|
||
line="391"
|
||
column="51"/>
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/SubsonicTabActivity.java"
|
||
line="337"
|
||
column="40"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
|
||
errorLine1=" levelTextView.setText(String.format("%s%d dB", level > 0 ? "+" : "", level / 100));"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/EqualizerActivity.java"
|
||
line="263"
|
||
column="26"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
|
||
errorLine1=" return index == -1 ? "" : name.substring(index + 1).toLowerCase();"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/FileUtil.java"
|
||
line="534"
|
||
column="55"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
|
||
errorLine1=" Thread thread = new Thread(this, String.format("ImageLoader_%d", i));"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/LegacyImageLoader.java"
|
||
line="104"
|
||
column="46"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
|
||
errorLine1=" return String.format("%s:%d", coverArtId, size);"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/LegacyImageLoader.java"
|
||
line="209"
|
||
column="16"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
|
||
errorLine1=" String lhs = lhsArtist.getName().toLowerCase();"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/service/OfflineMusicService.java"
|
||
line="113"
|
||
column="38"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
|
||
errorLine1=" String rhs = rhsArtist.getName().toLowerCase();"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/service/OfflineMusicService.java"
|
||
line="114"
|
||
column="38"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
|
||
errorLine1=" int index = lhs.indexOf(String.format("%s ", article.toLowerCase()));"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/service/OfflineMusicService.java"
|
||
line="131"
|
||
column="59"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
|
||
errorLine1=" index = rhs.indexOf(String.format("%s ", article.toLowerCase()));"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/service/OfflineMusicService.java"
|
||
line="138"
|
||
column="55"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
|
||
errorLine1=" String query = criteria.getQuery().toLowerCase();"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/service/OfflineMusicService.java"
|
||
line="514"
|
||
column="38"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `toLowerCase(Locale)` instead. For strings meant to be internal use `Locale.ROOT`, otherwise `Locale.getDefault()`."
|
||
errorLine1=" String[] nameParts = COMPILE.split(name.toLowerCase());"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/service/OfflineMusicService.java"
|
||
line="516"
|
||
column="43"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
|
||
errorLine1=" viewHolder.track.setText(String.format("%02d.", trackNumber));"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/view/SongView.java"
|
||
line="210"
|
||
column="30"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
|
||
errorLine1=" Util.setDefaultShareExpiration(SubsonicTabActivity.this, !noExpirationCheckBox.isChecked() && timeSpanAmount > 0 ? String.format("%d:%s", timeSpanAmount, timeSpanType) : "");"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/SubsonicTabActivity.java"
|
||
line="484"
|
||
column="122"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
|
||
errorLine1=" persisted = String.format("%d:%s", tsAmount, tsType);"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/TimeSpanPreference.java"
|
||
line="92"
|
||
column="17"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
|
||
errorLine1=" return String.format("%02d:%02d:%02d", hours, minutes, seconds);"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/Util.java"
|
||
line="1223"
|
||
column="11"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
|
||
errorLine1=" return String.format("%d:%02d:%02d", hours, minutes, seconds);"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/Util.java"
|
||
line="1227"
|
||
column="11"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
|
||
errorLine1=" return String.format("%02d:%02d", minutes, seconds);"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/Util.java"
|
||
line="1231"
|
||
column="11"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
|
||
errorLine1=" else return minutes > 0 ? String.format("%d:%02d", minutes, seconds) : String.format("0:%02d", seconds);"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/Util.java"
|
||
line="1234"
|
||
column="29"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="DefaultLocale"
|
||
message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
|
||
errorLine1=" else return minutes > 0 ? String.format("%d:%02d", minutes, seconds) : String.format("0:%02d", seconds);"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/Util.java"
|
||
line="1234"
|
||
column="74"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="InlinedApi"
|
||
message="Field requires API level 16 (current min is 14): `android.Manifest.permission#READ_EXTERNAL_STORAGE`"
|
||
errorLine1=" Manifest.permission.READ_EXTERNAL_STORAGE)"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/PermissionUtil.java"
|
||
line="89"
|
||
column="25"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="InlinedApi"
|
||
message="Field requires API level 16 (current min is 14): `android.Manifest.permission#READ_EXTERNAL_STORAGE`"
|
||
errorLine1=" Manifest.permission.READ_EXTERNAL_STORAGE)"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/PermissionUtil.java"
|
||
line="136"
|
||
column="25"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="MissingDefaultResource"
|
||
message="The layout "download" in layout-land has no declaration in the base `layout` folder; this can lead to crashes when the resource is queried in a configuration that does not match this qualifier"
|
||
errorLine1="<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android""
|
||
errorLine2=" ~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout-land/download.xml"
|
||
line="2"
|
||
column="2"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="MissingDefaultResource"
|
||
message="The layout "download" in layout-port has no declaration in the base `layout` folder; this can lead to crashes when the resource is queried in a configuration that does not match this qualifier"
|
||
errorLine1="<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android""
|
||
errorLine2=" ~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout-port/download.xml"
|
||
line="2"
|
||
column="2"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="SdCardPath"
|
||
message="Do not hardcode "/sdcard/"; use `Environment.getExternalStorageDirectory().getPath()` instead"
|
||
errorLine1=" "/storage/sdcard0/external_sdcard", "/mnt/extsdcard", "/mnt/sdcard/external_sd","
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/kotlin/org/moire/ultrasonic/filepicker/FilePickerAdapter.kt"
|
||
line="43"
|
||
column="68"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="SdCardPath"
|
||
message="Do not hardcode "/sdcard/"; use `Environment.getExternalStorageDirectory().getPath()` instead"
|
||
errorLine1=" "/data/sdext", "/data/sdext2", "/data/sdext3", "/data/sdext4", "/sdcard1","
|
||
errorLine2=" ~~~~~~~~">
|
||
<location
|
||
file="src/main/kotlin/org/moire/ultrasonic/filepicker/FilePickerAdapter.kt"
|
||
line="46"
|
||
column="77"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="SdCardPath"
|
||
message="Do not hardcode "/sdcard/"; use `Environment.getExternalStorageDirectory().getPath()` instead"
|
||
errorLine1=" "/sdcard2", "/storage/microsd", "/data/user""
|
||
errorLine2=" ~~~~~~~~">
|
||
<location
|
||
file="src/main/kotlin/org/moire/ultrasonic/filepicker/FilePickerAdapter.kt"
|
||
line="47"
|
||
column="14"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ShowToast"
|
||
message="Toast created but not shown: did you forget to call `show()` ?"
|
||
errorLine1=" toast = Toast.makeText(context, message, shortDuration ? Toast.LENGTH_SHORT : Toast.LENGTH_LONG);"
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/Util.java"
|
||
line="338"
|
||
column="12"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedAttribute"
|
||
message="Attribute `usesCleartextTraffic` is only used in API level 23 and higher (current min is 14)"
|
||
errorLine1=" android:usesCleartextTraffic="true">"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/AndroidManifest.xml"
|
||
line="29"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedAttribute"
|
||
message="Attribute `widgetCategory` is only used in API level 17 and higher (current min is 14)"
|
||
errorLine1=" a:widgetCategory="home_screen|keyguard""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/xml/appwidget_info_4x1.xml"
|
||
line="8"
|
||
column="21"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedAttribute"
|
||
message="Attribute `widgetCategory` is only used in API level 17 and higher (current min is 14)"
|
||
errorLine1=" a:widgetCategory="home_screen|keyguard""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/xml/appwidget_info_4x2.xml"
|
||
line="8"
|
||
column="21"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedAttribute"
|
||
message="Attribute `widgetCategory` is only used in API level 17 and higher (current min is 14)"
|
||
errorLine1=" a:widgetCategory="home_screen|keyguard""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/xml/appwidget_info_4x3.xml"
|
||
line="8"
|
||
column="21"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedAttribute"
|
||
message="Attribute `widgetCategory` is only used in API level 17 and higher (current min is 14)"
|
||
errorLine1=" a:widgetCategory="home_screen|keyguard""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/xml/appwidget_info_4x4.xml"
|
||
line="8"
|
||
column="21"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="WifiManagerPotentialLeak"
|
||
message="The WIFI_SERVICE must be looked up on the Application context or memory will leak on devices < Android N. Try changing `context` to `context.getApplicationContext()`"
|
||
errorLine1=" WifiManager wm = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/Util.java"
|
||
line="668"
|
||
column="34"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="IncludeLayoutParam"
|
||
message="Layout parameter `layout_gravity` ignored unless both `layout_width` and `layout_height` are also specified on `<include>` tag"
|
||
errorLine1=" a:layout_gravity="center_vertical" />"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/video_list_item.xml"
|
||
line="17"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="InflateParams"
|
||
message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
|
||
errorLine1=" View bandBar = LayoutInflater.from(this).inflate(R.layout.equalizer_bar, null);"
|
||
errorLine2=" ~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/EqualizerActivity.java"
|
||
line="200"
|
||
column="78"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="InflateParams"
|
||
message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
|
||
errorLine1=" View view = inflater.inflate(R.layout.jukebox_volume, null);"
|
||
errorLine2=" ~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/service/JukeboxMediaPlayer.java"
|
||
line="484"
|
||
column="58"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="InflateParams"
|
||
message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
|
||
errorLine1=" final View buttons = LayoutInflater.from(this).inflate(R.layout.main_buttons, null);"
|
||
errorLine2=" ~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/MainActivity.java"
|
||
line="102"
|
||
column="81"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="InflateParams"
|
||
message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
|
||
errorLine1=" View buttons = LayoutInflater.from(this).inflate(R.layout.search_buttons, null);"
|
||
errorLine2=" ~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/SearchActivity.java"
|
||
line="102"
|
||
column="77"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="EllipsizeMaxLines"
|
||
message="Combining `ellipsize=marquee` and `maxLines=1` can lead to crashes. Use `singleLine=true` instead."
|
||
errorLine1=" android:maxLines="1""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification.xml"
|
||
line="38"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/layout/notification.xml"
|
||
line="36"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UseCompatLoadingForDrawables"
|
||
message="Use `ResourcesCompat.getDrawable()`"
|
||
errorLine1=" Drawable drawable = resources.getDrawable(R.drawable.unknown_album);"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/LegacyImageLoader.java"
|
||
line="75"
|
||
column="29"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UseCompatLoadingForDrawables"
|
||
message="Use `ResourcesCompat.getDrawable()`"
|
||
errorLine1=" BitmapDrawable drawable = (BitmapDrawable) context.getResources().getDrawable(R.drawable.unknown_album_large);"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/LegacyImageLoader.java"
|
||
line="123"
|
||
column="52"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UseCompatLoadingForDrawables"
|
||
message="Use `ResourcesCompat.getDrawable()`"
|
||
errorLine1=" Drawable contact = res.getDrawable(R.drawable.ic_contact_picture);"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/LegacyImageLoader.java"
|
||
line="133"
|
||
column="28"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UseCompatTextViewDrawableXml"
|
||
message="Use `app:drawableLeftCompat` instead of `android:drawableLeft`"
|
||
errorLine1=" android:drawableLeft="?attr/home""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="25"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UseCompatTextViewDrawableXml"
|
||
message="Use `app:drawableLeftCompat` instead of `android:drawableLeft`"
|
||
errorLine1=" android:drawableLeft="?attr/browse""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="33"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UseCompatTextViewDrawableXml"
|
||
message="Use `app:drawableLeftCompat` instead of `android:drawableLeft`"
|
||
errorLine1=" android:drawableLeft="?attr/search""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="41"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UseCompatTextViewDrawableXml"
|
||
message="Use `app:drawableLeftCompat` instead of `android:drawableLeft`"
|
||
errorLine1=" android:drawableLeft="?attr/playlists""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="49"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UseCompatTextViewDrawableXml"
|
||
message="Use `app:drawableLeftCompat` instead of `android:drawableLeft`"
|
||
errorLine1=" android:drawableLeft="?attr/share""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="57"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UseCompatTextViewDrawableXml"
|
||
message="Use `app:drawableLeftCompat` instead of `android:drawableLeft`"
|
||
errorLine1=" android:drawableLeft="?attr/bookmark""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="65"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UseCompatTextViewDrawableXml"
|
||
message="Use `app:drawableLeftCompat` instead of `android:drawableLeft`"
|
||
errorLine1=" android:drawableLeft="?attr/chat""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="73"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UseCompatTextViewDrawableXml"
|
||
message="Use `app:drawableLeftCompat` instead of `android:drawableLeft`"
|
||
errorLine1=" android:drawableLeft="?attr/media_play""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="81"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UseCompatTextViewDrawableXml"
|
||
message="Use `app:drawableLeftCompat` instead of `android:drawableLeft`"
|
||
errorLine1=" android:drawableLeft="?attr/podcasts""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="89"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UseCompatTextViewDrawableXml"
|
||
message="Use `app:drawableLeftCompat` instead of `android:drawableLeft`"
|
||
errorLine1=" android:drawableLeft="?attr/settings""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="104"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UseCompatTextViewDrawableXml"
|
||
message="Use `app:drawableLeftCompat` instead of `android:drawableLeft`"
|
||
errorLine1=" android:drawableLeft="?attr/about""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="112"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UseCompatTextViewDrawableXml"
|
||
message="Use `app:drawableLeftCompat` instead of `android:drawableLeft`"
|
||
errorLine1=" android:drawableLeft="?attr/exit""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="120"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UseCompatTextViewDrawableXml"
|
||
message="Use `app:drawableLeftCompat` instead of `android:drawableLeft`"
|
||
errorLine1=" a:drawableLeft="?attr/search""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/search_buttons.xml"
|
||
line="13"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="Typos"
|
||
message=""dia" is a common misspelling; did you mean "día" ?"
|
||
errorLine1=" <string name="select_album.not_licensed">Servidor sin licencia. Quedan %d dia(s) de prueba.</string>"
|
||
errorLine2=" ^">
|
||
<location
|
||
file="src/main/res/values-es/strings.xml"
|
||
line="141"
|
||
column="79"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="Typos"
|
||
message=""lizensiert" is a common misspelling; did you mean "lizenziert" ?"
|
||
errorLine1=" <string name="settings.testing_unlicensed">Verbindung OK, Server nicht lizensiert.</string>"
|
||
errorLine2=" ^">
|
||
<location
|
||
file="src/main/res/values-de/strings.xml"
|
||
line="303"
|
||
column="76"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="PluralsCandidate"
|
||
message="Formatting %d followed by words ("Artists"): This should probably be a plural rather than a string"
|
||
errorLine1=" <string name="parser.artist_count">Got %d Artists.</string>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/strings.xml"
|
||
line="116"
|
||
column="5"/>
|
||
</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="137"
|
||
column="5"/>
|
||
</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_unselected">%d tracks unselected.</string>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/strings.xml"
|
||
line="138"
|
||
column="5"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="PluralsCandidate"
|
||
message="Formatting %d followed by words ("trial"): This should probably be a plural rather than a string"
|
||
errorLine1=" <string name="select_album.not_licensed">Server not licensed. %d trial days left.</string>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/strings.xml"
|
||
line="141"
|
||
column="5"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="TrulyRandom"
|
||
message="Potentially insecure random numbers on Android 4.3 and older. Read https://android-developers.blogspot.com/2013/08/some-securerandom-thoughts.html for more info."
|
||
errorLine1=" private Random random = new java.security.SecureRandom();"
|
||
errorLine2=" ~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/SelectAlbumActivity.java"
|
||
line="85"
|
||
column="44"/>
|
||
</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="SetJavaScriptEnabled"
|
||
message="Using `setJavaScriptEnabled` can introduce XSS vulnerabilities into your application, review carefully."
|
||
errorLine1=" webView.getSettings().setJavaScriptEnabled(true);"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/HelpActivity.java"
|
||
line="110"
|
||
column="3"/>
|
||
</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="197"
|
||
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="ObsoleteSdkInt"
|
||
message="This folder configuration (`v14`) is unnecessary; `minSdkVersion` is 14. Merge all the resources in this folder into `drawable-hdpi`.">
|
||
<location
|
||
file="src/main/res/drawable-hdpi-v14"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ObsoleteSdkInt"
|
||
message="This folder configuration (`v14`) is unnecessary; `minSdkVersion` is 14. Merge all the resources in this folder into `drawable-mdpi`.">
|
||
<location
|
||
file="src/main/res/drawable-mdpi-v14"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ObsoleteSdkInt"
|
||
message="This folder configuration (`v14`) is unnecessary; `minSdkVersion` is 14. Merge all the resources in this folder into `drawable-xhdpi`.">
|
||
<location
|
||
file="src/main/res/drawable-xhdpi-v14"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="StaticFieldLeak"
|
||
message="This `AsyncTask` class should be static or leaks might occur (org.moire.ultrasonic.activity.BookmarkActivity.GetDataTask)"
|
||
errorLine1=" private class GetDataTask extends AsyncTask<Void, Void, String[]>"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/BookmarkActivity.java"
|
||
line="470"
|
||
column="16"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="StaticFieldLeak"
|
||
message="This `AsyncTask` class should be static or leaks might occur (org.moire.ultrasonic.util.CacheCleaner.BackgroundCleanup)"
|
||
errorLine1=" private class BackgroundCleanup extends AsyncTask<Void, Void, Void>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/CacheCleaner.java"
|
||
line="241"
|
||
column="16"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="StaticFieldLeak"
|
||
message="This `AsyncTask` class should be static or leaks might occur (org.moire.ultrasonic.util.CacheCleaner.BackgroundSpaceCleanup)"
|
||
errorLine1=" private class BackgroundSpaceCleanup extends AsyncTask<Void, Void, Void>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/CacheCleaner.java"
|
||
line="269"
|
||
column="16"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="StaticFieldLeak"
|
||
message="This `AsyncTask` class should be static or leaks might occur (org.moire.ultrasonic.util.CacheCleaner.BackgroundPlaylistsCleanup)"
|
||
errorLine1=" private class BackgroundPlaylistsCleanup extends AsyncTask<List<Playlist>, Void, Void>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/util/CacheCleaner.java"
|
||
line="298"
|
||
column="16"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="StaticFieldLeak"
|
||
message="This `AsyncTask` class should be static or leaks might occur (org.moire.ultrasonic.activity.ChatActivity.GetDataTask)"
|
||
errorLine1=" private class GetDataTask extends AsyncTask<Void, Void, String[]>"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/ChatActivity.java"
|
||
line="295"
|
||
column="16"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="StaticFieldLeak"
|
||
message="Do not place Android context classes in static fields; this is a memory leak"
|
||
errorLine1=" private static SeekBar progressBar;"
|
||
errorLine2=" ~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/DownloadActivity.java"
|
||
line="107"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="StaticFieldLeak"
|
||
message="This `AsyncTask` class should be static or leaks might occur (org.moire.ultrasonic.service.DownloadQueueSerializer.SerializeTask)"
|
||
errorLine1=" private class SerializeTask extends AsyncTask<Object, Void, Void>"
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/service/DownloadQueueSerializer.java"
|
||
line="69"
|
||
column="19"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="StaticFieldLeak"
|
||
message="This `AsyncTask` class should be static or leaks might occur (org.moire.ultrasonic.service.DownloadQueueSerializer.DeserializeTask)"
|
||
errorLine1=" private class DeserializeTask extends AsyncTask<Object, Void, Void>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/service/DownloadQueueSerializer.java"
|
||
line="90"
|
||
column="19"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="StaticFieldLeak"
|
||
message="This `AsyncTask` class should be static or leaks might occur (org.moire.ultrasonic.activity.SelectAlbumActivity.GetDataTask)"
|
||
errorLine1=" private class GetDataTask extends AsyncTask<Void, Void, String[]>"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/SelectAlbumActivity.java"
|
||
line="1287"
|
||
column="16"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="StaticFieldLeak"
|
||
message="This `AsyncTask` class should be static or leaks might occur (org.moire.ultrasonic.activity.SelectArtistActivity.GetDataTask)"
|
||
errorLine1=" private class GetDataTask extends AsyncTask<Void, Void, String[]>"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/SelectArtistActivity.java"
|
||
line="359"
|
||
column="16"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="StaticFieldLeak"
|
||
message="This `AsyncTask` class should be static or leaks might occur (org.moire.ultrasonic.activity.SelectGenreActivity.GetDataTask)"
|
||
errorLine1=" private class GetDataTask extends AsyncTask<Void, Void, String[]>"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/SelectGenreActivity.java"
|
||
line="178"
|
||
column="16"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="StaticFieldLeak"
|
||
message="This `AsyncTask` class should be static or leaks might occur (org.moire.ultrasonic.activity.SelectPlaylistActivity.GetDataTask)"
|
||
errorLine1=" private class GetDataTask extends AsyncTask<Void, Void, String[]>"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/SelectPlaylistActivity.java"
|
||
line="376"
|
||
column="16"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="StaticFieldLeak"
|
||
message="This field leaks a context object"
|
||
errorLine1=" private val context: Context"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/kotlin/org/moire/ultrasonic/activity/ServerSettingsModel.kt"
|
||
line="24"
|
||
column="5"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="StaticFieldLeak"
|
||
message="This `AsyncTask` class should be static or leaks might occur (org.moire.ultrasonic.activity.ShareActivity.GetDataTask)"
|
||
errorLine1=" private class GetDataTask extends AsyncTask<Void, Void, String[]>"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/ShareActivity.java"
|
||
line="370"
|
||
column="16"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="StaticFieldLeak"
|
||
message="Do not place Android context classes in static fields (static reference to `SubsonicTabActivity` which has field `nowPlayingView` pointing to `View`); this is a memory leak"
|
||
errorLine1=" private static SubsonicTabActivity instance;"
|
||
errorLine2=" ~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/SubsonicTabActivity.java"
|
||
line="72"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="StaticFieldLeak"
|
||
message="Do not place Android context classes in static fields; this is a memory leak"
|
||
errorLine1=" private static Context context;"
|
||
errorLine2=" ~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/view/UpdateView.java"
|
||
line="25"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UseCompoundDrawables"
|
||
message="This tag and its children can be replaced by one `<TextView/>` and a compound drawable"
|
||
errorLine1="<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android""
|
||
errorLine2=" ~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/filepicker_item_file_lister.xml"
|
||
line="2"
|
||
column="2"/>
|
||
</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/Theme.AppCompat`)"
|
||
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/Theme.AppCompat`)"
|
||
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/Theme.AppCompat`)"
|
||
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/Theme.AppCompat`)"
|
||
errorLine1=" a:background="@drawable/appwidget_dark_bg_trans" >"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/appwidget4x4.xml"
|
||
line="8"
|
||
column="5"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="Overdraw"
|
||
message="Possible overdraw: Root element paints background `@color/background_color_dark` with a theme that also paints a background (inferred theme is `@style/Theme.AppCompat`)"
|
||
errorLine1=" android:background="@color/background_color_dark""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification.xml"
|
||
line="9"
|
||
column="5"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="Overdraw"
|
||
message="Possible overdraw: Root element paints background `@color/background_color_dark` with a theme that also paints a background (inferred theme is `@style/Theme.AppCompat`)"
|
||
errorLine1=" android:background="@color/background_color_dark" >"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification_large.xml"
|
||
line="9"
|
||
column="5"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.color.md__transparent` appears to be unused"
|
||
errorLine1=" <color name="md__transparent">#00000000</color>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/colors.xml"
|
||
line="8"
|
||
column="12"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.drawable.md__list_focused_holo` appears to be unused">
|
||
<location
|
||
file="src/main/res/drawable-xhdpi/md__list_focused_holo.9.png"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.drawable.md__list_longpressed_holo` appears to be unused">
|
||
<location
|
||
file="src/main/res/drawable-xhdpi/md__list_longpressed_holo.9.png"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.drawable.md__list_pressed_holo_dark` appears to be unused">
|
||
<location
|
||
file="src/main/res/drawable-xhdpi/md__list_pressed_holo_dark.9.png"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.drawable.md__list_selector_background_transition_holo_dark` appears to be unused"
|
||
errorLine1="<transition xmlns:android="http://schemas.android.com/apk/res/android">"
|
||
errorLine2="^">
|
||
<location
|
||
file="src/main/res/drawable/md__list_selector_background_transition_holo_dark.xml"
|
||
line="17"
|
||
column="1"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.drawable.md__list_selector_disabled_holo_dark` appears to be unused">
|
||
<location
|
||
file="src/main/res/drawable-xhdpi/md__list_selector_disabled_holo_dark.9.png"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.drawable.md__list_selector_holo_dark` appears to be unused"
|
||
errorLine1="<selector xmlns:android="http://schemas.android.com/apk/res/android">"
|
||
errorLine2="^">
|
||
<location
|
||
file="src/main/res/drawable/md__list_selector_holo_dark.xml"
|
||
line="17"
|
||
column="1"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.drawable.menu_arrow` appears to be unused">
|
||
<location
|
||
file="src/main/res/drawable-hdpi/menu_arrow.png"/>
|
||
<location
|
||
file="src/main/res/drawable-hdpi-v14/menu_arrow.png"/>
|
||
<location
|
||
file="src/main/res/drawable-mdpi/menu_arrow.png"/>
|
||
<location
|
||
file="src/main/res/drawable-mdpi-v14/menu_arrow.png"/>
|
||
<location
|
||
file="src/main/res/drawable-xhdpi/menu_arrow.png"/>
|
||
<location
|
||
file="src/main/res/drawable-xhdpi-v14/menu_arrow.png"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.drawable.progress_bg_holo_dark` appears to be unused">
|
||
<location
|
||
file="src/main/res/drawable-hdpi/progress_bg_holo_dark.9.png"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.drawable.progress_horizontal_holo_dark` appears to be unused"
|
||
errorLine1="<layer-list xmlns:android="http://schemas.android.com/apk/res/android">"
|
||
errorLine2="^">
|
||
<location
|
||
file="src/main/res/drawable/progress_horizontal_holo_dark.xml"
|
||
line="17"
|
||
column="1"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.drawable.progress_primary_holo_dark` appears to be unused">
|
||
<location
|
||
file="src/main/res/drawable-hdpi/progress_primary_holo_dark.9.png"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.drawable.progress_secondary_holo_dark` appears to be unused">
|
||
<location
|
||
file="src/main/res/drawable-hdpi/progress_secondary_holo_dark.9.png"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.string.music_service_retry` appears to be unused"
|
||
errorLine1=" <string name="music_service.retry">A network error occurred. Retrying %1$d of %2$d.</string>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/strings.xml"
|
||
line="115"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-de/strings.xml"
|
||
line="115"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-es/strings.xml"
|
||
line="115"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-fr/strings.xml"
|
||
line="115"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-hu/strings.xml"
|
||
line="115"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-nl/strings.xml"
|
||
line="115"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pl/strings.xml"
|
||
line="115"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pt/strings.xml"
|
||
line="115"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pt-rBR/strings.xml"
|
||
line="115"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.string.parser_artist_count` appears to be unused"
|
||
errorLine1=" <string name="parser.artist_count">Got %d Artists.</string>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/strings.xml"
|
||
line="116"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-de/strings.xml"
|
||
line="116"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-es/strings.xml"
|
||
line="116"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-fr/strings.xml"
|
||
line="116"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-hu/strings.xml"
|
||
line="116"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-nl/strings.xml"
|
||
line="116"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pl/strings.xml"
|
||
line="116"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pt/strings.xml"
|
||
line="116"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pt-rBR/strings.xml"
|
||
line="116"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.string.parser_reading_done` appears to be unused"
|
||
errorLine1=" <string name="parser.reading_done">Reading from server. Done!</string>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/strings.xml"
|
||
line="118"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-de/strings.xml"
|
||
line="118"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-es/strings.xml"
|
||
line="118"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-fr/strings.xml"
|
||
line="118"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-hu/strings.xml"
|
||
line="118"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-nl/strings.xml"
|
||
line="118"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pl/strings.xml"
|
||
line="118"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pt/strings.xml"
|
||
line="118"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pt-rBR/strings.xml"
|
||
line="118"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.string.settings_allow_self_signed_certificate` appears to be unused"
|
||
errorLine1=" <string name="settings.allow_self_signed_certificate" translatable="false">allowSelfSignedCertificate</string>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/strings.xml"
|
||
line="148"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.string.settings_enable_ldap_user_support` appears to be unused"
|
||
errorLine1=" <string name="settings.enable_ldap_user_support" translatable="false">enableLdapUserSupport</string>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/strings.xml"
|
||
line="149"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.string.settings_cache_location_error` appears to be unused"
|
||
errorLine1=" <string name="settings.cache_location_error">Invalid cache location. Using default.</string>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/strings.xml"
|
||
line="165"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-de/strings.xml"
|
||
line="163"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-es/strings.xml"
|
||
line="163"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-fr/strings.xml"
|
||
line="163"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-hu/strings.xml"
|
||
line="163"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-nl/strings.xml"
|
||
line="163"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pl/strings.xml"
|
||
line="163"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pt/strings.xml"
|
||
line="163"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pt-rBR/strings.xml"
|
||
line="163"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.string.settings_invalid_username` appears to be unused"
|
||
errorLine1=" <string name="settings.invalid_username">Please specify a valid username (no trailing spaces).</string>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/strings.xml"
|
||
line="217"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-de/strings.xml"
|
||
line="215"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-es/strings.xml"
|
||
line="215"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-fr/strings.xml"
|
||
line="215"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-hu/strings.xml"
|
||
line="215"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-nl/strings.xml"
|
||
line="215"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pl/strings.xml"
|
||
line="215"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pt/strings.xml"
|
||
line="215"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pt-rBR/strings.xml"
|
||
line="215"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.string.settings_server_remove_server` appears to be unused"
|
||
errorLine1=" <string name="settings.server_remove_server">Remove Server</string>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/strings.xml"
|
||
line="286"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-de/strings.xml"
|
||
line="284"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-es/strings.xml"
|
||
line="284"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-fr/strings.xml"
|
||
line="284"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-hu/strings.xml"
|
||
line="284"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-nl/strings.xml"
|
||
line="284"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pl/strings.xml"
|
||
line="284"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pt/strings.xml"
|
||
line="284"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pt-rBR/strings.xml"
|
||
line="284"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.string.settings_server_unused` appears to be unused"
|
||
errorLine1=" <string name="settings.server_unused">Unused</string>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/strings.xml"
|
||
line="289"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-de/strings.xml"
|
||
line="287"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-es/strings.xml"
|
||
line="287"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-fr/strings.xml"
|
||
line="287"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-hu/strings.xml"
|
||
line="287"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-nl/strings.xml"
|
||
line="287"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pl/strings.xml"
|
||
line="287"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pt/strings.xml"
|
||
line="287"
|
||
column="13"/>
|
||
<location
|
||
file="src/main/res/values-pt-rBR/strings.xml"
|
||
line="287"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.string.settings_server_address_unset` appears to be unused"
|
||
errorLine1=" <string name="settings.server_address_unset" translatable="false">http://example.com</string>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/strings.xml"
|
||
line="402"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.style.listselect` appears to be unused"
|
||
errorLine1=" <style name="listselect" parent="Widget.AppCompat.ListView">"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/styles.xml"
|
||
line="3"
|
||
column="12"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.style.listselectlight` appears to be unused"
|
||
errorLine1=" <style name="listselectlight" parent="Widget.AppCompat.ListView">"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/styles.xml"
|
||
line="7"
|
||
column="12"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.style.customprogress` appears to be unused"
|
||
errorLine1=" <style name="customprogress" parent="Widget.AppCompat.ProgressBar.Horizontal">"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/styles.xml"
|
||
line="11"
|
||
column="12"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UnusedResources"
|
||
message="The resource `R.style.Widget_MenuDrawer` appears to be unused"
|
||
errorLine1=" <style name="Widget.MenuDrawer">"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/values/styles.xml"
|
||
line="15"
|
||
column="12"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="UselessParent"
|
||
message="This `LinearLayout` layout or its `LinearLayout` parent is useless"
|
||
errorLine1=" <LinearLayout"
|
||
errorLine2=" ~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/video_details.xml"
|
||
line="9"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="TypographyDashes"
|
||
message="Replace "--" with an "em dash" character (—, &#8212;) ?"
|
||
errorLine1=" <string name="util.no_time">-:--</string>"
|
||
errorLine2=" ^">
|
||
<location
|
||
file="src/main/res/values-de/strings.xml"
|
||
line="335"
|
||
column="33"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="TypographyDashes"
|
||
message="Replace "--" with an "em dash" character (—, &#8212;) ?"
|
||
errorLine1=" <string name="util.no_time">-:--</string>"
|
||
errorLine2=" ^">
|
||
<location
|
||
file="src/main/res/values-es/strings.xml"
|
||
line="336"
|
||
column="33"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="TypographyDashes"
|
||
message="Replace "--" with an "em dash" character (—, &#8212;) ?"
|
||
errorLine1=" <string name="util.no_time">-:--</string>"
|
||
errorLine2=" ^">
|
||
<location
|
||
file="src/main/res/values-hu/strings.xml"
|
||
line="336"
|
||
column="33"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="TypographyDashes"
|
||
message="Replace "--" with an "em dash" character (—, &#8212;) ?"
|
||
errorLine1=" <string name="util.no_time">-:--</string>"
|
||
errorLine2=" ^">
|
||
<location
|
||
file="src/main/res/values-nl/strings.xml"
|
||
line="336"
|
||
column="33"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="TypographyDashes"
|
||
message="Replace "--" with an "em dash" character (—, &#8212;) ?"
|
||
errorLine1=" <string name="util.no_time">-:--</string>"
|
||
errorLine2=" ^">
|
||
<location
|
||
file="src/main/res/values-pl/strings.xml"
|
||
line="336"
|
||
column="33"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="TypographyDashes"
|
||
message="Replace "--" with an "em dash" character (—, &#8212;) ?"
|
||
errorLine1=" <string name="util.no_time">-:--</string>"
|
||
errorLine2=" ^">
|
||
<location
|
||
file="src/main/res/values-pt-rBR/strings.xml"
|
||
line="336"
|
||
column="33"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="TypographyDashes"
|
||
message="Replace "--" with an "em dash" character (—, &#8212;) ?"
|
||
errorLine1=" <string name="util.no_time">-:--</string>"
|
||
errorLine2=" ^">
|
||
<location
|
||
file="src/main/res/values/strings.xml"
|
||
line="338"
|
||
column="33"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="TypographyEllipsis"
|
||
message="Replace "..." with ellipsis character (…, &#8230;) ?"
|
||
errorLine1=" <string name="parser.reading">Bezig met uitlezen van server...</string>"
|
||
errorLine2=" ^">
|
||
<location
|
||
file="src/main/res/values-nl/strings.xml"
|
||
line="117"
|
||
column="35"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="TypographyEllipsis"
|
||
message="Replace "..." with ellipsis character (…, &#8230;) ?"
|
||
errorLine1=" <string name="service.connecting">Bezig met verbinden met server; even geduld...</string>"
|
||
errorLine2=" ^">
|
||
<location
|
||
file="src/main/res/values-nl/strings.xml"
|
||
line="147"
|
||
column="39"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="IconColors"
|
||
message="Action Bar icons should use a single gray color (`#333333` for light themes (with 60%/30% opacity for enabled/disabled), and `#FFFFFF` with opacity 80%/30% for dark themes">
|
||
<location
|
||
file="src/main/res/drawable-xhdpi/ic_menu_pin.png"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="IconColors"
|
||
message="Notification icons must be entirely white">
|
||
<location
|
||
file="src/main/res/drawable-hdpi/ic_stat_play_light.png"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="IconColors"
|
||
message="Notification icons must be entirely white">
|
||
<location
|
||
file="src/main/res/drawable-hdpi/ic_stat_ultrasonic.png"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="IconColors"
|
||
message="Notification icons must be entirely white">
|
||
<location
|
||
file="src/main/res/drawable-ldpi/ic_stat_ultrasonic.png"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="IconColors"
|
||
message="Notification icons must be entirely white">
|
||
<location
|
||
file="src/main/res/drawable-mdpi/ic_stat_ultrasonic.png"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="IconColors"
|
||
message="Notification icons must be entirely white">
|
||
<location
|
||
file="src/main/res/drawable-xhdpi/ic_stat_ultrasonic.png"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="IconDensities"
|
||
message="Missing the following drawables in `drawable-hdpi`: ic_contact_picture.png, ic_menu_pin.png, md__list_focused_holo.9.png, md__list_longpressed_holo.9.png, md__list_pressed_holo_dark.9.png... (3 more)">
|
||
<location
|
||
file="src/main/res/drawable-hdpi"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="IconDensities"
|
||
message="Missing the following drawables in `drawable-mdpi`: ic_contact_picture.png, ic_menu_pin.png, ic_stat_play_dark.png, ic_stat_play_light.png, list_focused_holo.9.png... (17 more)">
|
||
<location
|
||
file="src/main/res/drawable-mdpi"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="IconDensities"
|
||
message="Missing the following drawables in `drawable-xhdpi`: ic_contact_picture.png, ic_stat_play_dark.png, ic_stat_play_light.png, list_focused_holo.9.png, list_longpressed_holo.9.png... (9 more)">
|
||
<location
|
||
file="src/main/res/drawable-xhdpi"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="IconDensities"
|
||
message="Missing the following drawables in `drawable-xxhdpi`: ic_drag_queue.png, ic_menu_pin.png, ic_stat_play_dark.png, ic_stat_play_light.png, ic_stat_ultrasonic.png... (19 more)">
|
||
<location
|
||
file="src/main/res/drawable-xxhdpi"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="IconDuplicates"
|
||
message="The following unrelated icon files have identical contents: list_longpressed_holo.9.png, md__list_longpressed_holo.9.png">
|
||
<location
|
||
file="src/main/res/drawable-xhdpi/md__list_longpressed_holo.9.png"/>
|
||
<location
|
||
file="src/main/res/drawable-hdpi/list_longpressed_holo.9.png"/>
|
||
</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, md__list_pressed_holo_dark.9.png">
|
||
<location
|
||
file="src/main/res/drawable-xhdpi/md__list_pressed_holo_dark.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="28"
|
||
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="22"
|
||
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="ViewConstructor"
|
||
message="Custom view `AlbumView` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
|
||
errorLine1="public class AlbumView extends UpdateView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/view/AlbumView.java"
|
||
line="41"
|
||
column="14"/>
|
||
</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="37"
|
||
column="3"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ClickableViewAccessibility"
|
||
message="`onTouch` should call `View#performClick` when a click is detected"
|
||
errorLine1=" public boolean onTouch(View view, MotionEvent me)"
|
||
errorLine2=" ~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/DownloadActivity.java"
|
||
line="232"
|
||
column="19"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ClickableViewAccessibility"
|
||
message="Custom view ``ImageView`` has `setOnTouchListener` called on it but does not override `performClick`"
|
||
errorLine1=" albumArtImageView.setOnTouchListener(touchListener);"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/DownloadActivity.java"
|
||
line="238"
|
||
column="3"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ClickableViewAccessibility"
|
||
message="Custom view ``VisualizerView`` has `setOnTouchListener` called on it but does not override `performClick`"
|
||
errorLine1=" visualizerView.setOnTouchListener(new View.OnTouchListener()"
|
||
errorLine2=" ^">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/DownloadActivity.java"
|
||
line="547"
|
||
column="4"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ClickableViewAccessibility"
|
||
message="`onTouch` should call `View#performClick` when a click is detected"
|
||
errorLine1=" public boolean onTouch(final View view, final MotionEvent motionEvent)"
|
||
errorLine2=" ~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/DownloadActivity.java"
|
||
line="550"
|
||
column="20"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ClickableViewAccessibility"
|
||
message="`SwipeDetector#onTouch` should call `View#performClick` when a click is detected"
|
||
errorLine1=" public boolean onTouch(View v, MotionEvent event)"
|
||
errorLine2=" ~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/SubsonicTabActivity.java"
|
||
line="1368"
|
||
column="18"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_buttons.xml"
|
||
line="9"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_buttons.xml"
|
||
line="17"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_buttons.xml"
|
||
line="25"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_buttons.xml"
|
||
line="33"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_buttons.xml"
|
||
line="41"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_buttons.xml"
|
||
line="49"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_buttons.xml"
|
||
line="57"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_buttons.xml"
|
||
line="65"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_buttons.xml"
|
||
line="73"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_list_item.xml"
|
||
line="9"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_list_item.xml"
|
||
line="42"
|
||
column="6"/>
|
||
</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="40"
|
||
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="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout-land/download.xml"
|
||
line="43"
|
||
column="22"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout-port/download.xml"
|
||
line="45"
|
||
column="22"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout-land/download.xml"
|
||
line="55"
|
||
column="22"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout-port/download.xml"
|
||
line="57"
|
||
column="22"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout-land/download.xml"
|
||
line="67"
|
||
column="22"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout-port/download.xml"
|
||
line="69"
|
||
column="22"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout-land/download.xml"
|
||
line="79"
|
||
column="22"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout-port/download.xml"
|
||
line="81"
|
||
column="22"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout-land/download.xml"
|
||
line="91"
|
||
column="22"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout-port/download.xml"
|
||
line="93"
|
||
column="22"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/filepicker_item_file_lister.xml"
|
||
line="10"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView a:id="@+id/help_back""
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/help.xml"
|
||
line="12"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView a:id="@+id/help_stop""
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/help.xml"
|
||
line="18"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView a:id="@+id/help_forward""
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/help.xml"
|
||
line="24"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView a:layout_width="wrap_content" a:layout_height="wrap_content""
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/main_buttons.xml"
|
||
line="10"
|
||
column="4"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1="<ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/media_buttons.xml"
|
||
line="12"
|
||
column="2"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/media_buttons.xml"
|
||
line="32"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/media_buttons.xml"
|
||
line="42"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/media_buttons.xml"
|
||
line="52"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/media_buttons.xml"
|
||
line="72"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification.xml"
|
||
line="12"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageButton"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification.xml"
|
||
line="75"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageButton"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification.xml"
|
||
line="85"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageButton"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification.xml"
|
||
line="95"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageButton"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification.xml"
|
||
line="105"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification_large.xml"
|
||
line="11"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageButton"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification_large.xml"
|
||
line="48"
|
||
column="14"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification_large.xml"
|
||
line="91"
|
||
column="14"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification_large.xml"
|
||
line="101"
|
||
column="14"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification_large.xml"
|
||
line="111"
|
||
column="14"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification_large.xml"
|
||
line="121"
|
||
column="14"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification_large.xml"
|
||
line="131"
|
||
column="14"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageButton"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification_large.xml"
|
||
line="158"
|
||
column="14"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageButton"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification_large.xml"
|
||
line="167"
|
||
column="14"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageButton"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification_large.xml"
|
||
line="176"
|
||
column="14"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/now_playing.xml"
|
||
line="19"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/now_playing.xml"
|
||
line="55"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_artist_header.xml"
|
||
line="12"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/server_row.xml"
|
||
line="9"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageButton"
|
||
errorLine2=" ~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/server_row.xml"
|
||
line="37"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_list_item.xml"
|
||
line="25"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_list_item.xml"
|
||
line="35"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_list_item.xml"
|
||
line="45"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_list_item.xml"
|
||
line="55"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_list_item.xml"
|
||
line="65"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_list_item.xml"
|
||
line="78"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_list_item.xml"
|
||
line="88"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ContentDescription"
|
||
message="Missing `contentDescription` attribute on image"
|
||
errorLine1=" <ImageView"
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/video_list_item.xml"
|
||
line="19"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="LabelFor"
|
||
message="Missing accessibility label: where minSdk < 17, you should 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: where minSdk < 17, you should provide an `android:hint`"
|
||
errorLine1=" <EditText"
|
||
errorLine2=" ~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/share_details.xml"
|
||
line="22"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="LabelFor"
|
||
message="Missing accessibility label: where minSdk < 17, you should provide an `android:hint`"
|
||
errorLine1=" <EditText"
|
||
errorLine2=" ~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/time_span_dialog.xml"
|
||
line="30"
|
||
column="10"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ConstantLocale"
|
||
message="Assigning `Locale.getDefault()` to a final static field is suspicious; this code will not work correctly if the user changes locale while the app is running"
|
||
errorLine1=" SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.getDefault())"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/kotlin/org/moire/ultrasonic/domain/APIMusicDirectoryConverter.kt"
|
||
line="13"
|
||
column="78"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="SetTextI18n"
|
||
message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
|
||
errorLine1=" freqTextView.setText((equalizer.getCenterFreq(band) / 1000) + " Hz");"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/EqualizerActivity.java"
|
||
line="209"
|
||
column="27"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="SetTextI18n"
|
||
message="String literal in `setText` can not be translated. Use Android resources instead."
|
||
errorLine1=" freqTextView.setText((equalizer.getCenterFreq(band) / 1000) + " Hz");"
|
||
errorLine2=" ~~~~~">
|
||
<location
|
||
file="src/main/java/org/moire/ultrasonic/activity/EqualizerActivity.java"
|
||
line="209"
|
||
column="68"/>
|
||
</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 / 0", should use `@string` resource"
|
||
errorLine1=" a:text="0 / 0""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/download_button_bar_flipper.xml"
|
||
line="43"
|
||
column="9"/>
|
||
</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 "Share", should use `@string` resource"
|
||
errorLine1=" a:title="Share"/>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/menu/select_song_context.xml"
|
||
line="24"
|
||
column="9"/>
|
||
</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="44"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RelativeOverlap"
|
||
message="`@id/server_name` can overlap `@id/server_menu` if @id/server_name grows due to localized text expansion"
|
||
errorLine1=" <TextView"
|
||
errorLine2=" ~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/server_row.xml"
|
||
line="18"
|
||
column="6"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlCompat"
|
||
message="To support older versions than API 17 (project specifies 14) you should **also** add `a:layout_toRightOf="@id/chat_avatar"`"
|
||
errorLine1=" a:layout_toEndOf="@id/chat_avatar""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item.xml"
|
||
line="16"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlCompat"
|
||
message="To support older versions than API 17 (project specifies 14) you should **also** add `a:layout_alignParentRight="false"`"
|
||
errorLine1=" a:layout_alignParentEnd="false""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item_reverse.xml"
|
||
line="12"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlCompat"
|
||
message="To support older versions than API 17 (project specifies 14) you should **also** add `a:layout_toLeftOf="@id/chat_avatar"`"
|
||
errorLine1=" a:layout_toStartOf="@id/chat_avatar""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item_reverse.xml"
|
||
line="13"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlCompat"
|
||
message="To support older versions than API 17 (project specifies 14) you should **also** add `a:layout_alignParentRight="true"`"
|
||
errorLine1=" a:layout_alignParentEnd="true""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item_reverse.xml"
|
||
line="68"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlCompat"
|
||
message="To support older versions than API 17 (project specifies 14) you should **also** add `a:layout_toLeftOf="@id/chat_avatar"`"
|
||
errorLine1=" a:layout_toStartOf="@id/chat_avatar"/>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item_reverse.xml"
|
||
line="69"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlCompat"
|
||
message="To support older versions than API 17 (project specifies 14) you should **also** add `android:layout_alignParentRight="false"`"
|
||
errorLine1=" android:layout_alignParentEnd="false"/>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/time_span_dialog.xml"
|
||
line="40"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" a:paddingLeft="3dip"/>"
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_list_item.xml"
|
||
line="14"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
|
||
errorLine1=" a:paddingRight="3dip" />"
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_list_item.xml"
|
||
line="50"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" a:paddingLeft="5dip""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/appwidget4x3.xml"
|
||
line="64"
|
||
column="17"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" a:paddingLeft="5dip""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/appwidget4x4.xml"
|
||
line="65"
|
||
column="17"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" a:paddingLeft="6dp" a:layout_width="fill_parent" a:layout_height="wrap_content""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/main_buttons.xml"
|
||
line="7"
|
||
column="3"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" a:gravity="center_vertical" a:paddingLeft="6dp" a:textAllCaps="true""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/main_buttons.xml"
|
||
line="40"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" a:gravity="center_vertical" a:paddingLeft="6dp" a:textAllCaps="true""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/main_buttons.xml"
|
||
line="61"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" a:gravity="center_vertical" a:paddingLeft="6dp" a:textAllCaps="true""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/main_buttons.xml"
|
||
line="77"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" a:gravity="center_vertical" a:paddingLeft="6dp" a:textAllCaps="true""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/main_buttons.xml"
|
||
line="123"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" android:paddingLeft="12dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification.xml"
|
||
line="26"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
|
||
errorLine1=" android:paddingStart="12dp""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification.xml"
|
||
line="27"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
|
||
errorLine1=" android:paddingRight="4dp">"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification.xml"
|
||
line="73"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
|
||
errorLine1=" android:paddingRight="4dp">"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification_large.xml"
|
||
line="34"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" android:paddingLeft="11.0dip">"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/now_playing.xml"
|
||
line="32"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" a:paddingLeft="4dp"/>"
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/search_buttons.xml"
|
||
line="28"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" a:paddingLeft="4dp"/>"
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/search_buttons.xml"
|
||
line="40"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" a:paddingLeft="4dp"/>"
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/search_buttons.xml"
|
||
line="52"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
|
||
errorLine1=" a:paddingRight="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="23"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
|
||
errorLine1=" a:paddingRight="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="35"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
|
||
errorLine1=" a:paddingRight="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="46"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
|
||
errorLine1=" a:paddingRight="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="57"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
|
||
errorLine1=" a:paddingRight="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="68"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
|
||
errorLine1=" a:paddingRight="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="79"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" a:paddingLeft="6dp""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_artist_header.xml"
|
||
line="9"
|
||
column="5"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" a:paddingLeft="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/share_list_item.xml"
|
||
line="41"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
|
||
errorLine1=" a:paddingRight="6dip"/>"
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_details.xml"
|
||
line="41"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" a:paddingLeft="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_details.xml"
|
||
line="57"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" a:paddingLeft="3dip" />"
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_list_item.xml"
|
||
line="14"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
|
||
errorLine1=" a:paddingRight="8dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_list_item.xml"
|
||
line="85"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
|
||
errorLine1=" a:paddingRight="8dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_list_item.xml"
|
||
line="95"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingLeft` you should probably also define `paddingRight` for right-to-left symmetry"
|
||
errorLine1=" a:paddingLeft="1dip""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/video_list_item.xml"
|
||
line="13"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlSymmetry"
|
||
message="When you define `paddingRight` you should probably also define `paddingLeft` for right-to-left symmetry"
|
||
errorLine1=" a:paddingRight="8dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/video_list_item.xml"
|
||
line="26"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="left|center_vertical""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_list_item.xml"
|
||
line="13"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="3dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="3dip"/>"
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_list_item.xml"
|
||
line="14"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="left|center_vertical""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_list_item.xml"
|
||
line="21"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="6dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="6dip""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_list_item.xml"
|
||
line="22"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="3dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="3dip">"
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_list_item.xml"
|
||
line="23"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="3dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="3dip" />"
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/album_list_item.xml"
|
||
line="50"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="5dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="5dip""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/appwidget4x3.xml"
|
||
line="64"
|
||
column="17"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="5dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="5dip""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/appwidget4x4.xml"
|
||
line="65"
|
||
column="17"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="left""
|
||
errorLine2=" ~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item.xml"
|
||
line="30"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:gravity="center_vertical|left"/>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item.xml"
|
||
line="31"
|
||
column="24"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:gravity="center_vertical|left""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item.xml"
|
||
line="39"
|
||
column="24"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="left">"
|
||
errorLine2=" ~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item.xml"
|
||
line="40"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_marginStart="6dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_marginLeft="6dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item.xml"
|
||
line="46"
|
||
column="17"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:gravity="left"/>"
|
||
errorLine2=" ~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item.xml"
|
||
line="50"
|
||
column="28"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:gravity="left"/>"
|
||
errorLine2=" ~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item.xml"
|
||
line="63"
|
||
column="28"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="right""
|
||
errorLine2=" ~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item_reverse.xml"
|
||
line="11"
|
||
column="27"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:gravity="center_vertical|right">"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item_reverse.xml"
|
||
line="14"
|
||
column="20"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_marginEnd="6dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_marginRight="6dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item_reverse.xml"
|
||
line="20"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:gravity="center_vertical|right""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item_reverse.xml"
|
||
line="21"
|
||
column="24"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="right""
|
||
errorLine2=" ~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item_reverse.xml"
|
||
line="22"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="right|end""
|
||
errorLine2=" ~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item_reverse.xml"
|
||
line="34"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:gravity="center_vertical|right">"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item_reverse.xml"
|
||
line="35"
|
||
column="24"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_marginStart="6dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_marginLeft="6dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item_reverse.xml"
|
||
line="41"
|
||
column="17"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:gravity="center_vertical|right""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item_reverse.xml"
|
||
line="43"
|
||
column="28"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="right"/>"
|
||
errorLine2=" ~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item_reverse.xml"
|
||
line="46"
|
||
column="35"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:gravity="center_vertical|right""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item_reverse.xml"
|
||
line="59"
|
||
column="28"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="right"/>"
|
||
errorLine2=" ~~~~~">
|
||
<location
|
||
file="src/main/res/layout/chat_item_reverse.xml"
|
||
line="60"
|
||
column="35"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:gravity="left""
|
||
errorLine2=" ~~~~">
|
||
<location
|
||
file="src/main/res/layout-land/download.xml"
|
||
line="18"
|
||
column="24"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_alignParentStart="true"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_alignParentLeft="true""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/download_button_bar_flipper.xml"
|
||
line="31"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_marginEnd="6dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_marginRight="6dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/download_button_bar_flipper.xml"
|
||
line="32"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_alignParentStart="true"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_alignParentLeft="true""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/download_button_bar_flipper.xml"
|
||
line="40"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_marginEnd="6dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_marginRight="6dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/download_button_bar_flipper.xml"
|
||
line="42"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_alignParentEnd="true"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_alignParentRight="true""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/download_button_bar_flipper.xml"
|
||
line="50"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_marginStart="6dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_marginLeft="6dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/download_button_bar_flipper.xml"
|
||
line="51"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_alignParentEnd="true"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_alignParentRight="true""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/download_button_bar_flipper.xml"
|
||
line="59"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_marginStart="6dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_marginLeft="6dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/download_button_bar_flipper.xml"
|
||
line="61"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_toStartOf="@+id/download_duration"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_toLeftOf="@+id/download_duration""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/download_button_bar_flipper.xml"
|
||
line="70"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_toEndOf="@+id/download_position"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_toRightOf="@+id/download_position""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/download_button_bar_flipper.xml"
|
||
line="71"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_alignParentStart="true"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_alignParentLeft="true""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/equalizer_bar.xml"
|
||
line="14"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:gravity="right""
|
||
errorLine2=" ~~~~~">
|
||
<location
|
||
file="src/main/res/layout/equalizer_bar.xml"
|
||
line="22"
|
||
column="24"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_alignParentEnd="true"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_alignParentRight="true""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/equalizer_bar.xml"
|
||
line="26"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_toEndOf="@+id/equalizer.frequency"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_toRightOf="@+id/equalizer.frequency""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/equalizer_bar.xml"
|
||
line="27"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="6dp"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="6dp" a:layout_width="fill_parent" a:layout_height="wrap_content""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/main_buttons.xml"
|
||
line="7"
|
||
column="3"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_marginStart="10dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_marginLeft="10dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/main_buttons.xml"
|
||
line="22"
|
||
column="5"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_marginStart="10dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_marginLeft="10dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/main_buttons.xml"
|
||
line="31"
|
||
column="5"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="6dp"` to better support right-to-left layouts"
|
||
errorLine1=" a:gravity="center_vertical" a:paddingLeft="6dp" a:textAllCaps="true""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/main_buttons.xml"
|
||
line="40"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="6dp"` to better support right-to-left layouts"
|
||
errorLine1=" a:gravity="center_vertical" a:paddingLeft="6dp" a:textAllCaps="true""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/main_buttons.xml"
|
||
line="61"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="6dp"` to better support right-to-left layouts"
|
||
errorLine1=" a:gravity="center_vertical" a:paddingLeft="6dp" a:textAllCaps="true""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/main_buttons.xml"
|
||
line="77"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="6dp"` to better support right-to-left layouts"
|
||
errorLine1=" a:gravity="center_vertical" a:paddingLeft="6dp" a:textAllCaps="true""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/main_buttons.xml"
|
||
line="123"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="2dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="2dip""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/media_buttons.xml"
|
||
line="19"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="8dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="8dip"/>"
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/media_buttons.xml"
|
||
line="20"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="8dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="8dip""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/media_buttons.xml"
|
||
line="79"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="2dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="2dip"/>"
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/media_buttons.xml"
|
||
line="80"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:drawableStart="?attr/home"` to better support right-to-left layouts"
|
||
errorLine1=" android:drawableLeft="?attr/home""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="25"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:drawableStart="?attr/browse"` to better support right-to-left layouts"
|
||
errorLine1=" android:drawableLeft="?attr/browse""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="33"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:drawableStart="?attr/search"` to better support right-to-left layouts"
|
||
errorLine1=" android:drawableLeft="?attr/search""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="41"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:drawableStart="?attr/playlists"` to better support right-to-left layouts"
|
||
errorLine1=" android:drawableLeft="?attr/playlists""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="49"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:drawableStart="?attr/share"` to better support right-to-left layouts"
|
||
errorLine1=" android:drawableLeft="?attr/share""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="57"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:drawableStart="?attr/bookmark"` to better support right-to-left layouts"
|
||
errorLine1=" android:drawableLeft="?attr/bookmark""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="65"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:drawableStart="?attr/chat"` to better support right-to-left layouts"
|
||
errorLine1=" android:drawableLeft="?attr/chat""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="73"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:drawableStart="?attr/media_play"` to better support right-to-left layouts"
|
||
errorLine1=" android:drawableLeft="?attr/media_play""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="81"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:drawableStart="?attr/podcasts"` to better support right-to-left layouts"
|
||
errorLine1=" android:drawableLeft="?attr/podcasts""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="89"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:drawableStart="?attr/settings"` to better support right-to-left layouts"
|
||
errorLine1=" android:drawableLeft="?attr/settings""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="104"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:drawableStart="?attr/about"` to better support right-to-left layouts"
|
||
errorLine1=" android:drawableLeft="?attr/about""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="112"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:drawableStart="?attr/exit"` to better support right-to-left layouts"
|
||
errorLine1=" android:drawableLeft="?attr/exit""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/menu_main.xml"
|
||
line="120"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:paddingEnd="4dp"` to better support right-to-left layouts"
|
||
errorLine1=" android:paddingRight="4dp">"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification.xml"
|
||
line="73"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:layout_marginStart="4dp"` to better support right-to-left layouts"
|
||
errorLine1=" android:layout_marginLeft="4dp""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification.xml"
|
||
line="110"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:paddingEnd="4dp"` to better support right-to-left layouts"
|
||
errorLine1=" android:paddingRight="4dp">"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/notification_large.xml"
|
||
line="34"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:paddingStart="11.0dip"` to better support right-to-left layouts"
|
||
errorLine1=" android:paddingLeft="11.0dip">"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/now_playing.xml"
|
||
line="32"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" android:layout_gravity="left""
|
||
errorLine2=" ~~~~">
|
||
<location
|
||
file="src/main/res/layout/now_playing.xml"
|
||
line="38"
|
||
column="41"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" android:layout_gravity="left""
|
||
errorLine2=" ~~~~">
|
||
<location
|
||
file="src/main/res/layout/now_playing.xml"
|
||
line="48"
|
||
column="41"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" android:layout_gravity="center|right""
|
||
errorLine2=" ~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/now_playing.xml"
|
||
line="59"
|
||
column="37"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:layout_marginEnd="5dip"` to better support right-to-left layouts"
|
||
errorLine1=" android:layout_marginRight="5dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/now_playing.xml"
|
||
line="61"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" android:gravity="left|center_vertical""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/playlist_list_item.xml"
|
||
line="13"
|
||
column="20"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:drawableStart="?attr/search"` to better support right-to-left layouts"
|
||
errorLine1=" a:drawableLeft="?attr/search""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/search_buttons.xml"
|
||
line="13"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="4dp"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="4dp"/>"
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/search_buttons.xml"
|
||
line="28"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="4dp"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="4dp"/>"
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/search_buttons.xml"
|
||
line="40"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="4dp"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="4dp"/>"
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/search_buttons.xml"
|
||
line="52"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_alignParentStart="true"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_alignParentLeft="true""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="10"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_marginEnd="10dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_marginRight="10dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="12"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_toEndOf="@+id/select_album_art"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_toRightOf="@+id/select_album_art""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="21"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="4dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="23"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_toEndOf="@+id/select_album_art"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_toRightOf="@+id/select_album_art""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="33"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="4dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="35"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_toEndOf="@+id/select_album_art"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_toRightOf="@+id/select_album_art""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="44"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="4dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="46"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_toEndOf="@+id/select_album_art"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_toRightOf="@+id/select_album_art""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="55"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="4dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="57"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_toEndOf="@+id/select_album_art"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_toRightOf="@+id/select_album_art""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="66"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="4dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="68"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_toEndOf="@+id/select_album_art"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_toRightOf="@+id/select_album_art""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="77"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="4dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_album_header.xml"
|
||
line="79"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="6dp"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="6dp""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_artist_header.xml"
|
||
line="9"
|
||
column="5"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_marginStart="10dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_marginLeft="10dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_artist_header.xml"
|
||
line="27"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_marginStart="10dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_marginLeft="10dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/select_artist_header.xml"
|
||
line="36"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="left|center_vertical""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/share_list_item.xml"
|
||
line="22"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="left|center_vertical""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/share_list_item.xml"
|
||
line="38"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="4dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/share_list_item.xml"
|
||
line="41"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="left|center_vertical""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_details.xml"
|
||
line="19"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="left|center_vertical""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_details.xml"
|
||
line="26"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="4dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_details.xml"
|
||
line="30"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="2dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="2dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_details.xml"
|
||
line="31"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="right|center_vertical""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_details.xml"
|
||
line="39"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="6dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="6dip"/>"
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_details.xml"
|
||
line="41"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="left|center_vertical""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_details.xml"
|
||
line="54"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="4dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_details.xml"
|
||
line="57"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="right|center_vertical""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_details.xml"
|
||
line="65"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="3dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="3dip""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_details.xml"
|
||
line="66"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="9dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="9dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_details.xml"
|
||
line="67"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="3dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="3dip" />"
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_list_item.xml"
|
||
line="14"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_marginEnd="8dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_marginRight="8dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_list_item.xml"
|
||
line="73"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="8dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="8dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_list_item.xml"
|
||
line="85"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="8dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="8dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/song_list_item.xml"
|
||
line="95"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:layout_marginEnd="6dp"` to better support right-to-left layouts"
|
||
errorLine1=" a:layout_marginRight="6dp" />"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/tab_progress.xml"
|
||
line="15"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" android:gravity="left""
|
||
errorLine2=" ~~~~">
|
||
<location
|
||
file="src/main/res/layout/time_span_dialog.xml"
|
||
line="38"
|
||
column="30"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:layout_toEndOf="@+id/timeSpanEditText"` to better support right-to-left layouts"
|
||
errorLine1=" android:layout_toRightOf="@+id/timeSpanEditText"/>"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/time_span_dialog.xml"
|
||
line="47"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:layout_marginStart="4dp"` to better support right-to-left layouts"
|
||
errorLine1=" android:layout_marginLeft="4dp""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/update_playlist.xml"
|
||
line="15"
|
||
column="4"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:layout_marginStart="4dp"` to better support right-to-left layouts"
|
||
errorLine1=" android:layout_marginLeft="4dp""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/update_playlist.xml"
|
||
line="24"
|
||
column="4"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:layout_marginStart="4dp"` to better support right-to-left layouts"
|
||
errorLine1=" android:layout_marginLeft="4dp""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/update_playlist.xml"
|
||
line="37"
|
||
column="4"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:layout_marginStart="4dp"` to better support right-to-left layouts"
|
||
errorLine1=" android:layout_marginLeft="4dp""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/update_playlist.xml"
|
||
line="46"
|
||
column="4"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:layout_marginStart="4dp"` to better support right-to-left layouts"
|
||
errorLine1=" android:layout_marginLeft="4dp""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/update_playlist.xml"
|
||
line="59"
|
||
column="4"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `android:layout_marginStart="4dp"` to better support right-to-left layouts"
|
||
errorLine1=" android:layout_marginLeft="4dp""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/update_playlist.xml"
|
||
line="67"
|
||
column="4"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`start`" instead of "`left`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="left|center_vertical""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/video_details.xml"
|
||
line="19"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="4dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="4dip""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/video_details.xml"
|
||
line="22"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="2dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="2dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/video_details.xml"
|
||
line="23"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Use "`end`" instead of "`right`" to ensure correct behavior in right-to-left locales"
|
||
errorLine1=" a:layout_gravity="right|center_vertical""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/video_details.xml"
|
||
line="31"
|
||
column="31"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="2dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="2dip""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/video_details.xml"
|
||
line="32"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="6dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="6dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/video_details.xml"
|
||
line="33"
|
||
column="13"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingStart="1dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingLeft="1dip""
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/video_list_item.xml"
|
||
line="13"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlHardcoded"
|
||
message="Consider adding `a:paddingEnd="8dip"` to better support right-to-left layouts"
|
||
errorLine1=" a:paddingRight="8dip""
|
||
errorLine2=" ~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/video_list_item.xml"
|
||
line="26"
|
||
column="9"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="RtlEnabled"
|
||
message="The project references RTL attributes, but does not explicitly enable or disable RTL support with `android:supportsRtl` in the manifest">
|
||
<location
|
||
file="src/main/AndroidManifest.xml"/>
|
||
</issue>
|
||
|
||
</issues>
|