4301 lines
165 KiB
XML
4301 lines
165 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<issues format="4" by="lint 3.2.0" client="gradle" variant="release" version="3.2.0">
|
|
|
|
<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="269"
|
|
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="133"
|
|
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="291"
|
|
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="310"
|
|
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="399"
|
|
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="1607"
|
|
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="1615"
|
|
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="1623"
|
|
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="387"
|
|
column="51"/>
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/activity/SubsonicTabActivity.java"
|
|
line="333"
|
|
column="40"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="DefaultLocale"
|
|
message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
|
|
errorLine1=" handleError(new Exception(String.format("MediaPlayer error: %d (%d)", what, more)));"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/service/DownloadServiceImpl.java"
|
|
line="202"
|
|
column="33"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="DefaultLocale"
|
|
message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
|
|
errorLine1=" dataSource = String.format("http://127.0.0.1:%d/%s", proxy.getPort(), URLEncoder.encode(dataSource, Constants.UTF_8));"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/service/DownloadServiceImpl.java"
|
|
line="1594"
|
|
column="18"/>
|
|
</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="265"
|
|
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="522"
|
|
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="106"
|
|
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="107"
|
|
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="124"
|
|
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="131"
|
|
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="507"
|
|
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="509"
|
|
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="197"
|
|
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="480"
|
|
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="1450"
|
|
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="1454"
|
|
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="1458"
|
|
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="1461"
|
|
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="1461"
|
|
column="74"/>
|
|
</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="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="534"
|
|
column="12"/>
|
|
</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="864"
|
|
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="202"
|
|
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/JukeboxService.java"
|
|
line="466"
|
|
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="101"
|
|
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="101"
|
|
column="77"/>
|
|
</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 dialogView = getLayoutInflater().inflate(R.layout.update_playlist, null);"
|
|
errorLine2=" ~~~~">
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/activity/SelectPlaylistActivity.java"
|
|
line="304"
|
|
column="75"/>
|
|
</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 dialogView = getLayoutInflater().inflate(R.layout.share_details, null);"
|
|
errorLine2=" ~~~~">
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/activity/ShareActivity.java"
|
|
line="288"
|
|
column="73"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="LongLogTag"
|
|
message="The logging tag can be at most 23 characters, was 31 (Exception in CacheCleaner.clean)"
|
|
errorLine1=" Log.w("Exception in CacheCleaner.clean", ex);"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/util/CacheCleaner.java"
|
|
line="50"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="LongLogTag"
|
|
message="The logging tag can be at most 23 characters, was 36 (Exception in CacheCleaner.cleanSpace)"
|
|
errorLine1=" Log.w("Exception in CacheCleaner.cleanSpace", ex);"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/util/CacheCleaner.java"
|
|
line="63"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="LongLogTag"
|
|
message="The logging tag can be at most 23 characters, was 40 (Exception in CacheCleaner.cleanPlaylists)"
|
|
errorLine1=" Log.w("Exception in CacheCleaner.cleanPlaylists", ex);"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/util/CacheCleaner.java"
|
|
line="76"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="AppCompatCustomView"
|
|
message="This custom view should extend `android.support.v7.widget.AppCompatImageView` instead"
|
|
errorLine1="public class AutoRepeatButton extends ImageView"
|
|
errorLine2=" ~~~~~~~~~">
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/view/AutoRepeatButton.java"
|
|
line="9"
|
|
column="39"/>
|
|
</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="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_large.xml"
|
|
line="44"
|
|
column="17"/>
|
|
<location
|
|
file="src/main/res/layout/notification_large.xml"
|
|
line="42"
|
|
column="17"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="Typos"
|
|
message=""Despues" is a common misspelling; did you mean "Después" ?"
|
|
errorLine1=" <string name="main.welcome_text">Te damos la bienvenida a UltraSonic! La aplicación no está configurada actualmente. Despues de que hayas configurado tu servidor personal (disponible desde <b>subsonic.org</b>), por favor haz click en <i>Añadir servidor</i> en <b>Configuración</b> para conectarte con él.</string>"
|
|
errorLine2=" ^">
|
|
<location
|
|
file="src/main/res/values-es/strings.xml"
|
|
line="103"
|
|
column="122"/>
|
|
</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="140"
|
|
column="79"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ImpliedQuantity"
|
|
message="The quantity `'one'` matches more than one specific number in this locale (0, 1), but the message did not include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue explanation for more."
|
|
errorLine1=" <item quantity="one">Un titre</item>"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/values-fr/strings.xml"
|
|
line="400"
|
|
column="9"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ImpliedQuantity"
|
|
message="The quantity `'one'` matches more than one specific number in this locale (0, 1), but the message did not include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue explanation for more."
|
|
errorLine1=" <item quantity="one">1 música</item>"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/values-pt-rBR/strings.xml"
|
|
line="400"
|
|
column="9"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ImpliedQuantity"
|
|
message="The quantity `'one'` matches more than one specific number in this locale (0, 1), but the message did not include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue explanation for more."
|
|
errorLine1=" <item quantity="one">Un titre sélectionnée pour être épinglé.</item>"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/values-fr/strings.xml"
|
|
line="404"
|
|
column="9"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ImpliedQuantity"
|
|
message="The quantity `'one'` matches more than one specific number in this locale (0, 1), but the message did not include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue explanation for more."
|
|
errorLine1=" <item quantity="one">1 música selecionada para ser fixada.</item>"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/values-pt-rBR/strings.xml"
|
|
line="404"
|
|
column="9"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ImpliedQuantity"
|
|
message="The quantity `'one'` matches more than one specific number in this locale (0, 1), but the message did not include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue explanation for more."
|
|
errorLine1=" <item quantity="one">1 song selected to be downloaded.</item>"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/values-fr/strings.xml"
|
|
line="408"
|
|
column="9"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ImpliedQuantity"
|
|
message="The quantity `'one'` matches more than one specific number in this locale (0, 1), but the message did not include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue explanation for more."
|
|
errorLine1=" <item quantity="one">1 música selecionada para ser baixada.</item>"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/values-pt-rBR/strings.xml"
|
|
line="408"
|
|
column="9"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ImpliedQuantity"
|
|
message="The quantity `'one'` matches more than one specific number in this locale (0, 1), but the message did not include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue explanation for more."
|
|
errorLine1=" <item quantity="one">Un titre sélectionné pour être dégoupillé.</item>"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/values-fr/strings.xml"
|
|
line="412"
|
|
column="9"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ImpliedQuantity"
|
|
message="The quantity `'one'` matches more than one specific number in this locale (0, 1), but the message did not include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue explanation for more."
|
|
errorLine1=" <item quantity="one">1 música selecionada para ser desafixada.</item>"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/values-pt-rBR/strings.xml"
|
|
line="412"
|
|
column="9"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ImpliedQuantity"
|
|
message="The quantity `'one'` matches more than one specific number in this locale (0, 1), but the message did not include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue explanation for more."
|
|
errorLine1=" <item quantity="one">Un titre ajouté à la fin de la file d\'attente de lecture.</item>"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/values-fr/strings.xml"
|
|
line="416"
|
|
column="9"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ImpliedQuantity"
|
|
message="The quantity `'one'` matches more than one specific number in this locale (0, 1), but the message did not include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue explanation for more."
|
|
errorLine1=" <item quantity="one">1 música adicionada ao fim da fila.</item>"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/values-pt-rBR/strings.xml"
|
|
line="416"
|
|
column="9"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ImpliedQuantity"
|
|
message="The quantity `'one'` matches more than one specific number in this locale (0, 1), but the message did not include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue explanation for more."
|
|
errorLine1=" <item quantity="one">Un titre inséré après le titre actuel.</item>"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/values-fr/strings.xml"
|
|
line="420"
|
|
column="9"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ImpliedQuantity"
|
|
message="The quantity `'one'` matches more than one specific number in this locale (0, 1), but the message did not include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue explanation for more."
|
|
errorLine1=" <item quantity="one">1 música inserida após a atual.</item>"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/values-pt-rBR/strings.xml"
|
|
line="420"
|
|
column="9"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ImpliedQuantity"
|
|
message="The quantity `'one'` matches more than one specific number in this locale (0, 1), but the message did not include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue explanation for more."
|
|
errorLine1=" <item quantity="one">Un jour restant à la période d\'essai</item>"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/values-fr/strings.xml"
|
|
line="424"
|
|
column="9"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ImpliedQuantity"
|
|
message="The quantity `'one'` matches more than one specific number in this locale (0, 1), but the message did not include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue explanation for more."
|
|
errorLine1=" <item quantity="one">Resta 1 dia para o fim do período de teste</item>"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/values-pt-rBR/strings.xml"
|
|
line="424"
|
|
column="9"/>
|
|
</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="115"
|
|
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="136"
|
|
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="137"
|
|
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="140"
|
|
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="87"
|
|
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="109"
|
|
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="190"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="WakelockTimeout"
|
|
message="Provide a timeout when requesting a wakelock with `PowerManager.Wakelock.acquire(long timeout)`. This will ensure the OS will cleanup any wakelocks that last longer than you intend, and will save your user's battery."
|
|
errorLine1=" wakeLock.acquire();"
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/service/DownloadFile.java"
|
|
line="307"
|
|
column="6"/>
|
|
</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="467"
|
|
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="232"
|
|
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="266"
|
|
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="301"
|
|
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="273"
|
|
column="16"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="StaticFieldLeak"
|
|
message="Do not place Android context classes in static fields; this is a memory leak (and also breaks Instant Run)"
|
|
errorLine1=" private static SeekBar progressBar;"
|
|
errorLine2=" ~~~~~~">
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/activity/DownloadActivity.java"
|
|
line="102"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="StaticFieldLeak"
|
|
message="This AsyncTask class should be static or leaks might occur (org.moire.ultrasonic.service.MediaPlayerLifecycleSupport.SerializeTask)"
|
|
errorLine1=" private class SerializeTask extends AsyncTask<Void, Void, Void>"
|
|
errorLine2=" ~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/service/DownloadServiceLifecycleSupport.java"
|
|
line="380"
|
|
column="16"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="StaticFieldLeak"
|
|
message="This AsyncTask class should be static or leaks might occur (org.moire.ultrasonic.service.MediaPlayerLifecycleSupport.DeserializeTask)"
|
|
errorLine1=" private class DeserializeTask extends AsyncTask<Void, Void, Void>"
|
|
errorLine2=" ~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/service/DownloadServiceLifecycleSupport.java"
|
|
line="401"
|
|
column="16"/>
|
|
</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="1315"
|
|
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="345"
|
|
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="179"
|
|
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 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="372"
|
|
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 (and also breaks Instant Run)"
|
|
errorLine1=" private static SubsonicTabActivity instance;"
|
|
errorLine2=" ~~~~~~">
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/activity/SubsonicTabActivity.java"
|
|
line="68"
|
|
column="10"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="StaticFieldLeak"
|
|
message="Do not place Android context classes in static fields; this is a memory leak (and also breaks Instant Run)"
|
|
errorLine1=" private static Context context;"
|
|
errorLine2=" ~~~~~~">
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/view/UpdateView.java"
|
|
line="25"
|
|
column="10"/>
|
|
</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.list_focused_holo` appears to be unused">
|
|
<location
|
|
file="src/main/res/drawable-hdpi/list_focused_holo.9.png"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="UnusedResources"
|
|
message="The resource `R.drawable.list_longpressed_holo` appears to be unused">
|
|
<location
|
|
file="src/main/res/drawable-hdpi/list_longpressed_holo.9.png"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="UnusedResources"
|
|
message="The resource `R.drawable.list_pressed_holo_dark` appears to be unused">
|
|
<location
|
|
file="src/main/res/drawable-hdpi/list_pressed_holo_dark.9.png"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="UnusedResources"
|
|
message="The resource `R.drawable.list_pressed_holo_light` appears to be unused">
|
|
<location
|
|
file="src/main/res/drawable-hdpi/list_pressed_holo_light.9.png"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="UnusedResources"
|
|
message="The resource `R.drawable.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/list_selector_background_transition_holo_dark.xml"
|
|
line="17"
|
|
column="1"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="UnusedResources"
|
|
message="The resource `R.drawable.list_selector_background_transition_holo_light` appears to be unused"
|
|
errorLine1="<transition xmlns:android="http://schemas.android.com/apk/res/android">"
|
|
errorLine2="^">
|
|
<location
|
|
file="src/main/res/drawable/list_selector_background_transition_holo_light.xml"
|
|
line="17"
|
|
column="1"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="UnusedResources"
|
|
message="The resource `R.drawable.list_selector_disabled_holo_dark` appears to be unused">
|
|
<location
|
|
file="src/main/res/drawable-hdpi/list_selector_disabled_holo_dark.9.png"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="UnusedResources"
|
|
message="The resource `R.drawable.list_selector_disabled_holo_light` appears to be unused">
|
|
<location
|
|
file="src/main/res/drawable-hdpi/list_selector_disabled_holo_light.9.png"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="UnusedResources"
|
|
message="The resource `R.drawable.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/list_selector_holo_dark.xml"
|
|
line="17"
|
|
column="1"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="UnusedResources"
|
|
message="The resource `R.drawable.list_selector_holo_light` appears to be unused"
|
|
errorLine1="<selector xmlns:android="http://schemas.android.com/apk/res/android""
|
|
errorLine2="^">
|
|
<location
|
|
file="src/main/res/drawable/list_selector_holo_light.xml"
|
|
line="17"
|
|
column="1"/>
|
|
</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="114"
|
|
column="13"/>
|
|
<location
|
|
file="src/main/res/values-es/strings.xml"
|
|
line="114"
|
|
column="13"/>
|
|
<location
|
|
file="src/main/res/values-fr/strings.xml"
|
|
line="114"
|
|
column="13"/>
|
|
<location
|
|
file="src/main/res/values-hu/strings.xml"
|
|
line="114"
|
|
column="13"/>
|
|
<location
|
|
file="src/main/res/values-pt/strings.xml"
|
|
line="114"
|
|
column="13"/>
|
|
<location
|
|
file="src/main/res/values-pt-rBR/strings.xml"
|
|
line="114"
|
|
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="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-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_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="117"
|
|
column="13"/>
|
|
<location
|
|
file="src/main/res/values-es/strings.xml"
|
|
line="117"
|
|
column="13"/>
|
|
<location
|
|
file="src/main/res/values-fr/strings.xml"
|
|
line="117"
|
|
column="13"/>
|
|
<location
|
|
file="src/main/res/values-hu/strings.xml"
|
|
line="117"
|
|
column="13"/>
|
|
<location
|
|
file="src/main/res/values-pt/strings.xml"
|
|
line="117"
|
|
column="13"/>
|
|
<location
|
|
file="src/main/res/values-pt-rBR/strings.xml"
|
|
line="117"
|
|
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="4"
|
|
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="8"
|
|
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="12"
|
|
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="16"
|
|
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-es/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-hu/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-pt-rBR/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/strings.xml"
|
|
line="337"
|
|
column="33"/>
|
|
</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"/>
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/service/DownloadServiceImpl.java"
|
|
line="2077"
|
|
column="30"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="IconColors"
|
|
message="Notification icons must be entirely white">
|
|
<location
|
|
file="src/main/res/drawable-ldpi/ic_stat_ultrasonic.png"/>
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/service/DownloadServiceImpl.java"
|
|
line="2077"
|
|
column="30"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="IconColors"
|
|
message="Notification icons must be entirely white">
|
|
<location
|
|
file="src/main/res/drawable-mdpi/ic_stat_ultrasonic.png"/>
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/service/DownloadServiceImpl.java"
|
|
line="2077"
|
|
column="30"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="IconColors"
|
|
message="Notification icons must be entirely white">
|
|
<location
|
|
file="src/main/res/drawable-xhdpi/ic_stat_ultrasonic.png"/>
|
|
<location
|
|
file="src/main/java/org/moire/ultrasonic/service/DownloadServiceImpl.java"
|
|
line="2077"
|
|
column="30"/>
|
|
</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="GoogleAppIndexingWarning"
|
|
message="App is not indexable by Google Search; consider adding at least one Activity with an ACTION-VIEW intent filter. See issue explanation for more details."
|
|
errorLine1=" <application"
|
|
errorLine2=" ^">
|
|
<location
|
|
file="src/main/AndroidManifest.xml"
|
|
line="21"
|
|
column="5"/>
|
|
</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="40"
|
|
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="35"
|
|
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="168"
|
|
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="174"
|
|
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="483"
|
|
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="486"
|
|
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="1379"
|
|
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 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=" <ImageButton"
|
|
errorLine2=" ~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/notification_large.xml"
|
|
line="99"
|
|
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="108"
|
|
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="117"
|
|
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="20"
|
|
column="6"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="ContentDescription"
|
|
message="Missing `contentDescription` attribute on image"
|
|
errorLine1=" <ImageView"
|
|
errorLine2=" ~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/now_playing.xml"
|
|
line="56"
|
|
column="6"/>
|
|
</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/song_list_item.xml"
|
|
line="18"
|
|
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="28"
|
|
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="211"
|
|
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="211"
|
|
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="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="31"
|
|
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="52"
|
|
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="68"
|
|
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="114"
|
|
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 `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="33"
|
|
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="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="3dip""
|
|
errorLine2=" ~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/song_list_item.xml"
|
|
line="25"
|
|
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="3dip""
|
|
errorLine2=" ~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/song_list_item.xml"
|
|
line="35"
|
|
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="3dip""
|
|
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" a:layout_marginTop="6dip""
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/main_buttons.xml"
|
|
line="18"
|
|
column="5"/>
|
|
</issue>
|
|
|
|
<issue
|
|
id="RtlHardcoded"
|
|
message="Consider adding `a:layout_marginStart="10dip"` to better support right-to-left layouts"
|
|
errorLine1=" a:layout_height="wrap_content" a:layout_marginLeft="10dip""
|
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/main_buttons.xml"
|
|
line="22"
|
|
column="36"/>
|
|
</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="31"
|
|
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="52"
|
|
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="68"
|
|
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="114"
|
|
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: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="33"
|
|
column="9"/>
|
|
</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="39"
|
|
column="37"/>
|
|
</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="49"
|
|
column="37"/>
|
|
</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="60"
|
|
column="33"/>
|
|
</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="9"/>
|
|
</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:paddingEnd="3dip"` to better support right-to-left layouts"
|
|
errorLine1=" a:paddingRight="3dip""
|
|
errorLine2=" ~~~~~~~~~~~~~~">
|
|
<location
|
|
file="src/main/res/layout/song_list_item.xml"
|
|
line="25"
|
|
column="9"/>
|
|
</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/song_list_item.xml"
|
|
line="35"
|
|
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="3dip"` to better support right-to-left layouts"
|
|
errorLine1=" a:paddingRight="3dip""
|
|
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>
|