2316 lines
100 KiB
XML
2316 lines
100 KiB
XML
<?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=" <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />"
|
||
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=" <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />"
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/debug/AndroidManifest.xml"
|
||
line="20"
|
||
column="36"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="ScrollViewSize"
|
||
message="This LinearLayout should use `android:layout_height="wrap_content"`"
|
||
errorLine1=" android:layout_height="match_parent""
|
||
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="?android:attr/selectableItemBackground""
|
||
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="@drawable/rounded_ripple""
|
||
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="password_manager""
|
||
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="password_manager""
|
||
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="@string/home_screen_shortcut_passwords">"
|
||
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="@string/home_screen_shortcut_passwords">"
|
||
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="open_new_tab""
|
||
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="open_new_tab""
|
||
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="@string/home_screen_shortcut_open_new_tab_2">"
|
||
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="@string/home_screen_shortcut_open_new_tab_2">"
|
||
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="open_new_private_tab""
|
||
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="open_new_private_tab""
|
||
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="@string/home_screen_shortcut_open_new_private_tab_2">"
|
||
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="@string/home_screen_shortcut_open_new_private_tab_2">"
|
||
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="?android:selectableItemBackground">"
|
||
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("en"))"
|
||
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'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'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=" <data android:scheme="${deepLinkScheme}""
|
||
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=" <data android:scheme="${deepLinkScheme}""
|
||
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=" <data android:scheme="${deepLinkScheme}""
|
||
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=" <data android:scheme="${deepLinkScheme}""
|
||
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=" <data android:scheme="${deepLinkScheme}""
|
||
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=" <data android:scheme="${deepLinkScheme}""
|
||
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=" <data android:scheme="${deepLinkScheme}""
|
||
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=" <data android:scheme="${deepLinkScheme}""
|
||
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=" <data android:scheme="${deepLinkScheme}""
|
||
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=" <data android:scheme="${deepLinkScheme}""
|
||
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=" <data android:scheme="${deepLinkScheme}""
|
||
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=" <data android:scheme="${deepLinkScheme}""
|
||
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=" <data android:scheme="${deepLinkScheme}""
|
||
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=" <data android:scheme="${deepLinkScheme}""
|
||
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=" <data android:scheme="${deepLinkScheme}""
|
||
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=" <data android:scheme="${deepLinkScheme}""
|
||
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=" <data android:scheme="${deepLinkScheme}""
|
||
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=" <data android:scheme="${deepLinkScheme}""
|
||
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="@string/app_name""
|
||
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="973dp""
|
||
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="<vector xmlns:aapt="http://schemas.android.com/aapt" xmlns:android="http://schemas.android.com/apk/res/android" android:height="320dp" android:viewportHeight="193.94" android:viewportWidth="200" android:width="329.99896dp">"
|
||
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="<vector xmlns:aapt="http://schemas.android.com/aapt" xmlns:android="http://schemas.android.com/apk/res/android" android:height="320dp" android:viewportHeight="193.94" android:viewportWidth="200" android:width="329.99896dp">"
|
||
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="312dp""
|
||
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="<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt" android:width="235dp" android:height="298dp" android:viewportWidth="235" android:viewportHeight="298">"
|
||
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="<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt" android:width="223dp" android:height="345dp" android:viewportWidth="223" android:viewportHeight="345">"
|
||
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="316dp""
|
||
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="316dp""
|
||
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="317dp""
|
||
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="309dp""
|
||
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("bar", "foo", null)`)."
|
||
errorLine1=" val resId = context.resources.getIdentifier(projectIdKey, "string", context.packageName)"
|
||
errorLine2=" ~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/java/org/mozilla/fenix/components/Push.kt"
|
||
line="38"
|
||
column="39"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="Typos"
|
||
message=""internett" is usually capitalized as "Internett""
|
||
errorLine1=" <string name="private_browsing_placeholder_description_2">%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=""internett" is usually capitalized as "Internett""
|
||
errorLine1=" <string name="onboarding_home_welcome_title_2">Velkommen til et mer personlig internett</string>"
|
||
errorLine2=" ^">
|
||
<location
|
||
file="src/main/res/values-nb-rNO/strings.xml"
|
||
line="326"
|
||
column="83"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="Typos"
|
||
message="Repeated word "zaman" in message: possible typo"
|
||
errorLine1=" <string name="studies_description_2">%1$s zaman zaman araştırmalar yükleyip çalıştırabilir.</string>"
|
||
errorLine2=" ^">
|
||
<location
|
||
file="src/main/res/values-tr/strings.xml"
|
||
line="1009"
|
||
column="47"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="Typos"
|
||
message=""A a" is a common misspelling; did you mean "A"?"
|
||
errorLine1=" <string name="review_quality_check_info_review_grade_header"><![CDATA[Atribuímos às avaliações de cada produto uma <b>classificação baseada em letras</b> de A a F.]]></string>"
|
||
errorLine2=" ^">
|
||
<location
|
||
file="src/main/res/values-pt-rPT/strings.xml"
|
||
line="2336"
|
||
column="162"/>
|
||
</issue>
|
||
|
||
<issue
|
||
id="Typos"
|
||
message=""A a" is a common misspelling; did you mean "A"?"
|
||
errorLine1=" <string name="review_quality_check_info_review_grade_header"><![CDATA[Atribuímos às avaliações de cada produto uma <b>nota com letra</b> de A a F.]]></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=" <receiver android:name=".onboarding.WidgetPinnedReceiver""
|
||
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="false""
|
||
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=" <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=" <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=" <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=" <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=" <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=" <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=" <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=" <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=" <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=" <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=" <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=" <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=" <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=" <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=" <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=" <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=" <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=" <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=" <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=" <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=" <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=" <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=" <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="@color/sync_error_background_color""
|
||
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="?android:selectableItemBackground""
|
||
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="?android:selectableItemBackground""
|
||
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="?android:selectableItemBackground""
|
||
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="?attr/layer1">"
|
||
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="?attr/layer1">"
|
||
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="?attr/layer1""
|
||
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="@color/material_scrim_color""
|
||
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="?attr/layer1""
|
||
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="?scrim""
|
||
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="?scrim""
|
||
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="?homeBackground">"
|
||
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="?scrim""
|
||
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="?attr/scrimBackground">"
|
||
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="?attr/layer1""
|
||
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="?attr/layer1""
|
||
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="?attr/selectableItemBackground""
|
||
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="?attr/selectableItemBackground""
|
||
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="?attr/layer1""
|
||
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="?android:selectableItemBackground""
|
||
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="?android:selectableItemBackground""
|
||
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="?android:windowBackground""
|
||
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="#FF0250BB">"
|
||
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="?attr/layer2">"
|
||
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=" <string name="resource_scheme">"resource://"</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=" <string name="chrome_scheme">"chrome://</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=" <string name="about_scheme">"about:"</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=" <string-array name="mozac_url_schemes_blocklist" >"
|
||
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=" <dimen name="mozac_browser_menu_corner_radius">8dp</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=" <dimen name="mozac_browser_menu2_corner_radius">8dp</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="<vector xmlns:aapt="http://schemas.android.com/aapt" xmlns:android="http://schemas.android.com/apk/res/android" android:height="320dp" android:viewportHeight="193.94" android:viewportWidth="200" android:width="329.99896dp">"
|
||
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="<vector xmlns:aapt="http://schemas.android.com/aapt" xmlns:android="http://schemas.android.com/apk/res/android" android:height="320dp" android:viewportHeight="193.94" android:viewportWidth="200" android:width="329.99896dp">"
|
||
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=" <vector xmlns:android="http://schemas.android.com/apk/res/android""
|
||
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=" <vector xmlns:android="http://schemas.android.com/apk/res/android""
|
||
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="http://schemas.android.com/aapt""
|
||
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="http://schemas.android.com/aapt""
|
||
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="10sp""
|
||
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="10sp""
|
||
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=" <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=" <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=" <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=" <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="@dimen/custom_checkbox_alignment_margin">"
|
||
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="10dp"` to better support right-to-left layouts"
|
||
errorLine1=" android:layout_marginLeft="10dp""
|
||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||
<location
|
||
file="src/main/res/layout/activity_privacy_content_display.xml"
|
||
line="25"
|
||
column="21"/>
|
||
</issue>
|
||
|
||
</issues>
|