From 0657ca5f2262fd7b43da68301446d97fa6a6f597 Mon Sep 17 00:00:00 2001 From: Gabriel Luong Date: Fri, 16 Dec 2022 14:49:06 -0500 Subject: [PATCH] Bug 1806170 - Align detekt config between Focus and Android Components --- mobile/android/focus-android/build.gradle | 2 +- .../focus-android/quality/detekt-baseline.xml | 721 +++++++++++++++------ mobile/android/focus-android/quality/detekt.yml | 428 +++++++++--- 3 files changed, 880 insertions(+), 271 deletions(-) rewrite mobile/android/focus-android/quality/detekt-baseline.xml (90%) diff --git a/mobile/android/focus-android/build.gradle b/mobile/android/focus-android/build.gradle index 18942c1fa6dc..0da8fd4d17df 100644 --- a/mobile/android/focus-android/build.gradle +++ b/mobile/android/focus-android/build.gradle @@ -40,7 +40,7 @@ buildscript { } plugins { - id "io.gitlab.arturbosch.detekt" version "1.18.0" // Variables in plugins {} aren't supported + id "io.gitlab.arturbosch.detekt" version "1.19.0" // Variables in plugins {} aren't supported } detekt { diff --git a/mobile/android/focus-android/quality/detekt-baseline.xml b/mobile/android/focus-android/quality/detekt-baseline.xml dissimilarity index 90% index 6b6ed8d6a5b0..4cab886fba39 100644 --- a/mobile/android/focus-android/quality/detekt-baseline.xml +++ b/mobile/android/focus-android/quality/detekt-baseline.xml @@ -1,184 +1,537 @@ - - - - - AbsentOrWrongFileLicense:AddToHomescreenDialogFragment.kt$org.mozilla.focus.fragment.AddToHomescreenDialogFragment.kt - AbsentOrWrongFileLicense:AppConstants.kt$org.mozilla.focus.utils.AppConstants.kt - AbsentOrWrongFileLicense:Browser.kt$org.mozilla.focus.GleanMetrics.Browser.kt - AbsentOrWrongFileLicense:BrowserMenu.kt$org.mozilla.focus.menu.browser.BrowserMenu.kt - AbsentOrWrongFileLicense:BrowserMenuAdapter.kt$org.mozilla.focus.menu.browser.BrowserMenuAdapter.kt - AbsentOrWrongFileLicense:BrowserSearch.kt$org.mozilla.focus.GleanMetrics.BrowserSearch.kt - AbsentOrWrongFileLicense:Features.kt$org.mozilla.focus.utils.Features.kt - AbsentOrWrongFileLicense:FileUtils.kt$org.mozilla.focus.utils.FileUtils.kt - AbsentOrWrongFileLicense:FirstrunFragment.kt$org.mozilla.focus.fragment.FirstrunFragment.kt - AbsentOrWrongFileLicense:FirstrunPagerAdapter.kt$org.mozilla.focus.firstrun.FirstrunPagerAdapter.kt - AbsentOrWrongFileLicense:FocusApplication.kt$org.mozilla.focus.FocusApplication.kt - AbsentOrWrongFileLicense:GleanBuildInfo.kt$org.mozilla.focus.GleanMetrics.GleanBuildInfo.kt - AbsentOrWrongFileLicense:ImageSelectTest.kt$org.mozilla.focus.activity.ImageSelectTest.kt - AbsentOrWrongFileLicense:InstallFirefoxActivity.kt$org.mozilla.focus.activity.InstallFirefoxActivity.kt - AbsentOrWrongFileLicense:LearnMoreSwitchPreference.kt$org.mozilla.focus.settings.LearnMoreSwitchPreference.kt - AbsentOrWrongFileLicense:LegacyIds.kt$org.mozilla.focus.GleanMetrics.LegacyIds.kt - AbsentOrWrongFileLicense:MobileMetricsPingStorageTest.kt$org.mozilla.focus.utils.MobileMetricsPingStorageTest.kt - AbsentOrWrongFileLicense:Pings.kt$org.mozilla.focus.GleanMetrics.Pings.kt - AbsentOrWrongFileLicense:PreferenceSwitch.kt$org.mozilla.focus.settings.privacy.PreferenceSwitch.kt - AbsentOrWrongFileLicense:SearchEnginePreference.kt$org.mozilla.focus.search.SearchEnginePreference.kt - AbsentOrWrongFileLicense:SearchRobot.kt$org.mozilla.focus.activity.robots.SearchRobot.kt - AbsentOrWrongFileLicense:SearchSuggestionsViewModelTest.kt$org.mozilla.focus.searchsuggestions.SearchSuggestionsViewModelTest.kt - AbsentOrWrongFileLicense:SettingsBlockToggleTest.kt$org.mozilla.focus.activity.SettingsBlockToggleTest.kt - AbsentOrWrongFileLicense:SettingsTest.kt$org.mozilla.focus.activity.SettingsTest.kt - AbsentOrWrongFileLicense:SmokeTest.kt$org.mozilla.focus.testAnnotations.SmokeTest.kt - AbsentOrWrongFileLicense:SupportUtils.kt$org.mozilla.focus.utils.SupportUtils.kt - AbsentOrWrongFileLicense:SupportUtilsTest.kt$org.mozilla.focus.utils.SupportUtilsTest.kt - AbsentOrWrongFileLicense:TelemetryWrapper.kt$org.mozilla.focus.telemetry.TelemetryWrapper.kt - AbsentOrWrongFileLicense:Theme.kt$org.mozilla.focus.theme.Theme.kt - AbsentOrWrongFileLicense:ToggleBlockTest.kt$org.mozilla.focus.activity.ToggleBlockTest.kt - AbsentOrWrongFileLicense:TransitionDrawableGroup.kt$org.mozilla.focus.animation.TransitionDrawableGroup.kt - AbsentOrWrongFileLicense:URLExceptionTest.kt$org.mozilla.focus.activity.URLExceptionTest.kt - AbsentOrWrongFileLicense:ViewUtils.kt$org.mozilla.focus.utils.ViewUtils.kt - CollapsibleIfStatements:MainActivity.kt$MainActivity$if (!isTaskRoot) { if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN == intent.action) { finish() return } } - CollapsibleIfStatements:UrlInputFragment.kt$UrlInputFragment.<no name provided>$if (reverse) { if (isOverlay) { dismiss() } } - EmptyFunctionBlock:AutocompleteListFragment.kt$AutocompleteListFragment.<no name provided>${} - EmptyFunctionBlock:ExceptionsListFragment.kt$ExceptionsListFragment.<no name provided>${} - EmptyFunctionBlock:FirstrunFragment.kt$FirstrunFragment.<no name provided>${} - EmptyFunctionBlock:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference.<no name provided>${} - EmptyFunctionBlock:TabSheetFragment.kt$TabSheetFragment${} - ImplicitDefaultLocale:LocalizedContent.kt$LocalizedContent$String.format( "%s (Build #%s)", packageInfo.versionName, packageInfo.versionCode.toString() + engineIndicator ) - LongMethod:BrowserFragment.kt$BrowserFragment$@Suppress("ComplexMethod") override fun onClick(view: View) - LongMethod:BrowserMenuAdapter.kt$BrowserMenuAdapter$private fun initializeMenu(url: String, customTabConfig: CustomTabConfig?) - MatchingDeclarationName:SettingsSearchMenuRobot.kt$SearchSettingsRobot - MayBeConst:AddToHomescreenDialogFragment.kt$AddToHomescreenDialogFragment.Companion$private val BLOCKING_ENABLED = "blocking_enabled" - MayBeConst:AddToHomescreenDialogFragment.kt$AddToHomescreenDialogFragment.Companion$private val REQUEST_DESKTOP = "request_desktop" - MayBeConst:AddToHomescreenDialogFragment.kt$AddToHomescreenDialogFragment.Companion$private val TITLE = "title" - MayBeConst:AddToHomescreenDialogFragment.kt$AddToHomescreenDialogFragment.Companion$private val URL = "url" - MayBeConst:AddToHomescreenDialogFragment.kt$AddToHomescreenDialogFragment.Companion$val FRAGMENT_TAG = "add-to-homescreen-prompt-dialog" - MayBeConst:CrashReporterFragment.kt$CrashReporterFragment.Companion$val FRAGMENT_TAG = "crash-reporter" - MayBeConst:Features.kt$Features.Companion$val SEARCH_TERMS_OR_URL: Boolean = true - MayBeConst:IconGenerator.kt$IconGenerator.Companion$private val DEFAULT_ICON_CHAR = '?' - MayBeConst:IconGenerator.kt$IconGenerator.Companion$private val TEXT_SIZE_DP = 36f - MayBeConst:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference.Companion$private val SEARCH_ENGINE_NAME_KEY = "search-engine-name" - MayBeConst:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference.Companion$private val SEARCH_QUERY_KEY = "search-query" - MayBeConst:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference.Companion$private val SUPER_STATE_KEY = "super-state" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Category$val ACTION = "action" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Category$val ERROR = "error" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Category$val HISTOGRAM = "histogram" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Extra$val AUTOCOMPLETE = "autocomplete" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Extra$val ERROR_CODE = "error_code" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Extra$val FROM = "from" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Extra$val HIGHLIGHTED = "highlighted" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Extra$val SEARCH_SUGGESTION = "search_suggestion" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Extra$val SELECTED = "selected" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Extra$val SOURCE = "source" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Extra$val SUBMIT_CRASH = "submit_crash" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Extra$val SUCCESS = "success" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Extra$val TO = "to" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Extra$val TOTAL = "total" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Extra$val TOTAL_URI_COUNT = "total_uri_count" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Extra$val UNIQUE_DOMAINS_COUNT = "unique_domains_count" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val BACKGROUND = "background" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val CANCEL = "cancel" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val CHANGE = "change" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val CLICK = "click" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val COPY = "copy" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val FOREGROUND = "foreground" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val HIDE = "hide" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val INSTALL = "install" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val INTENT_CUSTOM_TAB = "intent_custom_tab" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val INTENT_URL = "intent_url" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val LONG_PRESS = "long_press" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val OPEN = "open" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val PAGE = "page" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val REMOVE = "remove" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val REMOVE_ALL = "remove_all" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val REORDER = "reorder" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val RESOURCE = "resource" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val RESTORE = "restore" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val SAVE = "save" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val SHARE = "share" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val SHARE_INTENT = "share_intent" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val SHOW = "show" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val SWIPE = "swipe" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val TEXT_SELECTION_INTENT = "text_selection_intent" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val TYPE_QUERY = "type_query" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val TYPE_SELECT_QUERY = "select_query" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Method$val TYPE_URL = "type_url" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val ADD_SEARCH_ENGINE_LEARN_MORE = "search_engine_learn_more" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val ADD_TO_HOMESCREEN_DIALOG = "add_to_homescreen_dialog" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val ALLOWLIST = "allowlist" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val APP = "app" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val APP_ICON = "app_icon" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val AUTOCOMPLETE_DOMAIN = "autocomplete_domain" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val AUTOFILL = "autofill" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val BACK_BUTTON = "back_button" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val BLOCKING_SWITCH = "blocking_switch" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val BROWSER = "browser" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val BROWSER_CONTEXTMENU = "browser_contextmenu" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val CRASH_REPORTER = "crash_reporter" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val CUSTOM_SEARCH_ENGINE = "custom_search_engine" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val CUSTOM_TAB_ACTION_BUTTON = "custom_tab_action_bu" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val CUSTOM_TAB_CLOSE_BUTTON = "custom_tab_close_but" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val DESKTOP_REQUEST_CHECK = "desktop_request_check" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val DOWNLOAD_DIALOG = "download_dialog" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val ERASE_BUTTON = "erase_button" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val FIRSTRUN = "firstrun" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val GECKO_ENGINE = "gecko_engine" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val HOMESCREEN_SHORTCUT = "homescreen_shortcut" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val MAKE_DEFAULT_BROWSER_OPEN_WITH = "make_default_browser_open_with" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val MAKE_DEFAULT_BROWSER_SETTINGS = "make_default_browser_settings" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val MENU = "menu" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val NOTIFICATION = "notification" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val NOTIFICATION_ACTION = "notification_action" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val RECENT_APPS = "recent_apps" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val REMOVE_SEARCH_ENGINES = "remove_search_engines" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val SEARCH_BAR = "search_bar" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val SEARCH_ENGINE_SETTING = "search_engine_setting" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val SEARCH_SUGGESTION_PROMPT = "search_suggestion_prompt" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val SETTING = "setting" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val SHORTCUT = "shortcut" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val TABS_TRAY = "tabs_tray" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Object$val TIP = "tip" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val ADD_TO_HOMESCREEN = "add_to_homescreen" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val ADD_TO_HOMESCREEN_TIP = "add_to_homescreen_tip" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val AUTOCOMPLETE_URL_TIP = "autocomplete_url_tip" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val CANCEL = "cancel" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val CLOSE_TAB = "close_tab" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val CUSTOM_TAB = "custom_tab" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val DEFAULT = "default" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val DEFAULT_BROWSER_TIP = "default_browser_tip" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val DISABLE_TIPS_TIP = "disable_tips_tip" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val DISABLE_TRACKING_PROTECTION_TIP = "disable_tracking_protection_tip" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val DOWNLOAD = "download" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val ERASE = "erase" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val ERASE_AND_OPEN = "erase_open" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val ERASE_TO_APP = "erase_app" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val ERASE_TO_HOME = "erase_home" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val FIND_IN_PAGE = "find_in_page" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val FINISH = "finish" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val FIREFOX = "firefox" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val FULL_BROWSER = "full_browser" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val IMAGE = "image" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val IMAGE_WITH_LINK = "image+link" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val LINK = "link" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val OPEN = "open" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val OPEN_IN_NEW_TAB_TIP = "open_in_new_tab_tip" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val QUICK_ADD = "quick_add" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val RELOAD = "refresh" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val REPORT_ISSUE = "report_issue" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val RESUME = "resume" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val SEARCH = "search" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val SELECTION = "selection" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val SETTINGS = "settings" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val SKIP = "skip" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val TAB = "tab" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val URL = "url" - MayBeConst:TelemetryWrapper.kt$TelemetryWrapper.Value$val WHATS_NEW = "whats_new" - MayBeConst:UrlInputFragment.kt$UrlInputFragment.Companion$@JvmField val FRAGMENT_TAG = "url_input" - MayBeConst:UrlInputFragment.kt$UrlInputFragment.Companion$private val ANIMATION_BROWSER_SCREEN = "browser_screen" - MayBeConst:UrlInputFragment.kt$UrlInputFragment.Companion$private val ANIMATION_DURATION = 200 - MayBeConst:UrlInputFragment.kt$UrlInputFragment.Companion$private val ARGUMENT_ANIMATION = "animation" - MayBeConst:UrlInputFragment.kt$UrlInputFragment.Companion$private val ARGUMENT_SESSION_UUID = "sesssion_uuid" - MayBeConst:UrlInputFragment.kt$UrlInputFragment.Companion$private val TIPS_ALPHA = 0.65f - NewLineAtEndOfFile:SupportUtilsTest.kt$org.mozilla.focus.utils.SupportUtilsTest.kt - NewLineAtEndOfFile:TestFocusApplication.kt$org.mozilla.focus.TestFocusApplication.kt - ReturnCount:MainActivity.kt$MainActivity$override fun onBackPressed() - - + + + + + CollapsibleIfStatements:MainActivity.kt$MainActivity$if (!isTaskRoot) { if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN == intent.action) { finish() return } } + CollapsibleIfStatements:UrlInputFragment.kt$UrlInputFragment.<no name provided>$if (reverse) { if (isOverlay) { dismiss() } } + ConstructorParameterNaming:FocusNimbus.kt$CookieBanner$_variables: Variables = NullVariables.instance + ConstructorParameterNaming:FocusNimbus.kt$CookieBanner$private val _defaults: Defaults + ConstructorParameterNaming:FocusNimbus.kt$CookieBanner$private val _variables: Variables + ConstructorParameterNaming:FocusNimbus.kt$Onboarding$_variables: Variables = NullVariables.instance + ConstructorParameterNaming:FocusNimbus.kt$Onboarding$private val _defaults: Defaults + ConstructorParameterNaming:FocusNimbus.kt$Onboarding$private val _variables: Variables + EmptyFunctionBlock:AutocompleteListFragment.kt$AutocompleteListFragment.<no name provided>${} + EmptyFunctionBlock:BiometricAuthenticationFragmentTest.kt$BiometricAuthenticationFragmentTest.<no name provided>${ } + EmptyFunctionBlock:ExceptionsListFragment.kt$ExceptionsListFragment.<no name provided>${} + EmptyFunctionBlock:FirstrunFragment.kt$FirstrunFragment.<no name provided>${} + FunctionOnlyReturningConstant:ExternalIntentNavigationTest.kt$ShadowPerformance$@Implementation @Suppress("Unused_Parameter") fun processIntentIfPerformanceTest(bundle: Bundle?, context: Context) + LongParameterList:FullScreenIntegration.kt$FullScreenIntegration$( val activity: Activity, val store: BrowserStore, tabId: String?, sessionUseCases: SessionUseCases, private val settings: Settings, private val toolbarView: BrowserToolbar, private val statusBar: View, private val engineView: EngineView, ) + MatchingDeclarationName:SettingsSearchMenuRobot.kt$SearchSettingsRobot + MaxLineLength:BiometricAuthenticationFragmentTest.kt$BiometricAuthenticationFragmentTest$fun + MaxLineLength:BrowserRobot.kt$BrowserRobot$fun verifyOpenLinksInAppsPrompt(openLinksInAppsEnabled: Boolean, link: String) + MaxLineLength:BrowserRobot.kt$BrowserRobot.Transition$fun + MaxLineLength:BrowserToolbarIntegrationTest.kt$BrowserToolbarIntegrationTest$fun + MaxLineLength:BrowserToolbarTest.kt$BrowserToolbarTest$assertTrue((engineView.layoutParams as? CoordinatorLayout.LayoutParams)?.behavior is EngineViewBrowserToolbarBehavior) + MaxLineLength:CfrMiddlewareTest.kt$CfrMiddlewareTest$fun + MaxLineLength:ExternalIntentNavigationTest.kt$ExternalIntentNavigationTest$fun + MaxLineLength:FocusNimbus.kt$Onboarding$_defaults = Defaults(isCfrEnabled = isCfrEnabled, isEnabled = isEnabled, isPromoteSearchWidgetDialogEnabled = isPromoteSearchWidgetDialogEnabled ) + MaxLineLength:HomeScreenScreenshots.kt$HomeScreenScreenshots$TestHelper.mDevice.findObject(UiSelector().resourceId("${TestHelper.packageName}:id/mozac_browser_toolbar_edit_url_view")) + MaxLineLength:HomeScreenScreenshots.kt$HomeScreenScreenshots$TestHelper.mDevice.findObject(UiSelector().resourceId("${TestHelper.packageName}:id/mozac_browser_toolbar_menu")) + MaxLineLength:HomeScreenScreenshots.kt$HomeScreenScreenshots$private + MaxLineLength:IntentUtilsTest.kt$IntentUtilsTest$fun + MaxLineLength:MainActivityTestRule.kt$MainActivityIntentsTestRule$open + MaxLineLength:MobileMetricsPingStorageTest.kt$MobileMetricsPingStorageTest$private val file = File("${(ApplicationProvider.getApplicationContext() as FocusApplication).cacheDir}/${MobileMetricsPingStorage.STORAGE_FOLDER}/${MobileMetricsPingStorage.FILE_NAME}") + MaxLineLength:OnboardingStorageTest.kt$OnboardingStorageTest$assertEquals(testContext.getString(OnboardingStep.ON_BOARDING_FIRST_SCREEN.prefId), prefManager.getString(testContext.getString(R.string.pref_key_onboarding_step), "")) + MaxLineLength:OnboardingStorageTest.kt$OnboardingStorageTest$assertEquals(testContext.getString(OnboardingStep.ON_BOARDING_SECOND_SCREEN.prefId), prefManager.getString(testContext.getString(R.string.pref_key_onboarding_step), "")) + MaxLineLength:OnboardingStorageTest.kt$OnboardingStorageTest$fun + MaxLineLength:SearchRobot.kt$private val clearSearchButton = mDevice.findObject(UiSelector().resourceId("$packageName:id/mozac_browser_toolbar_clear_view")) + MaxLineLength:SearchWidgetProviderTest.kt$SearchWidgetProviderTest$fun + MaxLineLength:SettingsPrivacyMenuRobot.kt$. + MaxLineLength:SettingsPrivacyMenuRobot.kt$SettingsPrivacyMenuRobot.Transition$fun + MaxLineLength:SitePermissionOptionsStorageTest.kt$SitePermissionOptionsStorageTest$fun + MaxLineLength:SitePermissionOptionsStoreTest.kt$SitePermissionOptionsStoreTest$doReturn(listOf(SitePermissionOption.AskToAllow(), SitePermissionOption.Blocked())).`when`(storage).getSitePermissionOptions(SitePermission.CAMERA) + MaxLineLength:SitePermissionOptionsStoreTest.kt$SitePermissionOptionsStoreTest$doReturn(testContext.getString(R.string.preference_phone_feature_camera)).`when`(storage).getSitePermissionLabel(SitePermission.CAMERA) + MaxLineLength:SitePermissionOptionsStoreTest.kt$SitePermissionOptionsStoreTest$fun + MaxLineLength:SitePermissionOptionsStoreTest.kt$SitePermissionOptionsStoreTest$verify(storage).saveCurrentSitePermissionOptionInSharePref(SitePermissionOption.Blocked(), SitePermission.CAMERA) + MaxLineLength:SitePermissionsFragmentTest.kt$SitePermissionsFragmentTest$fun + MaxLineLength:StartupPathProviderTest.kt$StartupPathProviderTest$fun + MaxLineLength:StartupStateProviderTest.kt$StartupStateProviderTest$fun + MaxLineLength:StartupTypeTelemetryTest.kt$StartupTypeTelemetryTest$fun + MaxLineLength:StringTest.kt$StringTest$"http://amazon.com/Mockingjay-Hunger-Games-Suzanne-Collins/dp/0545663261/ref=pd_sim_14_2?_encoding=UTF8&psc=1&refRID=90ZHE3V976TKBGDR9VAM" + MaxLineLength:StringTest.kt$StringTest$"https://www.nytimes.com/2017/08/30/world/europe/princess-diana-death-anniversary.html?hp&action=click&pgtype=Homepage&clickSource=story-heading&module=second-column-region&region=top-news&WT.nav=top-news" + MaxLineLength:StringTest.kt$StringTest$"https://www.wsj.com/articles/mexican-presidential-candidate-calls-for-nafta-talks-to-be-suspended-1504137175" + MaxLineLength:UriTest.kt$UriTest$assertTruncatedHost("yahoo.com", "https://de.search.yahoo.com/search?p=mozilla&fr=yfp-t&fp=1&toggle=1&cop=mss&ei=UTF-8") + MayBeConst:CrashReporterFragment.kt$CrashReporterFragment.Companion$val FRAGMENT_TAG = "crash-reporter" + MayBeConst:IconGenerator.kt$IconGenerator.Companion$private val DEFAULT_ICON_CHAR = '?' + MayBeConst:IconGenerator.kt$IconGenerator.Companion$private val TEXT_SIZE_DP = 36f + MayBeConst:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference.Companion$private val SEARCH_ENGINE_NAME_KEY = "search-engine-name" + MayBeConst:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference.Companion$private val SEARCH_QUERY_KEY = "search-query" + MayBeConst:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference.Companion$private val SUPER_STATE_KEY = "super-state" + PrintStackTrace:TestHelper.kt$TestHelper$e + SpacingBetweenPackageAndImports:FocusNimbus.kt$ + UndocumentedPublicClass:AboutFragment.kt$AboutFragment : BaseSettingsLikeFragment + UndocumentedPublicClass:AdvancedSettingsFragment.kt$AdvancedSettingsFragment : BaseSettingsFragmentOnSharedPreferenceChangeListener + UndocumentedPublicClass:AppAction.kt$AppAction$NavigateUp : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$OpenSettings : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$OpenSitePermissionOptionsScreen : AppAction + UndocumentedPublicClass:AppConstants.kt$AppConstants + UndocumentedPublicClass:AppContentInterceptor.kt$AppContentInterceptor : RequestInterceptor + UndocumentedPublicClass:AppReviewStep.kt$AppReviewStep + UndocumentedPublicClass:AppReviewUtils.kt$AppReviewUtils + UndocumentedPublicClass:AppStartReasonProvider.kt$AppStartReasonProvider$StartReason + UndocumentedPublicClass:AppState.kt$Screen$Settings : Screen + UndocumentedPublicClass:AppState.kt$Screen$SitePermissionOptionsScreen : Screen + UndocumentedPublicClass:AppState.kt$Screen.Settings$Page + UndocumentedPublicClass:AutocompleteDomainFormatter.kt$AutocompleteDomainFormatter + UndocumentedPublicClass:AutocompleteRemoveFragment.kt$AutocompleteRemoveFragment : AutocompleteListFragmentCoroutineScope + UndocumentedPublicClass:BaseFragment.kt$BaseFragment : Fragment + UndocumentedPublicClass:BaseSettingsFragment.kt$BaseSettingsFragment : PreferenceFragmentCompatMenuProvider + UndocumentedPublicClass:BiometricAuthenticationFragment.kt$BiometricAuthenticationFragment : BaseFragmentAuthenticationDelegate + UndocumentedPublicClass:BrowserMenuController.kt$BrowserMenuController + UndocumentedPublicClass:BrowserToolbarIntegration.kt$BrowserToolbarIntegration : LifecycleAwareFeature + UndocumentedPublicClass:Config.kt$Config + UndocumentedPublicClass:ConnectionDetailsPanel.kt$ConnectionDetailsPanel : BottomSheetDialog + UndocumentedPublicClass:ContextMenuCandidates.kt$ContextMenuCandidates + UndocumentedPublicClass:CookieBannerExceptionDetailsPanel.kt$CookieBannerExceptionDetailsPanel : BottomSheetDialog + UndocumentedPublicClass:CookieBannerExceptionDetailsSwitch.kt$CookieBannerExceptionDetailsSwitch : ConstraintLayout + UndocumentedPublicClass:CookieBannerExceptionMiddleware.kt$CookieBannerExceptionMiddleware : Middleware + UndocumentedPublicClass:CookieBannerExceptionStore.kt$CookieBannerExceptionAction$InitCookieBannerException : CookieBannerExceptionAction + UndocumentedPublicClass:CookieBannerExceptionStore.kt$CookieBannerExceptionAction$ToggleCookieBannerExceptionException : CookieBannerExceptionAction + UndocumentedPublicClass:CookieBannerExceptionStore.kt$CookieBannerExceptionAction$UpdateCookieBannerExceptionException : CookieBannerExceptionAction + UndocumentedPublicClass:CookieBannerExceptionStore.kt$CookieBannerExceptionAction$UpdateCookieBannerExceptionExceptionVisibility : CookieBannerExceptionAction + UndocumentedPublicClass:CookieBannerExceptionStore.kt$CookieBannerExceptionStore : Store + UndocumentedPublicClass:CookieBannerFragment.kt$CookieBannerFragment : BaseSettingsFragment + UndocumentedPublicClass:CookieBannerOption.kt$CookieBannerOption + UndocumentedPublicClass:CookieBannerOption.kt$CookieBannerOption$CookieBannerDisabled : CookieBannerOption + UndocumentedPublicClass:CookieBannerOption.kt$CookieBannerOption$CookieBannerRejectAll : CookieBannerOption + UndocumentedPublicClass:CookieBannerOption.kt$CookieBannerOption$CookieBannerRejectOrAccept : CookieBannerOption + UndocumentedPublicClass:CookieBannerRejectAllPreference.kt$CookieBannerRejectAllPreference : LearnMoreSwitchPreference + UndocumentedPublicClass:CrashListActivity.kt$CrashListActivity : AbstractCrashListActivity + UndocumentedPublicClass:CrashReporterFragment.kt$CrashReporterFragment : Fragment + UndocumentedPublicClass:CustomTabMenu.kt$CustomTabMenu : ToolbarMenu + UndocumentedPublicClass:CustomTabsService.kt$CustomTabsService : AbstractCustomTabsService + UndocumentedPublicClass:DebugFocusApplication.kt$DebugFocusApplication : FocusApplication + UndocumentedPublicClass:DefaultBrowserPreference.kt$DefaultBrowserPreference : Preference + UndocumentedPublicClass:DefaultCookieBannerExceptionInteractor.kt$DefaultCookieBannerExceptionInteractor + UndocumentedPublicClass:DefaultLanguageScreenInteractor.kt$DefaultLanguageScreenInteractor + UndocumentedPublicClass:DefaultSitePermissionOptionsScreenInteractor.kt$DefaultSitePermissionOptionsScreenInteractor + UndocumentedPublicClass:DownloadService.kt$DownloadService : AbstractFetchDownloadService + UndocumentedPublicClass:EngineProvider.kt$EngineProvider + UndocumentedPublicClass:EngineSharedPreferencesListener.kt$EngineSharedPreferencesListener$ChangeSource + UndocumentedPublicClass:EngineSharedPreferencesListener.kt$EngineSharedPreferencesListener$TrackerChanged + UndocumentedPublicClass:EraseAndOpenShortcutActivity.kt$EraseAndOpenShortcutActivity : Activity + UndocumentedPublicClass:EraseShortcutActivity.kt$EraseShortcutActivity : Activity + UndocumentedPublicClass:ExceptionsRemoveFragment.kt$ExceptionsRemoveFragment : ExceptionsListFragment + UndocumentedPublicClass:FenixProductDetector.kt$FenixProductDetector + UndocumentedPublicClass:FenixProductDetector.kt$FenixProductDetector$FenixVersion + UndocumentedPublicClass:FindInPageIntegration.kt$FindInPageIntegration : LifecycleAwareFeatureUserInteractionHandler + UndocumentedPublicClass:FirstrunCardView.kt$FirstrunCardView : CardView + UndocumentedPublicClass:FirstrunFragment.kt$FirstrunFragment : FragmentOnClickListener + UndocumentedPublicClass:FirstrunPagerAdapter.kt$FirstrunPagerAdapter : PagerAdapter + UndocumentedPublicClass:FocusApplication.kt$FocusApplication : LocaleAwareApplicationProviderCoroutineScope + UndocumentedPublicClass:FocusNimbus.kt$FocusNimbus$Features + UndocumentedPublicClass:FocusSnackbar.kt$FocusSnackbar : BaseTransientBottomBar + UndocumentedPublicClass:FocusSnackbarDelegate.kt$FocusSnackbarDelegate : SnackbarDelegate + UndocumentedPublicClass:FullScreenIntegration.kt$FullScreenIntegration : LifecycleAwareFeatureUserInteractionHandler + UndocumentedPublicClass:GeneralSettingsFragment.kt$GeneralSettingsFragment : BaseSettingsFragment + UndocumentedPublicClass:HardwarePermissionCheckFeature.kt$HardwarePermissionCheckFeature : DefaultLifecycleObserver + UndocumentedPublicClass:HomeMenuItem.kt$HomeMenuItem + UndocumentedPublicClass:HomeMenuItem.kt$HomeMenuItem$Help : HomeMenuItem + UndocumentedPublicClass:HomeMenuItem.kt$HomeMenuItem$Settings : HomeMenuItem + UndocumentedPublicClass:IconGenerator.kt$IconGenerator + UndocumentedPublicClass:InputToolbarIntegration.kt$InputToolbarIntegration : LifecycleAwareFeature + UndocumentedPublicClass:InstalledSearchEnginesSettingsFragment.kt$InstalledSearchEnginesSettingsFragment : BaseSettingsFragment + UndocumentedPublicClass:IntentProcessor.kt$IntentProcessor$Result + UndocumentedPublicClass:IntentProcessor.kt$IntentProcessor.Result$CustomTab : Result + UndocumentedPublicClass:IntentProcessor.kt$IntentProcessor.Result$None : Result + UndocumentedPublicClass:IntentProcessor.kt$IntentProcessor.Result$Tab : Result + UndocumentedPublicClass:IntentUtils.kt$IntentUtils + UndocumentedPublicClass:LanguageFragment.kt$LanguageFragment : BaseComposeFragment + UndocumentedPublicClass:LanguageMiddleware.kt$LanguageMiddleware : Middleware + UndocumentedPublicClass:LanguageScreenStore.kt$LanguageScreenAction$InitLanguages : LanguageScreenAction + UndocumentedPublicClass:LanguageScreenStore.kt$LanguageScreenAction$Select : LanguageScreenAction + UndocumentedPublicClass:LanguageScreenStore.kt$LanguageScreenAction$UpdateLanguages : LanguageScreenAction + UndocumentedPublicClass:LanguageScreenStore.kt$LanguageScreenStore : Store + UndocumentedPublicClass:LanguageStorage.kt$LanguageStorage + UndocumentedPublicClass:LearnMoreSwitchPreference.kt$LearnMoreSwitchPreference : SwitchPreferenceCompat + UndocumentedPublicClass:LocaleDescriptor.kt$LocaleDescriptor : Comparable + UndocumentedPublicClass:LocalizedContent.kt$LocalizedContent + UndocumentedPublicClass:LockObserver.kt$LockObserver : DefaultLifecycleObserver + UndocumentedPublicClass:MainActivity.kt$MainActivity : LocaleAwareAppCompatActivity + UndocumentedPublicClass:MainActivity.kt$MainActivity$AppOpenType + UndocumentedPublicClass:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference : Preference + UndocumentedPublicClass:ManualAddSearchEngineSettingsFragment.kt$ManualAddSearchEngineSettingsFragment : BaseSettingsFragment + UndocumentedPublicClass:ManufacturerCodes.kt$ManufacturerCodes + UndocumentedPublicClass:MobileMetricsPingStorage.kt$MobileMetricsPingStorage + UndocumentedPublicClass:MozillaPreference.kt$MozillaPreference : Preference + UndocumentedPublicClass:MozillaSettingsFragment.kt$MozillaSettingsFragment : BaseSettingsFragment + UndocumentedPublicClass:MultiselectSearchEngineListPreference.kt$MultiselectSearchEngineListPreference : SearchEngineListPreference + UndocumentedPublicClass:NavigationButtonsIntegration.kt$NavigationButtonsIntegration : LifecycleAwareFeature + UndocumentedPublicClass:OnboardingController.kt$DefaultOnboardingController : OnboardingController + UndocumentedPublicClass:OnboardingController.kt$OnboardingController + UndocumentedPublicClass:OnboardingFirstFragment.kt$OnboardingFirstFragment : Fragment + UndocumentedPublicClass:OnboardingInteractor.kt$DefaultOnboardingInteractor : OnboardingInteractor + UndocumentedPublicClass:OnboardingInteractor.kt$OnboardingInteractor + UndocumentedPublicClass:OnboardingSecondFragment.kt$OnboardingSecondFragment : Fragment + UndocumentedPublicClass:OnboardingStep.kt$OnboardingStep + UndocumentedPublicClass:OnboardingStorage.kt$OnboardingStorage + UndocumentedPublicClass:PreferenceSwitch.kt$PreferenceSwitch : SwitchCompat + UndocumentedPublicClass:PreferenceToolTipCompose.kt$PreferenceToolTipCompose : Preference + UndocumentedPublicClass:PrivacySecuritySettingsFragment.kt$PrivacySecuritySettingsFragment : BaseSettingsFragmentOnSharedPreferenceChangeListener + UndocumentedPublicClass:RadioButtonPreference.kt$GroupableRadioButton + UndocumentedPublicClass:RadioButtonPreference.kt$RadioButtonPreference : PreferenceGroupableRadioButton + UndocumentedPublicClass:RadioSearchEngineListPreference.kt$RadioSearchEngineListPreference : SearchEngineListPreferenceOnCheckedChangeListener + UndocumentedPublicClass:RemoveSearchEnginesSettingsFragment.kt$RemoveSearchEnginesSettingsFragment : BaseSettingsFragment + UndocumentedPublicClass:SearchEngineListPreference.kt$SearchEngineListPreference : PreferenceCoroutineScope + UndocumentedPublicClass:SearchSettingsFragment.kt$SearchSettingsFragment : BaseSettingsFragmentOnSharedPreferenceChangeListener + UndocumentedPublicClass:SearchSuggestionsFragment.kt$SearchSuggestionsFragment : FragmentCoroutineScope + UndocumentedPublicClass:SearchSuggestionsPreferences.kt$SearchSuggestionsPreferences + UndocumentedPublicClass:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel : AndroidViewModel + UndocumentedPublicClass:SearchSuggestionsViewModel.kt$State + UndocumentedPublicClass:SearchSuggestionsViewModel.kt$State$Disabled : State + UndocumentedPublicClass:SearchSuggestionsViewModel.kt$State$NoSuggestionsAPI : State + UndocumentedPublicClass:SearchSuggestionsViewModel.kt$State$ReadyForSuggestions : State + UndocumentedPublicClass:SearchUtils.kt$SearchUtils + UndocumentedPublicClass:SearchWidgetProvider.kt$SearchWidgetProvider : AppSearchWidgetProvider + UndocumentedPublicClass:SearchWidgetUtils.kt$SearchWidgetUtils + UndocumentedPublicClass:SecretSettingsFragment.kt$SecretSettingsFragment : BaseSettingsFragmentOnSharedPreferenceChangeListener + UndocumentedPublicClass:SettingsFragment.kt$SettingsFragment : BaseSettingsFragment + UndocumentedPublicClass:SitePermission.kt$SitePermission : Parcelable + UndocumentedPublicClass:SitePermissionOption.kt$AutoplayOption + UndocumentedPublicClass:SitePermissionOption.kt$AutoplayOption$AllowAudioVideo : SitePermissionOption + UndocumentedPublicClass:SitePermissionOption.kt$AutoplayOption$BlockAudioOnly : SitePermissionOption + UndocumentedPublicClass:SitePermissionOption.kt$AutoplayOption$BlockAudioVideo : SitePermissionOption + UndocumentedPublicClass:SitePermissionOption.kt$SitePermissionOption + UndocumentedPublicClass:SitePermissionOption.kt$SitePermissionOption$Allowed : SitePermissionOption + UndocumentedPublicClass:SitePermissionOption.kt$SitePermissionOption$AskToAllow : SitePermissionOption + UndocumentedPublicClass:SitePermissionOption.kt$SitePermissionOption$Blocked : SitePermissionOption + UndocumentedPublicClass:SitePermissionOptionListItem.kt$SitePermissionOptionListItem + UndocumentedPublicClass:SitePermissionOptionsFragment.kt$SitePermissionOptionsFragment : BaseComposeFragment + UndocumentedPublicClass:SitePermissionOptionsScreenStore.kt$SitePermissionOptionsScreenAction : Action + UndocumentedPublicClass:SitePermissionOptionsScreenStore.kt$SitePermissionOptionsScreenAction$AndroidPermission : SitePermissionOptionsScreenAction + UndocumentedPublicClass:SitePermissionOptionsScreenStore.kt$SitePermissionOptionsScreenAction$InitSitePermissionOptions : SitePermissionOptionsScreenAction + UndocumentedPublicClass:SitePermissionOptionsScreenStore.kt$SitePermissionOptionsScreenAction$Select : SitePermissionOptionsScreenAction + UndocumentedPublicClass:SitePermissionOptionsScreenStore.kt$SitePermissionOptionsScreenAction$UpdateSitePermissionOptions : SitePermissionOptionsScreenAction + UndocumentedPublicClass:SitePermissionOptionsScreenStore.kt$SitePermissionOptionsScreenState : State + UndocumentedPublicClass:SitePermissionOptionsScreenStore.kt$SitePermissionOptionsScreenStore : Store + UndocumentedPublicClass:SitePermissionOptionsStorage.kt$SitePermissionOptionsStorage + UndocumentedPublicClass:SitePermissionOptionsStorageMiddleware.kt$SitePermissionOptionsStorageMiddleware : Middleware + UndocumentedPublicClass:SitePermissionsFragment.kt$SitePermissionsFragment : BaseSettingsFragment + UndocumentedPublicClass:StartupActivityLog.kt$StartupActivityLog$StartupLogActivityLifecycleCallbacks : DefaultActivityLifecycleCallbacks + UndocumentedPublicClass:StartupActivityLog.kt$StartupActivityLog$StartupLogAppLifecycleObserver : DefaultLifecycleObserver + UndocumentedPublicClass:StartupActivityLog.kt$StartupActivityLog.LogEntry$ActivityCreated : LogEntry + UndocumentedPublicClass:StartupActivityLog.kt$StartupActivityLog.LogEntry$ActivityStarted : LogEntry + UndocumentedPublicClass:StartupActivityLog.kt$StartupActivityLog.LogEntry$ActivityStopped : LogEntry + UndocumentedPublicClass:StartupActivityLog.kt$StartupActivityLog.LogEntry$AppStarted : LogEntry + UndocumentedPublicClass:StartupActivityLog.kt$StartupActivityLog.LogEntry$AppStopped : LogEntry + UndocumentedPublicClass:StartupPathProvider.kt$StartupPathProvider$StartupPath + UndocumentedPublicClass:StartupPathProvider.kt$StartupPathProvider$StartupPathLifecycleObserver : DefaultLifecycleObserver + UndocumentedPublicClass:StartupStateProvider.kt$StartupStateProvider$StartupState + UndocumentedPublicClass:StartupTypeTelemetry.kt$StartupTypeTelemetry$StartupTypeLifecycleObserver : DefaultLifecycleObserver + UndocumentedPublicClass:StudiesAdapter.kt$StudiesAdapter : ListAdapter + UndocumentedPublicClass:StudiesAdapter.kt$StudiesAdapter$StudiesDiffCallback : ItemCallback + UndocumentedPublicClass:StudiesFragment.kt$StudiesFragment : BaseSettingsLikeFragment + UndocumentedPublicClass:StudiesListItem.kt$StudiesListItem + UndocumentedPublicClass:StudiesListItem.kt$StudiesListItem$ActiveStudy : StudiesListItem + UndocumentedPublicClass:StudiesListItem.kt$StudiesListItem$Section : StudiesListItem + UndocumentedPublicClass:StudiesRecyclerView.kt$StudiesRecyclerView : RecyclerView + UndocumentedPublicClass:StudiesViewHolder.kt$StudiesViewHolder : ViewHolder + UndocumentedPublicClass:StudiesViewHolder.kt$StudiesViewHolder$ActiveStudiesViewHolder : StudiesViewHolder + UndocumentedPublicClass:StudiesViewHolder.kt$StudiesViewHolder$SectionViewHolder : StudiesViewHolder + UndocumentedPublicClass:StudiesViewModel.kt$StudiesViewModel : AndroidViewModel + UndocumentedPublicClass:SupportUtils.kt$SupportUtils + UndocumentedPublicClass:SupportUtils.kt$SupportUtils$SumoTopic + UndocumentedPublicClass:SwitchWithDescription.kt$SwitchWithDescription : ConstraintLayout + UndocumentedPublicClass:TabViewHolder.kt$TabViewHolder : ViewHolder + UndocumentedPublicClass:TabsPopup.kt$TabsPopup : PopupWindow + UndocumentedPublicClass:TelemetryMiddleware.kt$TelemetryMiddleware : Middleware + UndocumentedPublicClass:TelemetryWrapper.kt$TelemetryWrapper + UndocumentedPublicClass:TelemetryWrapper.kt$TelemetryWrapper$AutoCompleteEventSource + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu$CustomTabItem + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu$Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$AddToHomeScreen : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$Back : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$FindInPage : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$Forward : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$OpenInApp : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$OpenInBrowser : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$Reload : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$RequestDesktop : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.CustomTabItem$Stop : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$AddToHomeScreen : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$AddToShortcuts : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Back : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$FindInPage : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Forward : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$OpenInApp : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Reload : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$RemoveFromShortcuts : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$RequestDesktop : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Settings : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Share : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Stop : Item + UndocumentedPublicClass:TrackingProtectionPanel.kt$TrackingProtectionPanel : BottomSheetDialog + UndocumentedPublicClass:UrlInputFragment.kt$FocusCrashException : Exception + UndocumentedPublicClass:ViewUtils.kt$ViewUtils + UndocumentedPublicClass:VoiceSearchActivity.kt$VoiceSearchActivity : BaseVoiceSearchActivity + UndocumentedPublicClass:WhatsNewStorage.kt$SharedPreferenceWhatsNewStorage : WhatsNewStorage + UndocumentedPublicClass:WhatsNewVersion.kt$ContextWhatsNewVersion : WhatsNewVersion + UndocumentedPublicFunction:AboutFragment.kt$@Composable fun ColumnScope.LearnMoreLink( learnMore: String, openLearnMore: () -> Job, ) + UndocumentedPublicFunction:AddToHomescreenDialogFragment.kt$AddToHomescreenDialogFragment.Companion$fun newInstance( url: String, title: String, blockingEnabled: Boolean, requestDesktop: Boolean, ): AddToHomescreenDialogFragment + UndocumentedPublicFunction:AdvancedSettingsFragment.kt$AdvancedSettingsFragment.Companion$fun newInstance(): AdvancedSettingsFragment + UndocumentedPublicFunction:AutocompleteDomainFormatter.kt$AutocompleteDomainFormatter$fun format(url: String): String + UndocumentedPublicFunction:AutocompleteListFragment.kt$AutocompleteListFragment.DomainListAdapter$fun move(from: Int, to: Int) + UndocumentedPublicFunction:AutocompleteListFragment.kt$AutocompleteListFragment.DomainListAdapter$fun refresh(context: Context, body: (() -> Unit)? = null) + UndocumentedPublicFunction:AutocompleteListFragment.kt$AutocompleteListFragment.DomainListAdapter$fun selection(): List<String> + UndocumentedPublicFunction:BaseFragment.kt$BaseFragment$fun cancelAnimation() + UndocumentedPublicFunction:BaseFragment.kt$fun Fragment.requestInPlacePermissions( permissionsToRequest: Array<String>, onResult: (Map<String, Boolean>) -> Unit, ) + UndocumentedPublicFunction:BiometricAuthenticationFragment.kt$BiometricAuthenticationFragment.Companion$fun createWithDestinationData(bundle: Bundle? = null): BiometricAuthenticationFragment + UndocumentedPublicFunction:BiometricAuthenticationFragmentCompose.kt$@Composable fun BiometricPromptContent(biometricErrorText: String, showBiometricPrompt: () -> Unit) + UndocumentedPublicFunction:BrowserFragment.kt$BrowserFragment$fun crashReporterIsVisible(): Boolean + UndocumentedPublicFunction:BrowserFragment.kt$BrowserFragment$fun erase(shouldEraseAllTabs: Boolean = false) + UndocumentedPublicFunction:BrowserFragment.kt$BrowserFragment$fun handleTabCrash(crash: Crash) + UndocumentedPublicFunction:BrowserFragment.kt$BrowserFragment$fun showTrackingProtectionPanel() + UndocumentedPublicFunction:BrowserFragment.kt$BrowserFragment.Companion$fun createForTab(tabId: String): BrowserFragment + UndocumentedPublicFunction:BrowserMenuController.kt$BrowserMenuController$@Suppress("ComplexMethod") fun handleMenuInteraction(item: ToolbarMenu.Item) + UndocumentedPublicFunction:BrowsersCache.kt$BrowsersCache$@Synchronized fun all(context: Context): Browsers + UndocumentedPublicFunction:ClientWrapper.kt$ClientWrapper$@Deprecated("Non-private Client usage should be prevented") fun unwrap(): Client + UndocumentedPublicFunction:ContextMenuCandidates.kt$ContextMenuCandidates$@Suppress("LongParameterList") fun get( context: Context, tabsUseCases: TabsUseCases, contextMenuUseCases: ContextMenuUseCases, appLinksUseCases: AppLinksUseCases, snackBarParentView: View, snackbarDelegate: ContextMenuCandidate.SnackbarDelegate = DefaultSnackbarDelegate(), isCustomTab: Boolean, ): List<ContextMenuCandidate> + UndocumentedPublicFunction:CookiesPreference.kt$CookiesPreference$fun updateSummary() + UndocumentedPublicFunction:CrashReporterFragment.kt$CrashReporterFragment.Companion$fun create() + UndocumentedPublicFunction:DefaultBrowserPreference.kt$DefaultBrowserPreference$fun update() + UndocumentedPublicFunction:DefaultCookieBannerExceptionInteractor.kt$DefaultCookieBannerExceptionInteractor$fun handleToggleCookieBannerException(isCookieBannerHandlingExceptionEnabled: Boolean) + UndocumentedPublicFunction:DefaultLanguageScreenInteractor.kt$DefaultLanguageScreenInteractor$fun handleLanguageSelected(language: Language) + UndocumentedPublicFunction:DefaultSitePermissionOptionsScreenInteractor.kt$DefaultSitePermissionOptionsScreenInteractor$fun handleSitePermissionOptionSelected(sitePermissionOption: SitePermissionOption) + UndocumentedPublicFunction:EngineProvider.kt$EngineProvider$fun createClient(context: Context): Client + UndocumentedPublicFunction:EngineProvider.kt$EngineProvider$fun createCookieBannerStorage(context: Context): GeckoCookieBannersStorage + UndocumentedPublicFunction:EngineProvider.kt$EngineProvider$fun createEngine(context: Context, defaultSettings: DefaultSettings): Engine + UndocumentedPublicFunction:ExceptionsListFragment.kt$ExceptionsListFragment.DomainListAdapter$fun move(from: Int, to: Int) + UndocumentedPublicFunction:ExceptionsListFragment.kt$ExceptionsListFragment.DomainListAdapter$fun refresh(context: Context, body: (() -> Unit)? = null) + UndocumentedPublicFunction:ExceptionsListFragment.kt$ExceptionsListFragment.DomainListAdapter$fun selection(): List<TrackingProtectionException> + UndocumentedPublicFunction:FactsProcessor.kt$FactsProcessor$fun initialize() + UndocumentedPublicFunction:FenixProductDetector.kt$FenixProductDetector$fun getInstalledFenixVersions(context: Context): List<String> + UndocumentedPublicFunction:FenixProductDetector.kt$FenixProductDetector$fun isFenixDefaultBrowser(defaultBrowser: ActivityInfo?): Boolean + UndocumentedPublicFunction:FindInPageIntegration.kt$FindInPageIntegration$fun hide() + UndocumentedPublicFunction:FindInPageIntegration.kt$FindInPageIntegration$fun show(sessionState: SessionState) + UndocumentedPublicFunction:FirstrunFragment.kt$FirstrunFragment.Companion$fun create(): FirstrunFragment + UndocumentedPublicFunction:FirstrunPagerAdapter.kt$FirstrunPagerAdapter$fun getPageAccessibilityDescription(position: Int): String + UndocumentedPublicFunction:FocusApplication.kt$FocusApplication$open fun updateLeakCanaryState(isEnabled: Boolean) + UndocumentedPublicFunction:FocusDialog.kt$@Composable fun FocusDialogSample() + UndocumentedPublicFunction:FocusDialog.kt$@Preview( name = "dark theme", showBackground = true, backgroundColor = 0xFF393473, uiMode = Configuration.UI_MODE_NIGHT_MASK, ) @Composable fun DialogTitlePreviewDark() + UndocumentedPublicFunction:FocusDialog.kt$@Preview( name = "light theme", showBackground = true, backgroundColor = 0xFFFBFBFE, uiMode = Configuration.UI_MODE_NIGHT_NO, ) @Composable fun DialogTitlePreviewLight() + UndocumentedPublicFunction:FocusSnackbar.kt$FocusSnackbar$fun setAction(text: String, action: () -> Unit) + UndocumentedPublicFunction:FocusSnackbar.kt$FocusSnackbar$fun setText(text: String) + UndocumentedPublicFunction:FocusTheme.kt$fun phoneDimensions() + UndocumentedPublicFunction:FocusTheme.kt$fun tabletDimensions() + UndocumentedPublicFunction:HomeMenu.kt$HomeMenu$fun getMenuBuilder(): BrowserMenuBuilder + UndocumentedPublicFunction:IconGenerator.kt$IconGenerator.Companion$/* * This method needs to be separate from generateAdaptiveLauncherIcon so that we can generate * the pre-Oreo icon to display in the Add To Home screen Dialog */ @JvmStatic fun generateLauncherIconPreOreo(context: Context, character: Char): Bitmap + UndocumentedPublicFunction:InstallFirefoxActivity.kt$InstallFirefoxActivity.Companion$fun open(context: Context) + UndocumentedPublicFunction:InstallFirefoxActivity.kt$InstallFirefoxActivity.Companion$fun resolveAppStore(context: Context): ActivityInfo? + UndocumentedPublicFunction:InstalledSearchEnginesSettingsFragment.kt$InstalledSearchEnginesSettingsFragment.Companion$fun newInstance() + UndocumentedPublicFunction:LearnMoreSwitchPreference.kt$LearnMoreSwitchPreference$abstract fun getLearnMoreUrl(): String + UndocumentedPublicFunction:LearnMoreSwitchPreference.kt$LearnMoreSwitchPreference$open fun getDescription(): String? + UndocumentedPublicFunction:LocaleDescriptor.kt$LocaleDescriptor$fun getNativeName(): String? + UndocumentedPublicFunction:LocaleDescriptor.kt$LocaleDescriptor$fun getTag(): String + UndocumentedPublicFunction:LocaleFragmentCompose.kt$@Composable fun LanguageNameAndTagItem( language: Language, isSelected: Boolean, onClick: (String) -> Unit, ) + UndocumentedPublicFunction:LocalizedContent.kt$LocalizedContent$fun loadGPL(context: Context): String + UndocumentedPublicFunction:LocalizedContent.kt$LocalizedContent$fun loadLicenses(context: Context): String + UndocumentedPublicFunction:MainActivity.kt$MainActivity$fun customizeStatusBar(backgroundColorId: Int? = null) + UndocumentedPublicFunction:MainActivity.kt$MainActivity$fun getToolbar(): ActionBar + UndocumentedPublicFunction:MainActivity.kt$MainActivity$fun hideStatusBarBackground() + UndocumentedPublicFunction:MainActivityNavigation.kt$MainActivityNavigation$@Suppress("ComplexMethod") fun settings(page: Screen.Settings.Page) + UndocumentedPublicFunction:MainActivityNavigation.kt$MainActivityNavigation$fun showOnBoardingSecondScreen() + UndocumentedPublicFunction:MainActivityNavigation.kt$MainActivityNavigation$fun sitePermissionOptionsFragment(sitePermission: SitePermission) + UndocumentedPublicFunction:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference$fun setProgressViewShown(isShown: Boolean) + UndocumentedPublicFunction:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference$fun setSearchQueryErrorText(err: String) + UndocumentedPublicFunction:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference$fun validateEngineNameAndShowError(engineName: String, existingEngines: List<SearchEngine>): Boolean + UndocumentedPublicFunction:ManualAddSearchEnginePreference.kt$ManualAddSearchEnginePreference$fun validateSearchQueryAndShowError(searchQuery: String): Boolean + UndocumentedPublicFunction:ManualAddSearchEngineSettingsFragment.kt$ManualAddSearchEngineSettingsFragment.Companion$@WorkerThread @JvmStatic fun isValidSearchQueryURL(client: Client, query: String): Boolean + UndocumentedPublicFunction:MobileMetricsPingStorage.kt$MobileMetricsPingStorage$fun clearStorage() + UndocumentedPublicFunction:MobileMetricsPingStorage.kt$MobileMetricsPingStorage$fun load(): JSONObject? + UndocumentedPublicFunction:MobileMetricsPingStorage.kt$MobileMetricsPingStorage$fun save(json: JSONObject) + UndocumentedPublicFunction:MobileMetricsPingStorage.kt$MobileMetricsPingStorage$fun shouldStoreMetrics(): Boolean + UndocumentedPublicFunction:MozillaSettingsFragment.kt$MozillaSettingsFragment.Companion$fun newInstance(): MozillaSettingsFragment + UndocumentedPublicFunction:MultiselectSearchEngineListPreference.kt$MultiselectSearchEngineListPreference$fun atLeastOneEngineChecked(): Boolean + UndocumentedPublicFunction:NimbusSetup.kt$fun getNimbusAppName(): String + UndocumentedPublicFunction:OnboardingController.kt$DefaultOnboardingController$@VisibleForTesting fun navigateToDefaultBrowserAppsSettings() + UndocumentedPublicFunction:OnboardingController.kt$OnboardingController$fun handleActivityResultImplementation(activityResult: ActivityResult) + UndocumentedPublicFunction:OnboardingController.kt$OnboardingController$fun handleFinishOnBoarding() + UndocumentedPublicFunction:OnboardingController.kt$OnboardingController$fun handleGetStartedButtonClicked() + UndocumentedPublicFunction:OnboardingController.kt$OnboardingController$fun handleMakeFocusDefaultBrowserButtonClicked(activityResultLauncher: ActivityResultLauncher<Intent>) + UndocumentedPublicFunction:OnboardingInteractor.kt$OnboardingInteractor$fun onActivityResultImplementation(activityResult: ActivityResult) + UndocumentedPublicFunction:OnboardingInteractor.kt$OnboardingInteractor$fun onFinishOnBoarding() + UndocumentedPublicFunction:OnboardingInteractor.kt$OnboardingInteractor$fun onGetStartedButtonClicked() + UndocumentedPublicFunction:OnboardingInteractor.kt$OnboardingInteractor$fun onMakeFocusDefaultBrowserButtonClicked(activityResultLauncher: ActivityResultLauncher<Intent>) + UndocumentedPublicFunction:Performance.kt$Performance$fun processIntentIfPerformanceTest(bundle: Bundle?, context: Context) + UndocumentedPublicFunction:PreferenceSwitch.kt$PreferenceSwitch$fun onClickListener(listener: () -> Unit) + UndocumentedPublicFunction:PrivacySecuritySettingsFragment.kt$PrivacySecuritySettingsFragment.Companion$fun newInstance(): PrivacySecuritySettingsFragment + UndocumentedPublicFunction:ProfilerMarkerFactProcessor.kt$ProfilerMarkerFactProcessor.Companion$fun create(profilerProvider: () -> Profiler?) + UndocumentedPublicFunction:PromoteSearchWidgetDialogCompose.kt$@Suppress("LongMethod") @Composable fun PromoteSearchWidgetDialogCompose( onAddSearchWidgetButtonClick: () -> Unit, onDismiss: () -> Unit, ) + UndocumentedPublicFunction:RadioButtonPreference.kt$GroupableRadioButton$fun addToRadioGroup(radioButton: GroupableRadioButton) + UndocumentedPublicFunction:RadioButtonPreference.kt$GroupableRadioButton$fun updateRadioValue(isChecked: Boolean) + UndocumentedPublicFunction:RadioButtonPreference.kt$RadioButtonPreference$fun onClickListener(listener: (() -> Unit)) + UndocumentedPublicFunction:RadioButtonPreference.kt$fun Iterable<GroupableRadioButton>.uncheckAll() + UndocumentedPublicFunction:RemoveSearchEnginesSettingsFragment.kt$RemoveSearchEnginesSettingsFragment.Companion$fun newInstance() + UndocumentedPublicFunction:SearchEngineListPreference.kt$SearchEngineListPreference$fun refetchSearchEngines() + UndocumentedPublicFunction:SearchOverlay.kt$@OptIn(DelicateCoroutinesApi::class) @Composable fun SearchOverlay( viewModel: SearchSuggestionsViewModel, defaultSearchEngineName: String, onListScrolled: () -> Unit, ) + UndocumentedPublicFunction:SearchSettingsFragment.kt$SearchSettingsFragment.Companion$fun newInstance(): SearchSettingsFragment + UndocumentedPublicFunction:SearchSuggestionsFragment.kt$SearchSuggestionsFragment.Companion$fun create() + UndocumentedPublicFunction:SearchSuggestionsPreferences.kt$SearchSuggestionsPreferences$fun disableSearchSuggestions() + UndocumentedPublicFunction:SearchSuggestionsPreferences.kt$SearchSuggestionsPreferences$fun dismissNoSuggestionsMessage() + UndocumentedPublicFunction:SearchSuggestionsPreferences.kt$SearchSuggestionsPreferences$fun enableSearchSuggestions() + UndocumentedPublicFunction:SearchSuggestionsPreferences.kt$SearchSuggestionsPreferences$fun hasUserToggledSearchSuggestions(): Boolean + UndocumentedPublicFunction:SearchSuggestionsPreferences.kt$SearchSuggestionsPreferences$fun searchSuggestionsEnabled(): Boolean + UndocumentedPublicFunction:SearchSuggestionsPreferences.kt$SearchSuggestionsPreferences$fun userHasDismissedNoSuggestionsMessage(): Boolean + UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun clearAutocompleteSuggestion() + UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun clearSearchSuggestion() + UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun disableSearchSuggestions() + UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun dismissNoSuggestionsMessage() + UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun enableSearchSuggestions() + UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun refresh() + UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun selectSearchSuggestion( suggestion: String, defaultSearchEngineName: String, alwaysSearch: Boolean = false, ) + UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun setAutocompleteSuggestion(text: String) + UndocumentedPublicFunction:SearchSuggestionsViewModel.kt$SearchSuggestionsViewModel$fun setSearchQuery(query: String) + UndocumentedPublicFunction:SearchUtils.kt$SearchUtils$fun createSearchUrl(context: Context?, text: String): String + UndocumentedPublicFunction:SecretSettingsUnlocker.kt$SecretSettingsUnlocker$fun increment() + UndocumentedPublicFunction:Settings.kt$Settings$fun addSearchWidgetInstalled(count: Int) + UndocumentedPublicFunction:Settings.kt$Settings$fun createTrackingProtectionPolicy( shouldBlockCookiesValue: String = shouldBlockCookiesValue(), ): EngineSession.TrackingProtectionPolicy + UndocumentedPublicFunction:Settings.kt$Settings$fun getAppLaunchCount() + UndocumentedPublicFunction:Settings.kt$Settings$fun getClearBrowsingSessions() + UndocumentedPublicFunction:Settings.kt$Settings$fun getCurrentCookieBannerOptionFromSharePref(): CookieBannerOption + UndocumentedPublicFunction:Settings.kt$Settings$fun getHttpsOnlyMode(): Engine.HttpsOnlyMode + UndocumentedPublicFunction:Settings.kt$Settings$fun getTotalBlockedTrackersCount() + UndocumentedPublicFunction:Settings.kt$Settings$fun hasAdvertisingBlocked() + UndocumentedPublicFunction:Settings.kt$Settings$fun hasAnalyticsBlocked() + UndocumentedPublicFunction:Settings.kt$Settings$fun hasRequestedDesktop() + UndocumentedPublicFunction:Settings.kt$Settings$fun hasSocialBlocked() + UndocumentedPublicFunction:Settings.kt$Settings$fun saveCurrentCookieBannerOptionInSharePref( cookieBannerOption: CookieBannerOption, ) + UndocumentedPublicFunction:Settings.kt$Settings$fun setDefaultSearchEngineByName(name: String) + UndocumentedPublicFunction:Settings.kt$Settings$fun setupSafeBrowsing(engine: Engine, shouldUseSafeBrowsing: Boolean = shouldUseSafeBrowsing()) + UndocumentedPublicFunction:Settings.kt$Settings$fun shouldAutocompleteFromCustomDomainList() + UndocumentedPublicFunction:Settings.kt$Settings$fun shouldAutocompleteFromShippedDomainList() + UndocumentedPublicFunction:Settings.kt$Settings$fun shouldBlockAdTrackers() + UndocumentedPublicFunction:Settings.kt$Settings$fun shouldBlockAnalyticTrackers() + UndocumentedPublicFunction:Settings.kt$Settings$fun shouldBlockCookiesValue(): String + UndocumentedPublicFunction:Settings.kt$Settings$fun shouldBlockJavaScript(): Boolean + UndocumentedPublicFunction:Settings.kt$Settings$fun shouldBlockOtherTrackers() + UndocumentedPublicFunction:Settings.kt$Settings$fun shouldBlockSocialTrackers() + UndocumentedPublicFunction:Settings.kt$Settings$fun shouldBlockWebFonts(): Boolean + UndocumentedPublicFunction:Settings.kt$Settings$fun shouldEnableRemoteDebugging(): Boolean + UndocumentedPublicFunction:Settings.kt$Settings$fun shouldShowSearchSuggestions(): Boolean + UndocumentedPublicFunction:Settings.kt$Settings$fun shouldUseBiometrics(): Boolean + UndocumentedPublicFunction:Settings.kt$Settings$fun shouldUseSecureMode(): Boolean + UndocumentedPublicFunction:Settings.kt$Settings$fun userHasDismissedNoSuggestionsMessage(): Boolean + UndocumentedPublicFunction:Settings.kt$Settings$fun userHasToggledSearchSuggestions(): Boolean + UndocumentedPublicFunction:SettingsFragment.kt$SettingsFragment.Companion$fun newInstance(): SettingsFragment + UndocumentedPublicFunction:SitePermissionOptionsFragment.kt$SitePermissionOptionsFragment.Companion$fun addSitePermission(sitePermission: SitePermission): SitePermissionOptionsFragment + UndocumentedPublicFunction:SitePermissionOptionsStorage.kt$SitePermissionOptionsStorage$fun getSitePermissionLabel(sitePermission: SitePermission): String + UndocumentedPublicFunction:SitePermissionOptionsStorage.kt$SitePermissionOptionsStorage$fun getSitePermissionsSettingsRules() + UndocumentedPublicFunction:SitePermissionOptionsStorage.kt$SitePermissionOptionsStorage$fun isAndroidPermissionGranted(sitePermission: SitePermission): Boolean + UndocumentedPublicFunction:SitePermissionOptionsStorage.kt$SitePermissionOptionsStorage$fun isSitePermissionNotBlocked(permissionsList: Array<String>): Boolean + UndocumentedPublicFunction:StartupActivityLog.kt$StartupActivityLog$@VisibleForTesting(otherwise = NONE) fun getObserversForTesting() + UndocumentedPublicFunction:StartupActivityLog.kt$StartupActivityLog$@VisibleForTesting(otherwise = PRIVATE) fun logEntries(loggerArg: Logger = logger, logLevel: Log.Priority = Log.logLevel) + UndocumentedPublicFunction:StartupActivityLog.kt$StartupActivityLog$fun registerInAppOnCreate( application: Application, processLifecycleOwner: LifecycleOwner = ProcessLifecycleOwner.get(), ) + UndocumentedPublicFunction:StartupPathProvider.kt$StartupPathProvider$@VisibleForTesting(otherwise = NONE) fun getTestCallbacks() + UndocumentedPublicFunction:StartupPathProvider.kt$StartupPathProvider$fun attachOnActivityOnCreate(lifecycle: Lifecycle, intent: Intent?) + UndocumentedPublicFunction:StartupTypeTelemetry.kt$StartupTypeTelemetry$@VisibleForTesting(otherwise = NONE) fun getTestCallbacks() + UndocumentedPublicFunction:StartupTypeTelemetry.kt$StartupTypeTelemetry$fun attachOnMainActivityOnCreate(lifecycle: Lifecycle) + UndocumentedPublicFunction:StoreLink.kt$StoreLink$fun start() + UndocumentedPublicFunction:StudiesViewHolder.kt$StudiesViewHolder.ActiveStudiesViewHolder$fun bindStudy( activeStudy: StudiesListItem.ActiveStudy, removeStudyListener: (StudiesListItem.ActiveStudy) -> Unit, ) + UndocumentedPublicFunction:StudiesViewHolder.kt$StudiesViewHolder.SectionViewHolder$fun bindSection(section: StudiesListItem.Section) + UndocumentedPublicFunction:StudiesViewModel.kt$StudiesViewModel$fun removeStudy(study: StudiesListItem.ActiveStudy) + UndocumentedPublicFunction:StudiesViewModel.kt$StudiesViewModel$fun setStudiesState(state: Boolean) + UndocumentedPublicFunction:SupportUtils.kt$SupportUtils$// For some reason this URL has a different format than the other SUMO URLs fun getSafeBrowsingURL(): String + UndocumentedPublicFunction:SupportUtils.kt$SupportUtils$fun getGenericSumoURLForTopic(topic: SumoTopic): String + UndocumentedPublicFunction:SupportUtils.kt$SupportUtils$fun getSumoURLForTopic(context: Context, topic: SumoTopic): String + UndocumentedPublicFunction:SupportUtils.kt$SupportUtils$fun openDefaultBrowserSumoPage(context: Context) + UndocumentedPublicFunction:SupportUtils.kt$SupportUtils$fun openUrlInCustomTab(activity: FragmentActivity, destinationUrl: String) + UndocumentedPublicFunction:TabViewHolder.kt$TabViewHolder$fun bind( tab: TabSessionState, isCurrentSession: Boolean, selectSession: (TabSessionState) -> Unit, closeSession: (TabSessionState) -> Unit, ) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic @Suppress("LongMethod") fun init(context: Context) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun addLoadToHistogram(url: String, newLoadTime: Long) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun addSearchEngineLearnMoreEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun addToHomescreenShortcutEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun browseIntentEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun cancelAddToHomescreenShortcutEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun closeCustomTabEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun closeTabButtonTapped(crashSubmitted: Boolean) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun closeTabsTrayEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun copyImageEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun copyLinkEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun crashReporterOpened() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun customTabActionButtonEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun customTabMenuEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun dayPassedSinceLastUpload(context: Context): Boolean + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun desktopRequestCheckEvent(shouldRequestDesktop: Boolean) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun downloadDialogDownloadEvent(sentToDownload: Boolean) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun eraseAndOpenNotificationActionEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun eraseAndOpenShortcutEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun eraseBackToAppEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun eraseBackToHomeEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun eraseEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun eraseNotificationEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun eraseShortcutEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun eraseTaskRemoved() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun findInPageMenuEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun finishFirstRunEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun installFirefoxEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun isTelemetryEnabled(context: Context): Boolean + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun makeDefaultBrowserSettings() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun menuAddSearchEngineEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun menuReloadEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun menuRemoveEnginesEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun menuRestoreEnginesEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun openExceptionsListSetting() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun openFirefoxEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun openFromIconEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun openHomescreenShortcutEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun openLinkInFullBrowserFromCustomTabEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun openLinkInNewTabEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun openNotificationActionEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun openSearchSettingsEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun openSelectionEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun openTabsTrayEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun openWhatsNewEvent(highlighted: Boolean) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun removeSearchEnginesEvent(selected: Int) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun reportSiteIssueEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun respondToSearchSuggestionPrompt(enable: Boolean) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun resumeFromIconEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun saveCustomSearchEngineEvent(success: Boolean) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun saveImageEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun setDefaultSearchEngineEvent(source: String) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun settingsEvent(key: String, value: String) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun shareEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun shareImageEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun shareIntentEvent(isSearch: Boolean) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun shareLinkEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun showFirstRunPageEvent(page: Int) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun skipFirstRunEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun startSession() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun stopMainActivity() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun stopSession() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun textSelectionIntentEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$@JvmStatic fun urlBarEvent(isUrl: Boolean) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$fun removeAllExceptionDomains(count: Int) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$fun removeAutocompleteDomainsEvent(count: Int) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$fun removeExceptionDomains(count: Int) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$fun reorderAutocompleteDomainEvent(from: Int, to: Int) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$fun saveAutocompleteDomainEvent(eventSource: AutoCompleteEventSource) + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$fun searchEnterEvent() + UndocumentedPublicFunction:TelemetryWrapper.kt$TelemetryWrapper$fun searchSelectEvent(isSearchSuggestion: Boolean) + UndocumentedPublicFunction:Theme.kt$fun Resources.Theme.resolveAttribute(attribute: Int): Int + UndocumentedPublicFunction:TopSitesOverlay.kt$@OptIn(DelicateCoroutinesApi::class) @Composable fun TopSitesOverlay(modifier: Modifier = Modifier) + UndocumentedPublicFunction:TopSitesOverlay.kt$@OptIn(DelicateCoroutinesApi::class) fun removeTopSite(item: TopSite, components: Components) + UndocumentedPublicFunction:TopSitesOverlay.kt$@OptIn(DelicateCoroutinesApi::class) fun renameTopSite(selectedTopSite: TopSite, newTitle: String, components: Components) + UndocumentedPublicFunction:TransitionDrawableGroup.kt$TransitionDrawableGroup$fun resetTransition() + UndocumentedPublicFunction:TransitionDrawableGroup.kt$TransitionDrawableGroup$fun startTransition(durationMillis: Int) + UndocumentedPublicFunction:UrlInputFragment.kt$UrlInputFragment$fun onBackPressed(): Boolean + UndocumentedPublicFunction:UrlInputFragment.kt$UrlInputFragment.Companion$@JvmStatic fun createWithTab( tabId: String, ): UrlInputFragment + UndocumentedPublicFunction:UrlInputFragment.kt$UrlInputFragment.Companion$@JvmStatic fun createWithoutSession(): UrlInputFragment + UndocumentedPublicFunction:ViewUtils.kt$ViewUtils$fun hideKeyboard(view: View?) + UndocumentedPublicFunction:ViewUtils.kt$ViewUtils$fun showKeyboard(view: View?) + UndocumentedPublicFunction:VisibilityLifeCycleCallback.kt$VisibilityLifeCycleCallback.Companion$fun isInBackground(context: Context): Boolean + UndocumentedPublicFunction:WhatsNewStorage.kt$WhatsNewStorage$fun getSessionCounter(): Int + UndocumentedPublicFunction:WhatsNewStorage.kt$WhatsNewStorage$fun getVersion(): WhatsNewVersion? + UndocumentedPublicFunction:WhatsNewStorage.kt$WhatsNewStorage$fun setSessionCounter(sessionCount: Int) + UndocumentedPublicFunction:WhatsNewStorage.kt$WhatsNewStorage$fun setVersion(version: WhatsNewVersion) + UnusedPrivateMember:DownloadRobot.kt$private val downloadNotificationText = getStringResource(R.string.mozac_feature_downloads_completed_notification_text2) + UnusedPrivateMember:ExternalIntentNavigationTest.kt$ShadowPerformance$bundle: Bundle? + UnusedPrivateMember:ExternalIntentNavigationTest.kt$ShadowPerformance$context: Context + UnusedPrivateMember:SettingsGeneralMenuRobot.kt$private val openWithDialogTitle = mDevice.findObject( UiSelector() .text("Open with"), ) + UnusedPrivateMember:SettingsGeneralMenuRobot.kt$private val openWithList = mDevice.findObject( UiSelector() .resourceId("android:id/resolver_list"), ) + UnusedPrivateMember:TelemetryMiddleware.kt$TelemetryMiddleware$ @Suppress("ComplexMethod") private fun generateOptions(customTabConfig: CustomTabConfig): List<String> + UnusedPrivateMember:WhatsNewTest.kt$WhatsNewTest$i + UtilityClassWithPublicConstructor:AppReviewUtils.kt$AppReviewUtils + UtilityClassWithPublicConstructor:IconGenerator.kt$IconGenerator + + diff --git a/mobile/android/focus-android/quality/detekt.yml b/mobile/android/focus-android/quality/detekt.yml index b5a6f6b59683..51c4b4433dc8 100644 --- a/mobile/android/focus-android/quality/detekt.yml +++ b/mobile/android/focus-android/quality/detekt.yml @@ -1,5 +1,9 @@ +# Please refer to https://github.com/mozilla-mobile/firefox-android/blob/main/android-components/config/detekt.yml +# for the source of truth for our detekt configuration. + build: maxIssues: 0 + excludeCorrectable: false weights: # complexity: 2 # LongParameterList: 1 @@ -9,11 +13,19 @@ build: processors: active: true exclude: + # - 'DetektProgressListener' + # - 'KtFileCountProcessor' + # - 'PackageCountProcessor' + # - 'ClassCountProcessor' # - 'FunctionCountProcessor' # - 'PropertyCountProcessor' - # - 'ClassCountProcessor' - # - 'PackageCountProcessor' - # - 'KtFileCountProcessor' + # - 'ProjectComplexityProcessor' + # - 'ProjectCognitiveComplexityProcessor' + # - 'ProjectLLOCProcessor' + # - 'ProjectCLOCProcessor' + # - 'ProjectLOCProcessor' + # - 'ProjectSLOCProcessor' + # - 'LicenseHeaderLoaderExtension' console-reports: active: true @@ -22,30 +34,37 @@ console-reports: # - 'ComplexityReport' # - 'NotificationReport' # - 'FindingsReport' - # - 'BuildFailureReport' - # - 'HtmlOutputReport' - - 'PlainOutputReport' - - 'XmlOutputReport' + # - 'FileBasedFindingsReport' + - 'LiteFindingsReport' comments: active: true -# excludes: "**/*Test.kt, **/*Spec.kt, **/test/**, **/androidTest/**" AbsentOrWrongFileLicense: - active: true + active: false + licenseTemplateFile: 'license.template' + licenseTemplateIsRegex: false CommentOverPrivateFunction: active: false CommentOverPrivateProperty: active: false + DeprecatedBlockTag: + active: false EndOfSentenceFormat: active: false - endOfSentenceFormat: ([.?!][ \t\n\r\f<])|([.?!]$) - UndocumentedPublicClass: + endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)' + OutdatedDocumentation: active: false + matchTypeParameters: true + matchDeclarationsOrder: true + UndocumentedPublicClass: + active: true searchInNestedClass: true searchInInnerClass: true searchInInnerObject: true searchInInnerInterface: true UndocumentedPublicFunction: + active: true + UndocumentedPublicProperty: active: false complexity: @@ -57,58 +76,89 @@ complexity: active: false threshold: 10 includeStaticDeclarations: false + includePrivateDeclarations: false ComplexMethod: active: true - threshold: 15 + threshold: 18 ignoreSingleWhenExpression: true + ignoreSimpleWhenEntries: false + ignoreNestingFunctions: false + nestingFunctions: + - 'also' + - 'apply' + - 'forEach' + - 'isNotNull' + - 'ifNull' + - 'let' + - 'run' + - 'use' + - 'with' LabeledExpression: active: false + ignoredLabels: [] LargeClass: active: true - excludes: "**/*Test.kt, **/*Spec.kt, **/test/**, **/androidTest/**" - # Had to increase the threshold as RC13 started counting lines of code - # https://github.com/mozilla-mobile/fenix/issues/4861 - threshold: 200 + threshold: 600 LongMethod: active: true - excludes: "**/*Test.kt, **/*Spec.kt, **/test/**, **/androidTest/**" - # Had to increase the threshold as RC13 started counting lines of code - # https://github.com/mozilla-mobile/fenix/issues/4861 threshold: 75 LongParameterList: active: true - excludes: "**/*Controller.kt, **/*Integration.kt" functionThreshold: 6 constructorThreshold: 7 - ignoreDefaultParameters: false + ignoreDefaultParameters: true ignoreDataClasses: true + ignoreAnnotatedParameter: [] MethodOverloading: active: false threshold: 6 + NamedArguments: + active: false + threshold: 3 NestedBlockDepth: active: true threshold: 4 + ReplaceSafeCallChainWithRun: + active: false StringLiteralDuplication: active: false - excludes: "**/*Test.kt, **/*Spec.kt, **/test/**, **/androidTest/**" threshold: 3 ignoreAnnotation: true excludeStringsWithLessThan5Characters: true ignoreStringsRegex: '$^' TooManyFunctions: active: true - excludes: "**/*Test.kt, **/*Spec.kt, **/test/**, **/androidTest/**" - thresholdInFiles: 11 - thresholdInClasses: 11 - thresholdInInterfaces: 11 - thresholdInObjects: 11 + thresholdInFiles: 26 + thresholdInClasses: 26 + thresholdInInterfaces: 26 + thresholdInObjects: 26 thresholdInEnums: 11 + ignoreDeprecated: false + ignorePrivate: false + ignoreOverridden: false + +coroutines: + active: true + GlobalCoroutineUsage: + active: false + InjectDispatcher: + active: false + dispatcherNames: + - 'IO' + - 'Default' + - 'Unconfined' + RedundantSuspendModifier: + active: false + SleepInsteadOfDelay: + active: false + SuspendFunWithFlowReturnType: + active: false empty-blocks: active: true EmptyCatchBlock: active: true - allowedExceptionNameRegex: "^(ignore|expected).*" + allowedExceptionNameRegex: '_|(ignore|expected).*' EmptyClassBlock: active: true EmptyDefaultConstructor: @@ -123,7 +173,7 @@ empty-blocks: active: true EmptyFunctionBlock: active: true - excludes: "**/*Test.kt, **/*Spec.kt, **/test/**, **/androidTest/**" + ignoreOverridden: false EmptyIfBlock: active: true EmptyInitBlock: @@ -132,6 +182,8 @@ empty-blocks: active: true EmptySecondaryConstructor: active: true + EmptyTryBlock: + active: true EmptyWhenBlock: active: true EmptyWhileBlock: @@ -141,61 +193,90 @@ exceptions: active: true ExceptionRaisedInUnexpectedLocation: active: false - methodNames: 'toString,hashCode,equals,finalize' + methodNames: + - 'equals' + - 'finalize' + - 'hashCode' + - 'toString' InstanceOfCheckForException: active: false NotImplementedDeclaration: active: false - PrintStackTrace: + ObjectExtendsThrowable: active: false + PrintStackTrace: + active: true RethrowCaughtException: active: false ReturnFromFinally: - active: false + active: true + ignoreLabeled: false SwallowedException: active: false + ignoredExceptionTypes: + - 'InterruptedException' + - 'MalformedURLException' + - 'NumberFormatException' + - 'ParseException' + allowedExceptionNameRegex: '_|(ignore|expected).*' ThrowingExceptionFromFinally: - active: false + active: true ThrowingExceptionInMain: active: false ThrowingExceptionsWithoutMessageOrCause: active: false - exceptions: 'IllegalArgumentException,IllegalStateException,IOException' + exceptions: + - 'ArrayIndexOutOfBoundsException' + - 'Exception' + - 'IllegalArgumentException' + - 'IllegalMonitorStateException' + - 'IllegalStateException' + - 'IndexOutOfBoundsException' + - 'NullPointerException' + - 'RuntimeException' + - 'Throwable' ThrowingNewInstanceOfSameException: - active: false + active: true TooGenericExceptionCaught: active: true exceptionNames: - - ArrayIndexOutOfBoundsException - - Error - - Exception - - IllegalMonitorStateException - - NullPointerException - - IndexOutOfBoundsException - - RuntimeException - - Throwable + - 'ArrayIndexOutOfBoundsException' + - 'Error' + - 'Exception' + - 'IllegalMonitorStateException' + - 'IndexOutOfBoundsException' + - 'NullPointerException' + - 'RuntimeException' + - 'Throwable' + allowedExceptionNameRegex: '_|(ignore|expected).*' TooGenericExceptionThrown: active: true exceptionNames: - - Error - - Exception - - Throwable - - RuntimeException - -formatting: - autoCorrect: true + - 'Error' + - 'Exception' + - 'RuntimeException' + - 'Throwable' naming: active: true + BooleanPropertyNaming: + active: false + allowedPattern: '^(is|has|are)' ClassNaming: active: true - classPattern: '[A-Z$][a-zA-Z0-9$]*' + classPattern: '[A-Z][a-zA-Z0-9]*' + ConstructorParameterNaming: + active: true + parameterPattern: '[a-z][A-Za-z0-9]*' + privateParameterPattern: '[a-z][A-Za-z0-9]*' + excludeClassPattern: '$^' + ignoreOverridden: true EnumNaming: active: true - enumEntryPattern: '^[A-Z][_a-zA-Z0-9]*' + enumEntryPattern: '[A-Z][_a-zA-Z0-9]*' ForbiddenClassName: active: false - forbiddenName: '' + forbiddenName: [] FunctionMaxLength: active: false maximumFunctionNameLength: 30 @@ -204,25 +285,44 @@ naming: minimumFunctionNameLength: 3 FunctionNaming: active: true - excludes: "**/*Test.kt, **/*Spec.kt, **/test/**, **/androidTest/**" - functionPattern: '^([a-z$][a-zA-Z$0-9]*)|(`.*`)$' + functionPattern: '([a-z][a-zA-Z0-9]*)|(`.*`)' + excludeClassPattern: '$^' + ignoreOverridden: true + ignoreAnnotated: ['Composable'] + FunctionParameterNaming: + active: true + parameterPattern: '[a-z][A-Za-z0-9]*' excludeClassPattern: '$^' + ignoreOverridden: true + InvalidPackageDeclaration: + active: false + rootPackage: '' + LambdaParameterNaming: + active: false + parameterPattern: '[a-z][A-Za-z0-9]*|_' MatchingDeclarationName: active: true + mustBeFirst: true MemberNameEqualsClassName: active: false ignoreOverridden: true + NoNameShadowing: + active: false + NonBooleanPropertyPrefixedWithIs: + active: false ObjectPropertyNaming: active: true + constantPattern: '[A-Za-z][_A-Za-z0-9]*' propertyPattern: '[A-Za-z][_A-Za-z0-9]*' + privatePropertyPattern: '(_)?[A-Za-z][_A-Za-z0-9]*' PackageNaming: active: true - packagePattern: '^[a-z]+(\.[a-z][a-z0-9]*)*$' + packagePattern: '[a-z]+(\.[a-z][A-Za-z0-9]*)*' TopLevelPropertyNaming: active: true constantPattern: '[A-Z][_A-Z0-9]*' - propertyPattern: '[a-z][A-Za-z\d]*' - privatePropertyPattern: '(_)?[a-z][A-Za-z0-9]*' + propertyPattern: '[A-Za-z][_A-Za-z0-9]*' + privatePropertyPattern: '_?[A-Za-z][_A-Za-z0-9]*' VariableMaxLength: active: false maximumVariableNameLength: 64 @@ -234,130 +334,256 @@ naming: variablePattern: '[a-z][A-Za-z0-9]*' privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*' excludeClassPattern: '$^' + ignoreOverridden: true performance: active: true + ArrayPrimitive: + active: true ForEachOnRange: active: true SpreadOperator: active: true - excludes: "**/*Test.kt, **/*Spec.kt, **/test/**, **/androidTest/**" UnnecessaryTemporaryInstantiation: active: true potential-bugs: active: true + AvoidReferentialEquality: + active: false + forbiddenTypePatterns: + - 'kotlin.String' + CastToNullableType: + active: false + Deprecation: + active: false + DontDowncastCollectionTypes: + active: false + DoubleMutabilityForCollection: + active: false DuplicateCaseInWhenExpression: active: true EqualsAlwaysReturnsTrueOrFalse: - active: false + active: true EqualsWithHashCodeExist: active: true + ExitOutsideMain: + active: false ExplicitGarbageCollectionCall: active: true - InvalidRange: + HasPlatformType: active: false - IteratorHasNextCallsNextMethod: + IgnoredReturnValue: active: false - IteratorNotThrowingNoSuchElementException: + restrictToAnnotatedMethods: true + returnValueAnnotations: + - '*.CheckResult' + - '*.CheckReturnValue' + ignoreReturnValueAnnotations: + - '*.CanIgnoreReturnValue' + ImplicitDefaultLocale: + active: false + ImplicitUnitReturnType: active: false + allowExplicitReturnType: true + InvalidRange: + active: true + IteratorHasNextCallsNextMethod: + active: true + IteratorNotThrowingNoSuchElementException: + active: true LateinitUsage: active: false - excludes: "**/*Test.kt, **/*Spec.kt, **/test/**, **/androidTest/**" - excludeAnnotatedProperties: "" - ignoreOnClassesPattern: "" + ignoreOnClassesPattern: '' + MapGetWithNotNullAssertionOperator: + active: false + MissingPackageDeclaration: + active: false + excludes: ['**/*.kts'] + MissingWhenCase: + active: true + allowElseExpression: true + NullableToStringCall: + active: false + RedundantElseInWhen: + active: true UnconditionalJumpStatementInLoop: active: false + UnnecessaryNotNullOperator: + active: true + UnnecessarySafeCall: + active: true + UnreachableCatchBlock: + active: false UnreachableCode: active: true UnsafeCallOnNullableType: - active: false + active: true UnsafeCast: + active: true + UnusedUnaryOperator: active: false UselessPostfixExpression: active: false WrongEqualsTypeParameter: - active: false + active: true style: active: true + ClassOrdering: + active: false CollapsibleIfStatements: active: true DataClassContainsFunctions: active: false conversionFunctionPrefix: 'to' + DataClassShouldBeImmutable: + active: false + DestructuringDeclarationWithTooManyEntries: + active: false + maxDestructuringEntries: 3 EqualsNullCall: + active: true + EqualsOnSignatureLine: + active: false + ExplicitCollectionElementAccessMethod: + active: false + ExplicitItLambdaParameter: active: false ExpressionBodySyntax: active: false + includeLineWrapping: false ForbiddenComment: active: true - values: 'TODO:,FIXME:,STOPSHIP:' + values: + - 'FIXME:' + - 'STOPSHIP:' + - 'TODO:' + allowedPatterns: '' + customMessage: '' ForbiddenImport: active: false - imports: '' - FunctionOnlyReturningConstant: + imports: [] + forbiddenPatterns: '' + ForbiddenMethodCall: + active: false + methods: + - 'kotlin.io.print' + - 'kotlin.io.println' + ForbiddenPublicDataClass: + active: true + excludes: ['**'] + ignorePackages: + - '*.internal' + - '*.internal.*' + ForbiddenVoid: active: false + ignoreOverridden: false + ignoreUsageInGenerics: false + FunctionOnlyReturningConstant: + active: true ignoreOverridableFunction: true - excludedFunctions: 'describeContents' + ignoreActualFunction: true + excludedFunctions: '' + LibraryCodeMustSpecifyReturnType: + active: true + excludes: ['**'] + LibraryEntitiesShouldNotBePublic: + active: true + excludes: ['**'] LoopWithTooManyJumpStatements: active: false maxJumpCount: 1 MagicNumber: active: true - excludes: "**/*Test.kt, **/*Spec.kt, **/test/**, **/androidTest/**" - ignoreNumbers: '-1,0,1,2' - ignoreHashCodeFunction: false - ignorePropertyDeclaration: false + ignoreNumbers: + - '-1' + - '0' + - '1' + - '2' + ignoreHashCodeFunction: true + ignorePropertyDeclaration: true + ignoreLocalVariableDeclaration: false ignoreConstantDeclaration: true ignoreCompanionObjectPropertyDeclaration: true ignoreAnnotation: false ignoreNamedArgument: true ignoreEnums: false + ignoreRanges: false + ignoreExtensionFunctions: true + MandatoryBracesIfStatements: + active: true + MandatoryBracesLoops: + active: false MaxLineLength: active: true - excludes: "**/*Test.kt, **/*Spec.kt, **/test/**, **/androidTest/**" maxLineLength: 120 - excludePackageStatements: false - excludeImportStatements: false + excludePackageStatements: true + excludeImportStatements: true + excludeCommentStatements: false MayBeConst: active: true ModifierOrder: active: true - NestedClassesVisibility: + MultilineLambdaItParameter: active: false + NestedClassesVisibility: + active: true NewLineAtEndOfFile: active: true NoTabs: active: true + ObjectLiteralToLambda: + active: false OptionalAbstractKeyword: active: true OptionalUnit: active: false OptionalWhenBraces: active: false + PreferToOverPairSyntax: + active: false ProtectedMemberInFinalClass: + active: true + RedundantExplicitType: + active: false + RedundantHigherOrderMapUsage: active: false RedundantVisibilityModifierRule: active: false ReturnCount: active: true max: 3 - excludedFunctions: "equals" + excludedFunctions: 'equals' + excludeLabeled: false + excludeReturnFromLambda: true + excludeGuardClauses: false SafeCast: active: true SerialVersionUIDInSerializableClass: - active: false + active: true SpacingBetweenPackageAndImports: active: true ThrowsCount: active: true max: 2 + excludeGuardClauses: false TrailingWhitespace: active: false + UnderscoresInNumericLiterals: + active: false + acceptableLength: 4 UnnecessaryAbstractClass: active: true + UnnecessaryAnnotationUseSiteTarget: + active: false + UnnecessaryApply: + active: true + UnnecessaryFilter: + active: false UnnecessaryInheritance: + active: true + UnnecessaryLet: active: false UnnecessaryParentheses: active: false @@ -365,14 +591,44 @@ style: active: false UnusedImports: active: false + UnusedPrivateClass: + active: true UnusedPrivateMember: + active: true + allowedNames: '(_|ignored|expected|serialVersionUID)' + ignoreAnnotated: ['Composable'] + UseAnyOrNoneInsteadOfFind: + active: false + UseArrayLiteralsInAnnotations: + active: false + UseCheckNotNull: + active: true + UseCheckOrError: active: false UseDataClass: active: false - excludeAnnotatedClasses: "" - UtilityClassWithPublicConstructor: + allowVars: false + UseEmptyCounterpart: + active: false + UseIfEmptyOrIfBlank: + active: false + UseIfInsteadOfWhen: + active: false + UseIsNullOrEmpty: active: false + UseOrEmpty: + active: true + UseRequire: + active: true + UseRequireNotNull: + active: true + UselessCallOnNotNull: + active: true + UtilityClassWithPublicConstructor: + active: true + VarCouldBeVal: + active: true WildcardImport: active: true - excludes: "**/*Test.kt, **/*Spec.kt, **/test/**, **/androidTest/**" - excludeImports: 'java.util.*,kotlinx.android.synthetic.*' + excludeImports: + - 'java.util.*' -- 2.11.4.GIT