1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- This Source Code Form is subject to the terms of the Mozilla Public
3 - License, v. 2.0. If a copy of the MPL was not distributed with this
4 - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
6 <issues format="6" by="lint 7.0.0" type="baseline" client="gradle" name="AGP (7.0.0)" variant="all" version="7.0.0">
9 id="IidCompatibilityCheckFailure"
10 message="Check failed with exception: java.lang.NoSuchMethodException: com.android.tools.lint.detector.api.LintModelModuleProject.getGradleProjectModel()">
17 message="Attribute `android:foreground` has no effect on API levels lower than 23 (current min is 21)"
18 errorLine1=" android:foreground="?android:attr/selectableItemBackground""
19 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
21 file="src/main/res/layout/account_preference.xml"
28 message="Attribute `android:foreground` has no effect on API levels lower than 23 (current min is 21)"
29 errorLine1=" android:foreground="@drawable/rounded_ripple""
30 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
32 file="src/main/res/layout/component_collection_creation.xml"
39 message="Attribute `android:foreground` has no effect on API levels lower than 23 (current min is 21)"
40 errorLine1=" android:foreground="@drawable/rounded_ripple""
41 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
43 file="src/main/res/layout/onboarding_theme_picker.xml"
50 message="Attribute `android:foreground` has no effect on API levels lower than 23 (current min is 21)"
51 errorLine1=" android:foreground="@drawable/rounded_ripple""
52 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
54 file="src/main/res/layout/onboarding_theme_picker.xml"
61 message="Attribute `android:foreground` has no effect on API levels lower than 23 (current min is 21)"
62 errorLine1=" android:foreground="@drawable/rounded_ripple""
63 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
65 file="src/main/res/layout/onboarding_theme_picker.xml"
72 message="Attribute `android:foreground` has no effect on API levels lower than 23 (current min is 21)"
73 errorLine1=" android:foreground="@drawable/rounded_ripple""
74 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
76 file="src/main/res/layout/onboarding_toolbar_position_picker.xml"
83 message="Attribute `android:foreground` has no effect on API levels lower than 23 (current min is 21)"
84 errorLine1=" android:foreground="@drawable/rounded_ripple""
85 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
87 file="src/main/res/layout/onboarding_toolbar_position_picker.xml"
94 message="Attribute `android:foreground` has no effect on API levels lower than 23 (current min is 21)"
95 errorLine1=" android:foreground="@drawable/rounded_ripple""
96 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
98 file="src/main/res/layout/onboarding_tracking_protection.xml"
105 message="Attribute `android:foreground` has no effect on API levels lower than 23 (current min is 21)"
106 errorLine1=" android:foreground="@drawable/rounded_ripple""
107 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
109 file="src/main/res/layout/onboarding_tracking_protection.xml"
116 message="Attribute `shortcutId` is only used in API level 25 and higher (current min is 21)"
117 errorLine1=" android:shortcutId="open_new_tab""
118 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
120 file="src/debug/res/xml/shortcuts.xml"
127 message="Attribute `shortcutId` is only used in API level 25 and higher (current min is 21)"
128 errorLine1=" android:shortcutId="open_new_tab""
129 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
131 file="src/main/res/xml/shortcuts.xml"
138 message="Attribute `shortcutShortLabel` is only used in API level 25 and higher (current min is 21)"
139 errorLine1=" android:shortcutShortLabel="@string/home_screen_shortcut_open_new_tab_2""
140 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
142 file="src/debug/res/xml/shortcuts.xml"
149 message="Attribute `shortcutShortLabel` is only used in API level 25 and higher (current min is 21)"
150 errorLine1=" android:shortcutShortLabel="@string/home_screen_shortcut_open_new_tab_2""
151 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
153 file="src/main/res/xml/shortcuts.xml"
160 message="Attribute `shortcutLongLabel` is only used in API level 25 and higher (current min is 21)"
161 errorLine1=" android:shortcutLongLabel="@string/home_screen_shortcut_open_new_tab_2">"
162 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
164 file="src/debug/res/xml/shortcuts.xml"
171 message="Attribute `shortcutLongLabel` is only used in API level 25 and higher (current min is 21)"
172 errorLine1=" android:shortcutLongLabel="@string/home_screen_shortcut_open_new_tab_2">"
173 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
175 file="src/main/res/xml/shortcuts.xml"
182 message="Attribute `shortcutId` is only used in API level 25 and higher (current min is 21)"
183 errorLine1=" android:shortcutId="open_new_private_tab""
184 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
186 file="src/debug/res/xml/shortcuts.xml"
193 message="Attribute `shortcutId` is only used in API level 25 and higher (current min is 21)"
194 errorLine1=" android:shortcutId="open_new_private_tab""
195 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
197 file="src/main/res/xml/shortcuts.xml"
204 message="Attribute `shortcutShortLabel` is only used in API level 25 and higher (current min is 21)"
205 errorLine1=" android:shortcutShortLabel="@string/home_screen_shortcut_open_new_private_tab_2""
206 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
208 file="src/debug/res/xml/shortcuts.xml"
215 message="Attribute `shortcutShortLabel` is only used in API level 25 and higher (current min is 21)"
216 errorLine1=" android:shortcutShortLabel="@string/home_screen_shortcut_open_new_private_tab_2""
217 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
219 file="src/main/res/xml/shortcuts.xml"
226 message="Attribute `shortcutLongLabel` is only used in API level 25 and higher (current min is 21)"
227 errorLine1=" android:shortcutLongLabel="@string/home_screen_shortcut_open_new_private_tab_2">"
228 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
230 file="src/debug/res/xml/shortcuts.xml"
237 message="Attribute `shortcutLongLabel` is only used in API level 25 and higher (current min is 21)"
238 errorLine1=" android:shortcutLongLabel="@string/home_screen_shortcut_open_new_private_tab_2">"
239 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
241 file="src/main/res/xml/shortcuts.xml"
248 message="Attribute `android:foreground` has no effect on API levels lower than 23 (current min is 21)"
249 errorLine1=" android:foreground="?android:selectableItemBackground">"
250 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
252 file="src/main/res/layout/tab_tray_item.xml"
259 message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)"
260 errorLine1=" .inflate(R.layout.delete_history_time_range_dialog, null)"
263 file="src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt"
270 message="The file must start with a comment containing the license"
271 errorLine1="package org.mozilla.fenix.ext"
272 errorLine2="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
274 file="src/main/java/org/mozilla/fenix/ext/Bitmap.kt"
281 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"
282 errorLine1=" android:width="1889dp""
283 errorLine2=" ~~~~~~">
285 file="src/main/res/drawable/ic_etp_artwork.xml"
292 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"
293 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">"
296 file="src/main/res/drawable/ic_onboarding_sync.xml"
303 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"
304 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">"
307 file="src/main/res/drawable/ic_onboarding_welcome.xml"
314 message="This method should only be accessed from tests or within private scope"
315 errorLine1=" recentTabs = state.recentTabs.filterOutTab(action.recentTab)"
316 errorLine2=" ~~~~~~~~~~~~">
318 file="src/main/java/org/mozilla/fenix/components/appstate/AppStoreReducer.kt"
325 message="This method should only be accessed from tests or within private scope"
326 errorLine1=" isInPrimaryState = { getCurrentTab()?.content?.canGoBack ?: false },"
327 errorLine2=" ~~~~~~~~~~~~~">
329 file="src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt"
336 message="This method should only be accessed from tests or within private scope"
337 errorLine1=" isInPrimaryState = { getCurrentTab()?.content?.canGoForward ?: false },"
338 errorLine2=" ~~~~~~~~~~~~~">
340 file="src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt"
347 message="This method should only be accessed from tests or within private scope"
348 errorLine1=" getCurrentTab()?.content?.loading == false"
349 errorLine2=" ~~~~~~~~~~~~~">
351 file="src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt"
358 message="This method should only be accessed from tests or within private scope"
359 errorLine1=" if (getCurrentTab()?.content?.loading == true) {"
360 errorLine2=" ~~~~~~~~~~~~~">
362 file="src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt"
369 message="This method should only be accessed from tests or within private scope"
370 errorLine1=" selected = getCurrentTab()?.let {"
371 errorLine2=" ~~~~~~~~~~~~~">
373 file="src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt"
380 message="This method should only be accessed from tests or within private scope"
381 errorLine1=" getCurrentTab()?.let { tab ->"
382 errorLine2=" ~~~~~~~~~~~~~">
384 file="src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt"
391 message="This method should only be accessed from tests or within private scope"
392 errorLine1=" } + searchSelectorMenu.menuItems()"
393 errorLine2=" ~~~~~~~~~">
395 file="src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt"
402 message="This method should only be accessed from tests or within private scope"
403 errorLine1=" tabsAction.updateCount(tabCount)"
404 errorLine2=" ~~~~~~~~~~~">
406 file="src/main/java/org/mozilla/fenix/components/toolbar/ToolbarIntegration.kt"
412 id="ComposableNaming"
413 message="Composable functions with a return type should start with a lowercase letter"
414 errorLine1="fun EagerFlingBehavior("
415 errorLine2=" ~~~~~~~~~~~~~~~~~~">
417 file="src/main/java/org/mozilla/fenix/compose/LazyListEagerFlingBehavior.kt"
423 id="ModifierParameter"
424 message="Modifier parameter should be the first optional parameter"
425 errorLine1=" modifier: Modifier = Modifier,"
426 errorLine2=" ~~~~~~~~">
428 file="src/main/java/org/mozilla/fenix/compose/ThumbnailCard.kt"
434 id="UseCompatLoadingForDrawables"
435 message="Use `AppCompatResources.getDrawable()`"
436 errorLine1=" display.setUrlBackground(getDrawable(R.drawable.search_url_background))"
437 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
439 file="src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarView.kt"
446 message=""internett" is usually capitalized as "Internett""
447 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"
450 file="src/main/res/values-nb-rNO/strings.xml"
457 message="Repeated word "zaman" in message: possible typo"
458 errorLine1=" <string name="studies_description_2">%1$s zaman zaman araştırmalar yükleyip çalıştırabilir.</string>"
461 file="src/main/res/values-tr/strings.xml"
467 id="MozMultipleConstraintLayouts"
468 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."
469 errorLine1=" <androidx.constraintlayout.widget.ConstraintLayout"
470 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
472 file="src/main/res/layout/component_collection_creation.xml"
478 id="MozMultipleConstraintLayouts"
479 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."
480 errorLine1=" <androidx.constraintlayout.widget.ConstraintLayout"
481 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
483 file="src/main/res/layout/component_collection_creation_name_collection.xml"
489 id="MozMultipleConstraintLayouts"
490 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."
491 errorLine1=" <androidx.constraintlayout.widget.ConstraintLayout"
492 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
494 file="src/main/res/layout/component_collection_creation_select_collection.xml"
500 id="MozMultipleConstraintLayouts"
501 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."
502 errorLine1=" <androidx.constraintlayout.widget.ConstraintLayout"
503 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
505 file="src/main/res/layout/component_tracking_protection_panel.xml"
511 id="MozMultipleConstraintLayouts"
512 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."
513 errorLine1=" <androidx.constraintlayout.widget.ConstraintLayout"
514 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
516 file="src/main/res/layout/component_tracking_protection_panel.xml"
522 id="MozMultipleConstraintLayouts"
523 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."
524 errorLine1=" <androidx.constraintlayout.widget.ConstraintLayout"
525 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
527 file="src/main/res/layout/fragment_add_on_details.xml"
533 id="MozMultipleConstraintLayouts"
534 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."
535 errorLine1=" <androidx.constraintlayout.widget.ConstraintLayout"
536 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
538 file="src/main/res/layout/fragment_share.xml"
544 id="NotifyDataSetChanged"
545 message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort."
546 errorLine1=" notifyDataSetChanged()"
547 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
549 file="src/main/java/org/mozilla/fenix/library/downloads/DownloadAdapter.kt"
555 id="NotifyDataSetChanged"
556 message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort."
557 errorLine1=" notifyDataSetChanged()"
558 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
560 file="src/main/java/org/mozilla/fenix/collections/SaveCollectionListAdapter.kt"
566 id="NotifyDataSetChanged"
567 message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort."
568 errorLine1=" tabsTrayBinding.tabsTray.adapter?.notifyDataSetChanged()"
569 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
571 file="src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt"
577 id="MozMultipleConstraintLayoutsAndCustomViews"
578 message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
579 errorLine1=" <org.mozilla.fenix.library.LibrarySiteItemView"
580 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
582 file="src/main/res/layout/component_recently_closed.xml"
588 id="MozMultipleConstraintLayoutsAndCustomViews"
589 message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
590 errorLine1=" <mozilla.components.feature.readerview.view.ReaderViewControlsBar"
591 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
593 file="src/main/res/layout/fragment_browser.xml"
599 id="MozMultipleConstraintLayoutsAndCustomViews"
600 message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
601 errorLine1=" <mozilla.components.feature.prompts.login.LoginSelectBar"
602 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
604 file="src/main/res/layout/fragment_browser.xml"
610 id="MozMultipleConstraintLayoutsAndCustomViews"
611 message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
612 errorLine1=" <org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem"
613 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
615 file="src/main/res/layout/fragment_delete_browsing_data.xml"
621 id="MozMultipleConstraintLayoutsAndCustomViews"
622 message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
623 errorLine1=" <org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem"
624 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
626 file="src/main/res/layout/fragment_delete_browsing_data.xml"
632 id="MozMultipleConstraintLayoutsAndCustomViews"
633 message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
634 errorLine1=" <org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem"
635 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
637 file="src/main/res/layout/fragment_delete_browsing_data.xml"
643 id="MozMultipleConstraintLayoutsAndCustomViews"
644 message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
645 errorLine1=" <org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem"
646 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
648 file="src/main/res/layout/fragment_delete_browsing_data.xml"
654 id="MozMultipleConstraintLayoutsAndCustomViews"
655 message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
656 errorLine1=" <org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem"
657 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
659 file="src/main/res/layout/fragment_delete_browsing_data.xml"
665 id="MozMultipleConstraintLayoutsAndCustomViews"
666 message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
667 errorLine1=" <org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataItem"
668 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
670 file="src/main/res/layout/fragment_delete_browsing_data.xml"
676 id="MozMultipleConstraintLayoutsAndCustomViews"
677 message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
678 errorLine1=" <org.mozilla.fenix.trackingprotection.TrackingProtectionCategoryItem"
679 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
681 file="src/main/res/layout/fragment_tracking_protection_blocking.xml"
687 id="MozMultipleConstraintLayoutsAndCustomViews"
688 message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
689 errorLine1=" <org.mozilla.fenix.trackingprotection.TrackingProtectionCategoryItem"
690 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
692 file="src/main/res/layout/fragment_tracking_protection_blocking.xml"
698 id="MozMultipleConstraintLayoutsAndCustomViews"
699 message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
700 errorLine1=" <org.mozilla.fenix.trackingprotection.TrackingProtectionCategoryItem"
701 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
703 file="src/main/res/layout/fragment_tracking_protection_blocking.xml"
709 id="MozMultipleConstraintLayoutsAndCustomViews"
710 message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
711 errorLine1=" <org.mozilla.fenix.trackingprotection.TrackingProtectionCategoryItem"
712 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
714 file="src/main/res/layout/fragment_tracking_protection_blocking.xml"
720 id="MozMultipleConstraintLayoutsAndCustomViews"
721 message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
722 errorLine1=" <org.mozilla.fenix.trackingprotection.TrackingProtectionCategoryItem"
723 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
725 file="src/main/res/layout/fragment_tracking_protection_blocking.xml"
731 id="MozMultipleConstraintLayoutsAndCustomViews"
732 message="Custom views extending `ConstraintLayout` are less efficient because they cannot share other `ConstraintLayout` defined in file."
733 errorLine1=" <org.mozilla.fenix.trackingprotection.SwitchWithDescription"
734 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
736 file="src/main/res/layout/quicksettings_tracking_protection.xml"
743 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`)"
744 errorLine1=" android:background="@color/sync_error_background_color""
745 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
747 file="src/main/res/layout/account_auth_error_preference.xml"
754 message="Possible overdraw: Root element paints background `?android:selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
755 errorLine1=" android:background="?android:selectableItemBackground""
756 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
758 file="src/main/res/layout/checkbox_left_preference.xml"
765 message="Possible overdraw: Root element paints background `?android:selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
766 errorLine1=" android:background="?android:selectableItemBackground""
767 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
769 file="src/main/res/layout/checkbox_left_preference_etp.xml"
776 message="Possible overdraw: Root element paints background `?android:selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
777 errorLine1=" android:background="?android:selectableItemBackground""
778 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
780 file="src/main/res/layout/checkbox_left_sub_preference.xml"
787 message="Possible overdraw: Root element paints background `?attr/layer1` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
788 errorLine1=" android:background="?attr/layer1">"
789 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
791 file="src/main/res/layout/component_tracking_protection_panel.xml"
798 message="Possible overdraw: Root element paints background `?attr/layer1` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
799 errorLine1=" android:background="?attr/layer1""
800 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
802 file="src/main/res/layout/connection_details_website_info.xml"
809 message="Possible overdraw: Root element paints background `?android:selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
810 errorLine1=" android:background="?android:selectableItemBackground""
811 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
813 file="src/main/res/layout/custom_search_engine_radio_button.xml"
820 message="Possible overdraw: Root element paints background `?attr/layer1` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
821 errorLine1=" android:background="?attr/layer1""
822 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
824 file="src/main/res/layout/download_dialog_layout.xml"
831 message="Possible overdraw: Root element paints background `?attr/scrimBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
832 errorLine1=" android:background="?attr/scrimBackground">"
833 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
835 file="src/main/res/layout/fragment_bookmark_search_dialog.xml"
842 message="Possible overdraw: Root element paints background `?scrim` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
843 errorLine1=" android:background="?scrim""
844 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
846 file="src/main/res/layout/fragment_create_collection.xml"
853 message="Possible overdraw: Root element paints background `?scrim` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
854 errorLine1=" android:background="?scrim""
855 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
857 file="src/main/res/layout/fragment_create_shortcut.xml"
864 message="Possible overdraw: Root element paints background `?attr/scrimBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
865 errorLine1=" android:background="?attr/scrimBackground">"
866 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
868 file="src/main/res/layout/fragment_history_search_dialog.xml"
875 message="Possible overdraw: Root element paints background `?homeBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
876 errorLine1=" android:background="?homeBackground">"
877 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
879 file="src/main/res/layout/fragment_home.xml"
886 message="Possible overdraw: Root element paints background `?scrim` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
887 errorLine1=" android:background="?scrim""
888 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
890 file="src/main/res/layout/fragment_pwa_onboarding.xml"
897 message="Possible overdraw: Root element paints background `?attr/scrimBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
898 errorLine1=" android:background="?attr/scrimBackground">"
899 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
901 file="src/main/res/layout/fragment_search_dialog.xml"
908 message="Possible overdraw: Root element paints background `?attr/layer1` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
909 errorLine1=" android:background="?attr/layer1""
910 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
912 file="src/main/res/layout/fragment_sign_out.xml"
919 message="Possible overdraw: Root element paints background `?attr/layer1` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
920 errorLine1=" android:background="?attr/layer1""
921 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
923 file="src/main/res/layout/info_banner.xml"
930 message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
931 errorLine1=" android:background="?attr/selectableItemBackground""
932 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
934 file="src/main/res/layout/layout_add_credit_card.xml"
941 message="Possible overdraw: Root element paints background `?attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
942 errorLine1=" android:background="?attr/selectableItemBackground""
943 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
945 file="src/main/res/layout/layout_add_login.xml"
952 message="Possible overdraw: Root element paints background `?attr/layer1` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
953 errorLine1=" android:background="?attr/layer1""
954 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
956 file="src/main/res/layout/navigation_toolbar.xml"
963 message="Possible overdraw: Root element paints background `?android:selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
964 errorLine1=" android:background="?android:selectableItemBackground""
965 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
967 file="src/main/res/layout/preference_search_add_engine.xml"
974 message="Possible overdraw: Root element paints background `?android:selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
975 errorLine1=" android:background="?android:selectableItemBackground""
976 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
978 file="src/main/res/layout/search_engine_radio_button.xml"
985 message="Possible overdraw: Root element paints background `?attr/layer1` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
986 errorLine1=" android:background="?attr/layer1""
987 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
989 file="src/main/res/layout/stub_find_in_page.xml"
996 message="Possible overdraw: Root element paints background `#FF0250BB` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
997 errorLine1=" android:background="#FF0250BB">"
998 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
1000 file="src/main/res/layout/tracking_protection_learn_more_preference.xml"
1007 message="Possible overdraw: Root element paints background `?attr/layer2` with a theme that also paints a background (inferred theme is `@style/NormalTheme`)"
1008 errorLine1=" android:background="?attr/layer2">"
1009 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
1011 file="src/main/res/layout/view_crash_reporter.xml"
1017 id="UnusedResources"
1018 message="The resource `R.string.resource_scheme` appears to be unused"
1019 errorLine1=" <string name="resource_scheme">"resource://"</string>"
1020 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
1022 file="src/main/res/values/arrays.xml"
1028 id="UnusedResources"
1029 message="The resource `R.string.chrome_scheme` appears to be unused"
1030 errorLine1=" <string name="chrome_scheme">"chrome://</string>"
1031 errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
1033 file="src/main/res/values/arrays.xml"
1039 id="UnusedResources"
1040 message="The resource `R.string.about_scheme` appears to be unused"
1041 errorLine1=" <string name="about_scheme">"about:"</string>"
1042 errorLine2=" ~~~~~~~~~~~~~~~~~~~">
1044 file="src/main/res/values/arrays.xml"
1050 id="UnusedResources"
1051 message="The resource `R.array.mozac_url_schemes_blocklist` appears to be unused"
1052 errorLine1=" <string-array name="mozac_url_schemes_blocklist" >"
1053 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
1055 file="src/main/res/values/arrays.xml"
1061 id="UnusedResources"
1062 message="The resource `R.dimen.mozac_browser_menu_corner_radius` appears to be unused"
1063 errorLine1=" <dimen name="mozac_browser_menu_corner_radius">8dp</dimen>"
1064 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
1066 file="src/main/res/values/dimens.xml"
1072 id="UnusedResources"
1073 message="The resource `R.dimen.mozac_browser_menu2_corner_radius` appears to be unused"
1074 errorLine1=" <dimen name="mozac_browser_menu2_corner_radius">8dp</dimen>"
1075 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
1077 file="src/main/res/values/dimens.xml"
1083 id="UnusedResources"
1084 message="The resource `R.drawable.ic_firefox` appears to be unused"
1085 errorLine1="<vector android:height="112.7dp" android:viewportHeight="54.28""
1088 file="src/main/res/drawable/ic_firefox.xml"
1094 id="UnusedResources"
1095 message="The resource `R.mipmap.ic_launcher_private` appears to be unused"
1096 errorLine1="<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">"
1099 file="src/main/res/mipmap-anydpi-v26/ic_launcher_private.xml"
1106 message="The following images appear both as density independent `.xml` files and as bitmap files: /Users/oracle/Projects/fenix/app/src/main/res/drawable-hdpi/ic_logo_wordmark_normal.png, /Users/oracle/Projects/fenix/app/src/main/res/drawable-night/ic_logo_wordmark_normal.xml">
1108 file="src/main/res/drawable-xxxhdpi/ic_logo_wordmark_normal.png"/>
1110 file="src/main/res/drawable-xxhdpi/ic_logo_wordmark_normal.png"/>
1112 file="src/main/res/drawable-xhdpi/ic_logo_wordmark_normal.png"/>
1114 file="src/main/res/drawable-night/ic_logo_wordmark_normal.xml"/>
1116 file="src/main/res/drawable-mdpi/ic_logo_wordmark_normal.png"/>
1118 file="src/main/res/drawable-hdpi/ic_logo_wordmark_normal.png"/>
1123 message="One or more images in this project can be converted to the WebP format which typically results in smaller file sizes, even for lossless conversion">
1125 file="src/debug/res/mipmap-xxxhdpi/ic_launcher_round.png"/>
1130 message="One or more images in this project can be converted to the WebP format which typically results in smaller file sizes, even for lossless conversion">
1132 file="src/main/res/drawable-land-xxhdpi/sunrise.jpg"/>
1136 id="IconDuplicatesConfig"
1137 message="The `amethyst.png` icon has identical contents in the following configuration folders: drawable-port-xhdpi, drawable-xhdpi">
1139 file="src/main/res/drawable-xhdpi/amethyst.png"/>
1141 file="src/main/res/drawable-port-xhdpi/amethyst.png"/>
1145 id="IconDuplicatesConfig"
1146 message="The `amethyst.png` icon has identical contents in the following configuration folders: drawable-port-xxhdpi, drawable-xxhdpi">
1148 file="src/main/res/drawable-xxhdpi/amethyst.png"/>
1150 file="src/main/res/drawable-port-xxhdpi/amethyst.png"/>
1155 message="Found bitmap drawable `res/drawable/ic_baidu.png` in densityless folder">
1157 file="src/main/res/drawable/ic_baidu.png"/>
1162 message="Found bitmap drawable `res/drawable/ic_jd.png` in densityless folder">
1164 file="src/main/res/drawable/ic_jd.png"/>
1169 message="Found bitmap drawable `res/drawable/ic_meituan.png` in densityless folder">
1171 file="src/main/res/drawable/ic_meituan.png"/>
1176 message="Found bitmap drawable `res/drawable/ic_pdd.png` in densityless folder">
1178 file="src/main/res/drawable/ic_pdd.png"/>
1183 message="Found bitmap drawable `res/drawable/ic_tc.png` in densityless folder">
1185 file="src/main/res/drawable/ic_tc.png"/>
1190 message="Missing the following drawables in `drawable-mdpi`: amethyst.png, cerulean.png, fenix_search_widget.png, sunrise.jpg">
1192 file="src/main/res/drawable-mdpi"/>
1197 message="Missing the following drawables in `drawable-xhdpi`: cerulean.png, fenix_search_widget.png, sunrise.jpg">
1199 file="src/main/res/drawable-xhdpi"/>
1204 message="Missing the following drawables in `drawable-xxhdpi`: cerulean.png, fenix_search_widget.png, sunrise.jpg">
1206 file="src/main/res/drawable-xxhdpi"/>
1211 message="Avoid using sizes smaller than `11sp`: `10sp`"
1212 errorLine1=" android:textSize="10sp""
1213 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
1215 file="src/main/res/layout/account_share_list_item.xml"
1222 message="Avoid using sizes smaller than `11sp`: `10sp`"
1223 errorLine1=" android:textSize="10sp""
1224 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
1226 file="src/main/res/layout/app_share_list_item.xml"
1232 id="ClickableViewAccessibility"
1233 message="Custom view ``AwesomeBarWrapper`` has `setOnTouchListener` called on it but does not override `performClick`"
1234 errorLine1=" binding.awesomeBar.setOnTouchListener { _, _ ->"
1237 file="src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt"
1243 id="ClickableViewAccessibility"
1244 message="`onTouch` lambda should call `View#performClick` when a click is detected"
1245 errorLine1=" binding.awesomeBar.setOnTouchListener { _, _ ->"
1248 file="src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt"
1254 id="ClickableViewAccessibility"
1255 message="`onTouch` lambda should call `View#performClick` when a click is detected"
1256 errorLine1=" dialog?.window?.decorView?.setOnTouchListener { _, event ->"
1259 file="src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt"
1265 id="ClickableViewAccessibility"
1266 message="Custom view ``SearchDialogFragmentConstraintLayout`` has `setOnTouchListener` called on it but does not override `performClick`"
1267 errorLine1=" binding.searchWrapper.setOnTouchListener { _, _ ->"
1270 file="src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt"
1276 id="ClickableViewAccessibility"
1277 message="`onTouch` lambda should call `View#performClick` when a click is detected"
1278 errorLine1=" binding.searchWrapper.setOnTouchListener { _, _ ->"
1281 file="src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt"
1287 id="ClickableViewAccessibility"
1288 message="Custom view ``SearchDialogFragmentConstraintLayout`` has `setOnTouchListener` called on it but does not override `performClick`"
1289 errorLine1=" binding.searchWrapper.setOnTouchListener { _, _ ->"
1292 file="src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt"
1298 id="ClickableViewAccessibility"
1299 message="`onTouch` lambda should call `View#performClick` when a click is detected"
1300 errorLine1=" binding.searchWrapper.setOnTouchListener { _, _ ->"
1303 file="src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt"
1309 id="ClickableViewAccessibility"
1310 message="Custom view `SwipeGestureLayout` overrides `onTouchEvent` but not `performClick`"
1311 errorLine1=" override fun onTouchEvent(event: MotionEvent?): Boolean {"
1312 errorLine2=" ~~~~~~~~~~~~">
1314 file="src/main/java/org/mozilla/fenix/browser/SwipeGestureLayout.kt"
1320 id="ContentDescription"
1321 message="Missing `contentDescription` attribute on image"
1322 errorLine1=" <ImageView"
1323 errorLine2=" ~~~~~~~~~">
1325 file="src/main/res/layout/library_site_item.xml"
1331 id="ContentDescription"
1332 message="Missing `contentDescription` attribute on image"
1333 errorLine1=" <ImageView"
1334 errorLine2=" ~~~~~~~~~">
1336 file="src/main/res/layout/sign_in_preference.xml"
1343 message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
1344 errorLine1=" android:paddingStart="@dimen/custom_checkbox_alignment_margin">"
1345 errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
1347 file="src/main/res/layout/checkbox_left_sub_preference.xml"
1354 message="Consider replacing `android:layout_marginLeft` with `android:layout_marginStart="10dp"` to better support right-to-left layouts"
1355 errorLine1=" android:layout_marginLeft="10dp""
1356 errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
1358 file="src/main/res/layout/activity_privacy_content_display.xml"