android/source/Makefile          |    5 
 android/source/build.gradle      |   10 
 android/source/lint-baseline.xml | 2649 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 2660 insertions(+), 4 deletions(-)

New commits:
commit 6b788f8baf4c6ba42dc6c0f580fbf9480d8c60d3
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Fri Dec 8 14:57:14 2023 +0100
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Wed Dec 13 10:50:26 2023 +0100

    android: Make the build fail on new lint warnings
    
    In order to avoid introducing new lint errors,
    also run the `lint<buildVariant>` gradle target when building
    Android Viewer and set the `warningsAsErrors true`
    lint option.
    This makes the build fail on (new) lint errors.
    
    See [1] for more details.
    
    Downgrade missing translations and issues that can "suddenly"
    appear without any code changes to the app itself to informational,
    to prevent (CI) builds from suddenly starting to fail just because
    a new Android Gradle Plugin version or external library becomes
    available etc.
    
    To be able to avoid introducing new issues without having to address
    all existing ones right now, use a baseline file ("lint-baseline.xml")
    as described at [2] which lists all existing issues, so they don't
    result in a failing build.
    Those should still be looked into at some point.
    
    Updating the baseline file can be done by just removing the
    existing one and running the build again. (Build will create the
    new baseline file and fail on first run after deleting the file,
    then find the new file and succeed in subsequent builds.)
    
    [1] https://developer.android.com/studio/write/lint
    [2] https://developer.android.com/studio/write/lint#customize-the-baseline
    
    Change-Id: Iddbe432519ab3040c83c0e977a584b51d3ef1e5b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160199
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/android/source/Makefile b/android/source/Makefile
index 32b233c74a4c..2c1d6f9f1cca 100644
--- a/android/source/Makefile
+++ b/android/source/Makefile
@@ -3,11 +3,12 @@ gb_Side:=host
 include ../../config_host.mk
 endif
 
-# The default target just builds.
+# The default target builds the APK and runs lint.
 
 all: build-gradle
 
 DISABLE_UI=TRUE
+BUILD_VARIANT=$(if $(DISABLE_UI),StrippedUI,FullUI)$(if 
$(ENABLE_ANDROID_EDITING),Editing)$(if $(ENABLE_RELEASE_BUILD),Release,Debug)
 BOOTSTRAPDIR=../Bootstrap
 include $(BOOTSTRAPDIR)/Makefile.shared
 
@@ -29,7 +30,7 @@ clean:
 
 build-gradle: liboSettings.gradle local.properties link-so
 ifeq ($(ENABLE_JAVA),TRUE)
-       if test "$$ENABLE_ANDROID_LOK" != "TRUE" ; then ./gradlew $(if 
$(verbose),--info) $(if $(versionCode),-PcmdVersionCode=$(versionCode)) 
assemble$(if $(DISABLE_UI),StrippedUI,FullUI)$(if 
$(ENABLE_ANDROID_EDITING),Editing)$(if $(ENABLE_RELEASE_BUILD),Release,Debug) ; 
fi
+       if test "$$ENABLE_ANDROID_LOK" != "TRUE" ; then ./gradlew $(if 
$(verbose),--info) $(if $(versionCode),-PcmdVersionCode=$(versionCode)) 
assemble$(BUILD_VARIANT) lint$(BUILD_VARIANT)  ; fi
 endif
 
 run:
diff --git a/android/source/build.gradle b/android/source/build.gradle
index eed27bef4e54..0160aa8ffe87 100644
--- a/android/source/build.gradle
+++ b/android/source/build.gradle
@@ -89,8 +89,14 @@ android {
         fullUI.dimension "default"
     }
     lint {
-        // don't error-out on missing translations
-        warning 'MissingTranslation'
+        warningsAsErrors true
+        // don't error-out on missing translations or external updates (new 
gradle plugin,
+        // library versions or target API become available)
+        informational 'AndroidGradlePluginVersion', 'GradleDependency', 
'MissingTranslation', 'NewerVersionAvailable', 'OldTargetApi'
+        // don't fail on pre-existing issues
+        // These should be dealt with at some point, though.
+        // To update lint-baseline.xml, just remove the file and run the build 
again.
+        baseline file("lint-baseline.xml")
     }
 }
 
diff --git a/android/source/lint-baseline.xml b/android/source/lint-baseline.xml
new file mode 100644
index 000000000000..b4c05e26dc6b
--- /dev/null
+++ b/android/source/lint-baseline.xml
@@ -0,0 +1,2649 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 8.2.0" type="baseline" client="gradle" 
dependencies="false" name="AGP (8.2.0)" variant="all" version="8.2.0">
+
+    <issue
+        id="ScopedStorage"
+        message="WRITE_EXTERNAL_STORAGE is deprecated (and is not granted) 
when targeting Android 13+. If you need to write to shared storage, use the 
`MediaStore.createWriteRequest` intent."
+        errorLine1="    &lt;uses-permission 
android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot;/>"
+        errorLine2="                                   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="AndroidManifest.xml"
+            line="10"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="ScrollViewSize"
+        message="This LinearLayout should use 
`android:layout_height=&quot;wrap_content&quot;`"
+        errorLine1="                                
android:layout_height=&quot;match_parent&quot;"
+        errorLine2="                                
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="311"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="ScrollViewSize"
+        message="This LinearLayout should use 
`android:layout_height=&quot;wrap_content&quot;`"
+        errorLine1="                                
android:layout_height=&quot;match_parent&quot;"
+        errorLine2="                                
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="378"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="CanvasSize"
+        message="Calling `Canvas.getWidth()` is usually wrong; you should be 
calling `getWidth()` instead"
+        errorLine1="            int horizontalMargin = (int) 
(canvas.getWidth()*0.1);"
+        errorLine2="                                          
~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/ui/PageView.java"
+            line="55"
+            column="43"/>
+    </issue>
+
+    <issue
+        id="CanvasSize"
+        message="Calling `Canvas.getWidth()` is usually wrong; you should be 
calling `getWidth()` instead"
+        errorLine1="                    new 
Rect(horizontalMargin,verticalMargin,canvas.getWidth()-horizontalMargin,"
+        errorLine2="                                                           
  ~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/ui/PageView.java"
+            line="59"
+            column="62"/>
+    </issue>
+
+    <issue
+        id="CanvasSize"
+        message="Calling `Canvas.getHeight()` is usually wrong; you should be 
calling `getHeight()` instead"
+        errorLine1="                        
canvas.getHeight()-verticalMargin),"
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/ui/PageView.java"
+            line="60"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="CommitPrefEdits"
+        message="`SharedPreferences.edit()` without a corresponding `commit()` 
or `apply()` call"
+        errorLine1="        preferences.edit().putString(SELECTED_LANG, lang);"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/LocaleHelper.java"
+            line="49"
+            column="9"/>
+    </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;TileIdentifier (%d, %d) 
z=%f s=(%d, %d)&quot;, x, y, zoom, size.width, size.height);"
+        errorLine2="               
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/TileIdentifier.java"
+            line="88"
+            column="16"/>
+    </issue>
+
+    <issue
+        id="AppBundleLocaleChanges"
+        message="Found dynamic locale changes, but did not find corresponding 
Play Core library calls for downloading languages and splitting by language is 
not disabled in the `bundle` configuration"
+        errorLine1="        cfg.locale = locale;"
+        errorLine2="            ~~~~~~">
+        <location
+            file="src/java/org/libreoffice/LocaleHelper.java"
+            line="40"
+            column="13"/>
+    </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 headerPopupView = 
inflater.inflate(R.layout.calc_header_popup, null);"
+        errorLine2="                                                           
                           ~~~~">
