diff --git a/library/build.gradle b/library/build.gradle
index c0fac0ff..c375cbc8 100644
--- a/library/build.gradle
+++ b/library/build.gradle
@@ -15,6 +15,11 @@ android {
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
         }
     }
+
+    lintOptions {
+        baselineFile file("lint-baseline.xml")
+        abortOnError true
+    }
 }
 
 dependencies {
diff --git a/library/lint-baseline.xml b/library/lint-baseline.xml
new file mode 100644
index 00000000..76081cd7
--- /dev/null
+++ b/library/lint-baseline.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="4" by="lint 2.3.3">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): android.widget.AbsListView#setSelectionFromTop"
+        errorLine1="            setSelectionFromTop(movePos, top - padTop);"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/mobeta/android/dslv/DragSortListView.java"
+            line="2936"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="OldTargetApi"
+        message="Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this version. Consult the `android.os.Build.VERSION_CODES` javadoc for details."
+        errorLine1="    &lt;uses-sdk android:targetSdkVersion=&quot;7&quot;"
+        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="6"
+            column="15"/>
+    </issue>
+
+    <issue
+        id="GradleOverrides"
+        message="This `targetSdkVersion` value (`7`) is not used; it is always overridden by the value specified in the Gradle build script (`22`)"
+        errorLine1="    &lt;uses-sdk android:targetSdkVersion=&quot;7&quot;"
+        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="6"
+            column="15"/>
+    </issue>
+
+    <issue
+        id="GradleOverrides"
+        message="This `minSdkVersion` value (`7`) is not used; it is always overridden by the value specified in the Gradle build script (`14`)"
+        errorLine1="      android:minSdkVersion=&quot;7&quot; />"
+        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="7"
+            column="7"/>
+    </issue>
+
+    <issue
+        id="ClickableViewAccessibility"
+        message="`com/mobeta/android/dslv/DragSortController#onTouch` should call `View#performClick` when a click is detected"
+        errorLine1="    public boolean onTouch(View v, MotionEvent ev) {"
+        errorLine2="                   ~~~~~~~">
+        <location
+            file="src/main/java/com/mobeta/android/dslv/DragSortController.java"
+            line="238"
+            column="20"/>
+    </issue>
+
+</issues>
diff --git a/menudrawer/build.gradle b/menudrawer/build.gradle
index 1670670d..cd6f4945 100644
--- a/menudrawer/build.gradle
+++ b/menudrawer/build.gradle
@@ -15,4 +15,9 @@ android {
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
         }
     }
+
+    lintOptions {
+        baselineFile file("lint-baseline.xml")
+        abortOnError true
+    }
 }
