LeOS-Ice-browser/app/lint-baseline.xml

2316 lines
100 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?xml version="1.0" encoding="UTF-8"?>
<!-- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<issues format="6" by="lint 8.4.0" type="baseline" client="gradle" dependencies="false" name="AGP (8.4.0)" variant="all" version="8.4.0">
<issue
id="UseGetLayoutInflater"
message="Use of LayoutInflater.from(Context) detected. Consider using layoutInflater instead"
errorLine1=" val layout = LayoutInflater.from(context)"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt"
line="429"
column="30"/>
</issue>
<issue
id="ScopedStorage"
message="READ_EXTERNAL_STORAGE is deprecated (and is not granted) when targeting Android 13+. If you need to query or interact with MediaStore or media files on the shared storage, you should instead use one or more new storage permissions: `READ_MEDIA_IMAGES`, `READ_MEDIA_VIDEO` or `READ_MEDIA_AUDIO`."
errorLine1=" &lt;uses-permission android:name=&quot;android.permission.READ_EXTERNAL_STORAGE&quot; />"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/AndroidManifest.xml"
line="11"
column="36"/>
</issue>
<issue
id="ScopedStorage"
message="READ_EXTERNAL_STORAGE is deprecated (and is not granted) when targeting Android 13+. If you need to query or interact with MediaStore or media files on the shared storage, you should instead use one or more new storage permissions: `READ_MEDIA_IMAGES`, `READ_MEDIA_VIDEO` or `READ_MEDIA_AUDIO`."
errorLine1=" &lt;uses-permission android:name=&quot;android.permission.READ_EXTERNAL_STORAGE&quot; />"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/debug/AndroidManifest.xml"
line="20"
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="src/main/res/layout/fragment_save_search_engine.xml"
line="17"
column="9"/>
</issue>
<issue
id="KotlinNullnessAnnotation"
message="Do not use `@NonNull` in Kotlin; the nullability is already implied by the Kotlin type `RecyclerView.ViewHolder` **not** ending with `?`"
errorLine1=" @NonNull viewHolder: RecyclerView.ViewHolder,"
errorLine2=" ~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/tabstray/browser/DraggableItemAnimator.kt"
line="13"
column="9"/>
</issue>
<issue
id="KotlinNullnessAnnotation"
message="Do not use `@NonNull` in Kotlin; the nullability is already implied by the Kotlin type `RecyclerView.ItemAnimator.ItemHolderInfo` **not** ending with `?`"
errorLine1=" @NonNull preLayoutInfo: RecyclerView.ItemAnimator.ItemHolderInfo,"
errorLine2=" ~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/tabstray/browser/DraggableItemAnimator.kt"
line="14"
column="9"/>
</issue>
<issue
id="KotlinNullnessAnnotation"
message="Do not use `@NonNull` in Kotlin; the nullability is already implied by the Kotlin type `RecyclerView.ItemAnimator.ItemHolderInfo` **not** ending with `?`"
errorLine1=" @NonNull postLayoutInfo: RecyclerView.ItemAnimator.ItemHolderInfo,"
errorLine2=" ~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/tabstray/browser/DraggableItemAnimator.kt"
line="15"
column="9"/>
</issue>
<issue
id="UnusedAttribute"
message="Attribute `android:foreground` has no effect on API levels lower than 23 (current min is 21)"
errorLine1=" android:foreground=&quot;?android:attr/selectableItemBackground&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/account_preference.xml"
line="8"
column="5"/>
</issue>
<issue
id="UnusedAttribute"
message="Attribute `android:foreground` has no effect on API levels lower than 23 (current min is 21)"
errorLine1=" android:foreground=&quot;@drawable/rounded_ripple&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/component_collection_creation.xml"
line="144"
column="9"/>
</issue>
<issue
id="UnusedAttribute"
message="Attribute `shortcutId` is only used in API level 25 and higher (current min is 21)"
errorLine1=" android:shortcutId=&quot;password_manager&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/debug/res/xml/shortcuts.xml"
line="8"
column="9"/>
</issue>
<issue
id="UnusedAttribute"
message="Attribute `shortcutId` is only used in API level 25 and higher (current min is 21)"
errorLine1=" android:shortcutId=&quot;password_manager&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/xml/shortcuts.xml"
line="8"
column="9"/>
</issue>
<issue
id="UnusedAttribute"
message="Attribute `shortcutShortLabel` is only used in API level 25 and higher (current min is 21)"
errorLine1=" android:shortcutShortLabel=&quot;@string/home_screen_shortcut_passwords&quot;>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/debug/res/xml/shortcuts.xml"
line="11"
column="9"/>
</issue>
<issue
id="UnusedAttribute"
message="Attribute `shortcutShortLabel` is only used in API level 25 and higher (current min is 21)"
errorLine1=" android:shortcutShortLabel=&quot;@string/home_screen_shortcut_passwords&quot;>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/xml/shortcuts.xml"
line="11"
column="9"/>
</issue>
<issue
id="UnusedAttribute"
message="Attribute `shortcutId` is only used in API level 25 and higher (current min is 21)"
errorLine1=" android:shortcutId=&quot;open_new_tab&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/debug/res/xml/shortcuts.xml"
line="18"
column="9"/>
</issue>
<issue
id="UnusedAttribute"
message="Attribute `shortcutId` is only used in API level 25 and higher (current min is 21)"
errorLine1=" android:shortcutId=&quot;open_new_tab&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/xml/shortcuts.xml"
line="18"
column="9"/>
</issue>
<issue
id="UnusedAttribute"
message="Attribute `shortcutShortLabel` is only used in API level 25 and higher (current min is 21)"
errorLine1=" android:shortcutShortLabel=&quot;@string/home_screen_shortcut_open_new_tab_2&quot;>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/debug/res/xml/shortcuts.xml"
line="21"
column="9"/>
</issue>
<issue
id="UnusedAttribute"
message="Attribute `shortcutShortLabel` is only used in API level 25 and higher (current min is 21)"
errorLine1=" android:shortcutShortLabel=&quot;@string/home_screen_shortcut_open_new_tab_2&quot;>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/xml/shortcuts.xml"
line="21"
column="9"/>
</issue>
<issue
id="UnusedAttribute"
message="Attribute `shortcutId` is only used in API level 25 and higher (current min is 21)"
errorLine1=" android:shortcutId=&quot;open_new_private_tab&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/debug/res/xml/shortcuts.xml"
line="28"
column="9"/>
</issue>
<issue
id="UnusedAttribute"
message="Attribute `shortcutId` is only used in API level 25 and higher (current min is 21)"
errorLine1=" android:shortcutId=&quot;open_new_private_tab&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/xml/shortcuts.xml"
line="28"
column="9"/>
</issue>
<issue
id="UnusedAttribute"
message="Attribute `shortcutShortLabel` is only used in API level 25 and higher (current min is 21)"
errorLine1=" android:shortcutShortLabel=&quot;@string/home_screen_shortcut_open_new_private_tab_2&quot;>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/debug/res/xml/shortcuts.xml"
line="31"
column="9"/>
</issue>
<issue
id="UnusedAttribute"
message="Attribute `shortcutShortLabel` is only used in API level 25 and higher (current min is 21)"
errorLine1=" android:shortcutShortLabel=&quot;@string/home_screen_shortcut_open_new_private_tab_2&quot;>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/xml/shortcuts.xml"
line="31"
column="9"/>
</issue>
<issue
id="UnusedAttribute"
message="Attribute `android:foreground` has no effect on API levels lower than 23 (current min is 21)"
errorLine1=" android:foreground=&quot;?android:selectableItemBackground&quot;>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/tab_tray_item.xml"
line="13"
column="5"/>
</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=" config.setLocale(Locale(&quot;en&quot;))"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/ext/Context.kt"
line="78"
column="9"/>
</issue>
<issue
id="InflateParams"
message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout&apos;s root element)"
errorLine1=" .inflate(R.layout.crash_extension_dialog, null, false)"
errorLine2=" ~~~~">
<location
file="src/main/java/org/mozilla/fenix/addons/ExtensionsProcessDisabledForegroundController.kt"
line="80"
column="59"/>
</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=" .inflate(R.layout.delete_history_time_range_dialog, null)"
errorLine2=" ~~~~">
<location
file="src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt"
line="430"
column="73"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="122"
column="17"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="124"
column="17"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="126"
column="17"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="128"
column="17"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="130"
column="17"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="132"
column="17"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="134"
column="17"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="136"
column="17"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="138"
column="17"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="140"
column="17"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="142"
column="17"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="144"
column="17"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="146"
column="17"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="148"
column="17"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="150"
column="17"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="152"
column="17"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="154"
column="17"/>
</issue>
<issue
id="IntentFilterUniqueDataAttributes"
message="Consider splitting data tag into multiple tags with individual attributes to avoid confusion"
errorLine1=" &lt;data android:scheme=&quot;${deepLinkScheme}&quot;"
errorLine2=" ^">
<location
file="src/main/AndroidManifest.xml"
line="156"
column="17"/>
</issue>
<issue
id="InvalidLicenseFormat"
message="The license comment must be followed by a newline character"
errorLine1=" * file, You can obtain one at http://mozilla.org/MPL/2.0/. */"
errorLine2=" ~">
<location
file="src/main/java/org/mozilla/fenix/translations/TranslationsDialogStore.kt"
line="3"
column="62"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.about_list_item"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/settings/about/viewholders/AboutItemViewHolder.kt"
line="34"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.account_share_list_item"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/share/viewholders/AccountDeviceViewHolder.kt"
line="61"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.app_share_list_item"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/share/viewholders/AppViewHolder.kt"
line="38"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.bookmark_list_item"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/library/bookmarks/viewholders/BookmarkNodeViewHolder.kt"
line="119"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.library_separator"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/library/bookmarks/viewholders/BookmarkSeparatorViewHolder.kt"
line="16"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.tab_tray_grid_item"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/tabstray/browser/BrowserTabViewHolder.kt"
line="75"
column="35"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.tab_tray_item"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/tabstray/browser/BrowserTabViewHolder.kt"
line="119"
column="35"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.collection_tab_list_row"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/collections/CollectionCreationTabListAdapter.kt"
line="119"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.credit_card_list_item"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/settings/creditcards/view/CreditCardItemViewHolder.kt"
line="59"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.component_credit_cards"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/settings/creditcards/view/CreditCardsManagementView.kt"
line="44"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.download_list_item"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/library/downloads/viewholders/DownloadsListItemViewHolder.kt"
line="85"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.exceptions_description"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/exceptions/viewholders/ExceptionsHeaderViewHolder.kt"
line="28"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.site_list_item"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/exceptions/viewholders/ExceptionsListItemViewHolder.kt"
line="42"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.history_list_item"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/library/history/viewholders/HistoryListItemViewHolder.kt"
line="158"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.history_metadata_group_list_item"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/library/historymetadata/view/HistoryMetadataGroupItemViewHolder.kt"
line="70"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.no_collections_message"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/NoCollectionsMessageViewHolder.kt"
line="108"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.normal_browser_tray_list"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/tabstray/viewholders/NormalBrowserPageViewHolder.kt"
line="160"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.private_browser_tray_list"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/tabstray/viewholders/PrivateBrowserPageViewHolder.kt"
line="59"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.history_list_item"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/library/recentlyclosed/RecentlyClosedItemViewHolder.kt"
line="63"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.collections_list_item"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/collections/SaveCollectionListAdapter.kt"
line="63"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.top_placeholder_item"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/home/TopPlaceholderViewHolder.kt"
line="22"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.top_site_item"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/home/topsites/TopSiteItemViewHolder.kt"
line="216"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.component_top_sites_pager"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/home/topsites/TopSitePagerViewHolder.kt"
line="80"
column="31"/>
</issue>
<issue
id="NonConstantResourceId"
message="Resource IDs will be non-final by default in Android Gradle Plugin version 8.0, avoid using them in const fields"
errorLine1=" const val LAYOUT_ID = R.layout.component_top_sites"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/home/topsites/TopSiteViewHolder.kt"
line="42"
column="31"/>
</issue>
<issue
id="RedundantLabel"
message="Redundant label can be removed"
errorLine1=" android:label=&quot;@string/app_name&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/AndroidManifest.xml"
line="172"
column="13"/>
</issue>
<issue
id="VectorRaster"
message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
errorLine1=" android:width=&quot;973dp&quot;"
errorLine2=" ~~~~~">
<location
file="src/main/res/drawable/ic_notification_permission.xml"
line="7"
column="20"/>
</issue>
<issue
id="VectorRaster"
message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
errorLine1="&lt;vector xmlns:aapt=&quot;http://schemas.android.com/aapt&quot; xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; android:height=&quot;320dp&quot; android:viewportHeight=&quot;193.94&quot; android:viewportWidth=&quot;200&quot; android:width=&quot;329.99896dp&quot;>"
errorLine2=" ~~~~~">
<location
file="src/main/res/drawable/ic_onboarding_key_features.xml"
line="1"
column="129"/>
</issue>
<issue
id="VectorRaster"
message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
errorLine1="&lt;vector xmlns:aapt=&quot;http://schemas.android.com/aapt&quot; xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; android:height=&quot;320dp&quot; android:viewportHeight=&quot;193.94&quot; android:viewportWidth=&quot;200&quot; android:width=&quot;329.99896dp&quot;>"
errorLine2=" ~~~~~">
<location
file="src/main/res/drawable/ic_onboarding_key_features_icons_only.xml"
line="1"
column="129"/>
</issue>
<issue
id="VectorRaster"
message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
errorLine1=" android:width=&quot;312dp&quot;"
errorLine2=" ~~~~~">
<location
file="src/main/res/drawable/ic_onboarding_search_widget.xml"
line="7"
column="20"/>
</issue>
<issue
id="VectorRaster"
message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; xmlns:aapt=&quot;http://schemas.android.com/aapt&quot; android:width=&quot;235dp&quot; android:height=&quot;298dp&quot; android:viewportWidth=&quot;235&quot; android:viewportHeight=&quot;298&quot;>"
errorLine2=" ~~~~~">
<location
file="src/main/res/drawable/ic_onboarding_sync.xml"
line="5"
column="128"/>
</issue>
<issue
id="VectorRaster"
message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; xmlns:aapt=&quot;http://schemas.android.com/aapt&quot; android:width=&quot;223dp&quot; android:height=&quot;345dp&quot; android:viewportWidth=&quot;223&quot; android:viewportHeight=&quot;345&quot;>"
errorLine2=" ~~~~~">
<location
file="src/main/res/drawable/ic_onboarding_welcome.xml"
line="5"
column="128"/>
</issue>
<issue
id="VectorRaster"
message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
errorLine1=" android:width=&quot;316dp&quot;"
errorLine2=" ~~~~~">
<location
file="src/main/res/drawable-night/onboarding_ctd_default_browser.xml"
line="2"
column="20"/>
</issue>
<issue
id="VectorRaster"
message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
errorLine1=" android:width=&quot;316dp&quot;"
errorLine2=" ~~~~~">
<location
file="src/main/res/drawable/onboarding_ctd_default_browser.xml"
line="2"
column="20"/>
</issue>
<issue
id="VectorRaster"
message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
errorLine1=" android:width=&quot;317dp&quot;"
errorLine2=" ~~~~~">
<location
file="src/main/res/drawable/onboarding_ctd_notification.xml"
line="2"
column="20"/>
</issue>
<issue
id="VectorRaster"
message="Limit vector icons sizes to 200×200 to keep icon drawing fast; see https://developer.android.com/studio/write/vector-asset-studio#when for more"
errorLine1=" android:width=&quot;309dp&quot;"
errorLine2=" ~~~~~">
<location
file="src/main/res/drawable/onboarding_ctd_sync.xml"
line="2"
column="20"/>
</issue>
<issue
id="VisibleForTests"
message="This declaration implicitly references Country, which should only be accessed from tests or within private scope"
errorLine1=" countries.values.map { it.displayName },"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/settings/address/view/AddressEditorView.kt"
line="126"
column="34"/>
</issue>
<issue
id="VisibleForTests"
message="This declaration implicitly references Country, which should only be accessed from tests or within private scope"
errorLine1=" .indexOfFirst { it.countryCode == selectedCountryKey }"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/settings/address/view/AddressEditorView.kt"
line="134"
column="27"/>
</issue>
<issue
id="VisibleForTests"
message="This declaration implicitly references Country, which should only be accessed from tests or within private scope"
errorLine1=" countries[newCountryKey]?.let { country ->"
errorLine2=" ~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/settings/address/view/AddressEditorView.kt"
line="148"
column="49"/>
</issue>
<issue
id="VisibleForTests"
message="This declaration implicitly references Country, which should only be accessed from tests or within private scope"
errorLine1=" countries[newCountryKey]?.let { country ->"
errorLine2=" ~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/settings/address/view/AddressEditorView.kt"
line="148"
column="49"/>
</issue>
<issue
id="VisibleForTests"
message="This declaration implicitly references Country, which should only be accessed from tests or within private scope"
errorLine1=" countries[selectedCountryKey]?.let { country ->"
errorLine2=" ~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/settings/address/view/AddressEditorView.kt"
line="156"
column="46"/>
</issue>
<issue
id="VisibleForTests"
message="This class should only be accessed from tests or within private scope"
errorLine1=" private fun bindSubregionDropdown(country: Country) {"
errorLine2=" ~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/settings/address/view/AddressEditorView.kt"
line="161"
column="48"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" recentTabs = state.recentTabs.filterOutTab(action.recentTab),"
errorLine2=" ~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/components/appstate/AppStoreReducer.kt"
line="76"
column="47"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" selected = getCurrentTab()?.let {"
errorLine2=" ~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt"
line="139"
column="28"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" if (it == getCurrentTab()?.id) {"
errorLine2=" ~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt"
line="222"
column="27"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" getCurrentTab()?.content?.loading == false"
errorLine2=" ~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt"
line="328"
column="21"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" if (getCurrentTab()?.content?.loading == true) {"
errorLine2=" ~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt"
line="343"
column="25"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" getCurrentTab()?.let { tab ->"
errorLine2=" ~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt"
line="719"
column="9"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" (binding.root.layoutParams as CoordinatorLayout.LayoutParams).behavior = DynamicInfoBannerBehavior("
errorLine2=" ~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/browser/infobanner/DynamicInfoBanner.kt"
line="49"
column="14"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" view.elevation = ELEVATION"
errorLine2=" ~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/tabstray/ext/FenixSnackbar.kt"
line="51"
column="22"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" view.elevation = ELEVATION"
errorLine2=" ~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/tabstray/ext/FenixSnackbar.kt"
line="51"
column="22"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" snackbar.view.elevation = TabsTrayFragment.ELEVATION"
errorLine2=" ~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/tabstray/browser/InactiveTabViewHolder.kt"
line="95"
column="52"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" snackbar.view.elevation = TabsTrayFragment.ELEVATION"
errorLine2=" ~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/tabstray/browser/InactiveTabViewHolder.kt"
line="95"
column="52"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" binding.exceptionsLearnMore.isVisible = false"
errorLine2=" ~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/exceptions/login/LoginExceptionsView.kt"
line="21"
column="9"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" binding.exceptionsEmptyMessage.text ="
errorLine2=" ~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/exceptions/login/LoginExceptionsView.kt"
line="22"
column="9"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" binding.exceptionsList.apply {"
errorLine2=" ~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/exceptions/login/LoginExceptionsView.kt"
line="27"
column="9"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" it.items.size >= SEARCH_GROUP_MINIMUM_SITES"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/components/history/PagedHistoryProvider.kt"
line="133"
column="38"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" tabsAction.updateCount(tabCount)"
errorLine2=" ~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/components/toolbar/ToolbarIntegration.kt"
line="164"
column="24"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" binding.exceptionsList.apply {"
errorLine2=" ~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/exceptions/trackingprotection/TrackingProtectionExceptionsView.kt"
line="21"
column="9"/>
</issue>
<issue
id="VisibleForTests"
message="This method should only be accessed from tests or within private scope"
errorLine1=" with(binding.exceptionsLearnMore) {"
errorLine2=" ~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/exceptions/trackingprotection/TrackingProtectionExceptionsView.kt"
line="25"
column="14"/>
</issue>
<issue
id="ComposableNaming"
message="Composable functions with a return type should start with a lowercase letter"
errorLine1="fun EagerFlingBehavior("
errorLine2=" ~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/compose/LazyListEagerFlingBehavior.kt"
line="21"
column="5"/>
</issue>
<issue
id="ComposableNaming"
message="Composable functions that return Unit should start with an uppercase letter"
errorLine1=" fun composeRunIfWallpaperCardColorsAreAvailable("
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/wallpapers/WallpaperState.kt"
line="50"
column="9"/>
</issue>
<issue
id="ModifierParameter"
message="Optional Modifier parameter should have a default value of `Modifier`"
errorLine1=" modifier: Modifier = Modifier.fillMaxWidth(),"
errorLine2=" ~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/compose/button/Button.kt"
line="110"
column="5"/>
</issue>
<issue
id="ModifierParameter"
message="Optional Modifier parameter should have a default value of `Modifier`"
errorLine1=" modifier: Modifier = Modifier.fillMaxWidth(),"
errorLine2=" ~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/compose/button/Button.kt"
line="159"
column="5"/>
</issue>
<issue
id="ModifierParameter"
message="Optional Modifier parameter should have a default value of `Modifier`"
errorLine1=" modifier: Modifier = Modifier.fillMaxWidth(),"
errorLine2=" ~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/compose/button/Button.kt"
line="196"
column="5"/>
</issue>
<issue
id="ModifierParameter"
message="Optional Modifier parameter should have a default value of `Modifier`"
errorLine1=" modifier: Modifier = Modifier.fillMaxWidth(),"
errorLine2=" ~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/compose/button/Button.kt"
line="233"
column="5"/>
</issue>
<issue
id="ModifierParameter"
message="Modifier parameter should be the first optional parameter"
errorLine1=" modifier: Modifier = Modifier,"
errorLine2=" ~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/compose/SwitchWithLabel.kt"
line="51"
column="5"/>
</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=" val resId = context.resources.getIdentifier(projectIdKey, &quot;string&quot;, context.packageName)"
errorLine2=" ~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/components/Push.kt"
line="38"
column="39"/>
</issue>
<issue
id="Typos"
message="&quot;internett&quot; is usually capitalized as &quot;Internett&quot;"
errorLine1=" &lt;string name=&quot;private_browsing_placeholder_description_2&quot;>%1$s fjerner søk- og nettleserhistorikken fra private nettlesingsfaner når du lukker dem eller avslutter appen. Selv om dette ikke gjør deg anonym for nettsteder eller internett-leverandøren din, vil det gjøre det lettere"
errorLine2=" ^">
<location
file="src/main/res/values-nb-rNO/strings.xml"
line="64"
column="231"/>
</issue>
<issue
id="Typos"
message="&quot;internett&quot; is usually capitalized as &quot;Internett&quot;"
errorLine1=" &lt;string name=&quot;onboarding_home_welcome_title_2&quot;>Velkommen til et mer personlig internett&lt;/string>"
errorLine2=" ^">
<location
file="src/main/res/values-nb-rNO/strings.xml"
line="326"
column="83"/>
</issue>
<issue
id="Typos"
message="Repeated word &quot;zaman&quot; in message: possible typo"
errorLine1=" &lt;string name=&quot;studies_description_2&quot;>%1$s zaman zaman araştırmalar yükleyip çalıştırabilir.&lt;/string>"
errorLine2=" ^">
<location
file="src/main/res/values-tr/strings.xml"
line="1009"
column="47"/>
</issue>
<issue
id="Typos"
message="&quot;A a&quot; is a common misspelling; did you mean &quot;A&quot;?"
errorLine1=" &lt;string name=&quot;review_quality_check_info_review_grade_header&quot;>&lt;![CDATA[Atribuímos às avaliações de cada produto uma &lt;b>classificação baseada em letras&lt;/b> de A a F.]]&gt;&lt;/string>"
errorLine2=" ^">
<location
file="src/main/res/values-pt-rPT/strings.xml"
line="2336"
column="162"/>
</issue>
<issue
id="Typos"
message="&quot;A a&quot; is a common misspelling; did you mean &quot;A&quot;?"
errorLine1=" &lt;string name=&quot;review_quality_check_info_review_grade_header&quot;>&lt;![CDATA[Atribuímos às avaliações de cada produto uma &lt;b>nota com letra&lt;/b> de A a F.]]&gt;&lt;/string>"
errorLine2=" ^">
<location
file="src/main/res/values-pt-rBR/strings.xml"
line="2339"
column="145"/>
</issue>
<issue
id="NotifyUsage"
message="Using Android NOTIFY instead of base component"
errorLine1=" notify(RECEIVE_TABS_TAG, notificationId, notification)"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/components/NotificationManager.kt"
line="96"
column="17"/>
</issue>
<issue
id="SetJavaScriptEnabled"
message="Using `setJavaScriptEnabled` can introduce XSS vulnerabilities into your application, review carefully"
errorLine1=" webView.settings.javaScriptEnabled = true"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/home/mozonline/PrivacyContentDisplayActivity.kt"
line="32"
column="9"/>
</issue>
<issue
id="ExportedReceiver"
message="Exported receiver does not require permission"
errorLine1=" &lt;receiver android:name=&quot;.onboarding.WidgetPinnedReceiver&quot;"
errorLine2=" ~~~~~~~~">
<location
file="src/main/AndroidManifest.xml"
line="357"
column="10"/>
</issue>
<issue
id="DataExtractionRules"
message="The attribute `android:allowBackup` is deprecated from Android 12 and higher and may be removed in future versions. Consider adding the attribute `android:dataExtractionRules` specifying an `@xml` resource which configures cloud backups and device transfers on Android 12 and higher."
errorLine1=" android:allowBackup=&quot;false&quot;"
errorLine2=" ~~~~~">
<location
file="src/main/AndroidManifest.xml"
line="55"
column="30"/>
</issue>
<issue
id="MozMultipleConstraintLayouts"
message="Flatten the view hierarchy by using one `ConstraintLayout`, if possible. If the alternative is several nested `ViewGroup`, it may not help performance and this may be worth suppressing."
errorLine1=" &lt;androidx.constraintlayout.widget.ConstraintLayout"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/component_collection_creation.xml"
line="137"
column="6"/>
</issue>
<issue
id="MozMultipleConstraintLayouts"
message="Flatten the view hierarchy by using one `ConstraintLayout`, if possible. If the alternative is several nested `ViewGroup`, it may not help performance and this may be worth suppressing."
errorLine1=" &lt;androidx.constraintlayout.widget.ConstraintLayout"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/component_collection_creation_name_collection.xml"
line="108"
column="6"/>
</issue>
<issue
id="MozMultipleConstraintLayouts"
message="Flatten the view hierarchy by using one `ConstraintLayout`, if possible. If the alternative is several nested `ViewGroup`, it may not help performance and this may be worth suppressing."
errorLine1=" &lt;androidx.constraintlayout.widget.ConstraintLayout"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/component_collection_creation_select_collection.xml"
line="112"
column="6"/>
</issue>
<issue
id="MozMultipleConstraintLayouts"
message="Flatten the view hierarchy by using one `ConstraintLayout`, if possible. If the alternative is several nested `ViewGroup`, it may not help performance and this may be worth suppressing."
errorLine1=" &lt;androidx.constraintlayout.widget.ConstraintLayout"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/component_tracking_protection_panel.xml"
line="15"
column="6"/>
</issue>
<issue
id="MozMultipleConstraintLayouts"
message="Flatten the view hierarchy by using one `ConstraintLayout`, if possible. If the alternative is several nested `ViewGroup`, it may not help performance and this may be worth suppressing."
errorLine1=" &lt;androidx.constraintlayout.widget.ConstraintLayout"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/component_tracking_protection_panel.xml"
line="198"
column="6"/>
</issue>
<issue
id="MozMultipleConstraintLayouts"
message="Flatten the view hierarchy by using one `ConstraintLayout`, if possible. If the alternative is several nested `ViewGroup`, it may not help performance and this may be worth suppressing."
errorLine1=" &lt;androidx.constraintlayout.widget.ConstraintLayout"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_add_on_details.xml"
line="160"
column="10"/>
</issue>
<issue
id="MozMultipleConstraintLayouts"
message="Flatten the view hierarchy by using one `ConstraintLayout`, if possible. If the alternative is several nested `ViewGroup`, it may not help performance and this may be worth suppressing."
errorLine1=" &lt;androidx.constraintlayout.widget.ConstraintLayout"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_share.xml"
line="30"
column="6"/>
</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=" notifyDataSetChanged()"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/library/downloads/DownloadAdapter.kt"
line="43"
column="9"/>
</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=" historyAdapter.notifyDataSetChanged()"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/library/history/HistoryView.kt"
line="115"
column="9"/>
</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=" notifyDataSetChanged()"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/collections/SaveCollectionListAdapter.kt"
line="49"
column="9"/>
</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=" tabsTrayBinding.tabsTray.adapter?.notifyDataSetChanged()"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt"
line="588"
column="13"/>
</issue>
<issue
id="MozMultipleConstraintLayoutsAndCustomViews"
message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
errorLine1=" &lt;org.mozilla.fenix.library.LibrarySiteItemView"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/component_recently_closed.xml"
line="12"
column="6"/>
</issue>
<issue
id="MozMultipleConstraintLayoutsAndCustomViews"
message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
errorLine1=" &lt;mozilla.components.feature.findinpage.view.FindInPageBar"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_browser.xml"
line="39"
column="14"/>
</issue>
<issue
id="MozMultipleConstraintLayoutsAndCustomViews"
message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
errorLine1=" &lt;mozilla.components.feature.readerview.view.ReaderViewControlsBar"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_browser.xml"
line="60"
column="14"/>
</issue>
<issue
id="MozMultipleConstraintLayoutsAndCustomViews"
message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
errorLine1=" &lt;mozilla.components.feature.prompts.login.LoginSelectBar"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_browser.xml"
line="109"
column="10"/>
</issue>
<issue
id="MozMultipleConstraintLayoutsAndCustomViews"
message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
errorLine1=" &lt;org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_delete_browsing_data.xml"
line="32"
column="14"/>
</issue>
<issue
id="MozMultipleConstraintLayoutsAndCustomViews"
message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
errorLine1=" &lt;org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_delete_browsing_data.xml"
line="41"
column="14"/>
</issue>
<issue
id="MozMultipleConstraintLayoutsAndCustomViews"
message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
errorLine1=" &lt;org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_delete_browsing_data.xml"
line="50"
column="14"/>
</issue>
<issue
id="MozMultipleConstraintLayoutsAndCustomViews"
message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
errorLine1=" &lt;org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_delete_browsing_data.xml"
line="60"
column="14"/>
</issue>
<issue
id="MozMultipleConstraintLayoutsAndCustomViews"
message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
errorLine1=" &lt;org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_delete_browsing_data.xml"
line="70"
column="14"/>
</issue>
<issue
id="MozMultipleConstraintLayoutsAndCustomViews"
message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
errorLine1=" &lt;org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_delete_browsing_data.xml"
line="79"
column="14"/>
</issue>
<issue
id="MozMultipleConstraintLayoutsAndCustomViews"
message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
errorLine1=" &lt;org.mozilla.fenix.trackingprotection.TrackingProtectionCategoryItem"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_tracking_protection_blocking.xml"
line="36"
column="10"/>
</issue>
<issue
id="MozMultipleConstraintLayoutsAndCustomViews"
message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
errorLine1=" &lt;org.mozilla.fenix.trackingprotection.TrackingProtectionCategoryItem"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_tracking_protection_blocking.xml"
line="46"
column="10"/>
</issue>
<issue
id="MozMultipleConstraintLayoutsAndCustomViews"
message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
errorLine1=" &lt;org.mozilla.fenix.trackingprotection.TrackingProtectionCategoryItem"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_tracking_protection_blocking.xml"
line="56"
column="10"/>
</issue>
<issue
id="MozMultipleConstraintLayoutsAndCustomViews"
message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
errorLine1=" &lt;org.mozilla.fenix.trackingprotection.TrackingProtectionCategoryItem"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_tracking_protection_blocking.xml"
line="66"
column="10"/>
</issue>
<issue
id="MozMultipleConstraintLayoutsAndCustomViews"
message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
errorLine1=" &lt;org.mozilla.fenix.trackingprotection.TrackingProtectionCategoryItem"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_tracking_protection_blocking.xml"
line="76"
column="10"/>
</issue>
<issue
id="MozMultipleConstraintLayoutsAndCustomViews"
message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
errorLine1=" &lt;org.mozilla.fenix.trackingprotection.SwitchWithDescription"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/quicksettings_protections_panel.xml"
line="18"
column="6"/>
</issue>
<issue
id="AutoboxingStateCreation"
message="Prefer `mutableLongStateOf` instead of `mutableStateOf`"
errorLine1=" var lastClickTime: Long by remember { mutableStateOf(0) }"
errorLine2=" ~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/compose/ext/Modifier.kt"
line="82"
column="43"/>
</issue>
<issue
id="AutoboxingStateCreation"
message="Prefer `mutableIntStateOf` instead of `mutableStateOf`"
errorLine1=" var offsetY by remember { mutableStateOf(INITIAL_OFFSET) }"
errorLine2=" ~~~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/experiments/view/ResearchSurfaceSurvey.kt"
line="66"
column="31"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `@color/sync_error_background_color` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;@color/sync_error_background_color&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/account_auth_error_preference.xml"
line="13"
column="9"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?android:selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?android:selectableItemBackground&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/checkbox_left_preference.xml"
line="11"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?android:selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?android:selectableItemBackground&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/checkbox_left_preference_etp.xml"
line="12"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?android:selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?android:selectableItemBackground&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/checkbox_left_sub_preference.xml"
line="11"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?attr/layer1` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?attr/layer1&quot;>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/component_cookie_banner_details_panel.xml"
line="11"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?attr/layer1` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?attr/layer1&quot;>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/component_tracking_protection_panel.xml"
line="13"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?attr/layer1` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?attr/layer1&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/connection_details_website_info.xml"
line="13"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `@color/material_scrim_color` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;@color/material_scrim_color&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/dialog_scrim.xml"
line="11"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?attr/layer1` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?attr/layer1&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/download_dialog_layout.xml"
line="10"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?scrim` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?scrim&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_create_collection.xml"
line="11"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?scrim` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?scrim&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_create_shortcut.xml"
line="11"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?homeBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?homeBackground&quot;>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_home.xml"
line="16"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?scrim` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?scrim&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_pwa_onboarding.xml"
line="11"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?attr/scrimBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?attr/scrimBackground&quot;>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_search_dialog.xml"
line="13"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?attr/layer1` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?attr/layer1&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/fragment_sign_out.xml"
line="10"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?attr/layer1` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?attr/layer1&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/info_banner.xml"
line="11"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/layout_add_credit_card.xml"
line="11"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?attr/selectableItemBackground&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/layout_add_login.xml"
line="11"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?attr/layer1` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?attr/layer1&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/navigation_toolbar.xml"
line="14"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?android:selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?android:selectableItemBackground&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/preference_search_add_engine.xml"
line="10"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?android:selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?android:selectableItemBackground&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/search_engine_radio_button.xml"
line="11"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?android:windowBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?android:windowBackground&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/start_download_dialog_layout.xml"
line="13"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `#FF0250BB` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;#FF0250BB&quot;>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/tracking_protection_learn_more_preference.xml"
line="10"
column="5"/>
</issue>
<issue
id="Overdraw"
message="Possible overdraw: Root element paints background `?attr/layer2` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
errorLine1=" android:background=&quot;?attr/layer2&quot;>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/view_crash_reporter.xml"
line="11"
column="5"/>
</issue>
<issue
id="UnusedResources"
message="The resource `R.string.resource_scheme` appears to be unused"
errorLine1=" &lt;string name=&quot;resource_scheme&quot;>&quot;resource://&quot;&lt;/string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/values/arrays.xml"
line="39"
column="13"/>
</issue>
<issue
id="UnusedResources"
message="The resource `R.string.chrome_scheme` appears to be unused"
errorLine1=" &lt;string name=&quot;chrome_scheme&quot;>&quot;chrome://&lt;/string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/values/arrays.xml"
line="40"
column="13"/>
</issue>
<issue
id="UnusedResources"
message="The resource `R.string.about_scheme` appears to be unused"
errorLine1=" &lt;string name=&quot;about_scheme&quot;>&quot;about:&quot;&lt;/string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/values/arrays.xml"
line="41"
column="13"/>
</issue>
<issue
id="UnusedResources"
message="The resource `R.array.mozac_url_schemes_blocklist` appears to be unused"
errorLine1=" &lt;string-array name=&quot;mozac_url_schemes_blocklist&quot; >"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/values/arrays.xml"
line="42"
column="19"/>
</issue>
<issue
id="UnusedResources"
message="The resource `R.dimen.mozac_browser_menu_corner_radius` appears to be unused"
errorLine1=" &lt;dimen name=&quot;mozac_browser_menu_corner_radius&quot;>8dp&lt;/dimen>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/values/dimens.xml"
line="12"
column="12"/>
</issue>
<issue
id="UnusedResources"
message="The resource `R.dimen.mozac_browser_menu2_corner_radius` appears to be unused"
errorLine1=" &lt;dimen name=&quot;mozac_browser_menu2_corner_radius&quot;>8dp&lt;/dimen>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/values/dimens.xml"
line="13"
column="12"/>
</issue>
<issue
id="UnusedResources"
message="The resource `R.mipmap.ic_launcher_private` appears to be unused">
<location
file="src/main/res/mipmap-hdpi/ic_launcher_private.webp"/>
</issue>
<issue
id="UnusedResources"
message="The resource `R.drawable.ic_onboarding_key_features` appears to be unused"
errorLine1="&lt;vector xmlns:aapt=&quot;http://schemas.android.com/aapt&quot; xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; android:height=&quot;320dp&quot; android:viewportHeight=&quot;193.94&quot; android:viewportWidth=&quot;200&quot; android:width=&quot;329.99896dp&quot;>"
errorLine2="^">
<location
file="src/main/res/drawable/ic_onboarding_key_features.xml"
line="1"
column="1"/>
</issue>
<issue
id="UnusedResources"
message="The resource `R.drawable.ic_onboarding_key_features_icons_only` appears to be unused"
errorLine1="&lt;vector xmlns:aapt=&quot;http://schemas.android.com/aapt&quot; xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; android:height=&quot;320dp&quot; android:viewportHeight=&quot;193.94&quot; android:viewportWidth=&quot;200&quot; android:width=&quot;329.99896dp&quot;>"
errorLine2="^">
<location
file="src/main/res/drawable/ic_onboarding_key_features_icons_only.xml"
line="1"
column="1"/>
</issue>
<issue
id="UnusedResources"
message="The resource `R.drawable.ic_home` appears to be unused">
<location
file="src/main/res/drawable/ic_home.xml"/>
</issue>
<issue
id="RedundantNamespace"
message="This namespace declaration is redundant"
errorLine1=" &lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/debug/res/drawable/animated_splash_screen.xml"
line="7"
column="17"/>
</issue>
<issue
id="RedundantNamespace"
message="This namespace declaration is redundant"
errorLine1=" &lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/drawable/animated_splash_screen.xml"
line="7"
column="17"/>
</issue>
<issue
id="RedundantNamespace"
message="This namespace declaration is redundant"
errorLine1=" xmlns:aapt=&quot;http://schemas.android.com/aapt&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/debug/res/drawable/animated_splash_screen.xml"
line="8"
column="13"/>
</issue>
<issue
id="RedundantNamespace"
message="This namespace declaration is redundant"
errorLine1=" xmlns:aapt=&quot;http://schemas.android.com/aapt&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/drawable/animated_splash_screen.xml"
line="8"
column="13"/>
</issue>
<issue
id="IconXmlAndPng"
message="The following images appear both as density independent `.xml` files and as bitmap files: src/main/res/drawable-hdpi/ic_logo_wordmark_normal.webp, src/main/res/drawable-night/ic_logo_wordmark_normal.xml">
<location
file="src/main/res/drawable-xxxhdpi/ic_logo_wordmark_normal.webp"/>
<location
file="src/main/res/drawable-xxhdpi/ic_logo_wordmark_normal.webp"/>
<location
file="src/main/res/drawable-xhdpi/ic_logo_wordmark_normal.webp"/>
<location
file="src/main/res/drawable-night/ic_logo_wordmark_normal.xml"/>
<location
file="src/main/res/drawable-mdpi/ic_logo_wordmark_normal.webp"/>
<location
file="src/main/res/drawable-hdpi/ic_logo_wordmark_normal.webp"/>
</issue>
<issue
id="IconLocation"
message="Found bitmap drawable `res/drawable/ic_baidu.webp` in densityless folder">
<location
file="src/main/res/drawable/ic_baidu.webp"/>
</issue>
<issue
id="IconLocation"
message="Found bitmap drawable `res/drawable/ic_jd.webp` in densityless folder">
<location
file="src/main/res/drawable/ic_jd.webp"/>
</issue>
<issue
id="IconLocation"
message="Found bitmap drawable `res/drawable/ic_meituan.webp` in densityless folder">
<location
file="src/main/res/drawable/ic_meituan.webp"/>
</issue>
<issue
id="IconLocation"
message="Found bitmap drawable `res/drawable/ic_pdd.webp` in densityless folder">
<location
file="src/main/res/drawable/ic_pdd.webp"/>
</issue>
<issue
id="IconLocation"
message="Found bitmap drawable `res/drawable/ic_tc.webp` in densityless folder">
<location
file="src/main/res/drawable/ic_tc.webp"/>
</issue>
<issue
id="IconLocation"
message="Found bitmap drawable `res/drawable/ic_wordmark_logo.webp` in densityless folder">
<location
file="src/main/res/drawable/ic_wordmark_logo.webp"/>
</issue>
<issue
id="IconLocation"
message="Found bitmap drawable `res/drawable/ic_wordmark_text_normal.webp` in densityless folder">
<location
file="src/main/res/drawable/ic_wordmark_text_normal.webp"/>
</issue>
<issue
id="IconLocation"
message="Found bitmap drawable `res/drawable/ic_wordmark_text_private.webp` in densityless folder">
<location
file="src/main/res/drawable/ic_wordmark_text_private.webp"/>
</issue>
<issue
id="IconDensities"
message="Missing the following drawables in `drawable-mdpi`: fenix_search_widget.webp (found in drawable-hdpi)">
<location
file="src/main/res/drawable-mdpi"/>
</issue>
<issue
id="IconDensities"
message="Missing the following drawables in `drawable-xhdpi`: fenix_search_widget.webp (found in drawable-hdpi)">
<location
file="src/main/res/drawable-xhdpi"/>
</issue>
<issue
id="IconDensities"
message="Missing the following drawables in `drawable-xxhdpi`: fenix_search_widget.webp (found in drawable-hdpi)">
<location
file="src/main/res/drawable-xxhdpi"/>
</issue>
<issue
id="SmallSp"
message="Avoid using sizes smaller than `11sp`: `10sp`"
errorLine1=" android:textSize=&quot;10sp&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/account_share_list_item.xml"
line="39"
column="9"/>
</issue>
<issue
id="SmallSp"
message="Avoid using sizes smaller than `11sp`: `10sp`"
errorLine1=" android:textSize=&quot;10sp&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/app_share_list_item.xml"
line="37"
column="9"/>
</issue>
<issue
id="ClickableViewAccessibility"
message="Custom view ``SearchDialogFragmentConstraintLayout`` has `setOnTouchListener` called on it but does not override `performClick`"
errorLine1=" binding.searchWrapper.setOnTouchListener { _, _ ->"
errorLine2=" ^">
<location
file="src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt"
line="373"
column="17"/>
</issue>
<issue
id="ClickableViewAccessibility"
message="`onTouch` lambda should call `View#performClick` when a click is detected"
errorLine1=" binding.searchWrapper.setOnTouchListener { _, _ ->"
errorLine2=" ^">
<location
file="src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt"
line="373"
column="58"/>
</issue>
<issue
id="ClickableViewAccessibility"
message="Custom view ``SearchDialogFragmentConstraintLayout`` has `setOnTouchListener` called on it but does not override `performClick`"
errorLine1=" binding.searchWrapper.setOnTouchListener { _, _ ->"
errorLine2=" ^">
<location
file="src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt"
line="383"
column="17"/>
</issue>
<issue
id="ClickableViewAccessibility"
message="`onTouch` lambda should call `View#performClick` when a click is detected"
errorLine1=" binding.searchWrapper.setOnTouchListener { _, _ ->"
errorLine2=" ^">
<location
file="src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt"
line="383"
column="58"/>
</issue>
<issue
id="ClickableViewAccessibility"
message="Custom view ``SearchDialogFragmentConstraintLayout`` has `setOnTouchListener` called on it but does not override `performClick`"
errorLine1=" binding.searchWrapper.setOnTouchListener { _, _ ->"
errorLine2=" ^">
<location
file="src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt"
line="389"
column="17"/>
</issue>
<issue
id="ClickableViewAccessibility"
message="`onTouch` lambda should call `View#performClick` when a click is detected"
errorLine1=" binding.searchWrapper.setOnTouchListener { _, _ ->"
errorLine2=" ^">
<location
file="src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt"
line="389"
column="58"/>
</issue>
<issue
id="ClickableViewAccessibility"
message="Custom view `SwipeGestureLayout` overrides `onTouchEvent` but not `performClick`"
errorLine1=" override fun onTouchEvent(event: MotionEvent): Boolean {"
errorLine2=" ~~~~~~~~~~~~">
<location
file="src/main/java/org/mozilla/fenix/browser/SwipeGestureLayout.kt"
line="128"
column="18"/>
</issue>
<issue
id="ContentDescription"
message="Missing `contentDescription` attribute on image"
errorLine1=" &lt;ImageView"
errorLine2=" ~~~~~~~~~">
<location
file="src/main/res/layout/fragment_home.xml"
line="184"
column="14"/>
</issue>
<issue
id="ContentDescription"
message="Missing `contentDescription` attribute on image"
errorLine1=" &lt;ImageView"
errorLine2=" ~~~~~~~~~">
<location
file="src/main/res/layout/fragment_home.xml"
line="197"
column="14"/>
</issue>
<issue
id="ContentDescription"
message="Missing `contentDescription` attribute on image"
errorLine1=" &lt;ImageView"
errorLine2=" ~~~~~~~~~">
<location
file="src/main/res/layout/library_site_item.xml"
line="30"
column="10"/>
</issue>
<issue
id="ContentDescription"
message="Missing `contentDescription` attribute on image"
errorLine1=" &lt;ImageView"
errorLine2=" ~~~~~~~~~">
<location
file="src/main/res/layout/sign_in_preference.xml"
line="17"
column="6"/>
</issue>
<issue
id="RtlSymmetry"
message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
errorLine1=" android:paddingStart=&quot;@dimen/custom_checkbox_alignment_margin&quot;>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/checkbox_left_sub_preference.xml"
line="15"
column="5"/>
</issue>
<issue
id="RtlHardcoded"
message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart=&quot;10dp&quot;` to better support right-to-left layouts"
errorLine1=" android:layout_marginLeft=&quot;10dp&quot;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="src/main/res/layout/activity_privacy_content_display.xml"
line="25"
column="21"/>
</issue>
</issues>