+        <location
+            file="src/java/org/libreoffice/overlay/CalcHeadersController.java"
+            line="118"
+            column="87"/>
+    </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 = 
layoutInflater.inflate(R.layout.document_part_list_layout, null);"
+        errorLine2="                                                           
                   ~~~~">
+        <location
+            file="src/java/org/libreoffice/DocumentPartViewListAdapter.java"
+            line="36"
+            column="79"/>
+    </issue>
+
+    <issue
+        id="QueryPermissionsNeeded"
+        message="Consider adding a `&lt;queries>` declaration to your manifest 
when calling this \&#xA;method; see https://g.co/dev/packagevisibility for 
details"
+        errorLine1="        if 
(takePictureIntent.resolveActivity(mContext.getPackageManager()) != null) {"
+        errorLine2="                              ~~~~~~~~~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/FormattingController.java"
+            line="370"
+            column="31"/>
+    </issue>
+
+    <issue
+        id="QueryPermissionsNeeded"
+        message="Consider adding a `&lt;queries>` declaration to your manifest 
when calling this \&#xA;method; see https://g.co/dev/packagevisibility for 
details"
+        errorLine1="                        
.queryIntentActivities(takePictureIntent, PackageManager.MATCH_DEFAULT_ONLY);"
+        errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/FormattingController.java"
+            line="386"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="UnsupportedChromeOsCameraSystemFeature"
+        message="You should look for any camera available on the device, not 
just the rear"
+        errorLine1="        if 
(!mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)) 
{"
+        errorLine2="             
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/FormattingController.java"
+            line="363"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="PrivateResource"
+        message="The resource `@drawable/ic_keyboard_black_24dp` is marked as 
private in com.google.android.material:material:1.10.0"
+        errorLine1="    
android:src=&quot;@drawable/ic_keyboard_black_24dp&quot;"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/drawable-hdpi/ic_keyboard.xml"
+            line="4"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="SpUsage"
+        message="Should use &quot;`sp`&quot; instead of &quot;`dp`&quot; for 
text sizes"
+        errorLine1="                    android:textSize=&quot;14dp&quot;"
+        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/activity_document_browser.xml"
+            line="77"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="DiscouragedApi"
+        message="Use of this function is discouraged because resource 
reflection makes it harder to perform build optimizations and compile-time 
verification of code. It is much more efficient to retrieve resources by 
identifier (e.g. `R.foo.bar`) than by name (e.g. 
`getIdentifier(&quot;bar&quot;, &quot;foo&quot;, null)`)."
+        errorLine1="        int resourceID = resources.getIdentifier(name, 
&quot;drawable&quot;, packageName);"
+        errorLine2="                                   ~~~~~~~~~~~~~">
+        <location
+            file="src/java/org/mozilla/gecko/gfx/LayerView.java"
+            line="227"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;about_privacy_policy&quot; is not translated in 
&quot;tr&quot; (Turkish)"
+        errorLine1="    &lt;string 
name=&quot;about_privacy_policy&quot;>Privacy Policy&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="16"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;create_file&quot; is not translated in &quot;de&quot; 
(German) or &quot;tr&quot; (Turkish)"
+        errorLine1="    &lt;string name=&quot;create_file&quot;>Create New 
File&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="18"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;select_file_to_open&quot; is not translated in 
&quot;tr&quot; (Turkish)"
+        errorLine1="    &lt;string name=&quot;select_file_to_open&quot;>Select 
file to open&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="25"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;search_find_next&quot; is not translated in 
&quot;de&quot; (German) or &quot;tr&quot; (Turkish)"
+        errorLine1="    &lt;string name=&quot;search_find_next&quot;>Find 
Next&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="30"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;search_find_previous&quot; is not translated in 
&quot;de&quot; (German) or &quot;tr&quot; (Turkish)"
+        errorLine1="    &lt;string name=&quot;search_find_previous&quot;>Find 
Previous&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="31"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;action_save_as&quot; is not translated in 
&quot;tr&quot; (Turkish)"
+        errorLine1="    &lt;string name=&quot;action_save_as&quot;>Save 
As...&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="53"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;message_saving_failed&quot; is not translated in 
&quot;tr&quot; (Turkish)"
+        errorLine1="    &lt;string 
name=&quot;message_saving_failed&quot;>Saving the document failed.&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="61"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;pdf_export_finished&quot; is not translated in 
&quot;tr&quot; (Turkish)"
+        errorLine1="    &lt;string name=&quot;pdf_export_finished&quot;>PDF 
export finished&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="158"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;unable_to_save&quot; is not translated in 
&quot;tr&quot; (Turkish)"
+        errorLine1="    &lt;string name=&quot;unable_to_save&quot;>Unable to 
save file&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="160"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="MissingTranslation"
+        message="&quot;automatic&quot; is not translated in &quot;tr&quot; 
(Turkish)"
+        errorLine1="    &lt;string 
name=&quot;automatic&quot;>Automatic&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="172"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="SetJavaScriptEnabled"
+        message="Using `setJavaScriptEnabled` can introduce XSS 
vulnerabilities into your application, review carefully"
+        errorLine1="        mWebView.getSettings().setJavaScriptEnabled(true);"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/PresentationActivity.java"
+            line="39"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="DrawAllocation"
+        message="Avoid object allocations during draw/layout operations 
(preallocate and reuse instead)"
+        errorLine1="            mLayerClient.setViewportSize(new 
FloatSize(right - left, bottom - top), true);"
+        errorLine2="                                         
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/java/org/mozilla/gecko/gfx/LayerView.java"
+            line="293"
+            column="42"/>
+    </issue>
+
+    <issue
+        id="DrawAllocation"
+        message="Avoid object allocations during draw/layout operations 
(preallocate and reuse instead)"
+        errorLine1="            canvas.drawBitmap(bmp, new Rect(0, 0, 
bmp.getWidth(), bmp.getHeight()),"
+        errorLine2="                                   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/ui/PageView.java"
+            line="58"
+            column="36"/>
+    </issue>
+
+    <issue
+        id="DrawAllocation"
+        message="Avoid object allocations during draw/layout operations 
(preallocate and reuse instead)"
+        errorLine1="                    new 
Rect(horizontalMargin,verticalMargin,canvas.getWidth()-horizontalMargin,"
+        errorLine2="                    ^">
+        <location
+            file="src/java/org/libreoffice/ui/PageView.java"
+            line="59"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="DrawAllocation"
+        message="Avoid object allocations during draw/layout operations 
(preallocate and reuse instead)"
+        errorLine1="            
canvas.drawText(getContext().getString(R.string.bmp_null), 100, 100, new 
Paint());"
+        errorLine2="                                                           
                      ~~~~~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/ui/PageView.java"
+            line="64"
+            column="82"/>
+    </issue>
+
+    <issue
+        id="NotifyDataSetChanged"
+        message="It will always be more efficient to use more specific change 
events if you can. Rely on `notifyDataSetChanged` as a last resort."
+        errorLine1="                
ColorPaletteAdapter.this.notifyDataSetChanged();"
+        errorLine2="                
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/ColorPaletteAdapter.java"
+            line="118"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="NotifyDataSetChanged"
+        message="It will always be more efficient to use more specific change 
events if you can. Rely on `notifyDataSetChanged` as a last resort."
+        errorLine1="                
ColorPickerAdapter.this.notifyDataSetChanged();"
+        errorLine2="                
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/ColorPickerAdapter.java"
+            line="147"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="ObsoleteLayoutParam"
+        message="Invalid layout param in a `ScrollView`: `layout_weight`"
+        errorLine1="                                
android:layout_weight=&quot;0.25&quot;"
+        errorLine2="                                
~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="312"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="ObsoleteLayoutParam"
+        message="Invalid layout param in a `ScrollView`: `layout_weight`"
+        errorLine1="                                
android:layout_weight=&quot;0.5&quot;"
+        errorLine2="                                
~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="379"
+            column="33"/>
+    </issue>
+
+    <issue
+        id="ObsoleteLayoutParam"
+        message="Invalid layout param in a `LinearLayout`: `layout_below`"
+        errorLine1="            
android:layout_below=&quot;@id/fontColorView&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_color_picker.xml"
+            line="63"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ObsoleteLayoutParam"
+        message="Invalid layout param in a `LinearLayout`: 
`layout_alignParentBottom`"
+        errorLine1="            
android:layout_alignParentBottom=&quot;true&quot;>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_color_picker.xml"
+            line="64"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ObsoleteSdkInt"
+        message="Unnecessary; SDK_INT is always >= 19"
+        errorLine1="@TargetApi(19)"
+        errorLine2="~~~~~~~~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/PDFDocumentAdapter.java"
+            line="20"
+            column="1"/>
+    </issue>
+
+    <issue
+        id="UseCompoundDrawables"
+        message="This tag and its children can be replaced by one 
`&lt;TextView/>` and a compound drawable"
+        errorLine1="&lt;LinearLayout"
+        errorLine2=" ~~~~~~~~~~~~">
+        <location
+            file="res/layout/document_part_list_layout.xml"
+            line="2"
+            column="2"/>
+    </issue>
+
+    <issue
+        id="VectorPath"
+        message="Very long vector path (871 characters), which is bad for 
performance. Considering reducing precision, removing minor details or 
rasterizing vector."
+        errorLine1="        android:pathData=&quot;M19.43,12.98c0.04,-0.32 
0.07,-0.64 0.07,-0.98s-0.03,-0.66 -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 
0.12,-0.64l-2,-3.46c-0.12,-0.22 -0.39,-0.3 -0.61,-0.22l-2.49,1c-0.52,-0.4 
-1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2 14,2h-4c-0.25,0 
-0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59 
-1.69,0.98l-2.49,-1c-0.23,-0.09 -0.49,0 -0.61,0.22l-2,3.46c-0.13,0.22 
-0.07,0.49 0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98s0.03,0.66 
0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.12,0.22 0.39,0.3 
0.61,0.22l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42 
0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25 1.17,-0.59 
1.69,-0.98l2.49,1c0.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49 
-0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 
3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z&quot;/>"
+        errorLine2="                          
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/drawable/ic_settings_24dp.xml"
+            line="8"
+            column="27"/>
+    </issue>
+
+    <issue
+        id="InefficientWeight"
+        message="Use a `layout_height` of `0dp` instead of `wrap_content` for 
better performance"
+        errorLine1="                    
android:layout_height=&quot;wrap_content&quot;"
+        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/activity_document_browser.xml"
+            line="73"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="InefficientWeight"
+        message="Use a `layout_height` of `0dp` instead of `match_parent` for 
better performance"
+        errorLine1="                                    
android:layout_height=&quot;match_parent&quot;"
+        errorLine2="                                    
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="66"
+            column="37"/>
+    </issue>
+
+    <issue
+        id="NestedWeights"
+        message="Nested weights are bad for performance"
+        errorLine1="                                        
android:layout_weight=&quot;0.25&quot;"
+        errorLine2="                                        
~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="74"
+            column="41"/>
+    </issue>
+
+    <issue
+        id="Overdraw"
+        message="Possible overdraw: Root element paints background `#fff` with 
a theme that also paints a background (inferred theme is 
`@style/LibreOfficeTheme`)"
+        errorLine1="    android:background=&quot;#fff&quot;"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/activity_main.xml"
+            line="8"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="Overdraw"
+        message="Possible overdraw: Root element paints background 
`@color/doorhanger_background_dark` with a theme that also paints a background 
(inferred theme is `@style/LibreOfficeTheme`)"
+        errorLine1="    
android:background=&quot;@color/doorhanger_background_dark&quot;>"
+        errorLine2="    
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/calc_header_popup.xml"
+            line="5"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="Overdraw"
+        message="Possible overdraw: Root element paints background `#aaa` with 
a theme that also paints a background (inferred theme is 
`@style/LibreOfficeTheme`)"
+        errorLine1="    android:background=&quot;#aaa&quot;"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/main.xml"
+            line="12"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="Overdraw"
+        message="Possible overdraw: Root element paints background 
`?attr/colorPrimary` with a theme that also paints a background (inferred theme 
is `@style/LibreOfficeTheme`)"
+        errorLine1="    android:background=&quot;?attr/colorPrimary&quot;"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="10"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="Overdraw"
+        message="Possible overdraw: Root element paints background 
`?attr/colorPrimary` with a theme that also paints a background (inferred theme 
is `@style/LibreOfficeTheme`)"
+        errorLine1="    android:background=&quot;?attr/colorPrimary&quot;"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_color_picker.xml"
+            line="9"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.drawable.background` appears to be unused">
+        <location
+            file="res/drawable-mdpi/background.png"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.background_light` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;background_light&quot;>#FAFAFA&lt;/color> &lt;!--Material Grey 50-->"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="12"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.background_normal` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;background_normal&quot;>#F5F5F5&lt;/color> &lt;!--Material Grey 
100-->"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="13"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.background_private` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;background_private&quot;>#FF292C29&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="14"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.background_tabs` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;background_tabs&quot;>#FF363B40&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="15"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.highlight` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;highlight&quot;>#33000000&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="16"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.highlight_focused` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;highlight_focused&quot;>#1A000000&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="17"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.highlight_dark` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;highlight_dark&quot;>#33FFFFFF&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="18"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.highlight_dark_focused` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;highlight_dark_focused&quot;>#1AFFFFFF&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="19"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.highlight_shaped` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;highlight_shaped&quot;>#FF696D71&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="22"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.highlight_shaped_focused` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;highlight_shaped_focused&quot;>#FF565B60&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="25"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.highlight_nav` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;highlight_nav&quot;>#FFA5ACB2&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="28"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.highlight_nav_focused` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;highlight_nav_focused&quot;>#FFB9C1C7&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="31"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.highlight_nav_pb` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;highlight_nav_pb&quot;>#FF545654&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="34"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.highlight_nav_focused_pb` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;highlight_nav_focused_pb&quot;>#FF3F423F&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="37"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.text_color_primary` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;text_color_primary&quot;>#222222&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="43"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.text_color_secondary` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;text_color_secondary&quot;>#777777&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="44"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.text_color_tertiary` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;text_color_tertiary&quot;>#9198A1&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="45"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.text_color_primary_inverse` appears to 
be unused"
+        errorLine1="    &lt;color 
name=&quot;text_color_primary_inverse&quot;>#FFFFFF&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="48"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.text_color_secondary_inverse` appears 
to be unused"
+        errorLine1="    &lt;color 
name=&quot;text_color_secondary_inverse&quot;>#DDDDDD&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="49"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.text_color_tertiary_inverse` appears to 
be unused"
+        errorLine1="    &lt;color 
name=&quot;text_color_tertiary_inverse&quot;>#A4A7A9&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="50"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.text_color_primary_disable_only` 
appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;text_color_primary_disable_only&quot;>#999999&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="53"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.text_color_hint` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;text_color_hint&quot;>#666666&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="56"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.text_color_hint_inverse` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;text_color_hint_inverse&quot;>#7F828A&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="57"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.text_color_highlight` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;text_color_highlight&quot;>#FF9500&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="60"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.text_color_highlight_inverse` appears 
to be unused"
+        errorLine1="    &lt;color 
name=&quot;text_color_highlight_inverse&quot;>#D06BFF&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="61"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.text_color_link` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;text_color_link&quot;>#22629E&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="64"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.splash_background` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;splash_background&quot;>#000000&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="66"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.splash_msgfont` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;splash_msgfont&quot;>#ffffff&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="67"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.splash_urlfont` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;splash_urlfont&quot;>#000000&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="68"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.splash_content` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;splash_content&quot;>#ffffff&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="69"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.doorhanger_text` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;doorhanger_text&quot;>#FF222222&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="71"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.doorhanger_link` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;doorhanger_link&quot;>#FF2AA1FE&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="72"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.doorhanger_divider_dark` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;doorhanger_divider_dark&quot;>#FFB3C2CE&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="74"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.validation_message_text` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;validation_message_text&quot;>#ffffff&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="77"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.url_bar_text_highlight` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;url_bar_text_highlight&quot;>#FFFF9500&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="78"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.url_bar_text_highlight_pb` appears to 
be unused"
+        errorLine1="    &lt;color 
name=&quot;url_bar_text_highlight_pb&quot;>#FFD06BFF&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="79"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.suggestion_primary` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;suggestion_primary&quot;>#dddddd&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="80"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.suggestion_pressed` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;suggestion_pressed&quot;>#bbbbbb&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="81"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.tab_row_pressed` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;tab_row_pressed&quot;>#4D000000&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="82"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.dialogtitle_textcolor` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;dialogtitle_textcolor&quot;>#ffffff&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="83"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.textbox_background` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;textbox_background&quot;>#FFF&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="85"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.textbox_background_disabled` appears to 
be unused"
+        errorLine1="    &lt;color 
name=&quot;textbox_background_disabled&quot;>#DDD&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="86"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.textbox_stroke` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;textbox_stroke&quot;>#000&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="87"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.textbox_stroke_disabled` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;textbox_stroke_disabled&quot;>#666&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="88"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.url_bar_urltext` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;url_bar_urltext&quot;>#A6A6A6&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="90"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.url_bar_domaintext` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;url_bar_domaintext&quot;>#000&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="91"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.url_bar_domaintext_private` appears to 
be unused"
+        errorLine1="    &lt;color 
name=&quot;url_bar_domaintext_private&quot;>#FFF&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="92"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.url_bar_blockedtext` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;url_bar_blockedtext&quot;>#b14646&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="93"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.url_bar_shadow` appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;url_bar_shadow&quot;>#12000000&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="94"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.home_last_tab_bar_bg` appears to be 
unused"
+        errorLine1="    &lt;color 
name=&quot;home_last_tab_bar_bg&quot;>#FFF5F7F9&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="96"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.color.panel_grid_item_image_background` 
appears to be unused"
+        errorLine1="    &lt;color 
name=&quot;panel_grid_item_image_background&quot;>#D1D9E1&lt;/color>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="98"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.dimen.activity_horizontal_margin` appears to 
be unused"
+        errorLine1="    &lt;dimen 
name=&quot;activity_horizontal_margin&quot;>16dp&lt;/dimen>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/dimens.xml"
+            line="3"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.dimen.activity_vertical_margin` appears to be 
unused"
+        errorLine1="    &lt;dimen 
name=&quot;activity_vertical_margin&quot;>16dp&lt;/dimen>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/dimens.xml"
+            line="4"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.dimen.text_selection_handle_width` appears to 
be unused"
+        errorLine1="    &lt;dimen 
name=&quot;text_selection_handle_width&quot;>30dp&lt;/dimen>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/dimens.xml"
+            line="5"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.dimen.text_selection_handle_height` appears 
to be unused"
+        errorLine1="    &lt;dimen 
name=&quot;text_selection_handle_height&quot;>44dp&lt;/dimen>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/dimens.xml"
+            line="6"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.dimen.text_selection_handle_shadow` appears 
to be unused"
+        errorLine1="    &lt;dimen 
name=&quot;text_selection_handle_shadow&quot;>2dp&lt;/dimen>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/dimens.xml"
+            line="7"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.dimen.file_icon_width` appears to be unused"
+        errorLine1="    &lt;dimen 
name=&quot;file_icon_width&quot;>32dp&lt;/dimen>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/dimens.xml"
+            line="10"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.layout.document_viewer` appears to be unused"
+        errorLine1="&lt;RelativeLayout 
xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;";
+        errorLine2="^">
+        <location
+            file="res/layout/document_viewer.xml"
+            line="8"
+            column="1"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.drawable.ic_menu` appears to be unused"
+        errorLine1="&lt;bitmap 
xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;";
+        errorLine2="^">
+        <location
+            file="res/drawable-hdpi/ic_menu.xml"
+            line="3"
+            column="1"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.drawable.ic_menu_black_24dp` appears to be 
unused">
+        <location
+            file="res/drawable-xxxhdpi/ic_menu_black_24dp.png"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.drawable.ic_settings_24dp` appears to be 
unused"
+        errorLine1="&lt;vector 
xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;";
+        errorLine2="^">
+        <location
+            file="res/drawable/ic_settings_24dp.xml"
+            line="1"
+            column="1"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.drawable.ic_sort_24dp` appears to be unused"
+        errorLine1="&lt;vector android:autoMirrored=&quot;true&quot; 
android:height=&quot;24dp&quot;"
+        errorLine2="^">
+        <location
+            file="res/drawable/ic_sort_24dp.xml"
+            line="9"
+            column="1"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.drawable.light_view_as_grid` appears to be 
unused">
+        <location
+            file="res/drawable-hdpi/light_view_as_grid.png"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.drawable.light_view_as_list` appears to be 
unused">
+        <location
+            file="res/drawable-hdpi/light_view_as_list.png"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.layout.main` appears to be unused"
+        errorLine1="&lt;LinearLayout 
xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;";
+        errorLine2="^">
+        <location
+            file="res/layout/main.xml"
+            line="9"
+            column="1"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.drawable.shadow` appears to be unused">
+        <location
+            file="res/drawable-mdpi/shadow.png"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.string.app_about_name` appears to be unused"
+        errorLine1="    &lt;string 
name=&quot;app_about_name&quot;>&lt;b>LibreOffice Viewer 
\&apos;Beta\&apos;&lt;/b>&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="7"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.string.browser_app_name` appears to be unused"
+        errorLine1="    &lt;string 
name=&quot;browser_app_name&quot;>LibreOffice Browser&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="27"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.string.menu_search` appears to be unused"
+        errorLine1="    &lt;string 
name=&quot;menu_search&quot;>Search&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="28"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.string.search_not_found` appears to be unused"
+        errorLine1="    &lt;string name=&quot;search_not_found&quot;>Keyword 
not found&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="29"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.string.menu_preferences` appears to be unused"
+        errorLine1="    &lt;string 
name=&quot;menu_preferences&quot;>Preferences&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="32"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.string.action_bold` appears to be unused"
+        errorLine1="    &lt;string 
name=&quot;action_bold&quot;>Bold&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="47"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.string.action_underline` appears to be unused"
+        errorLine1="    &lt;string 
name=&quot;action_underline&quot;>Underline&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="48"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.string.action_italic` appears to be unused"
+        errorLine1="    &lt;string 
name=&quot;action_italic&quot;>Italic&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="49"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.string.action_strikeout` appears to be unused"
+        errorLine1="    &lt;string name=&quot;action_strikeout&quot;>Strike 
Out&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="50"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.string.message_save_incomplete` appears to be 
unused"
+        errorLine1="    &lt;string 
name=&quot;message_save_incomplete&quot;>Save incomplete. Were there any 
changes?&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="62"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource 
`R.string.alert_copy_svg_slide_show_to_clipboard` appears to be unused"
+        errorLine1="    &lt;string 
name=&quot;alert_copy_svg_slide_show_to_clipboard&quot;>Your Android device 
doesn\&apos;t support in-app svg slideshow. We copied the slideshow link to 
clipboard. Please press home button, open a modern web browser, paste in the 
address bar, and go.&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="77"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource 
`R.string.alert_copy_svg_slide_show_to_clipboard_dismiss` appears to be unused"
+        errorLine1="    &lt;string 
name=&quot;alert_copy_svg_slide_show_to_clipboard_dismiss&quot;>OK&lt;/string>"
+        errorLine2="            
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="78"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.string.unable_to_go_further` appears to be 
unused"
+        errorLine1="    &lt;string 
name=&quot;unable_to_go_further&quot;>Unable to go further.&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="154"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.string.directory_not_saved` appears to be 
unused"
+        errorLine1="    &lt;string 
name=&quot;directory_not_saved&quot;>Directory not saved.&lt;/string>"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="164"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.layout.text_selection_handles` appears to be 
unused"
+        errorLine1="&lt;merge 
xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;";
+        errorLine2="^">
+        <location
+            file="res/layout/text_selection_handles.xml"
+            line="6"
+            column="1"/>
+    </issue>
+
+    <issue
+        id="UnusedResources"
+        message="The resource `R.style.LibreOfficeTheme_NavigationView` 
appears to be unused"
+        errorLine1="    &lt;style 
name=&quot;LibreOfficeTheme.NavigationView&quot;>"
+        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/themes.xml"
+            line="17"
+            column="12"/>
+    </issue>
+
+    <issue
+        id="UselessParent"
+        message="This `ScrollView` layout or its `LinearLayout` parent is 
unnecessary"
+        errorLine1="                        &lt;ScrollView"
+        errorLine2="                         ~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="55"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="UselessParent"
+        message="This `ScrollView` layout or its `LinearLayout` parent is 
unnecessary"
+        errorLine1="                        &lt;ScrollView"
+        errorLine2="                         ~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="193"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="UselessParent"
+        message="This `ScrollView` layout or its `LinearLayout` parent is 
unnecessary"
+        errorLine1="                        &lt;ScrollView"
+        errorLine2="                         ~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="305"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="UselessParent"
+        message="This `ScrollView` layout or its `LinearLayout` parent is 
unnecessary"
+        errorLine1="                        &lt;ScrollView"
+        errorLine2="                         ~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="373"
+            column="26"/>
+    </issue>
+
+    <issue
+        id="RedundantNamespace"
+        message="This namespace declaration is redundant"
+        errorLine1="&lt;LinearLayout 
xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;";
+        errorLine2="              
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/about.xml"
+            line="6"
+            column="15"/>
+    </issue>
+
+    <issue
+        id="TooDeepLayout"
+        message="`toolbar_bottom.xml` has more than 10 levels, bad for 
performance"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="70"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="UnusedNamespace"
+        message="Unused namespace declaration xmlns:android; already declared 
on the root element"
+        errorLine1="&lt;LinearLayout 
xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;";
+        errorLine2="              
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/about.xml"
+            line="6"
+            column="15"/>
+    </issue>
+
+    <issue
+        id="TypographyEllipsis"
+        message="Replace &quot;...&quot; with ellipsis character (…, 
&amp;#8230;) ?"
+        errorLine1="    &lt;string name=&quot;action_save_as&quot;>Speichern 
unter...&lt;/string>"
+        errorLine2="                                  ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values-de/strings.xml"
+            line="50"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="TypographyEllipsis"
+        message="Replace &quot;...&quot; with ellipsis character (…, 
&amp;#8230;) ?"
+        errorLine1="    &lt;string name=&quot;action_save_as&quot;>Save 
As...&lt;/string>"
+        errorLine2="                                  ~~~~~~~~~~">
+        <location
+            file="res/values/strings.xml"
+            line="53"
+            column="35"/>
+    </issue>
+
+    <issue
+        id="IconLocation"
+        message="Found bitmap drawable `res/drawable/calc.png` in densityless 
folder">
+        <location
+            file="res/drawable/calc.png"/>
+    </issue>
+
+    <issue
+        id="IconLocation"
+        message="Found bitmap drawable `res/drawable/draw.png` in densityless 
folder">
+        <location
+            file="res/drawable/draw.png"/>
+    </issue>
+
+    <issue
+        id="IconLocation"
+        message="Found bitmap drawable `res/drawable/dummy_page.png` in 
densityless folder">
+        <location
+            file="res/drawable/dummy_page.png"/>
+    </issue>
+
+    <issue
+        id="IconLocation"
+        message="Found bitmap drawable `res/drawable/impress.png` in 
densityless folder">
+        <location
+            file="res/drawable/impress.png"/>
+    </issue>
+
+    <issue
+        id="IconLocation"
+        message="Found bitmap drawable `res/drawable/writer.png` in 
densityless folder">
+        <location
+            file="res/drawable/writer.png"/>
+    </issue>
+
+    <issue
+        id="IconDensities"
+        message="Missing the following drawables in `drawable-hdpi`: 
background.png, decrementindent.png, handle_image_end.png, 
handle_image_middle.png, handle_image_start.png... (22 more)">
+        <location
+            file="res/drawable-hdpi"/>
+    </issue>
+
+    <issue
+        id="IconDensities"
+        message="Missing the following drawables in `drawable-mdpi`: 
decrementindent.png, handle_alias_end.xml, handle_alias_middle.xml, 
handle_alias_start.xml, handle_image_end.png... (33 more)">
+        <location
+            file="res/drawable-mdpi"/>
+    </issue>
+
+    <issue
+        id="IconDensities"
+        message="Missing the following drawables in `drawable-xhdpi`: 
background.png, decrementindent.png, handle_alias_end.xml, 
handle_alias_middle.xml, handle_alias_start.xml... (32 more)">
+        <location
+            file="res/drawable-xhdpi"/>
+    </issue>
+
+    <issue
+        id="IconMissingDensityFolder"
+        message="Missing density variation folders in `res`: drawable-xxhdpi">
+        <location
+            file="res"/>
+    </issue>
+
+    <issue
+        id="AlwaysShowAction"
+        message="Prefer &quot;`ifRoom`&quot; instead of &quot;`always`&quot;"
+        errorLine1="              app:showAsAction=&quot;always&quot;/>"
+        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/menu/main.xml"
+            line="14"
+            column="15"/>
+        <location
+            file="res/menu/main.xml"
+            line="20"
+            column="15"/>
+        <location
+            file="res/menu/main.xml"
+            line="26"
+            column="15"/>
+        <location
+            file="res/menu/main.xml"
+            line="32"
+            column="13"/>
+        <location
+            file="res/menu/main.xml"
+            line="112"
+            column="13"/>
+        <location
+            file="res/menu/main.xml"
+            line="118"
+            column="13"/>
+        <location
+            file="res/menu/main.xml"
+            line="124"
+            column="13"/>
+        <location
+            file="res/menu/main.xml"
+            line="130"
+            column="13"/>
+        <location
+            file="res/menu/main.xml"
+            line="140"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="Autofill"
+        message="Missing `autofillHints` attribute"
+        errorLine1="            &lt;EditText"
+        errorLine2="             ~~~~~~~~">
+        <location
+            file="res/layout/calc_header_popup.xml"
+            line="73"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="Autofill"
+        message="Missing `autofillHints` attribute"
+        errorLine1="    &lt;EditText"
+        errorLine2="     ~~~~~~~~">
+        <location
+            file="res/layout/password_dialog.xml"
+            line="6"
+            column="6"/>
+    </issue>
+
+    <issue
+        id="Autofill"
+        message="Missing `autofillHints` attribute"
+        errorLine1="        &lt;EditText"
+        errorLine2="         ~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="454"
+            column="10"/>
+    </issue>
+
+    <issue
+        id="Autofill"
+        message="Missing `autofillHints` attribute"
+        errorLine1="            &lt;EditText"
+        errorLine2="             ~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="493"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="Autofill"
+        message="Missing `autofillHints` attribute"
+        errorLine1="            &lt;EditText"
+        errorLine2="             ~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="533"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="Autofill"
+        message="Missing `autofillHints` attribute"
+        errorLine1="            &lt;EditText"
+        errorLine2="             ~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="543"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="Autofill"
+        message="Missing `autofillHints` attribute"
+        errorLine1="            &lt;EditText"
+        errorLine2="             ~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="553"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="ReportShortcutUsage"
+        message="Calling this method indicates use of dynamic shortcuts, but 
there are no calls to methods that track shortcut usage, such as 
`pushDynamicShortcut` or `reportShortcutUsed`. Calling these methods is 
recommended, as they track shortcut usage and allow launchers to adjust which 
shortcuts appear based on activation history. Please see 
https://developer.android.com/develop/ui/views/launch/shortcuts/managing-shortcuts#track-usage";
+        errorLine1="            
shortcutManager.setDynamicShortcuts(shortcuts);"
+        errorLine2="            
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/ui/LibreOfficeUIActivity.java"
+            line="430"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="ClickableViewAccessibility"
+        message="`onTouch` should call `View#performClick` when a click is 
detected"
+        errorLine1="                public boolean onTouch(View v, MotionEvent 
event) {"
+        errorLine2="                               ~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/overlay/CalcHeadersView.java"
+            line="69"
+            column="32"/>
+    </issue>
+
+    <issue
+        id="ClickableViewAccessibility"
+        message="Custom view `LayerView` overrides `onTouchEvent` but not 
`performClick`"
+        errorLine1="    public boolean onTouchEvent(MotionEvent event) {"
+        errorLine2="                   ~~~~~~~~~~~~">
+        <location
+            file="src/java/org/mozilla/gecko/gfx/LayerView.java"
+            line="115"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="ClickableViewAccessibility"
+        message="`OnSlideSwipeListener#onTouch` should call 
`View#performClick` when a click is detected"
+        errorLine1="    public boolean onTouch(View v, MotionEvent me) {"
+        errorLine2="                   ~~~~~~~">
+        <location
+            file="src/java/org/mozilla/gecko/OnSlideSwipeListener.java"
+            line="89"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="ClickableViewAccessibility"
+        message="Custom view ``WebView`` has `setOnTouchListener` called on it 
but does not override `performClick`"
+        errorLine1="        mWebView.setOnTouchListener(new 
View.OnTouchListener() {"
+        errorLine2="        ^">
+        <location
+            file="src/java/org/libreoffice/PresentationActivity.java"
+            line="40"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="ClickableViewAccessibility"
+        message="`onTouch` should call `View#performClick` when a click is 
detected"
+        errorLine1="            public boolean onTouch(View v, MotionEvent 
event) {"
+        errorLine2="                           ~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/PresentationActivity.java"
+            line="42"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="ClickableViewAccessibility"
+        message="`onTouch` should call `View#performClick` when a click is 
detected"
+        errorLine1="            public boolean onTouch(View v, MotionEvent 
event) {"
+        errorLine2="                           ~~~~~~~">
+        <location
+            file="src/java/org/libreoffice/PresentationActivity.java"
+            line="77"
+            column="28"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="        
&lt;com.google.android.material.floatingactionbutton.FloatingActionButton"
+        errorLine2="         
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/activity_document_browser.xml"
+            line="137"
+            column="10"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="        
&lt;com.google.android.material.floatingactionbutton.FloatingActionButton"
+        errorLine2="         
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/activity_document_browser.xml"
+            line="169"
+            column="10"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="        
&lt;com.google.android.material.floatingactionbutton.FloatingActionButton"
+        errorLine2="         
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/activity_document_browser.xml"
+            line="201"
+            column="10"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="        
&lt;com.google.android.material.floatingactionbutton.FloatingActionButton"
+        errorLine2="         
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/activity_document_browser.xml"
+            line="233"
+            column="10"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageButton"
+        errorLine2="     ~~~~~~~~~~~">
+        <location
+            file="res/layout/colorbox.xml"
+            line="6"
+            column="6"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="    &lt;ImageView"
+        errorLine2="     ~~~~~~~~~">
+        <location
+            file="res/layout/document_part_list_layout.xml"
+            line="10"
+            column="6"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="        &lt;ImageButton"
+        errorLine2="         ~~~~~~~~~~~">
+        <location
+            file="res/layout/presentation_mode.xml"
+            line="16"
+            column="10"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="        &lt;ImageButton"
+        errorLine2="         ~~~~~~~~~~~">
+        <location
+            file="res/layout/presentation_mode.xml"
+            line="25"
+            column="10"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="70"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="80"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="90"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="100"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="110"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="140"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="150"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="160"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="170"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="207"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="217"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="227"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="237"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="253"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="263"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="273"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="283"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                &lt;ImageButton"
+        errorLine2="                                 ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="315"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                &lt;ImageButton"
+        errorLine2="                                 ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="325"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                &lt;ImageButton"
+        errorLine2="                                 ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="335"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                &lt;ImageButton"
+        errorLine2="                                 ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="345"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                &lt;ImageButton"
+        errorLine2="                                 ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="355"
+            column="34"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="398"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="                                    &lt;ImageButton"
+        errorLine2="                                     ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="427"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="             ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="503"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="             ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="511"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="             ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="519"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="             ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="563"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="ContentDescription"
+        message="Missing `contentDescription` attribute on image"
+        errorLine1="            &lt;ImageButton"
+        errorLine2="             ~~~~~~~~~~~">
+        <location
+            file="res/layout/toolbar_color_picker.xml"
+            line="30"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="KeyboardInaccessibleWidget"
+        message="&apos;clickable&apos; attribute found, please also add 
&apos;focusable&apos;"
+        errorLine1="        android:clickable=&quot;true&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/activity_document_browser.xml"
+            line="111"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="KeyboardInaccessibleWidget"
+        message="&apos;clickable&apos; attribute found, please also add 
&apos;focusable&apos;"
+        errorLine1="            android:clickable=&quot;true&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/activity_document_browser.xml"
+            line="143"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="KeyboardInaccessibleWidget"
+        message="&apos;clickable&apos; attribute found, please also add 
&apos;focusable&apos;"
+        errorLine1="            android:clickable=&quot;true&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/activity_document_browser.xml"
+            line="175"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="KeyboardInaccessibleWidget"
+        message="&apos;clickable&apos; attribute found, please also add 
&apos;focusable&apos;"
+        errorLine1="            android:clickable=&quot;true&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/activity_document_browser.xml"
+            line="207"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="KeyboardInaccessibleWidget"
+        message="&apos;clickable&apos; attribute found, please also add 
&apos;focusable&apos;"
+        errorLine1="            android:clickable=&quot;true&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/activity_document_browser.xml"
+            line="239"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="KeyboardInaccessibleWidget"
+        message="&apos;clickable&apos; attribute found, please also add 
&apos;focusable&apos;"
+        errorLine1="        android:clickable=&quot;true&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/colorbox.xml"
+            line="11"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="KeyboardInaccessibleWidget"
+        message="&apos;clickable&apos; attribute found, please also add 
&apos;focusable&apos;"
+        errorLine1="        android:clickable=&quot;true&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/number_picker.xml"
+            line="30"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="KeyboardInaccessibleWidget"
+        message="&apos;clickable&apos; attribute found, please also add 
&apos;focusable&apos;"
+        errorLine1="        android:clickable=&quot;true&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/number_picker.xml"
+            line="64"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="KeyboardInaccessibleWidget"
+        message="&apos;clickable&apos; attribute found, please also add 
&apos;focusable&apos;"
+        errorLine1="        android:clickable=&quot;true&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/number_picker.xml"
+            line="95"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="KeyboardInaccessibleWidget"
+        message="&apos;clickable&apos; attribute found, please also add 
&apos;focusable&apos;"
+        errorLine1="        android:clickable=&quot;true&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/number_picker.xml"
+            line="126"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="LabelFor"
+        message="Missing accessibility label: provide either a view with an 
`android:labelFor` that references this view or provide an `android:hint`"
+        errorLine1="                &lt;EditText"
+        errorLine2="                 ~~~~~~~~">
+        <location
+            file="res/layout/activity_main.xml"
+            line="42"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="LabelFor"
+        message="Missing accessibility label: provide either a view with an 
`android:labelFor` that references this view or provide an `android:hint`"
+        errorLine1="                &lt;EditText"
+        errorLine2="                 ~~~~~~~~">
+        <location
+            file="res/layout/activity_main.xml"
+            line="52"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="LabelFor"
+        message="Missing accessibility label: provide either a view with an 
`android:labelFor` that references this view or provide an `android:hint`"
+        errorLine1="        &lt;EditText"
+        errorLine2="         ~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="454"
+            column="10"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="Hardcoded string &quot;Rows:&quot;, should use `@string` 
resource"
+        errorLine1="        android:text=&quot;Rows:&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/number_picker.xml"
+            line="16"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="Hardcoded string &quot;+&quot;, should use `@string` resource"
+        errorLine1="        android:text=&quot;+&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/number_picker.xml"
+            line="32"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="Hardcoded string &quot;3&quot;, should use `@string` resource"
+        errorLine1="        android:text=&quot;3&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/number_picker.xml"
+            line="45"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="Hardcoded string &quot;-&quot;, should use `@string` resource"
+        errorLine1="        android:text=&quot;-&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/number_picker.xml"
+            line="60"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="Hardcoded string &quot;Columns:&quot;, should use `@string` 
resource"
+        errorLine1="        android:text=&quot;Columns:&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/number_picker.xml"
+            line="77"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="Hardcoded string &quot;-&quot;, should use `@string` resource"
+        errorLine1="        android:text=&quot;-&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/number_picker.xml"
+            line="90"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="Hardcoded string &quot;3&quot;, should use `@string` resource"
+        errorLine1="        android:text=&quot;3&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/number_picker.xml"
+            line="108"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="HardcodedText"
+        message="Hardcoded string &quot;+&quot;, should use `@string` resource"
+        errorLine1="        android:text=&quot;+&quot;"
+        errorLine2="        ~~~~~~~~~~~~~~~~">
+        <location
+            file="res/layout/number_picker.xml"
+            line="122"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="RelativeOverlap"
+        message="`@id/slide_show_nav_back` can overlap 
`@id/slide_show_nav_prev` if @string/slideshow_action_back grows due to 
localized text expansion"
+        errorLine1="        &lt;Button"
+        errorLine2="         ~~~~~~">
+        <location
+            file="res/layout/presentation_mode.xml"
+            line="34"
+            column="10"/>
+    </issue>
+
+    <issue
+        id="RelativeOverlap"
+        message="`TextView-1` can overlap `@id/font_color_picker_button` if 
@string/font_color grows due to localized text expansion"
+        errorLine1="                                    &lt;TextView"
+        errorLine2="                                     ~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="386"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="RelativeOverlap"
+        message="`TextView-1` can overlap `@id/font_back_color_picker_button` 
if @string/highlight_color grows due to localized text expansion"
+        errorLine1="                                    &lt;TextView"
+        errorLine2="                                     ~~~~~~~~">
+        <location
+            file="res/layout/toolbar_bottom.xml"
+            line="415"
+            column="38"/>
+    </issue>
+
+    <issue
+        id="RelativeOverlap"
+        message="`@id/button_auto_color` can overlap 
`@id/button_go_back_color_picker` if @string/automatic grows due to localized 
text expansion"
+        errorLine1="            &lt;Button"
+        errorLine2="             ~~~~~~">
+        <location
+            file="res/layout/toolbar_color_picker.xml"
+            line="38"
+            column="14"/>
+    </issue>
+
+    <issue
+        id="RtlHardcoded"
+        message="Redundant attribute `layout_toRightOf`; already defining 
`layout_toEndOf` with `targetSdkVersion` 34"
+        errorLine1="                    
android:layout_toRightOf=&quot;@+id/calc_header_top_left&quot;"

... etc. - the rest is truncated

Reply via email to