diff --git a/menudrawer/lint-baseline.xml b/menudrawer/lint-baseline.xml
new file mode 100644
index 00000000..859ac8dc
--- /dev/null
+++ b/menudrawer/lint-baseline.xml
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="4" by="lint 2.3.3">
+
+    <issue
+        id="InlinedApi"
+        message="Field requires API level 17 (current min is 14): `android.view.View#LAYOUT_DIRECTION_RTL`"
+        errorLine1="        if (mSlideDrawable != null) mSlideDrawable.setIsRtl(layoutDirection == LAYOUT_DIRECTION_RTL);"
+        errorLine2="                                                                               ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/MenuDrawer.java"
+            line="882"
+            column="80"/>
+    </issue>
+
+    <issue
+        id="InlinedApi"
+        message="Field requires API level 17 (current min is 14): `android.view.View#LAYOUT_DIRECTION_RTL`"
+        errorLine1="        mSlideDrawable.setIsRtl(ViewHelper.getLayoutDirection(this) == LAYOUT_DIRECTION_RTL);"
+        errorLine2="                                                                       ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/MenuDrawer.java"
+            line="1325"
+            column="72"/>
+    </issue>
+
+    <issue
+        id="OldTargetApi"
+        message="Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this version. Consult the `android.os.Build.VERSION_CODES` javadoc for details."
+        errorLine1="    &lt;uses-sdk android:minSdkVersion=&quot;7&quot; android:targetSdkVersion=&quot;16&quot; />"
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="7"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="GradleOverrides"
+        message="This `minSdkVersion` value (`7`) is not used; it is always overridden by the value specified in the Gradle build script (`14`)"
+        errorLine1="    &lt;uses-sdk android:minSdkVersion=&quot;7&quot; android:targetSdkVersion=&quot;16&quot; />"
+        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="7"
+            column="15"/>
+    </issue>
+
+    <issue
+        id="GradleOverrides"
+        message="This `targetSdkVersion` value (`16`) is not used; it is always overridden by the value specified in the Gradle build script (`22`)"
+        errorLine1="    &lt;uses-sdk android:minSdkVersion=&quot;7&quot; android:targetSdkVersion=&quot;16&quot; />"
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="7"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="ParcelClassLoader"
+        message="Using the default class loader will not work if you are restoring your own classes. Consider using for example `readBundle(getClass().getClassLoader())` instead."
+        errorLine1="            mState = in.readBundle();"
+        errorLine2="                        ~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/MenuDrawer.java"
+            line="1630"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is never &lt; 14"
+        errorLine1="        if (mUsesCompat &amp;&amp; Build.VERSION.SDK_INT &lt; Build.VERSION_CODES.ICE_CREAM_SANDWICH) {"
+        errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="41"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {"
+        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="43"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is never &lt; 14"
+        errorLine1="        if (mUsesCompat &amp;&amp; Build.VERSION.SDK_INT &lt; Build.VERSION_CODES.ICE_CREAM_SANDWICH) {"
+        errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="51"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {"
+        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="53"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is never &lt; 14"
+        errorLine1="        if (mUsesCompat &amp;&amp; Build.VERSION.SDK_INT &lt; Build.VERSION_CODES.ICE_CREAM_SANDWICH) {"
+        errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="59"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {"
+        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="61"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is never &lt; 14"
+        errorLine1="        if (mUsesCompat &amp;&amp; Build.VERSION.SDK_INT &lt; Build.VERSION_CODES.ICE_CREAM_SANDWICH) {"
+        errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="67"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {"
+        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="69"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is never &lt; 14"
+        errorLine1="        if (mUsesCompat &amp;&amp; Build.VERSION.SDK_INT &lt; Build.VERSION_CODES.ICE_CREAM_SANDWICH) {"
+        errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="77"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {"
+        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="79"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/DraggableDrawer.java"
+            line="572"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/DraggableDrawer.java"
+            line="580"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/DraggableDrawer.java"
+            line="588"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/DraggableDrawer.java"
+            line="596"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="FloatMath"
+        message="Use `java.lang.Math#sqrt` instead of `android.util.FloatMath#sqrt()` since it is faster as of API 8"
+        errorLine1="            float hyp = FloatMath.sqrt(dx * dx + dy * dy);"
+        errorLine2="                        ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/Scroller.java"
+            line="374"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="FloatMath"
+        message="Use `java.lang.Math#sqrt` instead of `android.util.FloatMath#sqrt()` since it is faster as of API 8"
+        errorLine1="        float velocity = FloatMath.sqrt(velocityX * velocityX + velocityY * velocityY);"
+        errorLine2="                         ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/Scroller.java"
+            line="391"
+            column="26"/>
+    </issue>
+
+</issues>
diff --git a/menudrawer/src/main/res/values/strings.xml b/menudrawer/src/main/res/values/strings.xml
index 27aacbb2..5411fe89 100644
--- a/menudrawer/src/main/res/values/strings.xml
+++ b/menudrawer/src/main/res/values/strings.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources>
+<resources xmlns:tools="http://schemas.android.com/tools">
 
-    <string name="md__drawerOpenIndicatorDesc">Close drawer</string>
+    <string name="md__drawerOpenIndicatorDesc" tools:ignore="MissingTranslation">Close drawer</string>
 
-    <string name="md__drawerClosedIndicatorDesc">Open drawer</string>
+    <string name="md__drawerClosedIndicatorDesc" tools:ignore="MissingTranslation">Open drawer</string>
 
 </resources>
diff --git a/pulltorefresh/build.gradle b/pulltorefresh/build.gradle
index 1670670d..cd6f4945 100644
--- a/pulltorefresh/build.gradle
+++ b/pulltorefresh/build.gradle
@@ -15,4 +15,9 @@ android {
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
         }
     }
+
+    lintOptions {
+        baselineFile file("lint-baseline.xml")
+        abortOnError true
+    }
 }
diff --git a/pulltorefresh/lint-baseline.xml b/pulltorefresh/lint-baseline.xml
new file mode 100644
index 00000000..771b65e4
--- /dev/null
+++ b/pulltorefresh/lint-baseline.xml
@@ -0,0 +1,326 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="4" by="lint 2.3.3">
+
+    <issue
+        id="LocaleFolder"
+        message="The locale folder &quot;`he`&quot; should be called &quot;`iw`&quot; instead; see the `java.util.Locale` documentation">
+        <location
+            file="src/main/res/values-he"/>
+    </issue>
+
+    <issue
+        id="OldTargetApi"
+        message="Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this version. Consult the `android.os.Build.VERSION_CODES` javadoc for details."
+        errorLine1="    &lt;uses-sdk android:minSdkVersion=&quot;4&quot; android:targetSdkVersion=&quot;16&quot; />"
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="7"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="GradleOverrides"
+        message="This `minSdkVersion` value (`4`) is not used; it is always overridden by the value specified in the Gradle build script (`14`)"
+        errorLine1="    &lt;uses-sdk android:minSdkVersion=&quot;4&quot; android:targetSdkVersion=&quot;16&quot; />"
+        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="7"
+            column="15"/>
+    </issue>
+
+    <issue
+        id="GradleOverrides"
+        message="This `targetSdkVersion` value (`16`) is not used; it is always overridden by the value specified in the Gradle build script (`22`)"
+        errorLine1="    &lt;uses-sdk android:minSdkVersion=&quot;4&quot; android:targetSdkVersion=&quot;16&quot; />"
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="7"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="                android:singleLine=&quot;true&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/pull_to_refresh_header_vertical.xml"
+            line="45"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="                android:singleLine=&quot;true&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/pull_to_refresh_header_vertical.xml"
+            line="53"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;`pull_to_refresh_from_bottom_pull_label`&quot; is not translated in &quot;es&quot; (Spanish), &quot;fr&quot; (French), &quot;pt&quot; (Portuguese), &quot;pt-BR&quot; (Portuguese: Brazil)"
+        errorLine1="    &lt;string name=&quot;pull_to_refresh_from_bottom_pull_label&quot;>@string/pull_to_refresh_pull_label&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values/pull_refresh_strings.xml"
+            line="9"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;`pull_to_refresh_from_bottom_release_label`&quot; is not translated in &quot;es&quot; (Spanish), &quot;fr&quot; (French), &quot;pt&quot; (Portuguese), &quot;pt-BR&quot; (Portuguese: Brazil)"
+        errorLine1="    &lt;string name=&quot;pull_to_refresh_from_bottom_release_label&quot;>@string/pull_to_refresh_release_label&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values/pull_refresh_strings.xml"
+            line="10"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;`pull_to_refresh_from_bottom_refreshing_label`&quot; is not translated in &quot;es&quot; (Spanish), &quot;fr&quot; (French), &quot;pt&quot; (Portuguese), &quot;pt-BR&quot; (Portuguese: Brazil)"
+        errorLine1="    &lt;string name=&quot;pull_to_refresh_from_bottom_refreshing_label&quot;>@string/pull_to_refresh_refreshing_label&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values/pull_refresh_strings.xml"
+            line="11"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="AddJavascriptInterface"
+        message="`WebView.addJavascriptInterface` should not be called with minSdkVersion &lt; 17 for security reasons: JavaScript can use reflection to manipulate application"
+        errorLine1="  webView.addJavascriptInterface(mJsCallback, JS_INTERFACE_PKG);"
+        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/extras/PullToRefreshWebView2.java"
+            line="90"
+            column="11"/>
+    </issue>
+
+    <issue
+        id="JavascriptInterface"
+        message="None of the methods in the added interface (JsValueCallback) have been annotated with `@android.webkit.JavascriptInterface`; they will not be visible in API 17"
+        errorLine1="  webView.addJavascriptInterface(mJsCallback, JS_INTERFACE_PKG);"
+        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/extras/PullToRefreshWebView2.java"
+            line="90"
+            column="11"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="  return VERSION.SDK_INT >= VERSION_CODES.GINGERBREAD &amp;&amp; mOverScrollEnabled"
+        errorLine2="         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshBase.java"
+            line="211"
+            column="10"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="  if (VERSION.SDK_INT >= VERSION_CODES.GINGERBREAD) {"
+        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshExpandableListView.java"
+            line="54"
+            column="7"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="  if (VERSION.SDK_INT >= VERSION_CODES.GINGERBREAD) {"
+        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshGridView.java"
+            line="54"
+            column="7"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="  if (VERSION.SDK_INT >= VERSION_CODES.GINGERBREAD) {"
+        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshHorizontalScrollView.java"
+            line="53"
+            column="7"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="  if (VERSION.SDK_INT >= VERSION_CODES.GINGERBREAD) {"
+        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshListView.java"
+            line="207"
+            column="7"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="  if (VERSION.SDK_INT >= VERSION_CODES.GINGERBREAD) {"
+        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshScrollView.java"
+            line="52"
+            column="7"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="  if (VERSION.SDK_INT >= VERSION_CODES.GINGERBREAD) {"
+        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshWebView.java"
+            line="98"
+            column="7"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="  if (VERSION.SDK_INT >= VERSION_CODES.HONEYCOMB) {"
+        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/internal/ViewCompat.java"
+            line="44"
+            column="7"/>
+    </issue>
+
+    <issue
+        id="FloatMath"
+        message="Use `java.lang.Math#floor` instead of `android.util.FloatMath#floor()` since it is faster as of API 8"
+        errorLine1="  float exactContentHeight = FloatMath.floor(mRefreshableView.getContentHeight() * mRefreshableView.getScale());"
+        errorLine2="                             ~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshWebView.java"
+            line="115"
+            column="30"/>
+    </issue>
+
+    <issue
+        id="FloatMath"
+        message="Use `java.lang.Math#floor` instead of `android.util.FloatMath#floor()` since it is faster as of API 8"
+        errorLine1="   return (int) Math.max(0, FloatMath.floor(mRefreshableView.getContentHeight() * mRefreshableView.getScale())"
+        errorLine2="                            ~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshWebView.java"
+            line="161"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="IconMissingDensityFolder"
+        message="Missing density variation folders in `src/main/res`: drawable-xxhdpi">
+        <location
+            file="src/main/res"/>
+    </issue>
+
+    <issue
+        id="ViewConstructor"
+        message="Custom view `RotateLoadingLayout` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
+        errorLine1="public class RotateLoadingLayout extends LoadingLayout {"
+        errorLine2="             ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/internal/RotateLoadingLayout.java"
+            line="30"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="        &lt;ImageView"
+        errorLine2="        ^">
+        <location
+            file="src/main/res/layout/pull_to_refresh_header_horizontal.xml"
+            line="13"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageView"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/pull_to_refresh_header_vertical.xml"
+            line="18"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`Gravity.START`&quot; instead of &quot;`Gravity.LEFT`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="    lp.gravity = scrollDirection == Orientation.VERTICAL ? Gravity.TOP : Gravity.LEFT;"
+        errorLine2="                                                                                 ~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/internal/LoadingLayout.java"
+            line="92"
+            column="82"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`Gravity.END`&quot; instead of &quot;`Gravity.RIGHT`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="    lp.gravity = scrollDirection == Orientation.VERTICAL ? Gravity.BOTTOM : Gravity.RIGHT;"
+        errorLine2="                                                                                    ~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/internal/LoadingLayout.java"
+            line="102"
+            column="85"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`Gravity.END`&quot; instead of &quot;`Gravity.RIGHT`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="   params.gravity = Gravity.TOP | Gravity.RIGHT;"
+        errorLine2="                                          ~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshAdapterViewBase.java"
+            line="344"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`Gravity.END`&quot; instead of &quot;`Gravity.RIGHT`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="   params.gravity = Gravity.BOTTOM | Gravity.RIGHT;"
+        errorLine2="                                             ~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshAdapterViewBase.java"
+            line="359"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            android:layout_gravity=&quot;left|center_vertical&quot; >"
+        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/pull_to_refresh_header_vertical.xml"
+            line="16"
+            column="37"/>
+    </issue>
+
+</issues>
diff --git a/pulltorefresh/src/main/res/values/pull_refresh_strings.xml b/pulltorefresh/src/main/res/values/pull_refresh_strings.xml
index fe48f3bc..20cd2fa4 100755
--- a/pulltorefresh/src/main/res/values/pull_refresh_strings.xml
+++ b/pulltorefresh/src/main/res/values/pull_refresh_strings.xml
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources>
+<resources xmlns:tools="http://schemas.android.com/tools">
 
-    <string name="pull_to_refresh_pull_label">Pull to refresh…</string>
-    <string name="pull_to_refresh_release_label">Release to refresh…</string>
-    <string name="pull_to_refresh_refreshing_label">Loading…</string>
+    <string name="pull_to_refresh_pull_label" tools:ignore="MissingTranslation">Pull to refresh…</string>
+    <string name="pull_to_refresh_release_label" tools:ignore="MissingTranslation">Release to refresh…</string>
+    <string name="pull_to_refresh_refreshing_label" tools:ignore="MissingTranslation">Loading…</string>
 
     <!-- Just use standard Pull Down String when pulling up. These can be set for languages which require it -->
-    <string name="pull_to_refresh_from_bottom_pull_label">@string/pull_to_refresh_pull_label</string>
-    <string name="pull_to_refresh_from_bottom_release_label">@string/pull_to_refresh_release_label</string>
-    <string name="pull_to_refresh_from_bottom_refreshing_label">@string/pull_to_refresh_refreshing_label</string>
+    <string name="pull_to_refresh_from_bottom_pull_label" tools:ignore="MissingTranslation">@string/pull_to_refresh_pull_label</string>
+    <string name="pull_to_refresh_from_bottom_release_label" tools:ignore="MissingTranslation">@string/pull_to_refresh_release_label</string>
+    <string name="pull_to_refresh_from_bottom_refreshing_label" tools:ignore="MissingTranslation">@string/pull_to_refresh_refreshing_label</string>
 
 </resources>
\ No newline at end of file
diff --git a/ultrasonic/build.gradle b/ultrasonic/build.gradle
index e9bcd67c..4870827b 100644
--- a/ultrasonic/build.gradle
+++ b/ultrasonic/build.gradle
@@ -27,6 +27,11 @@ android {
     packagingOptions {
         exclude 'META-INF/LICENSE'
     }
+
+    lintOptions {
+        baselineFile file("lint-baseline.xml")
+        abortOnError true
+    }
 }
 
 dependencies {
diff --git a/ultrasonic/lint-baseline.xml b/ultrasonic/lint-baseline.xml
new file mode 100644
index 00000000..bdd2edb8
--- /dev/null
+++ b/ultrasonic/lint-baseline.xml
@@ -0,0 +1,5142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="4" by="lint 2.3.3">
+
+    <issue
+        id="ScrollViewSize"
+        message="This LinearLayout should use `android:layout_height=&quot;wrap_content&quot;`"
+        errorLine1="                a:layout_height=&quot;fill_parent&quot;>"
+        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="262"
+            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="153"
+            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="200"
+            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="309"
+            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="328"
+            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="427"
+            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="1634"
+            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="1642"
+            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="1650"
+            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 &amp; 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="414"
+            column="51"/>
+        <location
+            file="src/main/java/org/moire/ultrasonic/activity/SubsonicTabActivity.java"
+            line="360"
+            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(&quot;MediaPlayer error: %d (%d)&quot;, 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(&quot;http://127.0.0.1:%d/%s&quot;, 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(&quot;%s%d dB&quot;, level > 0 ? &quot;+&quot; : &quot;&quot;, 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 ? &quot;&quot; : name.substring(index + 1).toLowerCase();"
+        errorLine2="                                                      ~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/util/FileUtil.java"
+            line="533"
+            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(&quot;ImageLoader_%d&quot;, i));"
+        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/util/ImageLoader.java"
+            line="105"
+            column="37"/>
+    </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(&quot;%s:%d&quot;, coverArtId, size);"
+        errorLine2="         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/util/ImageLoader.java"
+            line="208"
+            column="10"/>
+    </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="105"
+            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="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="     int index = lhs.indexOf(String.format(&quot;%s &quot;, article.toLowerCase()));"
+        errorLine2="                                                          ~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/service/OfflineMusicService.java"
+            line="123"
+            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(&quot;%s &quot;, article.toLowerCase()));"
+        errorLine2="                                                      ~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/service/OfflineMusicService.java"
+            line="130"
+            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="506"
+            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="508"
+            column="43"/>
+    </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(&quot;indexes-%d.ser&quot;, Math.abs(s.hashCode()));"
+        errorLine2="         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/service/RESTMusicService.java"
+            line="288"
+            column="10"/>
+    </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(&quot;indexes-%d.ser&quot;, Math.abs(s.hashCode()));"
+        errorLine2="         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/service/RESTMusicService.java"
+            line="335"
+            column="10"/>
+    </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(&quot;musicFolders-%d.ser&quot;, Math.abs(s.hashCode()));"
+        errorLine2="         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/service/RESTMusicService.java"
+            line="351"
+            column="10"/>
+    </issue>
+
+    <issue
+        id="DefaultLocale"
+        message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead"
+        errorLine1="   headers.add(new BasicHeader(&quot;Range&quot;, String.format(&quot;bytes=%d-&quot;, offset)));"
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/service/RESTMusicService.java"
+            line="941"
+            column="41"/>
+    </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(&quot;%02d.&quot;, trackNumber));"
+        errorLine2="                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/view/SongView.java"
+            line="193"
+            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() &amp;&amp; timeSpanAmount > 0 ? String.format(&quot;%d:%s&quot;, timeSpanAmount, timeSpanType) : &quot;&quot;);"
+        errorLine2="                                                                                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/activity/SubsonicTabActivity.java"
+            line="507"
+            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(&quot;%d:%s&quot;, 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(&quot;%02d:%02d:%02d&quot;, hours, minutes, seconds);"
+        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/util/Util.java"
+            line="1477"
+            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(&quot;%d:%02d:%02d&quot;, hours, minutes, seconds);"
+        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/util/Util.java"
+            line="1481"
+            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(&quot;%02d:%02d&quot;, minutes, seconds);"
+        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/util/Util.java"
+            line="1485"
+            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(&quot;%d:%02d&quot;, minutes, seconds) : String.format(&quot;0:%02d&quot;, seconds);"
+        errorLine2="                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/util/Util.java"
+            line="1488"
+            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(&quot;%d:%02d&quot;, minutes, seconds) : String.format(&quot;0:%02d&quot;, seconds);"
+        errorLine2="                                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/util/Util.java"
+            line="1488"
+            column="74"/>
+    </issue>
+
+    <issue
+        id="InlinedApi"
+        message="Field requires API level 17 (current min is 14): `android.view.View#LAYOUT_DIRECTION_RTL`"
+        errorLine1="        if (mSlideDrawable != null) mSlideDrawable.setIsRtl(layoutDirection == LAYOUT_DIRECTION_RTL);"
+        errorLine2="                                                                               ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/MenuDrawer.java"
+            line="882"
+            column="80"/>
+    </issue>
+
+    <issue
+        id="InlinedApi"
+        message="Field requires API level 17 (current min is 14): `android.view.View#LAYOUT_DIRECTION_RTL`"
+        errorLine1="        mSlideDrawable.setIsRtl(ViewHelper.getLayoutDirection(this) == LAYOUT_DIRECTION_RTL);"
+        errorLine2="                                                                       ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/MenuDrawer.java"
+            line="1325"
+            column="72"/>
+    </issue>
+
+    <issue
+        id="LocaleFolder"
+        message="The locale folder &quot;`he`&quot; should be called &quot;`iw`&quot; instead; see the `java.util.Locale` documentation">
+        <location
+            file="src/main/res/values-he"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 21 (current min is 14): android.widget.AbsListView#setSelectionFromTop"
+        errorLine1="            setSelectionFromTop(movePos, top - padTop);"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/mobeta/android/dslv/DragSortListView.java"
+            line="2936"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="OldTargetApi"
+        message="Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this version. Consult the `android.os.Build.VERSION_CODES` javadoc for details."
+        errorLine1="    &lt;uses-sdk android:targetSdkVersion=&quot;7&quot;"
+        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="6"
+            column="15"/>
+    </issue>
+
+    <issue
+        id="OldTargetApi"
+        message="Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this version. Consult the `android.os.Build.VERSION_CODES` javadoc for details."
+        errorLine1="    &lt;uses-sdk android:minSdkVersion=&quot;7&quot; android:targetSdkVersion=&quot;16&quot; />"
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="7"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="OldTargetApi"
+        message="Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this version. Consult the `android.os.Build.VERSION_CODES` javadoc for details."
+        errorLine1="    &lt;uses-sdk android:minSdkVersion=&quot;4&quot; android:targetSdkVersion=&quot;16&quot; />"
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="7"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="SimpleDateFormat"
+        message="To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates."
+        errorLine1="        DateFormat parseDateFormat = new SimpleDateFormat(&quot;yyyy-MM-dd&apos;T&apos;HH:mm:ss.SSS&quot;);"
+        errorLine2="                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/service/parser/PodcastEpisodeParser.java"
+            line="67"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="UnusedAttribute"
+        message="Attribute `widgetCategory` is only used in API level 17 and higher (current min is 14)"
+        errorLine1="                    a:widgetCategory=&quot;home_screen|keyguard&quot;"
+        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=&quot;home_screen|keyguard&quot;"
+        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=&quot;home_screen|keyguard&quot;"
+        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=&quot;home_screen|keyguard&quot;"
+        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 &lt; 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="892"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="IncludeLayoutParam"
+        message="Layout parameter `layout_gravity` ignored unless both `layout_width` and `layout_height` are also specified on `&lt;include>` tag"
+        errorLine1="        a:layout_gravity=&quot;center_vertical&quot; />"
+        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&apos;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&apos;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&apos;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="98"
+            column="81"/>
+    </issue>
+
+    <issue
+        id="InflateParams"
+        message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout&apos;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&apos;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="303"
+            column="75"/>
+    </issue>
+
+    <issue
+        id="InflateParams"
+        message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout&apos;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="287"
+            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(&quot;Exception in CacheCleaner.clean&quot;, ex);"
+        errorLine2="   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/util/CacheCleaner.java"
+            line="50"
+            column="4"/>
+    </issue>
+
+    <issue
+        id="LongLogTag"
+        message="The logging tag can be at most 23 characters, was 36 (Exception in CacheCleaner.cleanSpace)"
+        errorLine1="   Log.w(&quot;Exception in CacheCleaner.cleanSpace&quot;, ex);"
+        errorLine2="   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/util/CacheCleaner.java"
+            line="63"
+            column="4"/>
+    </issue>
+
+    <issue
+        id="LongLogTag"
+        message="The logging tag can be at most 23 characters, was 40 (Exception in CacheCleaner.cleanPlaylists)"
+        errorLine1="   Log.w(&quot;Exception in CacheCleaner.cleanPlaylists&quot;, ex);"
+        errorLine2="   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/util/CacheCleaner.java"
+            line="76"
+            column="4"/>
+    </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="GradleOverrides"
+        message="This `targetSdkVersion` value (`7`) is not used; it is always overridden by the value specified in the Gradle build script (`22`)"
+        errorLine1="    &lt;uses-sdk android:targetSdkVersion=&quot;7&quot;"
+        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="6"
+            column="15"/>
+    </issue>
+
+    <issue
+        id="GradleOverrides"
+        message="This `minSdkVersion` value (`4`) is not used; it is always overridden by the value specified in the Gradle build script (`14`)"
+        errorLine1="    &lt;uses-sdk android:minSdkVersion=&quot;4&quot; android:targetSdkVersion=&quot;16&quot; />"
+        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="7"
+            column="15"/>
+    </issue>
+
+    <issue
+        id="GradleOverrides"
+        message="This `minSdkVersion` value (`7`) is not used; it is always overridden by the value specified in the Gradle build script (`14`)"
+        errorLine1="      android:minSdkVersion=&quot;7&quot; />"
+        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="7"
+            column="7"/>
+    </issue>
+
+    <issue
+        id="GradleOverrides"
+        message="This `minSdkVersion` value (`7`) is not used; it is always overridden by the value specified in the Gradle build script (`14`)"
+        errorLine1="    &lt;uses-sdk android:minSdkVersion=&quot;7&quot; android:targetSdkVersion=&quot;16&quot; />"
+        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="7"
+            column="15"/>
+    </issue>
+
+    <issue
+        id="GradleOverrides"
+        message="This `targetSdkVersion` value (`16`) is not used; it is always overridden by the value specified in the Gradle build script (`22`)"
+        errorLine1="    &lt;uses-sdk android:minSdkVersion=&quot;7&quot; android:targetSdkVersion=&quot;16&quot; />"
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="7"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="GradleOverrides"
+        message="This `targetSdkVersion` value (`16`) is not used; it is always overridden by the value specified in the Gradle build script (`22`)"
+        errorLine1="    &lt;uses-sdk android:minSdkVersion=&quot;4&quot; android:targetSdkVersion=&quot;16&quot; />"
+        errorLine2="                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="7"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="ParcelClassLoader"
+        message="Using the default class loader will not work if you are restoring your own classes. Consider using for example `readBundle(getClass().getClassLoader())` instead."
+        errorLine1="            mState = in.readBundle();"
+        errorLine2="                        ~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/MenuDrawer.java"
+            line="1630"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="                a:singleLine=&quot;true&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/album_list_item.xml"
+            line="30"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="                a:singleLine=&quot;true&quot;/>"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/album_list_item.xml"
+            line="38"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="                a:singleLine=&quot;true&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x1.xml"
+            line="44"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="                a:singleLine=&quot;true&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x1.xml"
+            line="62"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="                a:singleLine=&quot;true&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x2.xml"
+            line="46"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="                a:singleLine=&quot;true&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x2.xml"
+            line="63"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="                a:singleLine=&quot;true&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x2.xml"
+            line="80"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="                a:singleLine=&quot;true&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x3.xml"
+            line="47"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="                a:singleLine=&quot;true&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x3.xml"
+            line="65"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="                a:singleLine=&quot;true&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x4.xml"
+            line="48"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="                a:singleLine=&quot;true&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x4.xml"
+            line="66"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="            a:singleLine=&quot;true&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/chat_item.xml"
+            line="26"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="                a:singleLine=&quot;true&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/chat_item.xml"
+            line="47"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: False is the default, so just remove the attribute"
+        errorLine1="                a:singleLine=&quot;false&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/chat_item.xml"
+            line="60"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="            a:singleLine=&quot;true&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/chat_item_reverse.xml"
+            line="24"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="                a:singleLine=&quot;true&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/chat_item_reverse.xml"
+            line="42"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: False is the default, so just remove the attribute"
+        errorLine1="                a:singleLine=&quot;false&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/chat_item_reverse.xml"
+            line="55"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="        a:singleLine=&quot;true&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/download_button_bar_flipper.xml"
+            line="18"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="        a:singleLine=&quot;true&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/download_button_bar_flipper.xml"
+            line="74"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="        a:singleLine=&quot;true&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/download_button_bar_flipper.xml"
+            line="84"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="            android:singleLine=&quot;true&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/now_playing.xml"
+            line="41"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="            android:singleLine=&quot;true&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/now_playing.xml"
+            line="52"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="                android:singleLine=&quot;true&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/pull_to_refresh_header_vertical.xml"
+            line="45"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`android:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="                android:singleLine=&quot;true&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/pull_to_refresh_header_vertical.xml"
+            line="53"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="            a:singleLine=&quot;true&quot;/>
+"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/save_playlist.xml"
+            line="14"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="        a:singleLine=&quot;true&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/select_album_header.xml"
+            line="25"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="        a:singleLine=&quot;true&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/select_album_header.xml"
+            line="36"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="        a:singleLine=&quot;true&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/select_album_header.xml"
+            line="47"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="        a:singleLine=&quot;true&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/select_album_header.xml"
+            line="58"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="        a:singleLine=&quot;true&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/select_album_header.xml"
+            line="69"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="        a:singleLine=&quot;true&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/select_album_header.xml"
+            line="80"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: False is the default, so just remove the attribute"
+        errorLine1="            a:singleLine=&quot;false&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/share_details.xml"
+            line="27"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="            a:singleLine=&quot;true&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/share_list_item.xml"
+            line="42"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="            a:singleLine=&quot;true&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/song_details.xml"
+            line="32"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="            a:singleLine=&quot;true&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/song_details.xml"
+            line="58"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="            a:singleLine=&quot;true&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/song_details.xml"
+            line="68"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="            a:singleLine=&quot;true&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/video_details.xml"
+            line="24"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="Deprecated"
+        message="`a:singleLine` is deprecated: Use `maxLines=&quot;1&quot;` instead"
+        errorLine1="            a:singleLine=&quot;true&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/video_details.xml"
+            line="34"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;`pull_to_refresh_pull_label`&quot; is not translated in &quot;hu&quot; (Hungarian)"
+        errorLine1="    &lt;string name=&quot;pull_to_refresh_pull_label&quot;>Pull to refresh…&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="/home/egorr/data/work/ultrasonic/pulltorefresh/src/main/res/values/pull_refresh_strings.xml"
+            line="4"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;`pull_to_refresh_release_label`&quot; is not translated in &quot;hu&quot; (Hungarian)"
+        errorLine1="    &lt;string name=&quot;pull_to_refresh_release_label&quot;>Release to refresh…&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="/home/egorr/data/work/ultrasonic/pulltorefresh/src/main/res/values/pull_refresh_strings.xml"
+            line="5"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;`pull_to_refresh_refreshing_label`&quot; is not translated in &quot;hu&quot; (Hungarian)"
+        errorLine1="    &lt;string name=&quot;pull_to_refresh_refreshing_label&quot;>Loading…&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="/home/egorr/data/work/ultrasonic/pulltorefresh/src/main/res/values/pull_refresh_strings.xml"
+            line="6"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;`pull_to_refresh_from_bottom_pull_label`&quot; is not translated in &quot;es&quot; (Spanish), &quot;fr&quot; (French), &quot;hu&quot; (Hungarian), &quot;pt&quot; (Portuguese), &quot;pt-BR&quot; (Portuguese: Brazil)"
+        errorLine1="    &lt;string name=&quot;pull_to_refresh_from_bottom_pull_label&quot;>@string/pull_to_refresh_pull_label&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="/home/egorr/data/work/ultrasonic/pulltorefresh/src/main/res/values/pull_refresh_strings.xml"
+            line="9"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;`pull_to_refresh_from_bottom_release_label`&quot; is not translated in &quot;es&quot; (Spanish), &quot;fr&quot; (French), &quot;hu&quot; (Hungarian), &quot;pt&quot; (Portuguese), &quot;pt-BR&quot; (Portuguese: Brazil)"
+        errorLine1="    &lt;string name=&quot;pull_to_refresh_from_bottom_release_label&quot;>@string/pull_to_refresh_release_label&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="/home/egorr/data/work/ultrasonic/pulltorefresh/src/main/res/values/pull_refresh_strings.xml"
+            line="10"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;`pull_to_refresh_from_bottom_refreshing_label`&quot; is not translated in &quot;es&quot; (Spanish), &quot;fr&quot; (French), &quot;hu&quot; (Hungarian), &quot;pt&quot; (Portuguese), &quot;pt-BR&quot; (Portuguese: Brazil)"
+        errorLine1="    &lt;string name=&quot;pull_to_refresh_from_bottom_refreshing_label&quot;>@string/pull_to_refresh_refreshing_label&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="/home/egorr/data/work/ultrasonic/pulltorefresh/src/main/res/values/pull_refresh_strings.xml"
+            line="11"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;`md__drawerOpenIndicatorDesc`&quot; is not translated in &quot;es&quot; (Spanish), &quot;fr&quot; (French), &quot;hu&quot; (Hungarian), &quot;pt&quot; (Portuguese), &quot;pt-BR&quot; (Portuguese: Brazil)"
+        errorLine1="    &lt;string name=&quot;md__drawerOpenIndicatorDesc&quot;>Close drawer&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="/home/egorr/data/work/ultrasonic/menudrawer/src/main/res/values/strings.xml"
+            line="4"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;`md__drawerClosedIndicatorDesc`&quot; is not translated in &quot;es&quot; (Spanish), &quot;fr&quot; (French), &quot;hu&quot; (Hungarian), &quot;pt&quot; (Portuguese), &quot;pt-BR&quot; (Portuguese: Brazil)"
+        errorLine1="    &lt;string name=&quot;md__drawerClosedIndicatorDesc&quot;>Open drawer&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="/home/egorr/data/work/ultrasonic/menudrawer/src/main/res/values/strings.xml"
+            line="6"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="Typos"
+        message="&quot;Despues&quot; is a common misspelling; did you mean &quot;Después&quot; ?"
+        errorLine1="    &lt;string name=&quot;main.welcome_text&quot;>Te damos la bienvenida a UltraSonic! La aplicación no está configurada actualmente. Despues de que hayas configurado tu servidor personal (disponible desde &lt;b>subsonic.org&lt;/b>), por favor haz click en &lt;i>Añadir servidor&lt;/i> en &lt;b>Configuración&lt;/b> para conectarte con él.&lt;/string>"
+        errorLine2="                                                                                                                         ^">
+        <location
+            file="src/main/res/values-es/strings.xml"
+            line="98"
+            column="122"/>
+    </issue>
+
+    <issue
+        id="Typos"
+        message="&quot;dia&quot; is a common misspelling; did you mean &quot;día&quot; ?"
+        errorLine1="    &lt;string name=&quot;select_album.not_licensed&quot;>Servidor sin licencia. Quedan %d dia(s) de prueba.&lt;/string>"
+        errorLine2="                                                                              ^">
+        <location
+            file="src/main/res/values-es/strings.xml"
+            line="139"
+            column="79"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>Un titre&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-fr/strings.xml"
+            line="395"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>1 música&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-pt-rBR/strings.xml"
+            line="398"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>1 música&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-pt/strings.xml"
+            line="398"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>Un titre sélectionnée pour être épinglé.&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-fr/strings.xml"
+            line="399"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>1 música selecionada para ser fixada.&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-pt-rBR/strings.xml"
+            line="402"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>1 música selecionada para ser fixada.&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-pt/strings.xml"
+            line="402"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>1 song selected to be downloaded.&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-fr/strings.xml"
+            line="403"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>1 música selecionada para ser baixada.&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-pt-rBR/strings.xml"
+            line="406"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>1 música selecionada para descarregar.&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-pt/strings.xml"
+            line="406"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>Un titre sélectionné pour être dégoupillé.&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-fr/strings.xml"
+            line="407"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>1 música selecionada para ser desafixada.&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-pt-rBR/strings.xml"
+            line="410"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>1 música selecionada para ser desafixada.&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-pt/strings.xml"
+            line="410"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>Un titre ajouté à la fin de la file d\&apos;attente de lecture.&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-fr/strings.xml"
+            line="411"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>1 música adicionada ao fim da fila.&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-pt-rBR/strings.xml"
+            line="414"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>1 música adicionada ao fim da fila.&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-pt/strings.xml"
+            line="414"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>Un titre inséré après le titre actuel.&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-fr/strings.xml"
+            line="415"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>1 música inserida após a atual.&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-pt-rBR/strings.xml"
+            line="418"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>1 música inserida após a atual.&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-pt/strings.xml"
+            line="418"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>Un jour restant à la période d\&apos;essai&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-fr/strings.xml"
+            line="419"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>Resta 1 dia para o fim do período de teste&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-pt-rBR/strings.xml"
+            line="422"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ImpliedQuantity"
+        message="The quantity `&apos;one&apos;` 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="        &lt;item quantity=&quot;one&quot;>Resta 1 dia para o fim do período de teste&lt;/item>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values-pt/strings.xml"
+            line="422"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="PluralsCandidate"
+        message="Formatting %d followed by words (&quot;Artists&quot;): This should probably be a plural rather than a string"
+        errorLine1="    &lt;string name=&quot;parser.artist_count&quot;>Got %d Artists.&lt;/string>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values/strings.xml"
+            line="113"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="PluralsCandidate"
+        message="Formatting %d followed by words (&quot;tracks&quot;): This should probably be a plural rather than a string"
+        errorLine1="    &lt;string name=&quot;select_album.n_selected&quot;>%d tracks selected.&lt;/string>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values/strings.xml"
+            line="138"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="PluralsCandidate"
+        message="Formatting %d followed by words (&quot;tracks&quot;): This should probably be a plural rather than a string"
+        errorLine1="    &lt;string name=&quot;select_album.n_unselected&quot;>%d tracks unselected.&lt;/string>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values/strings.xml"
+            line="139"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="PluralsCandidate"
+        message="Formatting %d followed by words (&quot;trial&quot;): This should probably be a plural rather than a string"
+        errorLine1="    &lt;string name=&quot;select_album.not_licensed&quot;>Server not licensed. %d trial days left.&lt;/string>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values/strings.xml"
+            line="142"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="UnusedQuantity"
+        message="For language &quot;es&quot; (Spanish) the following quantities are not relevant: `zero`"
+        errorLine1="    &lt;plurals name=&quot;select_album_n_songs&quot;>"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/values-es/strings.xml"
+            line="393"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="UnusedQuantity"
+        message="For language &quot;fr&quot; (French) the following quantities are not relevant: `zero`"
+        errorLine1="    &lt;plurals name=&quot;select_album_n_songs&quot;>"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/values-fr/strings.xml"
+            line="393"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="UnusedQuantity"
+        message="For language &quot;hu&quot; (Hungarian) the following quantities are not relevant: `zero`"
+        errorLine1="    &lt;plurals name=&quot;select_album_n_songs&quot;>"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/values-hu/strings.xml"
+            line="393"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="UnusedQuantity"
+        message="For language &quot;pt&quot; (Portuguese) the following quantities are not relevant: `zero`"
+        errorLine1="    &lt;plurals name=&quot;select_album_n_songs&quot;>"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/values-pt-rBR/strings.xml"
+            line="396"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="UnusedQuantity"
+        message="For language &quot;pt&quot; (Portuguese) the following quantities are not relevant: `zero`"
+        errorLine1="    &lt;plurals name=&quot;select_album_n_songs&quot;>"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/values-pt/strings.xml"
+            line="396"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="AddJavascriptInterface"
+        message="`WebView.addJavascriptInterface` should not be called with minSdkVersion &lt; 17 for security reasons: JavaScript can use reflection to manipulate application"
+        errorLine1="  webView.addJavascriptInterface(mJsCallback, JS_INTERFACE_PKG);"
+        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/extras/PullToRefreshWebView2.java"
+            line="90"
+            column="11"/>
+    </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="86"
+            column="44"/>
+    </issue>
+
+    <issue
+        id="JavascriptInterface"
+        message="None of the methods in the added interface (JsValueCallback) have been annotated with `@android.webkit.JavascriptInterface`; they will not be visible in API 17"
+        errorLine1="  webView.addJavascriptInterface(mJsCallback, JS_INTERFACE_PKG);"
+        errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/extras/PullToRefreshWebView2.java"
+            line="90"
+            column="11"/>
+    </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="        &lt;provider"
+        errorLine2="        ^">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="190"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ObsoleteLayoutParam"
+        message="Invalid layout param in a `LinearLayout`: `layout_above`"
+        errorLine1="        android:layout_above=&quot;@+id/bottom&quot;>"
+        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=&quot;@+id/top&quot;>"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/time_span_dialog.xml"
+            line="28"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is never &lt; 14"
+        errorLine1="        if (mUsesCompat &amp;&amp; Build.VERSION.SDK_INT &lt; Build.VERSION_CODES.ICE_CREAM_SANDWICH) {"
+        errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="41"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {"
+        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="43"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is never &lt; 14"
+        errorLine1="        if (mUsesCompat &amp;&amp; Build.VERSION.SDK_INT &lt; Build.VERSION_CODES.ICE_CREAM_SANDWICH) {"
+        errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="51"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {"
+        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="53"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is never &lt; 14"
+        errorLine1="        if (mUsesCompat &amp;&amp; Build.VERSION.SDK_INT &lt; Build.VERSION_CODES.ICE_CREAM_SANDWICH) {"
+        errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="59"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {"
+        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="61"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is never &lt; 14"
+        errorLine1="        if (mUsesCompat &amp;&amp; Build.VERSION.SDK_INT &lt; Build.VERSION_CODES.ICE_CREAM_SANDWICH) {"
+        errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="67"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {"
+        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="69"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is never &lt; 14"
+        errorLine1="        if (mUsesCompat &amp;&amp; Build.VERSION.SDK_INT &lt; Build.VERSION_CODES.ICE_CREAM_SANDWICH) {"
+        errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="77"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {"
+        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/compat/ActionBarHelper.java"
+            line="79"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/DraggableDrawer.java"
+            line="572"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/DraggableDrawer.java"
+            line="580"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/DraggableDrawer.java"
+            line="588"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/DraggableDrawer.java"
+            line="596"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="  return VERSION.SDK_INT >= VERSION_CODES.GINGERBREAD &amp;&amp; mOverScrollEnabled"
+        errorLine2="         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshBase.java"
+            line="211"
+            column="10"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="  if (VERSION.SDK_INT >= VERSION_CODES.GINGERBREAD) {"
+        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshExpandableListView.java"
+            line="54"
+            column="7"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="  if (VERSION.SDK_INT >= VERSION_CODES.GINGERBREAD) {"
+        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshGridView.java"
+            line="54"
+            column="7"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="  if (VERSION.SDK_INT >= VERSION_CODES.GINGERBREAD) {"
+        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshHorizontalScrollView.java"
+            line="53"
+            column="7"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="  if (VERSION.SDK_INT >= VERSION_CODES.GINGERBREAD) {"
+        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshListView.java"
+            line="207"
+            column="7"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="  if (VERSION.SDK_INT >= VERSION_CODES.GINGERBREAD) {"
+        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshScrollView.java"
+            line="52"
+            column="7"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="  if (VERSION.SDK_INT >= VERSION_CODES.GINGERBREAD) {"
+        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshWebView.java"
+            line="98"
+            column="7"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 14"
+        errorLine1="  if (VERSION.SDK_INT >= VERSION_CODES.HONEYCOMB) {"
+        errorLine2="      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/internal/ViewCompat.java"
+            line="44"
+            column="7"/>
+    </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="2"/>
+    </issue>
+
+    <issue
+        id="StaticFieldLeak"
+        message="Do not place Android context classes in static fields (static reference to `ImageLoader` which has field `context` pointing to `Context`); this is a memory leak (and also breaks Instant Run)"
+        errorLine1=" protected static ImageLoader IMAGE_LOADER;"
+        errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/activity/SubsonicTabActivity.java"
+            line="93"
+            column="2"/>
+    </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="95"
+            column="2"/>
+    </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="2"/>
+    </issue>
+
+    <issue
+        id="FloatMath"
+        message="Use `java.lang.Math#floor` instead of `android.util.FloatMath#floor()` since it is faster as of API 8"
+        errorLine1="  float exactContentHeight = FloatMath.floor(mRefreshableView.getContentHeight() * mRefreshableView.getScale());"
+        errorLine2="                             ~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshWebView.java"
+            line="115"
+            column="30"/>
+    </issue>
+
+    <issue
+        id="FloatMath"
+        message="Use `java.lang.Math#floor` instead of `android.util.FloatMath#floor()` since it is faster as of API 8"
+        errorLine1="   return (int) Math.max(0, FloatMath.floor(mRefreshableView.getContentHeight() * mRefreshableView.getScale())"
+        errorLine2="                            ~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshWebView.java"
+            line="161"
+            column="29"/>
+    </issue>
+
+    <issue
+        id="FloatMath"
+        message="Use `java.lang.Math#sqrt` instead of `android.util.FloatMath#sqrt()` since it is faster as of API 8"
+        errorLine1="            float hyp = FloatMath.sqrt(dx * dx + dy * dy);"
+        errorLine2="                        ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/Scroller.java"
+            line="374"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="FloatMath"
+        message="Use `java.lang.Math#sqrt` instead of `android.util.FloatMath#sqrt()` since it is faster as of API 8"
+        errorLine1="        float velocity = FloatMath.sqrt(velocityX * velocityX + velocityY * velocityY);"
+        errorLine2="                         ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/net/simonvt/menudrawer/Scroller.java"
+            line="391"
+            column="26"/>
+    </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=&quot;@drawable/appwidget_dark_bg_trans&quot;"
+        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=&quot;@drawable/appwidget_dark_bg_trans&quot;"
+        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=&quot;@drawable/appwidget_dark_bg_trans&quot;"
+        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=&quot;@drawable/appwidget_dark_bg_trans&quot; >"
+        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=&quot;@color/background_color_dark&quot;"
+        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=&quot;@color/background_color_dark&quot; >"
+        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="    &lt;color name=&quot;md__transparent&quot;>#00000000&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/values/colors.xml"
+            line="8"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.drawable.md__list_focused_holo` appears to be unused">
+        <location
+            file="src/main/res/drawable-xhdpi/md__list_focused_holo.9.png"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.drawable.md__list_longpressed_holo` appears to be unused">
+        <location
+            file="src/main/res/drawable-xhdpi/md__list_longpressed_holo.9.png"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.drawable.md__list_pressed_holo_dark` appears to be unused">
+        <location
+            file="src/main/res/drawable-xhdpi/md__list_pressed_holo_dark.9.png"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.drawable.md__list_selector_background_transition_holo_dark` appears to be unused"
+        errorLine1="&lt;transition xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
+        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="&lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;>"
+        errorLine2="^">
+        <location
+            file="src/main/res/drawable/md__list_selector_holo_dark.xml"
+            line="17"
+            column="1"/>
+    </issue>
+
+    <issue
+        id="UselessParent"
+        message="This `LinearLayout` layout or its `LinearLayout` parent is useless"
+        errorLine1="    &lt;LinearLayout"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/video_details.xml"
+            line="9"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="TypographyDashes"
+        message="Replace &quot;--&quot; with an &quot;em dash&quot; character (—, &amp;#8212;) ?"
+        errorLine1="    &lt;string name=&quot;util.no_time&quot;>-:--&lt;/string>"
+        errorLine2="                                ^">
+        <location
+            file="src/main/res/values-es/strings.xml"
+            line="328"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="TypographyDashes"
+        message="Replace &quot;--&quot; with an &quot;em dash&quot; character (—, &amp;#8212;) ?"
+        errorLine1="    &lt;string name=&quot;util.no_time&quot;>-:--&lt;/string>"
+        errorLine2="                                ^">
+        <location
+            file="src/main/res/values-fr/strings.xml"
+            line="328"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="TypographyDashes"
+        message="Replace &quot;--&quot; with an &quot;em dash&quot; character (—, &amp;#8212;) ?"
+        errorLine1="    &lt;string name=&quot;util.no_time&quot;>-:--&lt;/string>"
+        errorLine2="                                ^">
+        <location
+            file="src/main/res/values-hu/strings.xml"
+            line="328"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="TypographyDashes"
+        message="Replace &quot;--&quot; with an &quot;em dash&quot; character (—, &amp;#8212;) ?"
+        errorLine1="    &lt;string name=&quot;util.no_time&quot;>-:--&lt;/string>"
+        errorLine2="                                ^">
+        <location
+            file="src/main/res/values-pt-rBR/strings.xml"
+            line="331"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="TypographyDashes"
+        message="Replace &quot;--&quot; with an &quot;em dash&quot; character (—, &amp;#8212;) ?"
+        errorLine1="    &lt;string name=&quot;util.no_time&quot;>-:--&lt;/string>"
+        errorLine2="                                ^">
+        <location
+            file="src/main/res/values-pt/strings.xml"
+            line="331"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="TypographyDashes"
+        message="Replace &quot;--&quot; with an &quot;em dash&quot; character (—, &amp;#8212;) ?"
+        errorLine1="    &lt;string name=&quot;util.no_time&quot;>-:--&lt;/string>"
+        errorLine2="                                ^">
+        <location
+            file="src/main/res/values/strings.xml"
+            line="331"
+            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-v11/ic_stat_ultrasonic.png"/>
+        <location
+            file="src/main/java/org/moire/ultrasonic/service/DownloadServiceImpl.java"
+            line="2076"
+            column="30"/>
+    </issue>
+
+    <issue
+        id="IconColors"
+        message="Notification icons must be entirely white">
+        <location
+            file="src/main/res/drawable-hdpi-v9/ic_stat_ultrasonic.png"/>
+        <location
+            file="src/main/java/org/moire/ultrasonic/service/DownloadServiceImpl.java"
+            line="2076"
+            column="30"/>
+    </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="2076"
+            column="30"/>
+    </issue>
+
+    <issue
+        id="IconColors"
+        message="Notification icons must be entirely white">
+        <location
+            file="src/main/res/drawable-ldpi-v11/ic_stat_ultrasonic.png"/>
+        <location
+            file="src/main/java/org/moire/ultrasonic/service/DownloadServiceImpl.java"
+            line="2076"
+            column="30"/>
+    </issue>
+
+    <issue
+        id="IconColors"
+        message="Notification icons must be entirely white">
+        <location
+            file="src/main/res/drawable-ldpi-v9/ic_stat_ultrasonic.png"/>
+        <location
+            file="src/main/java/org/moire/ultrasonic/service/DownloadServiceImpl.java"
+            line="2076"
+            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="2076"
+            column="30"/>
+    </issue>
+
+    <issue
+        id="IconColors"
+        message="Notification icons must be entirely white">
+        <location
+            file="src/main/res/drawable-mdpi-v11/ic_stat_ultrasonic.png"/>
+        <location
+            file="src/main/java/org/moire/ultrasonic/service/DownloadServiceImpl.java"
+            line="2076"
+            column="30"/>
+    </issue>
+
+    <issue
+        id="IconColors"
+        message="Notification icons must be entirely white">
+        <location
+            file="src/main/res/drawable-mdpi-v9/ic_stat_ultrasonic.png"/>
+        <location
+            file="src/main/java/org/moire/ultrasonic/service/DownloadServiceImpl.java"
+            line="2076"
+            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="2076"
+            column="30"/>
+    </issue>
+
+    <issue
+        id="IconColors"
+        message="Notification icons must be entirely white">
+        <location
+            file="src/main/res/drawable-xhdpi-v11/ic_stat_ultrasonic.png"/>
+        <location
+            file="src/main/java/org/moire/ultrasonic/service/DownloadServiceImpl.java"
+            line="2076"
+            column="30"/>
+    </issue>
+
+    <issue
+        id="IconColors"
+        message="Notification icons must be entirely white">
+        <location
+            file="src/main/res/drawable-xhdpi-v9/ic_stat_ultrasonic.png"/>
+        <location
+            file="src/main/java/org/moire/ultrasonic/service/DownloadServiceImpl.java"
+            line="2076"
+            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="2076"
+            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="IconMissingDensityFolder"
+        message="Missing density variation folders in `src/main/res`: drawable-xxhdpi">
+        <location
+            file="src/main/res"/>
+    </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="    &lt;application"
+        errorLine2="    ^">
+        <location
+            file="src/main/AndroidManifest.xml"
+            line="23"
+            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="41"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="ViewConstructor"
+        message="Custom view `RotateLoadingLayout` is missing constructor used by tools: `(Context)` or `(Context,AttributeSet)` or `(Context,AttributeSet,int)`"
+        errorLine1="public class RotateLoadingLayout extends LoadingLayout {"
+        errorLine2="             ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/internal/RotateLoadingLayout.java"
+            line="30"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="ClickableViewAccessibility"
+        message="`org/moire/ultrasonic/view/AutoRepeatButton$2#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/view/AutoRepeatButton.java"
+            line="38"
+            column="19"/>
+    </issue>
+
+    <issue
+        id="ClickableViewAccessibility"
+        message="`org/moire/ultrasonic/activity/DownloadActivity$1#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="`org/moire/ultrasonic/activity/DownloadActivity$15#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="`com/mobeta/android/dslv/DragSortController#onTouch` should call `View#performClick` when a click is detected"
+        errorLine1="    public boolean onTouch(View v, MotionEvent ev) {"
+        errorLine2="                   ~~~~~~~">
+        <location
+            file="src/main/java/com/mobeta/android/dslv/DragSortController.java"
+            line="238"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="ClickableViewAccessibility"
+        message="`org/moire/ultrasonic/activity/SubsonicTabActivity$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="1388"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/album_buttons.xml"
+            line="9"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/album_buttons.xml"
+            line="17"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/album_buttons.xml"
+            line="25"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/album_buttons.xml"
+            line="33"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/album_buttons.xml"
+            line="41"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/album_buttons.xml"
+            line="49"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/album_buttons.xml"
+            line="57"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/album_buttons.xml"
+            line="65"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/album_buttons.xml"
+            line="73"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/album_list_item.xml"
+            line="9"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/album_list_item.xml"
+            line="42"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/appwidget4x1.xml"
+            line="10"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/appwidget4x1.xml"
+            line="76"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/appwidget4x1.xml"
+            line="85"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/appwidget4x1.xml"
+            line="94"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/appwidget4x2.xml"
+            line="10"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/appwidget4x2.xml"
+            line="97"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/appwidget4x2.xml"
+            line="106"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/appwidget4x2.xml"
+            line="115"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/appwidget4x3.xml"
+            line="10"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/appwidget4x3.xml"
+            line="82"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/appwidget4x3.xml"
+            line="91"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/appwidget4x3.xml"
+            line="100"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/appwidget4x4.xml"
+            line="10"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/appwidget4x4.xml"
+            line="83"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/appwidget4x4.xml"
+            line="92"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/appwidget4x4.xml"
+            line="101"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="        &lt;ImageButton"
+        errorLine2="        ^">
+        <location
+            file="src/main/res/layout/chat.xml"
+            line="40"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/chat_item.xml"
+            line="7"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/chat_item_reverse.xml"
+            line="64"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="        &lt;ImageView a:id=&quot;@+id/help_back&quot;"
+        errorLine2="        ^">
+        <location
+            file="src/main/res/layout/help.xml"
+            line="12"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="        &lt;ImageView a:id=&quot;@+id/help_stop&quot;"
+        errorLine2="        ^">
+        <location
+            file="src/main/res/layout/help.xml"
+            line="18"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="        &lt;ImageView a:id=&quot;@+id/help_forward&quot;"
+        errorLine2="        ^">
+        <location
+            file="src/main/res/layout/help.xml"
+            line="24"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="  &lt;ImageView a:layout_width=&quot;wrap_content&quot; a:layout_height=&quot;wrap_content&quot;"
+        errorLine2="  ^">
+        <location
+            file="src/main/res/layout/main_buttons.xml"
+            line="10"
+            column="3"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="&lt;ImageView"
+        errorLine2="^">
+        <location
+            file="src/main/res/layout/media_buttons.xml"
+            line="12"
+            column="1"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/media_buttons.xml"
+            line="32"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/media_buttons.xml"
+            line="42"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/media_buttons.xml"
+            line="52"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/media_buttons.xml"
+            line="72"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/notification.xml"
+            line="12"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="        &lt;ImageButton"
+        errorLine2="        ^">
+        <location
+            file="src/main/res/layout/notification.xml"
+            line="75"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="        &lt;ImageButton"
+        errorLine2="        ^">
+        <location
+            file="src/main/res/layout/notification.xml"
+            line="85"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="        &lt;ImageButton"
+        errorLine2="        ^">
+        <location
+            file="src/main/res/layout/notification.xml"
+            line="95"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="        &lt;ImageButton"
+        errorLine2="        ^">
+        <location
+            file="src/main/res/layout/notification.xml"
+            line="105"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/notification_large.xml"
+            line="11"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/notification_large.xml"
+            line="48"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/notification_large.xml"
+            line="99"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/notification_large.xml"
+            line="108"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/notification_large.xml"
+            line="117"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/now_playing.xml"
+            line="20"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/now_playing.xml"
+            line="56"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="        &lt;ImageView"
+        errorLine2="        ^">
+        <location
+            file="src/main/res/layout/pull_to_refresh_header_horizontal.xml"
+            line="13"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageView"
+        errorLine2="            ^">
+        <location
+            file="src/main/res/layout/pull_to_refresh_header_vertical.xml"
+            line="18"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/select_artist_header.xml"
+            line="12"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/song_list_item.xml"
+            line="18"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/song_list_item.xml"
+            line="28"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="[Accessibility] Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="    ^">
+        <location
+            file="src/main/res/layout/video_list_item.xml"
+            line="19"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="SetTextI18n"
+        message="Do not concatenate text displayed with `setText`. Use resource string with placeholders."
+        errorLine1="     freqTextView.setText((equalizer.getCenterFreq(band) / 1000) + &quot; Hz&quot;);"
+        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) + &quot; Hz&quot;);"
+        errorLine2="                                                                   ~~~~~">
+        <location
+            file="src/main/java/org/moire/ultrasonic/activity/EqualizerActivity.java"
+            line="211"
+            column="68"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="[I18N] Hardcoded string &quot;Title&quot;, should use `@string` resource"
+        errorLine1="                a:text=&quot;Title&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x1.xml"
+            line="46"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="[I18N] Hardcoded string &quot;Artist&quot;, should use `@string` resource"
+        errorLine1="                a:text=&quot;Artist&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x1.xml"
+            line="64"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="[I18N] Hardcoded string &quot;Title&quot;, should use `@string` resource"
+        errorLine1="                a:text=&quot;Title&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x2.xml"
+            line="48"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="[I18N] Hardcoded string &quot;Artist&quot;, should use `@string` resource"
+        errorLine1="                a:text=&quot;Artist&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x2.xml"
+            line="65"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="[I18N] Hardcoded string &quot;Album&quot;, should use `@string` resource"
+        errorLine1="                a:text=&quot;Album&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x2.xml"
+            line="82"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="[I18N] Hardcoded string &quot;Title&quot;, should use `@string` resource"
+        errorLine1="                a:text=&quot;Title&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x3.xml"
+            line="50"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="[I18N] Hardcoded string &quot;Artist&quot;, should use `@string` resource"
+        errorLine1="                a:text=&quot;Artist&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x3.xml"
+            line="66"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="[I18N] Hardcoded string &quot;Title&quot;, should use `@string` resource"
+        errorLine1="                a:text=&quot;Title&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x4.xml"
+            line="51"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="[I18N] Hardcoded string &quot;Artist&quot;, should use `@string` resource"
+        errorLine1="                a:text=&quot;Artist&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x4.xml"
+            line="67"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="[I18N] Hardcoded string &quot;0 / 0&quot;, should use `@string` resource"
+        errorLine1="        a:text=&quot;0 / 0&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/download_button_bar_flipper.xml"
+            line="43"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="[I18N] Hardcoded string &quot;0 dB&quot;, should use `@string` resource"
+        errorLine1="            a:text=&quot;0 dB&quot;
+"
+        errorLine2="            ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/equalizer_bar.xml"
+            line="19"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="[I18N] Hardcoded string &quot;Share&quot;, should use `@string` resource"
+        errorLine1="        a:title=&quot;Share&quot;/>"
+        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=&quot;@id/chat_avatar&quot;`"
+        errorLine1="        a:layout_toEndOf=&quot;@id/chat_avatar&quot;"
+        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=&quot;false&quot;`"
+        errorLine1="        a:layout_alignParentEnd=&quot;false&quot;"
+        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=&quot;@id/chat_avatar&quot;`"
+        errorLine1="        a:layout_toStartOf=&quot;@id/chat_avatar&quot;"
+        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=&quot;true&quot;`"
+        errorLine1="        a:layout_alignParentEnd=&quot;true&quot;"
+        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=&quot;@id/chat_avatar&quot;`"
+        errorLine1="        a:layout_toStartOf=&quot;@id/chat_avatar&quot;/>"
+        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=&quot;false&quot;`"
+        errorLine1="            android:layout_alignParentEnd=&quot;false&quot;/>"
+        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=&quot;3dip&quot;/>"
+        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=&quot;3dip&quot; />"
+        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=&quot;5dip&quot;"
+        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=&quot;5dip&quot;"
+        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=&quot;6dp&quot; a:layout_width=&quot;fill_parent&quot; a:layout_height=&quot;wrap_content&quot;"
+        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=&quot;center_vertical&quot; a:paddingLeft=&quot;6dp&quot; a:textAllCaps=&quot;true&quot;"
+        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=&quot;center_vertical&quot; a:paddingLeft=&quot;6dp&quot; a:textAllCaps=&quot;true&quot;"
+        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=&quot;center_vertical&quot; a:paddingLeft=&quot;6dp&quot; a:textAllCaps=&quot;true&quot;"
+        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=&quot;center_vertical&quot; a:paddingLeft=&quot;6dp&quot; a:textAllCaps=&quot;true&quot;"
+        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=&quot;12dip&quot;"
+        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=&quot;12dp&quot;"
+        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=&quot;11.0dip&quot; >"
+        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=&quot;4dp&quot;/>"
+        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=&quot;4dp&quot;/>"
+        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=&quot;4dp&quot;/>"
+        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=&quot;4dip&quot;"
+        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=&quot;4dip&quot;"
+        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=&quot;4dip&quot;"
+        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=&quot;4dip&quot;"
+        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=&quot;4dip&quot;"
+        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=&quot;4dip&quot;"
+        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=&quot;6dp&quot;"
+        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=&quot;4dip&quot;"
+        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=&quot;6dip&quot;/>"
+        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=&quot;4dip&quot;"
+        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=&quot;3dip&quot; />"
+        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=&quot;3dip&quot;"
+        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=&quot;3dip&quot;"
+        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=&quot;1dip&quot;"
+        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=&quot;3dip&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/video_list_item.xml"
+            line="26"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`Gravity.START`&quot; instead of &quot;`Gravity.LEFT`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="    lp.gravity = scrollDirection == Orientation.VERTICAL ? Gravity.TOP : Gravity.LEFT;"
+        errorLine2="                                                                                 ~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/internal/LoadingLayout.java"
+            line="92"
+            column="82"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`Gravity.END`&quot; instead of &quot;`Gravity.RIGHT`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="    lp.gravity = scrollDirection == Orientation.VERTICAL ? Gravity.BOTTOM : Gravity.RIGHT;"
+        errorLine2="                                                                                    ~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/internal/LoadingLayout.java"
+            line="102"
+            column="85"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`Gravity.END`&quot; instead of &quot;`Gravity.RIGHT`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="   params.gravity = Gravity.TOP | Gravity.RIGHT;"
+        errorLine2="                                          ~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshAdapterViewBase.java"
+            line="344"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`Gravity.END`&quot; instead of &quot;`Gravity.RIGHT`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="   params.gravity = Gravity.BOTTOM | Gravity.RIGHT;"
+        errorLine2="                                             ~~~~~">
+        <location
+            file="src/main/java/com/handmark/pulltorefresh/library/PullToRefreshAdapterViewBase.java"
+            line="359"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:layout_gravity=&quot;left|center_vertical&quot;"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/album_list_item.xml"
+            line="13"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;3dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingLeft=&quot;3dip&quot;/>"
+        errorLine2="            ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/album_list_item.xml"
+            line="14"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:layout_gravity=&quot;left|center_vertical&quot;"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/album_list_item.xml"
+            line="21"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;6dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingLeft=&quot;6dip&quot;"
+        errorLine2="            ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/album_list_item.xml"
+            line="22"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;3dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingRight=&quot;3dip&quot;>"
+        errorLine2="            ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/album_list_item.xml"
+            line="23"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;3dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingRight=&quot;3dip&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/album_list_item.xml"
+            line="50"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;5dip&quot;` to better support right-to-left layouts"
+        errorLine1="                a:paddingLeft=&quot;5dip&quot;"
+        errorLine2="                ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x3.xml"
+            line="64"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;5dip&quot;` to better support right-to-left layouts"
+        errorLine1="                a:paddingLeft=&quot;5dip&quot;"
+        errorLine2="                ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/appwidget4x4.xml"
+            line="65"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:layout_gravity=&quot;left&quot;"
+        errorLine2="                              ~~~~">
+        <location
+            file="src/main/res/layout/chat_item.xml"
+            line="30"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:gravity=&quot;center_vertical|left&quot;/>"
+        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/chat_item.xml"
+            line="31"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:gravity=&quot;center_vertical|left&quot;"
+        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/chat_item.xml"
+            line="39"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:layout_gravity=&quot;left&quot;>"
+        errorLine2="                              ~~~~">
+        <location
+            file="src/main/res/layout/chat_item.xml"
+            line="40"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:layout_marginStart=&quot;6dip&quot;` to better support right-to-left layouts"
+        errorLine1="                a:layout_marginLeft=&quot;6dip&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/chat_item.xml"
+            line="46"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="                a:gravity=&quot;left&quot;/>"
+        errorLine2="                           ~~~~">
+        <location
+            file="src/main/res/layout/chat_item.xml"
+            line="50"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="                a:gravity=&quot;left&quot;/>"
+        errorLine2="                           ~~~~">
+        <location
+            file="src/main/res/layout/chat_item.xml"
+            line="63"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="        a:layout_gravity=&quot;right&quot;"
+        errorLine2="                          ~~~~~">
+        <location
+            file="src/main/res/layout/chat_item_reverse.xml"
+            line="11"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="        a:gravity=&quot;center_vertical|right&quot;>"
+        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=&quot;6dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:layout_marginRight=&quot;6dip&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/chat_item_reverse.xml"
+            line="20"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:gravity=&quot;center_vertical|right&quot;"
+        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/chat_item_reverse.xml"
+            line="21"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:layout_gravity=&quot;right&quot;"
+        errorLine2="                              ~~~~~">
+        <location
+            file="src/main/res/layout/chat_item_reverse.xml"
+            line="22"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:layout_gravity=&quot;right|end&quot;"
+        errorLine2="                              ~~~~~~~~~">
+        <location
+            file="src/main/res/layout/chat_item_reverse.xml"
+            line="34"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:gravity=&quot;center_vertical|right&quot;>"
+        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=&quot;6dip&quot;` to better support right-to-left layouts"
+        errorLine1="                a:layout_marginLeft=&quot;6dip&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/chat_item_reverse.xml"
+            line="41"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="                a:gravity=&quot;center_vertical|right&quot;"
+        errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/chat_item_reverse.xml"
+            line="43"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="                a:layout_gravity=&quot;right&quot;/>"
+        errorLine2="                                  ~~~~~">
+        <location
+            file="src/main/res/layout/chat_item_reverse.xml"
+            line="46"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="                a:gravity=&quot;center_vertical|right&quot;"
+        errorLine2="                           ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/chat_item_reverse.xml"
+            line="59"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="                a:layout_gravity=&quot;right&quot;/>"
+        errorLine2="                                  ~~~~~">
+        <location
+            file="src/main/res/layout/chat_item_reverse.xml"
+            line="60"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:gravity=&quot;left&quot;"
+        errorLine2="                       ~~~~">
+        <location
+            file="src/main/res/layout-land/download.xml"
+            line="18"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:gravity=&quot;left&quot;"
+        errorLine2="                       ~~~~">
+        <location
+            file="src/main/res/layout-port/download.xml"
+            line="18"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:layout_alignParentStart=&quot;true&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_alignParentLeft=&quot;true&quot;"
+        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=&quot;6dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_marginRight=&quot;6dip&quot;"
+        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=&quot;true&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_alignParentLeft=&quot;true&quot;"
+        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=&quot;6dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_marginRight=&quot;6dip&quot;"
+        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=&quot;true&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_alignParentRight=&quot;true&quot;"
+        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=&quot;6dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_marginLeft=&quot;6dip&quot;"
+        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=&quot;true&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_alignParentRight=&quot;true&quot;"
+        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=&quot;6dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_marginLeft=&quot;6dip&quot;"
+        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=&quot;@+id/download_duration&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_toLeftOf=&quot;@+id/download_duration&quot;"
+        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=&quot;@+id/download_position&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_toRightOf=&quot;@+id/download_position&quot;"
+        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=&quot;true&quot;` to better support right-to-left layouts"
+        errorLine1="            a:layout_alignParentLeft=&quot;true&quot;
+"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/equalizer_bar.xml"
+            line="14"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:gravity=&quot;right&quot;
+"
+        errorLine2="                       ~~~~~">
+        <location
+            file="src/main/res/layout/equalizer_bar.xml"
+            line="22"
+            column="24"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:layout_alignParentEnd=&quot;true&quot;` to better support right-to-left layouts"
+        errorLine1="            a:layout_alignParentRight=&quot;true&quot;
+"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/equalizer_bar.xml"
+            line="26"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:layout_toEndOf=&quot;@+id/equalizer.frequency&quot;` to better support right-to-left layouts"
+        errorLine1="            a:layout_toRightOf=&quot;@+id/equalizer.frequency&quot;
+"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/equalizer_bar.xml"
+            line="27"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;6dp&quot;` to better support right-to-left layouts"
+        errorLine1="  a:paddingLeft=&quot;6dp&quot; a:layout_width=&quot;fill_parent&quot; a:layout_height=&quot;wrap_content&quot;"
+        errorLine2="  ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/main_buttons.xml"
+            line="7"
+            column="3"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:layout_marginStart=&quot;10dip&quot;` to better support right-to-left layouts"
+        errorLine1="    a:layout_marginLeft=&quot;10dip&quot; a:layout_marginTop=&quot;6dip&quot;"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/main_buttons.xml"
+            line="18"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:layout_marginStart=&quot;10dip&quot;` to better support right-to-left layouts"
+        errorLine1="    a:layout_height=&quot;wrap_content&quot; a:layout_marginLeft=&quot;10dip&quot;"
+        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/main_buttons.xml"
+            line="22"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;6dp&quot;` to better support right-to-left layouts"
+        errorLine1="  a:gravity=&quot;center_vertical&quot; a:paddingLeft=&quot;6dp&quot; a:textAllCaps=&quot;true&quot;"
+        errorLine2="                              ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/main_buttons.xml"
+            line="31"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;6dp&quot;` to better support right-to-left layouts"
+        errorLine1="  a:gravity=&quot;center_vertical&quot; a:paddingLeft=&quot;6dp&quot; a:textAllCaps=&quot;true&quot;"
+        errorLine2="                              ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/main_buttons.xml"
+            line="52"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;6dp&quot;` to better support right-to-left layouts"
+        errorLine1="  a:gravity=&quot;center_vertical&quot; a:paddingLeft=&quot;6dp&quot; a:textAllCaps=&quot;true&quot;"
+        errorLine2="                              ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/main_buttons.xml"
+            line="68"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;6dp&quot;` to better support right-to-left layouts"
+        errorLine1="  a:gravity=&quot;center_vertical&quot; a:paddingLeft=&quot;6dp&quot; a:textAllCaps=&quot;true&quot;"
+        errorLine2="                              ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/main_buttons.xml"
+            line="114"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;2dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:paddingLeft=&quot;2dip&quot;"
+        errorLine2="        ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/media_buttons.xml"
+            line="19"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;8dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:paddingRight=&quot;8dip&quot;/>"
+        errorLine2="        ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/media_buttons.xml"
+            line="20"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;8dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:paddingLeft=&quot;8dip&quot;"
+        errorLine2="        ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/media_buttons.xml"
+            line="79"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;2dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:paddingRight=&quot;2dip&quot;/>"
+        errorLine2="        ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/media_buttons.xml"
+            line="80"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:drawableStart=&quot;?attr/home&quot;` to better support right-to-left layouts"
+        errorLine1="            android:drawableLeft=&quot;?attr/home&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/menu_main.xml"
+            line="25"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:drawableStart=&quot;?attr/browse&quot;` to better support right-to-left layouts"
+        errorLine1="            android:drawableLeft=&quot;?attr/browse&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/menu_main.xml"
+            line="33"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:drawableStart=&quot;?attr/search&quot;` to better support right-to-left layouts"
+        errorLine1="            android:drawableLeft=&quot;?attr/search&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/menu_main.xml"
+            line="41"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:drawableStart=&quot;?attr/playlists&quot;` to better support right-to-left layouts"
+        errorLine1="            android:drawableLeft=&quot;?attr/playlists&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/menu_main.xml"
+            line="49"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:drawableStart=&quot;?attr/share&quot;` to better support right-to-left layouts"
+        errorLine1="            android:drawableLeft=&quot;?attr/share&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/menu_main.xml"
+            line="57"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:drawableStart=&quot;?attr/bookmark&quot;` to better support right-to-left layouts"
+        errorLine1="            android:drawableLeft=&quot;?attr/bookmark&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/menu_main.xml"
+            line="65"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:drawableStart=&quot;?attr/chat&quot;` to better support right-to-left layouts"
+        errorLine1="            android:drawableLeft=&quot;?attr/chat&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/menu_main.xml"
+            line="73"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:drawableStart=&quot;?attr/media_play&quot;` to better support right-to-left layouts"
+        errorLine1="            android:drawableLeft=&quot;?attr/media_play&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/menu_main.xml"
+            line="81"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:drawableStart=&quot;?attr/podcasts&quot;` to better support right-to-left layouts"
+        errorLine1="            android:drawableLeft=&quot;?attr/podcasts&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/menu_main.xml"
+            line="89"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:drawableStart=&quot;?attr/settings&quot;` to better support right-to-left layouts"
+        errorLine1="            android:drawableLeft=&quot;?attr/settings&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/menu_main.xml"
+            line="104"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:drawableStart=&quot;?attr/about&quot;` to better support right-to-left layouts"
+        errorLine1="            android:drawableLeft=&quot;?attr/about&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/menu_main.xml"
+            line="112"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:drawableStart=&quot;?attr/exit&quot;` to better support right-to-left layouts"
+        errorLine1="            android:drawableLeft=&quot;?attr/exit&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/menu_main.xml"
+            line="120"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:paddingStart=&quot;11.0dip&quot;` to better support right-to-left layouts"
+        errorLine1="        android:paddingLeft=&quot;11.0dip&quot; >"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/now_playing.xml"
+            line="33"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            android:layout_gravity=&quot;left&quot;"
+        errorLine2="                                    ~~~~">
+        <location
+            file="src/main/res/layout/now_playing.xml"
+            line="39"
+            column="37"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            android:layout_gravity=&quot;left&quot;"
+        errorLine2="                                    ~~~~">
+        <location
+            file="src/main/res/layout/now_playing.xml"
+            line="49"
+            column="37"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="        android:layout_gravity=&quot;center|right&quot;"
+        errorLine2="                                ~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/now_playing.xml"
+            line="60"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:layout_marginEnd=&quot;5dip&quot;` to better support right-to-left layouts"
+        errorLine1="        android:layout_marginRight=&quot;5dip&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/now_playing.xml"
+            line="61"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="  android:gravity=&quot;left|center_vertical&quot;
+"
+        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/playlist_list_item.xml"
+            line="13"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            android:layout_gravity=&quot;left|center_vertical&quot; >"
+        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/pull_to_refresh_header_vertical.xml"
+            line="16"
+            column="37"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:drawableStart=&quot;?attr/search&quot;` to better support right-to-left layouts"
+        errorLine1="            a:drawableLeft=&quot;?attr/search&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/search_buttons.xml"
+            line="13"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;4dp&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingLeft=&quot;4dp&quot;/>"
+        errorLine2="            ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/search_buttons.xml"
+            line="28"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;4dp&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingLeft=&quot;4dp&quot;/>"
+        errorLine2="            ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/search_buttons.xml"
+            line="40"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;4dp&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingLeft=&quot;4dp&quot;/>"
+        errorLine2="            ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/search_buttons.xml"
+            line="52"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:layout_alignParentStart=&quot;true&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_alignParentLeft=&quot;true&quot;"
+        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=&quot;10dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_marginRight=&quot;10dip&quot;"
+        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=&quot;@+id/select_album_art&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_toRightOf=&quot;@+id/select_album_art&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/select_album_header.xml"
+            line="21"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;4dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:paddingRight=&quot;4dip&quot;"
+        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=&quot;@+id/select_album_art&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_toRightOf=&quot;@+id/select_album_art&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/select_album_header.xml"
+            line="33"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;4dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:paddingRight=&quot;4dip&quot;"
+        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=&quot;@+id/select_album_art&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_toRightOf=&quot;@+id/select_album_art&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/select_album_header.xml"
+            line="44"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;4dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:paddingRight=&quot;4dip&quot;"
+        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=&quot;@+id/select_album_art&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_toRightOf=&quot;@+id/select_album_art&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/select_album_header.xml"
+            line="55"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;4dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:paddingRight=&quot;4dip&quot;"
+        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=&quot;@+id/select_album_art&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_toRightOf=&quot;@+id/select_album_art&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/select_album_header.xml"
+            line="66"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;4dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:paddingRight=&quot;4dip&quot;"
+        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=&quot;@+id/select_album_art&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_toRightOf=&quot;@+id/select_album_art&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/select_album_header.xml"
+            line="77"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;4dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:paddingRight=&quot;4dip&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/select_album_header.xml"
+            line="79"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;6dp&quot;` to better support right-to-left layouts"
+        errorLine1="    a:paddingLeft=&quot;6dp&quot;"
+        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=&quot;10dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:layout_marginLeft=&quot;10dip&quot;"
+        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=&quot;10dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:layout_marginLeft=&quot;10dip&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/select_artist_header.xml"
+            line="36"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:layout_gravity=&quot;left|center_vertical&quot;"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/share_list_item.xml"
+            line="22"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:layout_gravity=&quot;left|center_vertical&quot;"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/share_list_item.xml"
+            line="38"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;4dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingLeft=&quot;4dip&quot;"
+        errorLine2="            ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/share_list_item.xml"
+            line="41"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:layout_gravity=&quot;left|center_vertical&quot;"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/song_details.xml"
+            line="19"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:layout_gravity=&quot;left|center_vertical&quot;"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/song_details.xml"
+            line="26"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;4dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingLeft=&quot;4dip&quot;"
+        errorLine2="            ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/song_details.xml"
+            line="30"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;2dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingRight=&quot;2dip&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/song_details.xml"
+            line="31"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:layout_gravity=&quot;right|center_vertical&quot;"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/song_details.xml"
+            line="39"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;6dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingRight=&quot;6dip&quot;/>"
+        errorLine2="            ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/song_details.xml"
+            line="41"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:layout_gravity=&quot;left|center_vertical&quot;"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/song_details.xml"
+            line="54"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;4dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingLeft=&quot;4dip&quot;"
+        errorLine2="            ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/song_details.xml"
+            line="57"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:layout_gravity=&quot;right|center_vertical&quot;"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/song_details.xml"
+            line="65"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;3dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingLeft=&quot;3dip&quot;"
+        errorLine2="            ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/song_details.xml"
+            line="66"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;9dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingRight=&quot;9dip&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/song_details.xml"
+            line="67"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;3dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:paddingLeft=&quot;3dip&quot; />"
+        errorLine2="        ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/song_list_item.xml"
+            line="14"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;3dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:paddingRight=&quot;3dip&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/song_list_item.xml"
+            line="25"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;3dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:paddingRight=&quot;3dip&quot;"
+        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=&quot;6dp&quot;` to better support right-to-left layouts"
+        errorLine1="        a:layout_marginRight=&quot;6dp&quot; />"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/tab_progress.xml"
+            line="15"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            android:gravity=&quot;left&quot;"
+        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=&quot;@+id/timeSpanEditText&quot;` to better support right-to-left layouts"
+        errorLine1="            android:layout_toRightOf=&quot;@+id/timeSpanEditText&quot;/>"
+        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=&quot;4dp&quot;` to better support right-to-left layouts"
+        errorLine1="   android:layout_marginLeft=&quot;4dp&quot;"
+        errorLine2="   ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/update_playlist.xml"
+            line="15"
+            column="4"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:layout_marginStart=&quot;4dp&quot;` to better support right-to-left layouts"
+        errorLine1="   android:layout_marginLeft=&quot;4dp&quot;"
+        errorLine2="   ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/update_playlist.xml"
+            line="24"
+            column="4"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:layout_marginStart=&quot;4dp&quot;` to better support right-to-left layouts"
+        errorLine1="   android:layout_marginLeft=&quot;4dp&quot;"
+        errorLine2="   ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/update_playlist.xml"
+            line="37"
+            column="4"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:layout_marginStart=&quot;4dp&quot;` to better support right-to-left layouts"
+        errorLine1="   android:layout_marginLeft=&quot;4dp&quot;"
+        errorLine2="   ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/update_playlist.xml"
+            line="46"
+            column="4"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:layout_marginStart=&quot;4dp&quot;` to better support right-to-left layouts"
+        errorLine1="   android:layout_marginLeft=&quot;4dp&quot;"
+        errorLine2="   ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/update_playlist.xml"
+            line="59"
+            column="4"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `android:layout_marginStart=&quot;4dp&quot;` to better support right-to-left layouts"
+        errorLine1="   android:layout_marginLeft=&quot;4dp&quot;"
+        errorLine2="   ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/update_playlist.xml"
+            line="67"
+            column="4"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`start`&quot; instead of &quot;`left`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:layout_gravity=&quot;left|center_vertical&quot;"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/video_details.xml"
+            line="19"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;4dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingLeft=&quot;4dip&quot;"
+        errorLine2="            ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/video_details.xml"
+            line="22"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;2dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingRight=&quot;2dip&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/video_details.xml"
+            line="23"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Use &quot;`end`&quot; instead of &quot;`right`&quot; to ensure correct behavior in right-to-left locales"
+        errorLine1="            a:layout_gravity=&quot;right|center_vertical&quot;"
+        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/video_details.xml"
+            line="31"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;2dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingLeft=&quot;2dip&quot;"
+        errorLine2="            ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/video_details.xml"
+            line="32"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;6dip&quot;` to better support right-to-left layouts"
+        errorLine1="            a:paddingRight=&quot;6dip&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/video_details.xml"
+            line="33"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingStart=&quot;1dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:paddingLeft=&quot;1dip&quot;"
+        errorLine2="        ~~~~~~~~~~~~~">
+        <location
+            file="src/main/res/layout/video_list_item.xml"
+            line="13"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Consider adding `a:paddingEnd=&quot;3dip&quot;` to better support right-to-left layouts"
+        errorLine1="        a:paddingRight=&quot;3dip&quot;"
+        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>
diff --git a/ultrasonic/lint.xml b/ultrasonic/lint.xml
deleted file mode 100644
index 8423c0ef..00000000
--- a/ultrasonic/lint.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<lint>
-</lint>
\ No newline at end of file