From 1f633edd7d4436f20ead4ba657b1284b94cca0c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brais=20Gab=C3=ADn?= Date: Sat, 8 Jan 2022 20:23:08 +0100 Subject: [PATCH] For #23046 - Align detekt config between Fenix and Android Components Co-authored-by: Gabriel Luong --- .experimenter.json | 27 + .../org/mozilla/fenix/FenixApplication.kt | 19 +- .../java/org/mozilla/fenix/FenixLogSink.kt | 4 +- .../CollectionCreationBottomBarView.kt | 8 +- .../collections/CollectionCreationView.kt | 17 +- .../fenix/components/AccountAbnormalities.kt | 4 - .../fenix/components/metrics/MetricsUtils.kt | 7 +- .../components/toolbar/DefaultToolbarMenu.kt | 16 +- .../mozilla/fenix/compose/ThumbnailCard.kt | 2 +- .../DynamicDownloadDialogBehavior.kt | 18 +- .../home/pocket/PocketStoriesComposables.kt | 13 +- .../SessionControlController.kt | 7 +- .../home/topsites/TopSitesPagerAdapter.kt | 7 +- .../fenix/library/history/HistoryView.kt | 7 +- .../viewholders/HistoryListItemViewHolder.kt | 7 +- .../mozilla/fenix/settings/PairFragment.kt | 6 +- .../account/AccountSettingsFragment.kt | 8 +- .../settings/account/TurnOnSyncFragment.kt | 8 +- .../DeleteBrowsingDataFragment.kt | 14 +- .../SavedLoginsStorageController.kt | 2 - .../fragment/SavedLoginsAuthFragment.kt | 6 +- .../quicksettings/QuickSettingsController.kt | 5 - .../QuickSettingsSheetDialogFragment.kt | 4 +- .../shortcut/NewTabShortcutIntentProcessor.kt | 8 - .../fenix/tabstray/TabsTrayFragment.kt | 1 - .../browser/SelectionBannerBinding.kt | 3 - .../java/org/mozilla/fenix/utils/Settings.kt | 1 - .../gecko/search/SearchWidgetProvider.kt | 7 +- .../components/AccountAbnormalitiesTest.kt | 52 +- .../DefaultQuickSettingsControllerTest.kt | 19 +- build.gradle | 26 +- buildSrc/src/main/java/Dependencies.kt | 2 +- config/detekt.yml | 429 ++++-- detekt-baseline.xml | 1322 +++++++++++++++++ 34 files changed, 1866 insertions(+), 220 deletions(-) create mode 100644 detekt-baseline.xml diff --git a/.experimenter.json b/.experimenter.json index d41237077..9321f9c7a 100644 --- a/.experimenter.json +++ b/.experimenter.json @@ -21,6 +21,33 @@ } } }, + "messaging": { + "description": "Configuration for the messaging system.\n\nIn practice this is a set of growable lookup tables for the\nmessage controller to piece together.\n", + "hasExposure": true, + "exposureDescription": "", + "variables": { + "actions": { + "type": "json", + "description": "A growable map of action URLs." + }, + "message-under-experiment": { + "type": "string", + "description": "Id or prefix of the message under experiment." + }, + "messages": { + "type": "json", + "description": "A growable collection of messages" + }, + "styles": { + "type": "json", + "description": "A map of styles to configure message appearance.\n" + }, + "triggers": { + "type": "json", + "description": "A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression.\n" + } + } + }, "nimbus-validation": { "description": "A feature that does not correspond to an application feature suitable for showing that Nimbus is working. This should never be used in production.", "hasExposure": true, diff --git a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt index e785fa2ec..20800a240 100644 --- a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt +++ b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt @@ -342,16 +342,15 @@ open class FenixApplication : LocaleAwareApplication(), Provider { // To re-enable this, we need to do so in a way that won't interfere with any startup operations // which acquire reserved+ sqlite lock. Currently, Fennec migrations need to write to storage // on startup, and since they run in a background service we can't simply order these operations. - - @OptIn(DelicateCoroutinesApi::class) // GlobalScope usage - private fun runStorageMaintenance() { - GlobalScope.launch(Dispatchers.IO) { - // Bookmarks and history storage sit on top of the same db file so we only need to - // run maintenance on one - arbitrarily using bookmarks. - components.core.bookmarksStorage.runMaintenance() - } - settings().lastPlacesStorageMaintenance = System.currentTimeMillis() - } + // @OptIn(DelicateCoroutinesApi::class) // GlobalScope usage + // private fun runStorageMaintenance() { + // GlobalScope.launch(Dispatchers.IO) { + // // Bookmarks and history storage sit on top of the same db file so we only need to + // // run maintenance on one - arbitrarily using bookmarks. + // // components.core.bookmarksStorage.runMaintenance() + // } + // settings().lastPlacesStorageMaintenance = System.currentTimeMillis() + // } protected open fun setupLeakCanary() { // no-op, LeakCanary is disabled by default diff --git a/app/src/main/java/org/mozilla/fenix/FenixLogSink.kt b/app/src/main/java/org/mozilla/fenix/FenixLogSink.kt index b09b003af..6b5d59087 100644 --- a/app/src/main/java/org/mozilla/fenix/FenixLogSink.kt +++ b/app/src/main/java/org/mozilla/fenix/FenixLogSink.kt @@ -23,8 +23,10 @@ class FenixLogSink(private val logsDebug: Boolean = true) : LogSink { throwable: Throwable?, message: String? ) { - if (priority == Log.Priority.DEBUG && !logsDebug) + if (priority == Log.Priority.DEBUG && !logsDebug) { return + } + androidLogSink.log(priority, tag, throwable, message) } } diff --git a/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationBottomBarView.kt b/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationBottomBarView.kt index 33370f09e..1544080f7 100644 --- a/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationBottomBarView.kt +++ b/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationBottomBarView.kt @@ -53,9 +53,11 @@ class CollectionCreationBottomBarView( context.getString(R.string.create_collection_save_to_collection_empty) } else { context.getString( - if (state.selectedTabs.size == 1) - R.string.create_collection_save_to_collection_tab_selected else - R.string.create_collection_save_to_collection_tabs_selected, + if (state.selectedTabs.size == 1) { + R.string.create_collection_save_to_collection_tab_selected + } else { + R.string.create_collection_save_to_collection_tabs_selected + }, state.selectedTabs.size ) } diff --git a/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationView.kt b/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationView.kt index 731e648f4..1e87a82f9 100644 --- a/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationView.kt +++ b/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationView.kt @@ -122,12 +122,19 @@ class CollectionCreationView( binding.selectAllButton.apply { val allSelected = state.selectedTabs.size == state.tabs.size - text = - if (allSelected) context.getString(R.string.create_collection_deselect_all) - else context.getString(R.string.create_collection_select_all) + + text = if (allSelected) { + context.getString(R.string.create_collection_deselect_all) + } else { + context.getString(R.string.create_collection_select_all) + } + setOnClickListener { - if (allSelected) interactor.deselectAllTapped() - else interactor.selectAllTapped() + if (allSelected) { + interactor.deselectAllTapped() + } else { + interactor.selectAllTapped() + } } } diff --git a/app/src/main/java/org/mozilla/fenix/components/AccountAbnormalities.kt b/app/src/main/java/org/mozilla/fenix/components/AccountAbnormalities.kt index e1c83fb58..ba28e90ea 100644 --- a/app/src/main/java/org/mozilla/fenix/components/AccountAbnormalities.kt +++ b/app/src/main/java/org/mozilla/fenix/components/AccountAbnormalities.kt @@ -9,14 +9,12 @@ import android.content.SharedPreferences import android.os.StrictMode import androidx.annotation.GuardedBy import androidx.annotation.VisibleForTesting -import kotlinx.coroutines.Dispatchers import mozilla.components.concept.sync.AccountObserver import mozilla.components.concept.sync.AuthType import mozilla.components.concept.sync.OAuthAccount import mozilla.components.lib.crash.CrashReporter import mozilla.components.support.base.log.logger.Logger import org.mozilla.fenix.perf.StrictModeManager -import kotlin.coroutines.CoroutineContext /** * Miscellaneous FxA-related abnormalities. @@ -51,13 +49,11 @@ internal abstract class AbnormalFxaEvent : Exception() { * See [AbnormalFxaEvent] for types of abnormal events this class detects. * * @param crashReporter An instance of [CrashReporter] used for reporting detected abnormalities. - * @param coroutineContext A [CoroutineContext] used for executing async tasks. Defaults to [Dispatchers.IO]. */ class AccountAbnormalities( context: Context, private val crashReporter: CrashReporter, strictMode: StrictModeManager, - private val coroutineContext: CoroutineContext = Dispatchers.IO ) : AccountObserver { companion object { private const val PREF_FXA_ABNORMALITIES = "fxa_abnormalities" diff --git a/app/src/main/java/org/mozilla/fenix/components/metrics/MetricsUtils.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/MetricsUtils.kt index 8857290c3..dc506ff00 100644 --- a/app/src/main/java/org/mozilla/fenix/components/metrics/MetricsUtils.kt +++ b/app/src/main/java/org/mozilla/fenix/components/metrics/MetricsUtils.kt @@ -33,8 +33,11 @@ object MetricsUtils { val isCustom = engine.type == SearchEngine.Type.CUSTOM val engineSource = - if (isShortcut) Event.PerformedSearch.EngineSource.Shortcut(engine, isCustom) - else Event.PerformedSearch.EngineSource.Default(engine, isCustom) + if (isShortcut) { + Event.PerformedSearch.EngineSource.Shortcut(engine, isCustom) + } else { + Event.PerformedSearch.EngineSource.Default(engine, isCustom) + } return when (searchAccessPoint) { SearchAccessPoint.SUGGESTION -> Event.PerformedSearch( diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt index 61e317df5..1d466ee85 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt @@ -302,12 +302,16 @@ open class DefaultToolbarMenu( val settingsItem = BrowserMenuHighlightableItem( label = context.getString(R.string.browser_menu_settings), startImageResource = R.drawable.mozac_ic_settings, - iconTintColorResource = if (hasAccountProblem) - ThemeManager.resolveAttribute(R.attr.syncDisconnected, context) else - primaryTextColor(), - textColorResource = if (hasAccountProblem) - ThemeManager.resolveAttribute(R.attr.textPrimary, context) else - primaryTextColor(), + iconTintColorResource = if (hasAccountProblem) { + ThemeManager.resolveAttribute(R.attr.syncDisconnected, context) + } else { + primaryTextColor() + }, + textColorResource = if (hasAccountProblem) { + ThemeManager.resolveAttribute(R.attr.textPrimary, context) + } else { + primaryTextColor() + }, highlight = BrowserMenuHighlight.HighPriority( endImageResource = R.drawable.ic_sync_disconnected, backgroundTint = context.getColorFromAttr(R.attr.syncDisconnectedBackground), diff --git a/app/src/main/java/org/mozilla/fenix/compose/ThumbnailCard.kt b/app/src/main/java/org/mozilla/fenix/compose/ThumbnailCard.kt index 568322f63..1b55a903a 100644 --- a/app/src/main/java/org/mozilla/fenix/compose/ThumbnailCard.kt +++ b/app/src/main/java/org/mozilla/fenix/compose/ThumbnailCard.kt @@ -119,7 +119,7 @@ private fun ThumbnailImage( @Preview @Composable -fun ThumbnailCardPreview() { +private fun ThumbnailCardPreview() { ThumbnailCard( url = "https://mozilla.com", key = "123", diff --git a/app/src/main/java/org/mozilla/fenix/downloads/DynamicDownloadDialogBehavior.kt b/app/src/main/java/org/mozilla/fenix/downloads/DynamicDownloadDialogBehavior.kt index 6fc09d277..09437d4f2 100644 --- a/app/src/main/java/org/mozilla/fenix/downloads/DynamicDownloadDialogBehavior.kt +++ b/app/src/main/java/org/mozilla/fenix/downloads/DynamicDownloadDialogBehavior.kt @@ -100,13 +100,17 @@ class DynamicDownloadDialogBehavior( ) { if (shouldSnapAfterScroll || type == ViewCompat.TYPE_NON_TOUCH) { if (expanded) { - if (child.translationY >= bottomToolbarHeight / 2) + if (child.translationY >= bottomToolbarHeight / 2) { animateSnap(child, SnapDirection.DOWN) - else animateSnap(child, SnapDirection.UP) + } else { + animateSnap(child, SnapDirection.UP) + } } else { - if (child.translationY < (bottomToolbarHeight + child.height.toFloat() / 2)) + if (child.translationY < (bottomToolbarHeight + child.height.toFloat() / 2)) { animateSnap(child, SnapDirection.UP) - else animateSnap(child, SnapDirection.DOWN) + } else { + animateSnap(child, SnapDirection.DOWN) + } } } } @@ -151,7 +155,11 @@ class DynamicDownloadDialogBehavior( addUpdateListener { child.translationY = it.animatedValue as Float } setFloatValues( child.translationY, - if (direction == SnapDirection.UP) 0f else child.height.toFloat() + bottomToolbarHeight + if (direction == SnapDirection.UP) { + 0f + } else { + child.height.toFloat() + bottomToolbarHeight + } ) start() } diff --git a/app/src/main/java/org/mozilla/fenix/home/pocket/PocketStoriesComposables.kt b/app/src/main/java/org/mozilla/fenix/home/pocket/PocketStoriesComposables.kt index 17359b076..14bdcd0fa 100644 --- a/app/src/main/java/org/mozilla/fenix/home/pocket/PocketStoriesComposables.kt +++ b/app/src/main/java/org/mozilla/fenix/home/pocket/PocketStoriesComposables.kt @@ -49,7 +49,6 @@ import org.mozilla.fenix.compose.TabSubtitleWithInterdot import org.mozilla.fenix.compose.TabTitle import org.mozilla.fenix.theme.FirefoxTheme import kotlin.math.roundToInt -import kotlin.random.Random private const val URI_PARAM_UTM_KEY = "utm_source" private const val POCKET_STORIES_UTM_VALUE = "pocket-newtab-android" @@ -274,17 +273,15 @@ private class PocketStoryProvider : PreviewParameterProvider { return mutableListOf().apply { for (index in 0 until limit) { - val randomNumber = Random.nextInt(0, 10) - add( PocketRecommendedStory( - title = "This is a ${"very ".repeat(randomNumber)} long title", + title = "This is a ${"very ".repeat(index)} long title", publisher = "Publisher", - url = "https://story$randomNumber.com", + url = "https://story$index.com", imageUrl = "", - timeToRead = randomNumber, - category = "Category #$randomNumber", - timesShown = randomNumber.toLong() + timeToRead = index, + category = "Category #$index", + timesShown = index.toLong() ) ) } diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlController.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlController.kt index 95eacb015..6d078d81a 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlController.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlController.kt @@ -651,8 +651,11 @@ class DefaultSessionControlController( override fun handleReportSessionMetrics(state: AppState) { with(metrics) { track( - if (state.recentTabs.isEmpty()) Event.RecentTabsSectionIsNotVisible - else Event.RecentTabsSectionIsVisible + if (state.recentTabs.isEmpty()) { + Event.RecentTabsSectionIsNotVisible + } else { + Event.RecentTabsSectionIsVisible + } ) track(Event.RecentBookmarkCount(state.recentBookmarks.size)) diff --git a/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesPagerAdapter.kt b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesPagerAdapter.kt index 30f42fb7e..39cc8f637 100644 --- a/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesPagerAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesPagerAdapter.kt @@ -77,8 +77,11 @@ class TopSitesPagerAdapter( @VisibleForTesting internal fun getCurrentPageChanges(payload: TopSitePagerPayload, position: Int) = payload.changed.filter { changedPair -> - if (position == 0) changedPair.first < TOP_SITES_PER_PAGE - else changedPair.first >= TOP_SITES_PER_PAGE + if (position == 0) { + changedPair.first < TOP_SITES_PER_PAGE + } else { + changedPair.first >= TOP_SITES_PER_PAGE + } } override fun onBindViewHolder(holder: TopSiteViewHolder, position: Int) { diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistoryView.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistoryView.kt index 808f8a485..e8c81493d 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistoryView.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/HistoryView.kt @@ -104,8 +104,11 @@ class HistoryView( val numRecentTabs = recentlyClosedNav.context.components.core.store.state.closedTabs.size recentlyClosedTabsDescription.text = String.format( context.getString( - if (numRecentTabs == 1) - R.string.recently_closed_tab else R.string.recently_closed_tabs + if (numRecentTabs == 1) { + R.string.recently_closed_tab + } else { + R.string.recently_closed_tabs + } ), numRecentTabs ) diff --git a/app/src/main/java/org/mozilla/fenix/library/history/viewholders/HistoryListItemViewHolder.kt b/app/src/main/java/org/mozilla/fenix/library/history/viewholders/HistoryListItemViewHolder.kt index 720c90d09..4fec50eb4 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/viewholders/HistoryListItemViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/viewholders/HistoryListItemViewHolder.kt @@ -116,8 +116,11 @@ class HistoryListItemViewHolder( val numRecentTabs = itemView.context.components.core.store.state.closedTabs.size binding.recentlyClosedNavEmpty.recentlyClosedTabsDescription.text = String.format( itemView.context.getString( - if (numRecentTabs == 1) - R.string.recently_closed_tab else R.string.recently_closed_tabs + if (numRecentTabs == 1) { + R.string.recently_closed_tab + } else { + R.string.recently_closed_tabs + } ), numRecentTabs ) diff --git a/app/src/main/java/org/mozilla/fenix/settings/PairFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/PairFragment.kt index e29880c51..0ebbe270d 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/PairFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/PairFragment.kt @@ -72,9 +72,11 @@ class PairFragment : Fragment(R.layout.fragment_pair), UserInteractionHandler { scanMessage = if (requireContext().settings().allowDomesticChinaFxaServer && org.mozilla.fenix.Config.channel.isMozillaOnline - ) + ) { R.string.pair_instructions_2_cn - else R.string.pair_instructions_2 + } else { + R.string.pair_instructions_2 + } ), owner = this, view = view diff --git a/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt index 8852ebcb6..6c3e75b3d 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt @@ -107,11 +107,11 @@ class AccountSettingsFragment : PreferenceFragmentCompat() { accountSettingsStore = StoreProvider.get(this) { AccountSettingsFragmentStore( AccountSettingsFragmentState( - lastSyncedDate = - if (getLastSynced(requireContext()) == 0L) + lastSyncedDate = if (getLastSynced(requireContext()) == 0L) { LastSyncTime.Never - else - LastSyncTime.Success(getLastSynced(requireContext())), + } else { + LastSyncTime.Success(getLastSynced(requireContext())) + }, deviceName = requireComponents.backgroundServices.defaultDeviceName( requireContext() ) diff --git a/app/src/main/java/org/mozilla/fenix/settings/account/TurnOnSyncFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/account/TurnOnSyncFragment.kt index ff3447a68..d7563b932 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/account/TurnOnSyncFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/account/TurnOnSyncFragment.kt @@ -91,10 +91,10 @@ class TurnOnSyncFragment : Fragment(), AccountObserver { override fun onResume() { super.onResume() + if (pairWithEmailStarted || requireComponents.backgroundServices.accountManager.authenticatedAccount() != null ) { - findNavController().popBackStack() return } @@ -118,9 +118,11 @@ class TurnOnSyncFragment : Fragment(), AccountObserver { binding.signInScanButton.setOnClickListener(paringClickListener) binding.signInEmailButton.setOnClickListener(signInClickListener) binding.signInInstructions.text = HtmlCompat.fromHtml( - if (requireContext().settings().allowDomesticChinaFxaServer && Config.channel.isMozillaOnline) + if (requireContext().settings().allowDomesticChinaFxaServer && Config.channel.isMozillaOnline) { getString(R.string.sign_in_instructions_cn) - else getString(R.string.sign_in_instructions), + } else { + getString(R.string.sign_in_instructions) + }, HtmlCompat.FROM_HTML_MODE_LEGACY ) diff --git a/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteBrowsingDataFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteBrowsingDataFragment.kt index 4a1d3da8f..0c5bacded 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteBrowsingDataFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteBrowsingDataFragment.kt @@ -192,12 +192,14 @@ class DeleteBrowsingDataFragment : Fragment(R.layout.fragment_delete_browsing_da .setText(resources.getString(R.string.preferences_delete_browsing_data_snackbar)) .show() - if (popAfter) viewLifecycleOwner.lifecycleScope.launch(Main) { - findNavController().apply { - // If the user deletes all open tabs we need to make sure we remove - // the BrowserFragment from the backstack. - popBackStack(R.id.homeFragment, false) - navigate(DeleteBrowsingDataFragmentDirections.actionGlobalSettingsFragment()) + if (popAfter) { + viewLifecycleOwner.lifecycleScope.launch(Main) { + findNavController().apply { + // If the user deletes all open tabs we need to make sure we remove + // the BrowserFragment from the backstack. + popBackStack(R.id.homeFragment, false) + navigate(DeleteBrowsingDataFragmentDirections.actionGlobalSettingsFragment()) + } } } } diff --git a/app/src/main/java/org/mozilla/fenix/settings/logins/controller/SavedLoginsStorageController.kt b/app/src/main/java/org/mozilla/fenix/settings/logins/controller/SavedLoginsStorageController.kt index 8d2952874..c38fb21a4 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/logins/controller/SavedLoginsStorageController.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/logins/controller/SavedLoginsStorageController.kt @@ -39,8 +39,6 @@ open class SavedLoginsStorageController( private val ioDispatcher: CoroutineDispatcher = Dispatchers.IO ) { - private suspend fun getLogin(loginId: String): Login? = passwordsStorage.get(loginId) - fun delete(loginId: String) { var deleteLoginJob: Deferred? = null val deleteJob = lifecycleScope.launch(ioDispatcher) { diff --git a/app/src/main/java/org/mozilla/fenix/settings/logins/fragment/SavedLoginsAuthFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/logins/fragment/SavedLoginsAuthFragment.kt index 339ad11cf..3085b8377 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/logins/fragment/SavedLoginsAuthFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/logins/fragment/SavedLoginsAuthFragment.kt @@ -89,9 +89,11 @@ class SavedLoginsAuthFragment : PreferenceFragmentCompat() { requirePreference(R.string.pref_key_save_logins_settings).apply { summary = getString( - if (context.settings().shouldPromptToSaveLogins) - R.string.preferences_passwords_save_logins_ask_to_save else + if (context.settings().shouldPromptToSaveLogins) { + R.string.preferences_passwords_save_logins_ask_to_save + } else { R.string.preferences_passwords_save_logins_never_save + } ) setOnPreferenceClickListener { navigateToSaveLoginSettingFragment() diff --git a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsController.kt b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsController.kt index 76d51862d..5c1d817d9 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsController.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsController.kt @@ -14,7 +14,6 @@ import mozilla.components.browser.state.store.BrowserStore import mozilla.components.concept.engine.Engine import mozilla.components.concept.engine.permission.SitePermissions import mozilla.components.feature.session.SessionUseCases.ReloadUrlUseCase -import mozilla.components.feature.tabs.TabsUseCases.AddNewTabUseCase import mozilla.components.support.base.feature.OnNeedToRequestPermissions import mozilla.components.support.ktx.kotlin.getOrigin import mozilla.telemetry.glean.private.NoExtras @@ -95,11 +94,9 @@ interface QuickSettingsController { * @param settings [Settings] application settings. * @param permissionStorage [PermissionStorage] app state for website permissions exception. * @param reload [ReloadUrlUseCase] callback allowing for reloading the current web page. - * @param addNewTab [AddNewTabUseCase] callback allowing for loading a URL in a new tab. * @param requestRuntimePermissions [OnNeedToRequestPermissions] callback allowing for requesting * specific Android runtime permissions. * @param displayPermissions callback for when [WebsitePermissionsView] needs to be displayed. - * @param dismiss callback allowing to request this entire Fragment to be dismissed. */ @Suppress("TooManyFunctions") class DefaultQuickSettingsController( @@ -115,11 +112,9 @@ class DefaultQuickSettingsController( private val settings: Settings, private val permissionStorage: PermissionStorage, private val reload: ReloadUrlUseCase, - private val addNewTab: AddNewTabUseCase, private val requestRuntimePermissions: OnNeedToRequestPermissions = { }, private val displayPermissions: () -> Unit, private val engine: Engine = context.components.core.engine, - private val dismiss: () -> Unit ) : QuickSettingsController { override fun handlePermissionsShown() { displayPermissions() diff --git a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsSheetDialogFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsSheetDialogFragment.kt index 009c3983c..e96ff23c3 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsSheetDialogFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsSheetDialogFragment.kt @@ -103,13 +103,11 @@ class QuickSettingsSheetDialogFragment : FenixDialogFragment() { settings = components.settings, permissionStorage = components.core.permissionStorage, reload = components.useCases.sessionUseCases.reload, - addNewTab = components.useCases.tabsUseCases.addTab, requestRuntimePermissions = { permissions -> requestPermissions(permissions, REQUEST_CODE_QUICK_SETTINGS_PERMISSIONS) tryToRequestPermissions = true }, - displayPermissions = ::showPermissionsView, - dismiss = ::dismiss + displayPermissions = ::showPermissionsView ) interactor = QuickSettingsInteractor(quickSettingsController) diff --git a/app/src/main/java/org/mozilla/fenix/shortcut/NewTabShortcutIntentProcessor.kt b/app/src/main/java/org/mozilla/fenix/shortcut/NewTabShortcutIntentProcessor.kt index a54809a43..3f0628125 100644 --- a/app/src/main/java/org/mozilla/fenix/shortcut/NewTabShortcutIntentProcessor.kt +++ b/app/src/main/java/org/mozilla/fenix/shortcut/NewTabShortcutIntentProcessor.kt @@ -14,14 +14,6 @@ import org.mozilla.fenix.home.intent.StartSearchIntentProcessor class NewTabShortcutIntentProcessor : IntentProcessor { - /** - * Returns true if this intent processor will handle the intent. - */ - private fun matches(intent: Intent): Boolean { - val safeIntent = SafeIntent(intent) - return safeIntent.action == ACTION_OPEN_TAB || safeIntent.action == ACTION_OPEN_PRIVATE_TAB - } - /** * Processes the given [Intent]. * diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt index d4f5e0a79..4e319fb79 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt @@ -322,7 +322,6 @@ class TabsTrayFragment : AppCompatDialogFragment() { store = tabsTrayStore, navInteractor = navigationInteractor, tabsTrayInteractor = tabsTrayInteractor, - containerView = view, backgroundView = tabsTrayBinding.topBar, showOnSelectViews = VisibilityModifier( tabsTrayMultiselectItemsBinding.collectMultiSelect, diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/browser/SelectionBannerBinding.kt b/app/src/main/java/org/mozilla/fenix/tabstray/browser/SelectionBannerBinding.kt index f7931f84c..b5970339a 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/browser/SelectionBannerBinding.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/browser/SelectionBannerBinding.kt @@ -34,8 +34,6 @@ import org.mozilla.fenix.tabstray.ext.showWithTheme * @property store The TabsTrayStore instance. * @property navInteractor An instance of [NavigationInteractor] for navigating on menu clicks. * @property tabsTrayInteractor An instance of [TabsTrayInteractor] for handling deletion. - * @property containerView The view in the layout that contains all the implicit multi-select - * views. NB: This parameter is a bit opaque and requires a larger layout refactor to correct. * @property backgroundView The background view that we want to alter when changing [Mode]. * @property showOnSelectViews A variable list of views that will be made visible when in select mode. * @property showOnNormalViews A variable list of views that will be made visible when in normal mode. @@ -48,7 +46,6 @@ class SelectionBannerBinding( private val store: TabsTrayStore, private val navInteractor: NavigationInteractor, private val tabsTrayInteractor: TabsTrayInteractor, - private val containerView: View, private val backgroundView: View, private val showOnSelectViews: VisibilityModifier, private val showOnNormalViews: VisibilityModifier diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index 2c1b81475..d4b6c2c0d 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -70,7 +70,6 @@ class Settings(private val appContext: Context) : PreferencesHolder { private const val ALLOWED_INT = 2 private const val CFR_COUNT_CONDITION_FOCUS_INSTALLED = 1 private const val CFR_COUNT_CONDITION_FOCUS_NOT_INSTALLED = 3 - private const val APP_LAUNCHES_TO_SHOW_DEFAULT_BROWSER_CARD = 3 private const val INACTIVE_TAB_MINIMUM_TO_SHOW_AUTO_CLOSE_DIALOG = 20 const val FOUR_HOURS_MS = 60 * 60 * 4 * 1000L diff --git a/app/src/main/java/org/mozilla/gecko/search/SearchWidgetProvider.kt b/app/src/main/java/org/mozilla/gecko/search/SearchWidgetProvider.kt index 9626cc335..8335445e0 100644 --- a/app/src/main/java/org/mozilla/gecko/search/SearchWidgetProvider.kt +++ b/app/src/main/java/org/mozilla/gecko/search/SearchWidgetProvider.kt @@ -224,8 +224,11 @@ class SearchWidgetProvider : AppWidgetProvider() { SearchWidgetProviderSize.LARGE -> R.layout.search_widget_large SearchWidgetProviderSize.MEDIUM -> R.layout.search_widget_medium SearchWidgetProviderSize.SMALL -> { - if (showMic) R.layout.search_widget_small - else R.layout.search_widget_small_no_mic + if (showMic) { + R.layout.search_widget_small + } else { + R.layout.search_widget_small_no_mic + } } SearchWidgetProviderSize.EXTRA_SMALL_V2 -> R.layout.search_widget_extra_small_v2 SearchWidgetProviderSize.EXTRA_SMALL_V1 -> R.layout.search_widget_extra_small_v1 diff --git a/app/src/test/java/org/mozilla/fenix/components/AccountAbnormalitiesTest.kt b/app/src/test/java/org/mozilla/fenix/components/AccountAbnormalitiesTest.kt index fd4cf9223..cfc826cb7 100644 --- a/app/src/test/java/org/mozilla/fenix/components/AccountAbnormalitiesTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/AccountAbnormalitiesTest.kt @@ -19,7 +19,6 @@ import org.junit.Test import org.junit.runner.RunWith import org.mozilla.fenix.perf.StrictModeManager import org.mozilla.fenix.helpers.perf.TestStrictModeManager -import kotlin.coroutines.CoroutineContext @RunWith(FenixRobolectricTestRunner::class) class AccountAbnormalitiesTest { @@ -28,7 +27,11 @@ class AccountAbnormalitiesTest { val crashReporter: CrashReporter = mockk() // no account present - val accountAbnormalities = newAccountAbnormalities(crashReporter) + val accountAbnormalities = AccountAbnormalities( + testContext, + crashReporter, + TestStrictModeManager() as StrictModeManager + ) try { accountAbnormalities.userRequestedLogout() @@ -54,7 +57,11 @@ class AccountAbnormalitiesTest { fun `LogoutWithoutAuth detected`() = runBlocking { val crashReporter: CrashReporter = mockk(relaxed = true) - val accountAbnormalities = newAccountAbnormalities(crashReporter, this.coroutineContext) + val accountAbnormalities = AccountAbnormalities( + testContext, + crashReporter, + TestStrictModeManager() as StrictModeManager + ) accountAbnormalities.onReady(mockk(relaxed = true)) // Logout action must be preceded by auth. @@ -66,7 +73,11 @@ class AccountAbnormalitiesTest { fun `OverlappingFxaLogoutRequest detected`() = runBlocking { val crashReporter: CrashReporter = mockk(relaxed = true) - val accountAbnormalities = newAccountAbnormalities(crashReporter, this.coroutineContext) + val accountAbnormalities = AccountAbnormalities( + testContext, + crashReporter, + TestStrictModeManager() as StrictModeManager + ) accountAbnormalities.onReady(mockk(relaxed = true)) accountAbnormalities.onAuthenticated(mockk(), mockk()) @@ -83,7 +94,11 @@ class AccountAbnormalitiesTest { fun `callback logout abnormalities detected`() = runBlocking { val crashReporter: CrashReporter = mockk(relaxed = true) - val accountAbnormalities = newAccountAbnormalities(crashReporter, this.coroutineContext) + val accountAbnormalities = AccountAbnormalities( + testContext, + crashReporter, + TestStrictModeManager() as StrictModeManager + ) accountAbnormalities.onReady(mockk(relaxed = true)) // User didn't request this logout. @@ -96,7 +111,11 @@ class AccountAbnormalitiesTest { val crashReporter: CrashReporter = mockk(relaxed = true) val accountManager: FxaAccountManager = mockk(relaxed = true) - val accountAbnormalities = newAccountAbnormalities(crashReporter, this.coroutineContext) + val accountAbnormalities = AccountAbnormalities( + testContext, + crashReporter, + TestStrictModeManager() as StrictModeManager + ) accountAbnormalities.onReady(null) accountAbnormalities.onAuthenticated(mockk(), mockk()) @@ -104,7 +123,11 @@ class AccountAbnormalitiesTest { every { accountManager.authenticatedAccount() } returns null // Pretend we restart, and instantiate a new middleware instance. - val accountAbnormalities2 = newAccountAbnormalities(crashReporter, this.coroutineContext) + val accountAbnormalities2 = AccountAbnormalities( + testContext, + crashReporter, + TestStrictModeManager() as StrictModeManager + ) // mock accountManager doesn't have an account, but we expect it to have one since we // were authenticated before our "restart". accountAbnormalities2.onReady(null) @@ -116,7 +139,11 @@ class AccountAbnormalitiesTest { fun `logout happy case`() = runBlocking { val crashReporter: CrashReporter = mockk() - val accountAbnormalities = newAccountAbnormalities(crashReporter, coroutineContext) + val accountAbnormalities = AccountAbnormalities( + testContext, + crashReporter, + TestStrictModeManager() as StrictModeManager + ) accountAbnormalities.onReady(mockk(relaxed = true)) // We saw an auth event, then user requested a logout. @@ -130,13 +157,4 @@ class AccountAbnormalitiesTest { crashReporter.submitCaughtException(any()) } } - - private fun newAccountAbnormalities( - crashReporter: CrashReporter, - coroutineContext: CoroutineContext? = null - ): AccountAbnormalities = if (coroutineContext != null) { - AccountAbnormalities(testContext, crashReporter, TestStrictModeManager() as StrictModeManager, coroutineContext) - } else { - AccountAbnormalities(testContext, crashReporter, TestStrictModeManager() as StrictModeManager) - } } diff --git a/app/src/test/java/org/mozilla/fenix/settings/quicksettings/DefaultQuickSettingsControllerTest.kt b/app/src/test/java/org/mozilla/fenix/settings/quicksettings/DefaultQuickSettingsControllerTest.kt index 04cbf471b..33b36123a 100644 --- a/app/src/test/java/org/mozilla/fenix/settings/quicksettings/DefaultQuickSettingsControllerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/settings/quicksettings/DefaultQuickSettingsControllerTest.kt @@ -26,7 +26,6 @@ import mozilla.components.concept.engine.permission.SitePermissions import mozilla.components.concept.engine.permission.SitePermissions.Status.NO_DECISION import mozilla.components.feature.session.SessionUseCases import mozilla.components.feature.session.TrackingProtectionUseCases -import mozilla.components.feature.tabs.TabsUseCases import mozilla.components.service.glean.testing.GleanTestRule import mozilla.components.support.test.mock import mozilla.components.support.test.robolectric.testContext @@ -81,9 +80,6 @@ class DefaultQuickSettingsControllerTest { @MockK(relaxed = true) private lateinit var reload: SessionUseCases.ReloadUrlUseCase - @MockK(relaxed = true) - private lateinit var addNewTab: TabsUseCases.AddNewTabUseCase - @MockK(relaxed = true) private lateinit var requestPermissions: (Array) -> Unit @@ -112,11 +108,9 @@ class DefaultQuickSettingsControllerTest { settings = appSettings, permissionStorage = permissionStorage, reload = reload, - addNewTab = addNewTab, requestRuntimePermissions = requestPermissions, engine = engine, - displayPermissions = {}, - dismiss = {} + displayPermissions = {} ) ) } @@ -192,10 +186,8 @@ class DefaultQuickSettingsControllerTest { settings = appSettings, permissionStorage = permissionStorage, reload = reload, - addNewTab = addNewTab, requestRuntimePermissions = requestPermissions, - displayPermissions = {}, - dismiss = {} + displayPermissions = {} ) every { websitePermission.phoneFeature } returns PhoneFeature.CAMERA @@ -416,8 +408,7 @@ class DefaultQuickSettingsControllerTest { private fun createController( requestPermissions: (Array) -> Unit = { _ -> }, - displayPermissions: () -> Unit = { }, - dismiss: () -> Unit = { } + displayPermissions: () -> Unit = {} ): DefaultQuickSettingsController { return spyk( DefaultQuickSettingsController( @@ -431,10 +422,8 @@ class DefaultQuickSettingsControllerTest { settings = appSettings, permissionStorage = permissionStorage, reload = reload, - addNewTab = addNewTab, requestRuntimePermissions = requestPermissions, - displayPermissions = displayPermissions, - dismiss = dismiss + displayPermissions = displayPermissions ) ) } diff --git a/build.gradle b/build.gradle index 6791a8820..acf1f5143 100644 --- a/build.gradle +++ b/build.gradle @@ -78,7 +78,7 @@ buildscript { } plugins { - id("io.gitlab.arturbosch.detekt").version("1.17.1") + id("io.gitlab.arturbosch.detekt").version("1.19.0") } allprojects { @@ -154,8 +154,6 @@ tasks.register('clean', Delete) { } detekt { - // The version number is duplicated, please refer to plugins block for more details - version = "1.17.1" input = files("$projectDir/app/src") config = files("$projectDir/config/detekt.yml") @@ -167,9 +165,31 @@ detekt { xml { enabled = false } + txt { + enabled = false + } } } +tasks.withType(io.gitlab.arturbosch.detekt.Detekt).configureEach() { + autoCorrect = true + + exclude "**/test/**" + exclude "**/androidTest/**" + exclude "**/build/**" + exclude "**/resources/**" + exclude "**/tmp/**" +} + +// Apply same path exclusions as for the main task +tasks.withType(io.gitlab.arturbosch.detekt.DetektCreateBaselineTask).configureEach() { + exclude "**/test/**" + exclude "**/androidTest/**" + exclude "**/build/**" + exclude "**/resources/**" + exclude "**/tmp/**" +} + configurations { ktlint } diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index cf5caee65..114522f4e 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -17,7 +17,7 @@ object Versions { const val sentry = "5.6.2" const val leakcanary = "2.8.1" const val osslicenses_plugin = "0.10.4" - const val detekt = "1.17.1" + const val detekt = "1.19.0" const val jna = "5.6.0" const val androidx_activity_compose = "1.4.0" diff --git a/config/detekt.yml b/config/detekt.yml index a74cfe3ec..389cc893f 100644 --- a/config/detekt.yml +++ b/config/detekt.yml @@ -1,5 +1,6 @@ build: maxIssues: 0 + excludeCorrectable: false weights: # complexity: 2 # LongParameterList: 1 @@ -9,11 +10,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 +31,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,52 +73,83 @@ 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 mozilla-detekt-rules: active: true @@ -111,15 +158,13 @@ mozilla-detekt-rules: # BuildConfig.Debug: This property tests whether the application was built # with the debuggable flag or not. Use a check for different build variants, # instead. - bannedProperties: "BuildConfig.DEBUG" + bannedProperties: 'BuildConfig.DEBUG' MozillaStrictModeSuppression: active: true - excludes: "**/*Test.kt, **/*Spec.kt, **/test/**, **/androidTest/**" MozillaCorrectUnitTestRunner: active: true MozillaRunBlockingCheck: active: true - excludes: "**/*Test.kt, **/*Spec.kt, **/test/**, **/androidTest/**" MozillaUseLazyMonitored: active: true @@ -127,7 +172,7 @@ empty-blocks: active: true EmptyCatchBlock: active: true - allowedExceptionNameRegex: "^(ignore|expected).*" + allowedExceptionNameRegex: '_|(ignore|expected).*' EmptyClassBlock: active: true EmptyDefaultConstructor: @@ -142,7 +187,7 @@ empty-blocks: active: true EmptyFunctionBlock: active: true - excludes: "**/*Test.kt, **/*Spec.kt, **/test/**, **/androidTest/**" + ignoreOverridden: false EmptyIfBlock: active: true EmptyInitBlock: @@ -151,6 +196,8 @@ empty-blocks: active: true EmptySecondaryConstructor: active: true + EmptyTryBlock: + active: true EmptyWhenBlock: active: true EmptyWhileBlock: @@ -160,61 +207,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 @@ -223,25 +299,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 @@ -253,130 +348,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 @@ -384,14 +605,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.*' + excludeImports: + - 'java.util.*' diff --git a/detekt-baseline.xml b/detekt-baseline.xml new file mode 100644 index 000000000..05e520a51 --- /dev/null +++ b/detekt-baseline.xml @@ -0,0 +1,1322 @@ + + + + + ConstructorParameterNaming:BrowsingModeManager.kt$DefaultBrowsingModeManager$private var _mode: BrowsingMode + FunctionOnlyReturningConstant:MetricsUtils.kt$MetricsUtils$ @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) internal fun getHashingSalt(): String + FunctionOnlyReturningConstant:SupportUtils.kt$SupportUtils$fun getFirefoxAccountSumoUrl(): String + FunctionParameterNaming:Event.kt$Event.ContextMenuItemTapped.Companion$context_item: String + FunctionParameterNaming:FenixSnackbar.kt$FenixSnackbar.Companion$_view: View? + LongParameterList:BookmarkController.kt$DefaultBookmarkController$( private val activity: HomeActivity, private val navController: NavController, private val clipboardManager: ClipboardManager?, private val scope: CoroutineScope, private val store: BookmarkFragmentStore, private val sharedViewModel: BookmarksSharedViewModel, private val tabsUseCases: TabsUseCases?, private val loadBookmarkNode: suspend (String) -> BookmarkNode?, private val showSnackbar: (String) -> Unit, private val deleteBookmarkNodes: (Set<BookmarkNode>, Event) -> Unit, private val deleteBookmarkFolder: (Set<BookmarkNode>) -> Unit, private val invokePendingDeletion: () -> Unit, private val showTabTray: () -> Unit ) + LongParameterList:BrowserToolbarController.kt$DefaultBrowserToolbarController$( private val store: BrowserStore, private val tabsUseCases: TabsUseCases, private val activity: HomeActivity, private val navController: NavController, private val metrics: MetricController, private val readerModeController: ReaderModeController, private val engineView: EngineView, private val homeViewModel: HomeScreenViewModel, private val customTabSessionId: String?, private val browserAnimator: BrowserAnimator, private val onTabCounterClicked: () -> Unit, private val onCloseTab: (SessionState) -> Unit ) + LongParameterList:BrowserToolbarMenuController.kt$DefaultBrowserToolbarMenuController$( private val store: BrowserStore, private val activity: HomeActivity, private val navController: NavController, private val metrics: MetricController, private val settings: Settings, private val readerModeController: ReaderModeController, private val sessionFeature: ViewBoundFeatureWrapper<SessionFeature>, private val findInPageLauncher: () -> Unit, private val browserAnimator: BrowserAnimator, private val swipeRefresh: SwipeRefreshLayout, private val customTabSessionId: String?, private val openInFenixIntent: Intent, private val bookmarkTapped: (String, String) -> Unit, private val scope: CoroutineScope, private val tabCollectionStorage: TabCollectionStorage, private val topSitesStorage: DefaultTopSitesStorage, private val pinnedSiteStorage: PinnedSiteStorage, private val browserStore: BrowserStore ) + LongParameterList:CrashContentIntegration.kt$CrashContentIntegration$( private val browserStore: BrowserStore, private val appStore: AppStore, private val toolbar: BrowserToolbar, private val isToolbarPlacedAtTop: Boolean, private val crashReporterView: CrashContentView, private val components: Components, private val settings: Settings, private val navController: NavController, private val sessionId: String? ) + LongParameterList:CustomTabsIntegration.kt$CustomTabsIntegration$( store: BrowserStore, useCases: CustomTabsUseCases, toolbar: BrowserToolbar, sessionId: String, activity: Activity, onItemTapped: (ToolbarMenu.Item) -> Unit = {}, shouldReverseItems: Boolean, isPrivate: Boolean ) + LongParameterList:DeleteBrowsingDataController.kt$DefaultDeleteBrowsingDataController$( private val removeAllTabs: TabsUseCases.RemoveAllTabsUseCase, private val removeAllDownloads: DownloadsUseCases.RemoveAllDownloadsUseCase, private val historyStorage: HistoryStorage, private val permissionStorage: PermissionStorage, private val store: BrowserStore, private val iconsStorage: BrowserIcons, private val engine: Engine, private val coroutineContext: CoroutineContext = Dispatchers.Main ) + LongParameterList:HistoryController.kt$DefaultHistoryController$( private val store: HistoryFragmentStore, private val navController: NavController, private val scope: CoroutineScope, private val openToBrowser: (item: History.Regular) -> Unit, private val displayDeleteAll: () -> Unit, private val invalidateOptionsMenu: () -> Unit, private val deleteHistoryItems: (Set<History>) -> Unit, private val syncHistory: suspend () -> Unit, private val metrics: MetricController ) + LongParameterList:HistoryMetadataGroupController.kt$DefaultHistoryMetadataGroupController$( private val historyStorage: PlacesHistoryStorage, private val browserStore: BrowserStore, private val store: HistoryMetadataGroupFragmentStore, private val selectOrAddUseCase: TabsUseCases.SelectOrAddUseCase, private val metrics: MetricController, private val navController: NavController, private val scope: CoroutineScope, private val searchTerm: String, ) + LongParameterList:QuickSettingsController.kt$DefaultQuickSettingsController$( private val context: Context, private val quickSettingsStore: QuickSettingsFragmentStore, private val browserStore: BrowserStore, private val ioScope: CoroutineScope, private val navController: NavController, @VisibleForTesting internal val sessionId: String, @VisibleForTesting internal var sitePermissions: SitePermissions?, private val settings: Settings, private val permissionStorage: PermissionStorage, private val reload: ReloadUrlUseCase, private val requestRuntimePermissions: OnNeedToRequestPermissions = { }, private val displayPermissions: () -> Unit, private val engine: Engine = context.components.core.engine, ) + LongParameterList:RecentVisitsController.kt$DefaultRecentVisitsController$( private val store: BrowserStore, private val appStore: AppStore, private val selectOrAddTabUseCase: SelectOrAddUseCase, private val navController: NavController, private val storage: HistoryMetadataStorage, private val scope: CoroutineScope, private val metrics: MetricController ) + LongParameterList:RecentlyClosedController.kt$DefaultRecentlyClosedController$( private val navController: NavController, private val browserStore: BrowserStore, private val recentlyClosedStore: RecentlyClosedFragmentStore, private val recentlyClosedTabsStorage: RecentlyClosedTabsStorage, private val tabsUseCases: TabsUseCases, private val activity: HomeActivity, private val metrics: MetricController, private val lifecycleScope: CoroutineScope, private val openToBrowser: (url: String, mode: BrowsingMode?) -> Unit ) + LongParameterList:SessionControlController.kt$DefaultSessionControlController$( private val activity: HomeActivity, private val settings: Settings, private val engine: Engine, private val metrics: MetricController, private val messageController: MessageController, private val store: BrowserStore, private val tabCollectionStorage: TabCollectionStorage, private val addTabUseCase: TabsUseCases.AddNewTabUseCase, private val restoreUseCase: TabsUseCases.RestoreUseCase, private val reloadUrlUseCase: SessionUseCases.ReloadUrlUseCase, private val selectTabUseCase: TabsUseCases.SelectTabUseCase, private val appStore: AppStore, private val navController: NavController, private val viewLifecycleScope: CoroutineScope, private val hideOnboarding: () -> Unit, private val registerCollectionStorageObserver: () -> Unit, private val removeCollectionWithUndo: (tabCollection: TabCollection) -> Unit, private val showTabTray: () -> Unit ) + LongParameterList:ShareController.kt$DefaultShareController$( private val context: Context, private val shareSubject: String?, private val shareData: List<ShareData>, private val sendTabUseCases: SendTabUseCases, private val snackbar: FenixSnackbar, private val navController: NavController, private val recentAppsStorage: RecentAppsStorage, private val viewLifecycleScope: CoroutineScope, private val dispatcher: CoroutineDispatcher = Dispatchers.IO, private val dismiss: (ShareController.Result) -> Unit ) + LongParameterList:TabsTrayController.kt$DefaultTabsTrayController$( private val trayStore: TabsTrayStore, private val browserStore: BrowserStore, private val browsingModeManager: BrowsingModeManager, private val navController: NavController, private val navigateToHomeAndDeleteSession: (String) -> Unit, private val profiler: Profiler?, private val navigationInteractor: NavigationInteractor, private val metrics: MetricController, private val tabsUseCases: TabsUseCases, private val selectTabPosition: (Int, Boolean) -> Unit, private val dismissTray: () -> Unit, private val showUndoSnackbarForTab: (Boolean) -> Unit, @VisibleForTesting internal val showCancelledDownloadWarning: (downloadCount: Int, tabId: String?, source: String?) -> Unit, ) + LongParameterList:ToolbarIntegration.kt$DefaultToolbarIntegration$( context: Context, toolbar: BrowserToolbar, toolbarMenu: ToolbarMenu, domainAutocompleteProvider: DomainAutocompleteProvider, historyStorage: HistoryStorage, lifecycleOwner: LifecycleOwner, sessionId: String? = null, isPrivate: Boolean, interactor: BrowserToolbarInteractor, engine: Engine ) + UndocumentedPublicClass:AboutItem.kt$AboutItem + UndocumentedPublicClass:AboutItem.kt$AboutItem$Crashes : AboutItem + UndocumentedPublicClass:AboutItem.kt$AboutItem$ExternalLink : AboutItem + UndocumentedPublicClass:AboutItem.kt$AboutItem$Libraries : AboutItem + UndocumentedPublicClass:AboutItem.kt$AboutItemType + UndocumentedPublicClass:AboutItem.kt$AboutPageItem + UndocumentedPublicClass:AboutItemViewHolder.kt$AboutItemViewHolder : ViewHolder + UndocumentedPublicClass:AboutPageAdapter.kt$AboutPageAdapter : ListAdapter + UndocumentedPublicClass:AboutPageAdapter.kt$AboutPageListener + UndocumentedPublicClass:AccountAuthErrorPreference.kt$AccountAuthErrorPreference : Preference + UndocumentedPublicClass:AccountDeviceViewHolder.kt$AccountDeviceViewHolder : ViewHolder + UndocumentedPublicClass:AccountDevicesAdapter.kt$SyncShareOption$AddNewDevice : SyncShareOption + UndocumentedPublicClass:AccountDevicesAdapter.kt$SyncShareOption$Offline : SyncShareOption + UndocumentedPublicClass:AccountDevicesAdapter.kt$SyncShareOption$Reconnect : SyncShareOption + UndocumentedPublicClass:AccountDevicesAdapter.kt$SyncShareOption$SendAll : SyncShareOption + UndocumentedPublicClass:AccountDevicesAdapter.kt$SyncShareOption$SignIn : SyncShareOption + UndocumentedPublicClass:AccountDevicesAdapter.kt$SyncShareOption$SingleDevice : SyncShareOption + UndocumentedPublicClass:AccountPreference.kt$AccountPreference : Preference + UndocumentedPublicClass:AccountProblemFragment.kt$AccountProblemFragment : PreferenceFragmentCompatAccountObserver + UndocumentedPublicClass:AccountSettingsFragment.kt$AccountSettingsFragment : PreferenceFragmentCompat + UndocumentedPublicClass:AccountSettingsFragmentStore.kt$AccountSettingsFragmentAction$SyncEnded : AccountSettingsFragmentAction + UndocumentedPublicClass:AccountSettingsFragmentStore.kt$AccountSettingsFragmentAction$SyncFailed : AccountSettingsFragmentAction + UndocumentedPublicClass:AccountSettingsFragmentStore.kt$AccountSettingsFragmentAction$UpdateDeviceName : AccountSettingsFragmentAction + UndocumentedPublicClass:AccountSettingsFragmentStore.kt$LastSyncTime + UndocumentedPublicClass:AccountSettingsFragmentStore.kt$LastSyncTime$Failed : LastSyncTime + UndocumentedPublicClass:AccountSettingsFragmentStore.kt$LastSyncTime$Never : LastSyncTime + UndocumentedPublicClass:AccountSettingsFragmentStore.kt$LastSyncTime$Success : LastSyncTime + UndocumentedPublicClass:AccountSettingsInteractor.kt$AccountSettingsInteractor : AccountSettingsUserActions + UndocumentedPublicClass:AccountSettingsInteractor.kt$AccountSettingsUserActions + UndocumentedPublicClass:AccountUiView.kt$AccountUiView + UndocumentedPublicClass:ActivationPing.kt$ActivationPing + UndocumentedPublicClass:AddSearchEngineFragment.kt$AddSearchEngineFragment : FragmentOnCheckedChangeListener + UndocumentedPublicClass:AddonDetailsBindingDelegate.kt$AddonDetailsInteractor + UndocumentedPublicClass:AddonPermissionDetailsBindingDelegate.kt$AddonPermissionsDetailsInteractor + UndocumentedPublicClass:AdjustMetricsService.kt$AdjustMetricsService : MetricsService + UndocumentedPublicClass:AppAction.kt$AppAction$AddNonFatalCrash : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$Change : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$CollectionExpanded : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$CollectionsChange : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$DeselectPocketStoriesCategory : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$DisbandSearchGroupAction : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$ModeChange : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$PocketStoriesCategoriesChange : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$PocketStoriesCategoriesSelectionsChange : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$PocketStoriesChange : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$PocketStoriesShown : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$RecentBookmarksChange : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$RecentHistoryChange : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$RecentTabsChange : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$RemoveAllNonFatalCrashes : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$RemoveCollectionsPlaceholder : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$RemoveNonFatalCrash : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$RemoveRecentBookmark : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$RemoveRecentHistoryHighlight : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$RemoveRecentTab : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$SelectPocketStoriesCategory : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$TopSitesChange : AppAction + UndocumentedPublicClass:AppAction.kt$AppAction$UpdateInactiveExpanded : AppAction + UndocumentedPublicClass:AppRequestInterceptor.kt$AppRequestInterceptor : RequestInterceptor + UndocumentedPublicClass:AppStartReasonProvider.kt$AppStartReasonProvider$StartReason + UndocumentedPublicClass:AppViewHolder.kt$AppViewHolder : ViewHolder + UndocumentedPublicClass:AwesomeBarView.kt$AwesomeBarView$SearchProviderState + UndocumentedPublicClass:BlankDragShadowBuilder.kt$BlankDragShadowBuilder : DragShadowBuilder + UndocumentedPublicClass:BookmarkAdapter.kt$BookmarkAdapter : Adapter + UndocumentedPublicClass:BookmarkController.kt$DefaultBookmarkController : BookmarkController + UndocumentedPublicClass:BookmarkDeselectNavigationListener.kt$BookmarkDeselectNavigationListener : OnDestinationChangedListenerDefaultLifecycleObserver + UndocumentedPublicClass:BookmarkFragmentStore.kt$BookmarkFragmentAction$Change : BookmarkFragmentAction + UndocumentedPublicClass:BookmarkFragmentStore.kt$BookmarkFragmentAction$Deselect : BookmarkFragmentAction + UndocumentedPublicClass:BookmarkFragmentStore.kt$BookmarkFragmentAction$DeselectAll : BookmarkFragmentAction + UndocumentedPublicClass:BookmarkFragmentStore.kt$BookmarkFragmentAction$FinishSync : BookmarkFragmentAction + UndocumentedPublicClass:BookmarkFragmentStore.kt$BookmarkFragmentAction$Select : BookmarkFragmentAction + UndocumentedPublicClass:BookmarkFragmentStore.kt$BookmarkFragmentAction$StartSync : BookmarkFragmentAction + UndocumentedPublicClass:BookmarkFragmentStore.kt$BookmarkFragmentState$Mode : SelectionHolder + UndocumentedPublicClass:BookmarkFragmentStore.kt$BookmarkFragmentState.Mode$Normal : Mode + UndocumentedPublicClass:BookmarkFragmentStore.kt$BookmarkFragmentState.Mode$Selecting : Mode + UndocumentedPublicClass:BookmarkFragmentStore.kt$BookmarkFragmentState.Mode$Syncing : Mode + UndocumentedPublicClass:BookmarkFragmentStore.kt$BookmarkFragmentStore : Store + UndocumentedPublicClass:BookmarkItemMenu.kt$BookmarkItemMenu + UndocumentedPublicClass:BookmarkItemMenu.kt$BookmarkItemMenu$Item + UndocumentedPublicClass:BookmarkSearchController.kt$BookmarkSearchDialogController : BookmarkSearchController + UndocumentedPublicClass:BookmarkSearchDialogFragment.kt$BookmarkSearchDialogFragment : AppCompatDialogFragmentUserInteractionHandler + UndocumentedPublicClass:BookmarkSearchFragmentStore.kt$BookmarkSearchFragmentAction$UpdateQuery : BookmarkSearchFragmentAction + UndocumentedPublicClass:BookmarkView.kt$BookmarkView : LibraryPageViewUserInteractionHandler + UndocumentedPublicClass:BookmarksUseCase.kt$BookmarksUseCase$AddBookmarksUseCase + UndocumentedPublicClass:BottomSpacerViewHolder.kt$BottomSpacerViewHolder : ViewHolder + UndocumentedPublicClass:BrowserFragmentStore.kt$BrowserFragmentAction : Action + UndocumentedPublicClass:BrowserFragmentStore.kt$BrowserFragmentStore : Store + UndocumentedPublicClass:BrowserTabViewHolder.kt$BrowserTabViewHolder : ViewHolder + UndocumentedPublicClass:BrowserToolbarController.kt$DefaultBrowserToolbarController : BrowserToolbarController + UndocumentedPublicClass:BrowserToolbarMenuController.kt$DefaultBrowserToolbarMenuController : BrowserToolbarMenuController + UndocumentedPublicClass:BrowserToolbarView.kt$BrowserToolbarView + UndocumentedPublicClass:BrowsingModeManager.kt$BrowsingModeManager + UndocumentedPublicClass:CollectionCreationController.kt$CollectionCreationController + UndocumentedPublicClass:CollectionCreationFragment.kt$CollectionCreationFragment : DialogFragment + UndocumentedPublicClass:CollectionCreationInteractor.kt$CollectionCreationInteractor + UndocumentedPublicClass:CollectionCreationStore.kt$CollectionCreationAction : Action + UndocumentedPublicClass:CollectionCreationStore.kt$CollectionCreationAction$AddAllTabs : CollectionCreationAction + UndocumentedPublicClass:CollectionCreationStore.kt$CollectionCreationAction$RemoveAllTabs : CollectionCreationAction + UndocumentedPublicClass:CollectionCreationStore.kt$CollectionCreationAction$TabAdded : CollectionCreationAction + UndocumentedPublicClass:CollectionCreationStore.kt$CollectionCreationAction$TabRemoved : CollectionCreationAction + UndocumentedPublicClass:CollectionCreationStore.kt$CollectionCreationState : State + UndocumentedPublicClass:CollectionCreationStore.kt$CollectionCreationStore : Store + UndocumentedPublicClass:CollectionCreationTabListAdapter.kt$CollectionCreationTabListAdapter : Adapter + UndocumentedPublicClass:CollectionCreationTabListAdapter.kt$TabViewHolder : ViewHolder + UndocumentedPublicClass:CollectionCreationView.kt$CollectionCreationView + UndocumentedPublicClass:CollectionHeaderViewHolder.kt$CollectionHeaderViewHolder : ViewHolder + UndocumentedPublicClass:CollectionViewHolder.kt$CollectionItemMenu + UndocumentedPublicClass:CollectionViewHolder.kt$CollectionItemMenu$Item + UndocumentedPublicClass:CollectionViewHolder.kt$CollectionItemMenu.Item$AddTab : Item + UndocumentedPublicClass:CollectionViewHolder.kt$CollectionItemMenu.Item$DeleteCollection : Item + UndocumentedPublicClass:CollectionViewHolder.kt$CollectionItemMenu.Item$OpenTabs : Item + UndocumentedPublicClass:CollectionViewHolder.kt$CollectionItemMenu.Item$RenameCollection : Item + UndocumentedPublicClass:CollectionViewHolder.kt$CollectionViewHolder : ViewHolder + UndocumentedPublicClass:CollectionsListAdapter.kt$CollectionsListAdapter$CollectionItemViewHolder : ViewHolder + UndocumentedPublicClass:Config.kt$Config + UndocumentedPublicClass:Config.kt$ReleaseChannel + UndocumentedPublicClass:ConnectionPanelDialogFragment.kt$ConnectionPanelDialogFragment : FenixDialogFragment + UndocumentedPublicClass:CounterPreference.kt$CounterPreference + UndocumentedPublicClass:CrashReporterController.kt$CrashReporterController + UndocumentedPublicClass:CreateShortcutFragment.kt$CreateShortcutFragment : DialogFragment + UndocumentedPublicClass:CustomTabContextMenuCandidate.kt$CustomTabContextMenuCandidate + UndocumentedPublicClass:CustomTabToolbarIntegration.kt$CustomTabToolbarIntegration : ToolbarIntegration + UndocumentedPublicClass:CustomTabsIntegration.kt$CustomTabsIntegration : LifecycleAwareFeatureUserInteractionHandler + UndocumentedPublicClass:CustomTabsService.kt$CustomTabsService : AbstractCustomTabsService + UndocumentedPublicClass:CustomizeHomeButtonViewHolder.kt$CustomizeHomeButtonViewHolder : ComposeViewHolder + UndocumentedPublicClass:DebugFenixApplication.kt$DebugFenixApplication : FenixApplication + UndocumentedPublicClass:DefaultBrowserNotificationWorker.kt$DefaultBrowserNotificationWorker : Worker + UndocumentedPublicClass:DefaultBrowserPreference.kt$DefaultBrowserPreference : Preference + UndocumentedPublicClass:DefaultLocaleSettingsController.kt$DefaultLocaleSettingsController : LocaleSettingsController + UndocumentedPublicClass:DefaultLocaleSettingsController.kt$LocaleSettingsController + UndocumentedPublicClass:DefaultSyncController.kt$SyncController + UndocumentedPublicClass:DefaultSyncInteractor.kt$SyncInteractor + UndocumentedPublicClass:DefaultTopSitesView.kt$DefaultTopSitesView : TopSitesView + UndocumentedPublicClass:DeleteBrowsingDataController.kt$DefaultDeleteBrowsingDataController : DeleteBrowsingDataController + UndocumentedPublicClass:DeleteBrowsingDataController.kt$DeleteBrowsingDataController + UndocumentedPublicClass:DeleteBrowsingDataFragment.kt$DeleteBrowsingDataFragment : Fragment + UndocumentedPublicClass:DeleteBrowsingDataItem.kt$DeleteBrowsingDataItem : ConstraintLayout + UndocumentedPublicClass:DeleteBrowsingDataOnQuitFragment.kt$DeleteBrowsingDataOnQuitFragment : PreferenceFragmentCompat + UndocumentedPublicClass:DeleteBrowsingDataOnQuitType.kt$DeleteBrowsingDataOnQuitType + UndocumentedPublicClass:DesktopFolders.kt$DesktopFolders + UndocumentedPublicClass:Do.kt$Do + UndocumentedPublicClass:DownloadAdapter.kt$DownloadAdapter : AdapterSelectionHolder + UndocumentedPublicClass:DownloadController.kt$DefaultDownloadController : DownloadController + UndocumentedPublicClass:DownloadController.kt$DownloadController + UndocumentedPublicClass:DownloadFragment.kt$DownloadFragment : LibraryPageFragmentUserInteractionHandler + UndocumentedPublicClass:DownloadFragmentStore.kt$DownloadFragmentAction$AddItemForRemoval : DownloadFragmentAction + UndocumentedPublicClass:DownloadFragmentStore.kt$DownloadFragmentAction$AddPendingDeletionSet : DownloadFragmentAction + UndocumentedPublicClass:DownloadFragmentStore.kt$DownloadFragmentAction$EnterDeletionMode : DownloadFragmentAction + UndocumentedPublicClass:DownloadFragmentStore.kt$DownloadFragmentAction$ExitDeletionMode : DownloadFragmentAction + UndocumentedPublicClass:DownloadFragmentStore.kt$DownloadFragmentAction$ExitEditMode : DownloadFragmentAction + UndocumentedPublicClass:DownloadFragmentStore.kt$DownloadFragmentAction$RemoveItemForRemoval : DownloadFragmentAction + UndocumentedPublicClass:DownloadFragmentStore.kt$DownloadFragmentAction$UndoPendingDeletionSet : DownloadFragmentAction + UndocumentedPublicClass:DownloadFragmentStore.kt$DownloadFragmentState$Mode + UndocumentedPublicClass:DownloadFragmentStore.kt$DownloadFragmentState.Mode$Editing : Mode + UndocumentedPublicClass:DownloadFragmentStore.kt$DownloadFragmentState.Mode$Normal : Mode + UndocumentedPublicClass:DownloadItemMenu.kt$DownloadItemMenu + UndocumentedPublicClass:DownloadItemMenu.kt$DownloadItemMenu$Item + UndocumentedPublicClass:DownloadService.kt$DownloadService : AbstractFetchDownloadService + UndocumentedPublicClass:DownloadsListItemViewHolder.kt$DownloadsListItemViewHolder : ViewHolder + UndocumentedPublicClass:DraggableItemAnimator.kt$DraggableItemAnimator : DefaultItemAnimator + UndocumentedPublicClass:DropDownListPreference.kt$DropDownListPreference : DropDownPreference + UndocumentedPublicClass:DynamicDownloadDialogBehavior.kt$DynamicDownloadDialogBehavior<V : View> : Behavior + UndocumentedPublicClass:Event.kt$Event + UndocumentedPublicClass:Event.kt$Event$AddBookmark : Event + UndocumentedPublicClass:Event.kt$Event$AddBookmarkFolder : Event + UndocumentedPublicClass:Event.kt$Event$AddonInstalled : Event + UndocumentedPublicClass:Event.kt$Event$AddonOpenSetting : Event + UndocumentedPublicClass:Event.kt$Event$AddonsOpenInSettings : Event + UndocumentedPublicClass:Event.kt$Event$AddonsOpenInToolbarMenu : Event + UndocumentedPublicClass:Event.kt$Event$AndroidAutofillConfirmationCanceled : Event + UndocumentedPublicClass:Event.kt$Event$AndroidAutofillConfirmationSuccessful : Event + UndocumentedPublicClass:Event.kt$Event$AndroidAutofillRequestWithLogins : Event + UndocumentedPublicClass:Event.kt$Event$AndroidAutofillRequestWithoutLogins : Event + UndocumentedPublicClass:Event.kt$Event$AndroidAutofillSearchDisplayed : Event + UndocumentedPublicClass:Event.kt$Event$AndroidAutofillSearchItemSelected : Event + UndocumentedPublicClass:Event.kt$Event$AndroidAutofillUnlockCanceled : Event + UndocumentedPublicClass:Event.kt$Event$AndroidAutofillUnlockSuccessful : Event + UndocumentedPublicClass:Event.kt$Event$AutoPlaySettingChanged : Event + UndocumentedPublicClass:Event.kt$Event$AutoPlaySettingVisited : Event + UndocumentedPublicClass:Event.kt$Event$AverageTabsPerSearchTermGroup : Event + UndocumentedPublicClass:Event.kt$Event$BaiduTopSiteRemoved : Event + UndocumentedPublicClass:Event.kt$Event$BookmarkClicked : Event + UndocumentedPublicClass:Event.kt$Event$BookmarkSuggestionClicked : Event + UndocumentedPublicClass:Event.kt$Event$BrowserMenuItemTapped : Event + UndocumentedPublicClass:Event.kt$Event$BrowserToolbarHomeButtonClicked : Event + UndocumentedPublicClass:Event.kt$Event$ChangeWallpaperWithLogoToggled : Event + UndocumentedPublicClass:Event.kt$Event$ChangedToDefaultBrowser : Event + UndocumentedPublicClass:Event.kt$Event$ClearedPrivateData : Event + UndocumentedPublicClass:Event.kt$Event$ClipboardSuggestionClicked : Event + UndocumentedPublicClass:Event.kt$Event$CollectionAddTabPressed : Event + UndocumentedPublicClass:Event.kt$Event$CollectionAllTabsRestored : Event + UndocumentedPublicClass:Event.kt$Event$CollectionRemoved : Event + UndocumentedPublicClass:Event.kt$Event$CollectionRenamePressed : Event + UndocumentedPublicClass:Event.kt$Event$CollectionRenamed : Event + UndocumentedPublicClass:Event.kt$Event$CollectionSaveButtonPressed : Event + UndocumentedPublicClass:Event.kt$Event$CollectionSaved : Event + UndocumentedPublicClass:Event.kt$Event$CollectionShared : Event + UndocumentedPublicClass:Event.kt$Event$CollectionTabLongPressed : Event + UndocumentedPublicClass:Event.kt$Event$CollectionTabRemoved : Event + UndocumentedPublicClass:Event.kt$Event$CollectionTabRestored : Event + UndocumentedPublicClass:Event.kt$Event$CollectionTabSelectOpened : Event + UndocumentedPublicClass:Event.kt$Event$CollectionTabsAdded : Event + UndocumentedPublicClass:Event.kt$Event$ContextMenuCopyTapped : Event + UndocumentedPublicClass:Event.kt$Event$ContextMenuItemTapped : Event + UndocumentedPublicClass:Event.kt$Event$ContextMenuSearchTapped : Event + UndocumentedPublicClass:Event.kt$Event$ContextMenuSelectAllTapped : Event + UndocumentedPublicClass:Event.kt$Event$ContextMenuShareTapped : Event + UndocumentedPublicClass:Event.kt$Event$CopyBookmark : Event + UndocumentedPublicClass:Event.kt$Event$CopyLogin : Event + UndocumentedPublicClass:Event.kt$Event$CopyUrlUsed : Event + UndocumentedPublicClass:Event.kt$Event$CreditCardAutofillPromptDismissed : Event + UndocumentedPublicClass:Event.kt$Event$CreditCardAutofillPromptExpanded : Event + UndocumentedPublicClass:Event.kt$Event$CreditCardAutofillPromptShown : Event + UndocumentedPublicClass:Event.kt$Event$CreditCardAutofilled : Event + UndocumentedPublicClass:Event.kt$Event$CreditCardDeleted : Event + UndocumentedPublicClass:Event.kt$Event$CreditCardFormDetected : Event + UndocumentedPublicClass:Event.kt$Event$CreditCardManagementAddTapped : Event + UndocumentedPublicClass:Event.kt$Event$CreditCardManagementCardTapped : Event + UndocumentedPublicClass:Event.kt$Event$CreditCardModified : Event + UndocumentedPublicClass:Event.kt$Event$CreditCardSaved : Event + UndocumentedPublicClass:Event.kt$Event$CustomTabsActionTapped : Event + UndocumentedPublicClass:Event.kt$Event$CustomTabsClosed : Event + UndocumentedPublicClass:Event.kt$Event$CustomTabsMenuOpened : Event + UndocumentedPublicClass:Event.kt$Event$CustomizeHomePreferenceToggled : Event + UndocumentedPublicClass:Event.kt$Event$DarkThemeSelected : Event + UndocumentedPublicClass:Event.kt$Event$DefaultBrowserNotifTapped : Event + UndocumentedPublicClass:Event.kt$Event$DeleteLogin : Event + UndocumentedPublicClass:Event.kt$Event$DismissedOnboarding : Event + UndocumentedPublicClass:Event.kt$Event$EditLogin : Event + UndocumentedPublicClass:Event.kt$Event$EditLoginSave : Event + UndocumentedPublicClass:Event.kt$Event$EditedBookmark : Event + UndocumentedPublicClass:Event.kt$Event$EnteredUrl : Event + UndocumentedPublicClass:Event.kt$Event$ErrorPageVisited : Event + UndocumentedPublicClass:Event.kt$Event$GoogleTopSiteRemoved : Event + UndocumentedPublicClass:Event.kt$Event$HaveNoOpenTabs : Event + UndocumentedPublicClass:Event.kt$Event$HaveOpenTabs : Event + UndocumentedPublicClass:Event.kt$Event$HistoryAllItemsRemoved : Event + UndocumentedPublicClass:Event.kt$Event$HistoryHighlightOpened : Event + UndocumentedPublicClass:Event.kt$Event$HistoryItemOpened : Event + UndocumentedPublicClass:Event.kt$Event$HistoryItemRemoved : Event + UndocumentedPublicClass:Event.kt$Event$HistoryItemShared : Event + UndocumentedPublicClass:Event.kt$Event$HistoryOpened : Event + UndocumentedPublicClass:Event.kt$Event$HistoryOpenedInNewTab : Event + UndocumentedPublicClass:Event.kt$Event$HistoryOpenedInNewTabs : Event + UndocumentedPublicClass:Event.kt$Event$HistoryOpenedInPrivateTab : Event + UndocumentedPublicClass:Event.kt$Event$HistoryOpenedInPrivateTabs : Event + UndocumentedPublicClass:Event.kt$Event$HistoryRecentSearchesTapped : Event + UndocumentedPublicClass:Event.kt$Event$HistorySearchGroupOpened : Event + UndocumentedPublicClass:Event.kt$Event$HistorySearchIconTapped : Event + UndocumentedPublicClass:Event.kt$Event$HistorySearchResultTapped : Event + UndocumentedPublicClass:Event.kt$Event$HistorySearchTermGroupOpenTab : Event + UndocumentedPublicClass:Event.kt$Event$HistorySearchTermGroupRemoveAll : Event + UndocumentedPublicClass:Event.kt$Event$HistorySearchTermGroupRemoveTab : Event + UndocumentedPublicClass:Event.kt$Event$HistorySearchTermGroupTapped : Event + UndocumentedPublicClass:Event.kt$Event$HistorySuggestionClicked : Event + UndocumentedPublicClass:Event.kt$Event$HomeMenuSettingsItemClicked : Event + UndocumentedPublicClass:Event.kt$Event$HomeScreenCustomizedHomeClicked : Event + UndocumentedPublicClass:Event.kt$Event$HomeScreenDisplayed : Event + UndocumentedPublicClass:Event.kt$Event$HomeScreenViewCount : Event + UndocumentedPublicClass:Event.kt$Event$InteractWithSearchURLArea : Event + UndocumentedPublicClass:Event.kt$Event$JumpBackInGroupTapped : Event + UndocumentedPublicClass:Event.kt$Event$LoginDialogPromptCancelled : Event + UndocumentedPublicClass:Event.kt$Event$LoginDialogPromptDisplayed : Event + UndocumentedPublicClass:Event.kt$Event$LoginDialogPromptNeverSave : Event + UndocumentedPublicClass:Event.kt$Event$LoginDialogPromptSave : Event + UndocumentedPublicClass:Event.kt$Event$MediaFullscreenState : Event + UndocumentedPublicClass:Event.kt$Event$MediaPauseState : Event + UndocumentedPublicClass:Event.kt$Event$MediaPictureInPictureState : Event + UndocumentedPublicClass:Event.kt$Event$MediaPlayState : Event + UndocumentedPublicClass:Event.kt$Event$MediaStopState : Event + UndocumentedPublicClass:Event.kt$Event$Messaging : Event + UndocumentedPublicClass:Event.kt$Event$MovedBookmark : Event + UndocumentedPublicClass:Event.kt$Event$NormalAndPrivateUriOpened : Event + UndocumentedPublicClass:Event.kt$Event$NotificationMediaPause : Event + UndocumentedPublicClass:Event.kt$Event$NotificationMediaPlay : Event + UndocumentedPublicClass:Event.kt$Event$OnboardingAutoSignIn : Event + UndocumentedPublicClass:Event.kt$Event$OnboardingFinish : Event + UndocumentedPublicClass:Event.kt$Event$OnboardingManualSignIn : Event + UndocumentedPublicClass:Event.kt$Event$OnboardingPrivacyNotice : Event + UndocumentedPublicClass:Event.kt$Event$OnboardingThemePicker : Event + UndocumentedPublicClass:Event.kt$Event$OnboardingToolbarPosition : Event + UndocumentedPublicClass:Event.kt$Event$OnboardingTrackingProtection : Event + UndocumentedPublicClass:Event.kt$Event$OpenInProgressMediaTab : Event + UndocumentedPublicClass:Event.kt$Event$OpenLogins : Event + UndocumentedPublicClass:Event.kt$Event$OpenOneLogin : Event + UndocumentedPublicClass:Event.kt$Event$OpenRecentTab : Event + UndocumentedPublicClass:Event.kt$Event$OpenedApp : Event + UndocumentedPublicClass:Event.kt$Event$OpenedAppFirstRun : Event + UndocumentedPublicClass:Event.kt$Event$OpenedBookmark : Event + UndocumentedPublicClass:Event.kt$Event$OpenedBookmarkInNewTab : Event + UndocumentedPublicClass:Event.kt$Event$OpenedBookmarkInPrivateTab : Event + UndocumentedPublicClass:Event.kt$Event$OpenedBookmarksInNewTabs : Event + UndocumentedPublicClass:Event.kt$Event$OpenedBookmarksInPrivateTabs : Event + UndocumentedPublicClass:Event.kt$Event$OpenedLink : Event + UndocumentedPublicClass:Event.kt$Event$OpenedTabSuggestionClicked : Event + UndocumentedPublicClass:Event.kt$Event$PerformedSearch : Event + UndocumentedPublicClass:Event.kt$Event$PocketHomeRecsCategoryClicked : Event + UndocumentedPublicClass:Event.kt$Event$PocketHomeRecsDiscoverMoreClicked : Event + UndocumentedPublicClass:Event.kt$Event$PocketHomeRecsLearnMoreClicked : Event + UndocumentedPublicClass:Event.kt$Event$PocketHomeRecsShown : Event + UndocumentedPublicClass:Event.kt$Event$PocketHomeRecsStoryClicked : Event + UndocumentedPublicClass:Event.kt$Event$PocketTopSiteClicked : Event + UndocumentedPublicClass:Event.kt$Event$PocketTopSiteRemoved : Event + UndocumentedPublicClass:Event.kt$Event$PreferenceToggled : Event + UndocumentedPublicClass:Event.kt$Event$ProgressiveWebAppInstallAsShortcut : Event + UndocumentedPublicClass:Event.kt$Event$ProgressiveWebAppOpenFromHomescreenTap : Event + UndocumentedPublicClass:Event.kt$Event$ReaderModeAppearanceOpened : Event + UndocumentedPublicClass:Event.kt$Event$ReaderModeAvailable : Event + UndocumentedPublicClass:Event.kt$Event$ReaderModeClosed : Event + UndocumentedPublicClass:Event.kt$Event$ReaderModeOpened : Event + UndocumentedPublicClass:Event.kt$Event$RecentBookmarkCount : Event + UndocumentedPublicClass:Event.kt$Event$RecentBookmarksShown : Event + UndocumentedPublicClass:Event.kt$Event$RecentSearchesGroupDeleted : Event + UndocumentedPublicClass:Event.kt$Event$RecentTabsSectionIsNotVisible : Event + UndocumentedPublicClass:Event.kt$Event$RecentTabsSectionIsVisible : Event + UndocumentedPublicClass:Event.kt$Event$RecentlyClosedTabsClosed : Event + UndocumentedPublicClass:Event.kt$Event$RecentlyClosedTabsDeleteTab : Event + UndocumentedPublicClass:Event.kt$Event$RecentlyClosedTabsEnterMultiselect : Event + UndocumentedPublicClass:Event.kt$Event$RecentlyClosedTabsExitMultiselect : Event + UndocumentedPublicClass:Event.kt$Event$RecentlyClosedTabsMenuClose : Event + UndocumentedPublicClass:Event.kt$Event$RecentlyClosedTabsMenuDelete : Event + UndocumentedPublicClass:Event.kt$Event$RecentlyClosedTabsMenuOpenInNormalTab : Event + UndocumentedPublicClass:Event.kt$Event$RecentlyClosedTabsMenuOpenInPrivateTab : Event + UndocumentedPublicClass:Event.kt$Event$RecentlyClosedTabsMenuShare : Event + UndocumentedPublicClass:Event.kt$Event$RecentlyClosedTabsOpenTab : Event + UndocumentedPublicClass:Event.kt$Event$RecentlyClosedTabsOpened : Event + UndocumentedPublicClass:Event.kt$Event$RecentlyClosedTabsOpenedOld : Event + UndocumentedPublicClass:Event.kt$Event$RecentlyClosedTabsShowFullHistory : Event + UndocumentedPublicClass:Event.kt$Event$RemoveBookmark : Event + UndocumentedPublicClass:Event.kt$Event$RemoveBookmarkFolder : Event + UndocumentedPublicClass:Event.kt$Event$RemoveBookmarks : Event + UndocumentedPublicClass:Event.kt$Event$SaveLoginsSettingChanged : Event + UndocumentedPublicClass:Event.kt$Event$Search + UndocumentedPublicClass:Event.kt$Event$SearchActionClicked : Event + UndocumentedPublicClass:Event.kt$Event$SearchAdClicked : Event + UndocumentedPublicClass:Event.kt$Event$SearchBarTapped : Event + UndocumentedPublicClass:Event.kt$Event$SearchInContent : Event + UndocumentedPublicClass:Event.kt$Event$SearchShortcutSelected : Event + UndocumentedPublicClass:Event.kt$Event$SearchSuggestionClicked : Event + UndocumentedPublicClass:Event.kt$Event$SearchTermGroupCount : Event + UndocumentedPublicClass:Event.kt$Event$SearchTermGroupSizeDistribution : Event + UndocumentedPublicClass:Event.kt$Event$SearchWidgetInstalled : Event + UndocumentedPublicClass:Event.kt$Event$SearchWidgetNewTabPressed : Event + UndocumentedPublicClass:Event.kt$Event$SearchWidgetVoiceSearchPressed : Event + UndocumentedPublicClass:Event.kt$Event$SearchWithAds : Event + UndocumentedPublicClass:Event.kt$Event$SendTab : Event + UndocumentedPublicClass:Event.kt$Event$SetDefaultBrowserToolbarMenuClicked : Event + UndocumentedPublicClass:Event.kt$Event$ShareBookmark : Event + UndocumentedPublicClass:Event.kt$Event$ShowAllBookmarks : Event + UndocumentedPublicClass:Event.kt$Event$ShowAllRecentTabs : Event + UndocumentedPublicClass:Event.kt$Event$SignInToSendTab : Event + UndocumentedPublicClass:Event.kt$Event$StartOnHomeEnterHomeScreen : Event + UndocumentedPublicClass:Event.kt$Event$StartOnHomeOpenTabsTray : Event + UndocumentedPublicClass:Event.kt$Event$StudiesSettings : Event + UndocumentedPublicClass:Event.kt$Event$SyncAccountOpened : Event + UndocumentedPublicClass:Event.kt$Event$SyncAccountSyncNow : Event + UndocumentedPublicClass:Event.kt$Event$SyncAuthClosed : Event + UndocumentedPublicClass:Event.kt$Event$SyncAuthFromSharedCopy : Event + UndocumentedPublicClass:Event.kt$Event$SyncAuthFromSharedReuse : Event + UndocumentedPublicClass:Event.kt$Event$SyncAuthOpened : Event + UndocumentedPublicClass:Event.kt$Event$SyncAuthOtherExternal : Event + UndocumentedPublicClass:Event.kt$Event$SyncAuthPaired : Event + UndocumentedPublicClass:Event.kt$Event$SyncAuthRecovered : Event + UndocumentedPublicClass:Event.kt$Event$SyncAuthScanPairing : Event + UndocumentedPublicClass:Event.kt$Event$SyncAuthSignIn : Event + UndocumentedPublicClass:Event.kt$Event$SyncAuthSignOut : Event + UndocumentedPublicClass:Event.kt$Event$SyncAuthSignUp : Event + UndocumentedPublicClass:Event.kt$Event$SyncAuthUseEmail : Event + UndocumentedPublicClass:Event.kt$Event$SyncAuthUseEmailProblem : Event + UndocumentedPublicClass:Event.kt$Event$SyncedTabOpened : Event + UndocumentedPublicClass:Event.kt$Event$SyncedTabSuggestionClicked : Event + UndocumentedPublicClass:Event.kt$Event$TabMediaPause : Event + UndocumentedPublicClass:Event.kt$Event$TabMediaPlay : Event + UndocumentedPublicClass:Event.kt$Event$TabSettingsOpened : Event + UndocumentedPublicClass:Event.kt$Event$TabViewSettingChanged : Event + UndocumentedPublicClass:Event.kt$Event$ToolbarMenuShown : Event + UndocumentedPublicClass:Event.kt$Event$ToolbarPositionChanged : Event + UndocumentedPublicClass:Event.kt$Event$TopSiteContileClick : Event + UndocumentedPublicClass:Event.kt$Event$TopSiteContileImpression : Event + UndocumentedPublicClass:Event.kt$Event$TopSiteContilePrivacy : Event + UndocumentedPublicClass:Event.kt$Event$TopSiteContileSettings : Event + UndocumentedPublicClass:Event.kt$Event$TopSiteLongPress : Event + UndocumentedPublicClass:Event.kt$Event$TopSiteOpenBaidu : Event + UndocumentedPublicClass:Event.kt$Event$TopSiteOpenContileInPrivateTab : Event + UndocumentedPublicClass:Event.kt$Event$TopSiteOpenDefault : Event + UndocumentedPublicClass:Event.kt$Event$TopSiteOpenFrecent : Event + UndocumentedPublicClass:Event.kt$Event$TopSiteOpenGoogle : Event + UndocumentedPublicClass:Event.kt$Event$TopSiteOpenInNewTab : Event + UndocumentedPublicClass:Event.kt$Event$TopSiteOpenInPrivateTab : Event + UndocumentedPublicClass:Event.kt$Event$TopSiteOpenPinned : Event + UndocumentedPublicClass:Event.kt$Event$TopSiteOpenProvided : Event + UndocumentedPublicClass:Event.kt$Event$TopSiteRemoved : Event + UndocumentedPublicClass:Event.kt$Event$TopSiteSwipeCarousel : Event + UndocumentedPublicClass:Event.kt$Event$ViewLoginPassword : Event + UndocumentedPublicClass:Event.kt$Event$VoiceSearchTapped : Event + UndocumentedPublicClass:Event.kt$Event$WallpaperSelected : Event + UndocumentedPublicClass:Event.kt$Event$WallpaperSettingsOpened : Event + UndocumentedPublicClass:Event.kt$Event$WallpaperSwitched : Event + UndocumentedPublicClass:Event.kt$Event$WhatsNewTapped : Event + UndocumentedPublicClass:Event.kt$Event.AutoPlaySettingChanged$AutoplaySetting + UndocumentedPublicClass:Event.kt$Event.BrowserMenuItemTapped$Item + UndocumentedPublicClass:Event.kt$Event.DarkThemeSelected$Source + UndocumentedPublicClass:Event.kt$Event.Messaging$MessageClicked : Messaging + UndocumentedPublicClass:Event.kt$Event.Messaging$MessageDismissed : Messaging + UndocumentedPublicClass:Event.kt$Event.Messaging$MessageExpired : Messaging + UndocumentedPublicClass:Event.kt$Event.Messaging$MessageMalformed : Messaging + UndocumentedPublicClass:Event.kt$Event.Messaging$MessageShown : Messaging + UndocumentedPublicClass:Event.kt$Event.OnboardingThemePicker$Theme + UndocumentedPublicClass:Event.kt$Event.OnboardingToolbarPosition$Position + UndocumentedPublicClass:Event.kt$Event.OnboardingTrackingProtection$Setting + UndocumentedPublicClass:Event.kt$Event.OpenedApp$Source + UndocumentedPublicClass:Event.kt$Event.OpenedLink$Mode + UndocumentedPublicClass:Event.kt$Event.PerformedSearch$EngineSource + UndocumentedPublicClass:Event.kt$Event.PerformedSearch$EventSource + UndocumentedPublicClass:Event.kt$Event.PerformedSearch$SearchAccessPoint + UndocumentedPublicClass:Event.kt$Event.PerformedSearch.EngineSource$Default : EngineSource + UndocumentedPublicClass:Event.kt$Event.PerformedSearch.EngineSource$Shortcut : EngineSource + UndocumentedPublicClass:Event.kt$Event.PerformedSearch.EventSource$Action : EventSource + UndocumentedPublicClass:Event.kt$Event.PerformedSearch.EventSource$Other : EventSource + UndocumentedPublicClass:Event.kt$Event.PerformedSearch.EventSource$Shortcut : EventSource + UndocumentedPublicClass:Event.kt$Event.PerformedSearch.EventSource$Suggestion : EventSource + UndocumentedPublicClass:Event.kt$Event.PerformedSearch.EventSource$TopSite : EventSource + UndocumentedPublicClass:Event.kt$Event.PerformedSearch.EventSource$Widget : EventSource + UndocumentedPublicClass:Event.kt$Event.SaveLoginsSettingChanged$Setting + UndocumentedPublicClass:Event.kt$Event.SearchBarTapped$Source + UndocumentedPublicClass:Event.kt$Event.TabViewSettingChanged$Type + UndocumentedPublicClass:Event.kt$Event.ToolbarPositionChanged$Position + UndocumentedPublicClass:Event.kt$Event.TopSiteContileClick$Source + UndocumentedPublicClass:Event.kt$Event.TopSiteContileImpression$Source + UndocumentedPublicClass:ExceptionsAdapter.kt$ExceptionsAdapter.AdapterItem$DeleteButton : AdapterItem + UndocumentedPublicClass:ExceptionsAdapter.kt$ExceptionsAdapter.AdapterItem$Header : AdapterItem + UndocumentedPublicClass:ExceptionsDeleteButtonViewHolder.kt$ExceptionsDeleteButtonViewHolder : ViewHolder + UndocumentedPublicClass:ExceptionsFragmentStore.kt$ExceptionsFragmentAction$Change : ExceptionsFragmentAction + UndocumentedPublicClass:ExceptionsHeaderViewHolder.kt$ExceptionsHeaderViewHolder : ViewHolder + UndocumentedPublicClass:FenixOnboarding.kt$FenixOnboarding : PreferencesHolder + UndocumentedPublicClass:FenixSnackbar.kt$FenixSnackbar : BaseTransientBottomBar + UndocumentedPublicClass:FenixSnackbarDelegate.kt$FenixSnackbarDelegate : SnackbarDelegate + UndocumentedPublicClass:FenixTabCounterMenu.kt$FenixTabCounterMenu : TabCounterMenu + UndocumentedPublicClass:FirefoxTheme.kt$FirefoxTheme + UndocumentedPublicClass:FirstSessionPing.kt$FirstSessionPing + UndocumentedPublicClass:GeckoProvider.kt$GeckoProvider + UndocumentedPublicClass:GroupableRadioButton.kt$GroupableRadioButton + UndocumentedPublicClass:HistoryAdapter.kt$HistoryAdapter : PagedListAdapterSelectionHolder + UndocumentedPublicClass:HistoryController.kt$DefaultHistoryController : HistoryController + UndocumentedPublicClass:HistoryController.kt$HistoryController + UndocumentedPublicClass:HistoryDataSource.kt$HistoryDataSource : ItemKeyedDataSource + UndocumentedPublicClass:HistoryDataSourceFactory.kt$HistoryDataSourceFactory : Factory + UndocumentedPublicClass:HistoryFragment.kt$HistoryFragment : LibraryPageFragmentUserInteractionHandler + UndocumentedPublicClass:HistoryFragmentStore.kt$HistoryFragmentAction$AddItemForRemoval : HistoryFragmentAction + UndocumentedPublicClass:HistoryFragmentStore.kt$HistoryFragmentAction$AddPendingDeletionSet : HistoryFragmentAction + UndocumentedPublicClass:HistoryFragmentStore.kt$HistoryFragmentAction$EnterDeletionMode : HistoryFragmentAction + UndocumentedPublicClass:HistoryFragmentStore.kt$HistoryFragmentAction$ExitDeletionMode : HistoryFragmentAction + UndocumentedPublicClass:HistoryFragmentStore.kt$HistoryFragmentAction$ExitEditMode : HistoryFragmentAction + UndocumentedPublicClass:HistoryFragmentStore.kt$HistoryFragmentAction$FinishSync : HistoryFragmentAction + UndocumentedPublicClass:HistoryFragmentStore.kt$HistoryFragmentAction$RemoveItemForRemoval : HistoryFragmentAction + UndocumentedPublicClass:HistoryFragmentStore.kt$HistoryFragmentAction$StartSync : HistoryFragmentAction + UndocumentedPublicClass:HistoryFragmentStore.kt$HistoryFragmentAction$UndoPendingDeletionSet : HistoryFragmentAction + UndocumentedPublicClass:HistoryFragmentStore.kt$HistoryFragmentState$Mode + UndocumentedPublicClass:HistoryFragmentStore.kt$HistoryFragmentState.Mode$Editing : Mode + UndocumentedPublicClass:HistoryFragmentStore.kt$HistoryFragmentState.Mode$Normal : Mode + UndocumentedPublicClass:HistoryFragmentStore.kt$HistoryFragmentState.Mode$Syncing : Mode + UndocumentedPublicClass:HistoryItemTimeGroup.kt$HistoryItemTimeGroup + UndocumentedPublicClass:HistoryListItemViewHolder.kt$HistoryListItemViewHolder : ViewHolder + UndocumentedPublicClass:HistoryMetadataGroupFragmentStore.kt$HistoryMetadataGroupFragmentAction$Delete : HistoryMetadataGroupFragmentAction + UndocumentedPublicClass:HistoryMetadataGroupFragmentStore.kt$HistoryMetadataGroupFragmentAction$DeleteAll : HistoryMetadataGroupFragmentAction + UndocumentedPublicClass:HistoryMetadataGroupFragmentStore.kt$HistoryMetadataGroupFragmentAction$Deselect : HistoryMetadataGroupFragmentAction + UndocumentedPublicClass:HistoryMetadataGroupFragmentStore.kt$HistoryMetadataGroupFragmentAction$DeselectAll : HistoryMetadataGroupFragmentAction + UndocumentedPublicClass:HistoryMetadataGroupFragmentStore.kt$HistoryMetadataGroupFragmentAction$Select : HistoryMetadataGroupFragmentAction + UndocumentedPublicClass:HistoryMetadataGroupFragmentStore.kt$HistoryMetadataGroupFragmentAction$UpdateHistoryItems : HistoryMetadataGroupFragmentAction + UndocumentedPublicClass:HistoryMetadataService.kt$DefaultHistoryMetadataService : HistoryMetadataService + UndocumentedPublicClass:HistorySearchController.kt$HistorySearchDialogController : HistorySearchController + UndocumentedPublicClass:HistorySearchDialogFragment.kt$HistorySearchDialogFragment : AppCompatDialogFragmentUserInteractionHandler + UndocumentedPublicClass:HistorySearchFragmentStore.kt$HistorySearchFragmentAction$UpdateQuery : HistorySearchFragmentAction + UndocumentedPublicClass:HistoryViewModel.kt$HistoryViewModel : ViewModel + UndocumentedPublicClass:HomeFragment.kt$HomeFragment : Fragment + UndocumentedPublicClass:HomeMenu.kt$HomeMenu + UndocumentedPublicClass:HomeMenu.kt$HomeMenu$Item + UndocumentedPublicClass:HomeMenu.kt$HomeMenu.Item$Bookmarks : Item + UndocumentedPublicClass:HomeMenu.kt$HomeMenu.Item$CustomizeHome : Item + UndocumentedPublicClass:HomeMenu.kt$HomeMenu.Item$DesktopMode : Item + UndocumentedPublicClass:HomeMenu.kt$HomeMenu.Item$Downloads : Item + UndocumentedPublicClass:HomeMenu.kt$HomeMenu.Item$Extensions : Item + UndocumentedPublicClass:HomeMenu.kt$HomeMenu.Item$Help : Item + UndocumentedPublicClass:HomeMenu.kt$HomeMenu.Item$History : Item + UndocumentedPublicClass:HomeMenu.kt$HomeMenu.Item$Quit : Item + UndocumentedPublicClass:HomeMenu.kt$HomeMenu.Item$ReconnectSync : Item + UndocumentedPublicClass:HomeMenu.kt$HomeMenu.Item$Settings : Item + UndocumentedPublicClass:HomeMenu.kt$HomeMenu.Item$SyncAccount : Item + UndocumentedPublicClass:HomeMenu.kt$HomeMenu.Item$WhatsNew : Item + UndocumentedPublicClass:HomeScreenViewModel.kt$HomeScreenViewModel : ViewModel + UndocumentedPublicClass:HomeSettingsFragment.kt$HomeSettingsFragment$CustomizeHomeMetricsUpdater : SharedPreferenceUpdater + UndocumentedPublicClass:InactiveTabViewHolder.kt$InactiveTabViewHolder : ViewHolder + UndocumentedPublicClass:InactiveTabViewHolder.kt$InactiveTabViewHolder$AutoCloseDialogHolder : InactiveTabViewHolder + UndocumentedPublicClass:InactiveTabViewHolder.kt$InactiveTabViewHolder$FooterHolder : InactiveTabViewHolder + UndocumentedPublicClass:InactiveTabViewHolder.kt$InactiveTabViewHolder$HeaderHolder : InactiveTabViewHolder + UndocumentedPublicClass:InactiveTabsAutoCloseDialogController.kt$InactiveTabsAutoCloseDialogController + UndocumentedPublicClass:InactiveTabsController.kt$InactiveTabsController + UndocumentedPublicClass:InactiveTabsInteractor.kt$DefaultInactiveTabsInteractor : InactiveTabsInteractor + UndocumentedPublicClass:IntentProcessorType.kt$IntentProcessorType + UndocumentedPublicClass:IntentUtils.kt$IntentUtils + UndocumentedPublicClass:KeyPairMessageMetadataStorage.kt$KeyPairMessageMetadataStorage : MessageMetadataStorage + UndocumentedPublicClass:LibraryPageFragment.kt$LibraryPageFragment<T> : Fragment + UndocumentedPublicClass:LibraryPageView.kt$LibraryPageView + UndocumentedPublicClass:LibrarySiteItemView.kt$LibrarySiteItemView : ConstraintLayout + UndocumentedPublicClass:LibrarySiteItemView.kt$LibrarySiteItemView$ItemType + UndocumentedPublicClass:LocaleAdapter.kt$LocaleAdapter : Adapter + UndocumentedPublicClass:LocaleAdapter.kt$LocaleAdapter$ItemType + UndocumentedPublicClass:LocaleAdapter.kt$LocaleAdapter$LocaleDiffUtil : Callback + UndocumentedPublicClass:LocaleSettingsFragment.kt$LocaleSettingsFragment : Fragment + UndocumentedPublicClass:LocaleSettingsInteractor.kt$LocaleSettingsInteractor : LocaleSettingsViewInteractor + UndocumentedPublicClass:LocaleSettingsStore.kt$LocaleSettingsAction$Search : LocaleSettingsAction + UndocumentedPublicClass:LocaleSettingsStore.kt$LocaleSettingsAction$Select : LocaleSettingsAction + UndocumentedPublicClass:LocaleSettingsStore.kt$LocaleSettingsStore : Store + UndocumentedPublicClass:LocaleSettingsView.kt$LocaleSettingsView + UndocumentedPublicClass:LocaleSettingsView.kt$LocaleSettingsViewInteractor + UndocumentedPublicClass:LocaleViewHolders.kt$BaseLocaleViewHolder : ViewHolder + UndocumentedPublicClass:LocaleViewHolders.kt$LocaleViewHolder : BaseLocaleViewHolder + UndocumentedPublicClass:LocaleViewHolders.kt$SystemLocaleViewHolder : BaseLocaleViewHolder + UndocumentedPublicClass:LoginExceptionsAdapter.kt$LoginExceptionsAdapter$LoginAdapterItem : Item + UndocumentedPublicClass:LoginExceptionsInteractor.kt$DefaultLoginExceptionsInteractor : LoginExceptionsInteractor + UndocumentedPublicClass:LoginExceptionsInteractor.kt$LoginExceptionsInteractor : ExceptionsInteractor + UndocumentedPublicClass:LoginExceptionsView.kt$LoginExceptionsView : ExceptionsView + UndocumentedPublicClass:LoginsAdapter.kt$LoginsAdapter : ListAdapter + UndocumentedPublicClass:LoginsFragmentStore.kt$LoginsAction$DuplicateLogin : LoginsAction + UndocumentedPublicClass:LoginsFragmentStore.kt$LoginsAction$FilterLogins : LoginsAction + UndocumentedPublicClass:LoginsFragmentStore.kt$LoginsAction$LoginSelected : LoginsAction + UndocumentedPublicClass:LoginsFragmentStore.kt$LoginsAction$LoginsListUpToDate : LoginsAction + UndocumentedPublicClass:LoginsFragmentStore.kt$LoginsAction$SortLogins : LoginsAction + UndocumentedPublicClass:LoginsFragmentStore.kt$LoginsAction$UpdateCurrentLogin : LoginsAction + UndocumentedPublicClass:LoginsFragmentStore.kt$LoginsAction$UpdateLoginsList : LoginsAction + UndocumentedPublicClass:LoginsListViewHolder.kt$LoginsListViewHolder : ViewHolder + UndocumentedPublicClass:MenuPresenter.kt$MenuPresenter : OnAttachStateChangeListener + UndocumentedPublicClass:MessageCardViewHolder.kt$MessageCardViewHolder : ViewHolder + UndocumentedPublicClass:MessageMetadataStorage.kt$MessageMetadataStorage + UndocumentedPublicClass:MessagingMiddleware.kt$MessagingMiddleware : Middleware + UndocumentedPublicClass:MetricController.kt$MetricController + UndocumentedPublicClass:MetricsService.kt$MetricServiceType + UndocumentedPublicClass:MetricsService.kt$MetricsService + UndocumentedPublicClass:MetricsUtils.kt$MetricsUtils + UndocumentedPublicClass:Mode.kt$CurrentMode : AccountObserver + UndocumentedPublicClass:Mode.kt$Mode$Normal : Mode + UndocumentedPublicClass:Mode.kt$Mode$Onboarding : Mode + UndocumentedPublicClass:Mode.kt$Mode$Private : Mode + UndocumentedPublicClass:Mode.kt$OnboardingState$SignedIn : OnboardingState + UndocumentedPublicClass:Mode.kt$OnboardingState$SignedOutNoAutoSignIn : OnboardingState + UndocumentedPublicClass:MozillaProductDetector.kt$MozillaProductDetector + UndocumentedPublicClass:MozillaProductDetector.kt$MozillaProductDetector$MozillaProducts + UndocumentedPublicClass:NewTabShortcutIntentProcessor.kt$NewTabShortcutIntentProcessor : IntentProcessor + UndocumentedPublicClass:NoCollectionsMessageViewHolder.kt$NoCollectionsMessageViewHolder : ViewHolder + UndocumentedPublicClass:NormalBrowserTrayList.kt$NormalBrowserTrayList : AbstractBrowserTrayList + UndocumentedPublicClass:OnSharedPreferenceChangeListener.kt$OnSharedPreferenceChangeListener : OnSharedPreferenceChangeListenerDefaultLifecycleObserver + UndocumentedPublicClass:OnboardingFinishViewHolder.kt$OnboardingFinishViewHolder : ViewHolder + UndocumentedPublicClass:OnboardingHeaderViewHolder.kt$OnboardingHeaderViewHolder : ViewHolder + UndocumentedPublicClass:OnboardingManualSignInViewHolder.kt$OnboardingManualSignInViewHolder : ViewHolder + UndocumentedPublicClass:OnboardingPrivacyNoticeViewHolder.kt$OnboardingPrivacyNoticeViewHolder : ViewHolder + UndocumentedPublicClass:OnboardingRadioButton.kt$OnboardingRadioButton : AppCompatRadioButtonGroupableRadioButton + UndocumentedPublicClass:OnboardingSectionHeaderViewHolder.kt$OnboardingSectionHeaderViewHolder : ViewHolder + UndocumentedPublicClass:OnboardingThemePickerViewHolder.kt$OnboardingThemePickerViewHolder : ViewHolder + UndocumentedPublicClass:OnboardingToolbarPositionPickerViewHolder.kt$OnboardingToolbarPositionPickerViewHolder : ViewHolder + UndocumentedPublicClass:OnboardingTrackingProtectionViewHolder.kt$OnboardingTrackingProtectionViewHolder : ViewHolder + UndocumentedPublicClass:PagedHistoryProvider.kt$HistoryDB$Group : HistoryDB + UndocumentedPublicClass:PagedHistoryProvider.kt$HistoryDB$Metadata : HistoryDB + UndocumentedPublicClass:PagedHistoryProvider.kt$HistoryDB$Regular : HistoryDB + UndocumentedPublicClass:PairFragment.kt$PairFragment : FragmentUserInteractionHandler + UndocumentedPublicClass:PerformanceInflater.kt$InflationCounter + UndocumentedPublicClass:PermissionStorage.kt$PermissionStorage + UndocumentedPublicClass:PhoneFeature.kt$PhoneFeature : Parcelable + UndocumentedPublicClass:PrivacyContentSpan.kt$ADDR + UndocumentedPublicClass:PrivacyContentSpan.kt$Position + UndocumentedPublicClass:PrivacyContentSpan.kt$PrivacyContentSpan : ClickableSpan + UndocumentedPublicClass:PrivateBrowserTrayList.kt$PrivateBrowserTrayList : AbstractBrowserTrayList + UndocumentedPublicClass:PrivateBrowsingDescriptionViewHolder.kt$PrivateBrowsingDescriptionViewHolder : ViewHolder + UndocumentedPublicClass:QuickSettingsFragmentReducer.kt$TrackingProtectionStateReducer + UndocumentedPublicClass:QuickSettingsFragmentReducer.kt$WebsitePermissionsStateReducer + UndocumentedPublicClass:QuickSettingsFragmentState.kt$AutoplayValue + UndocumentedPublicClass:QuickSettingsFragmentState.kt$AutoplayValue$AllowAll : AutoplayValue + UndocumentedPublicClass:QuickSettingsFragmentState.kt$AutoplayValue$BlockAll : AutoplayValue + UndocumentedPublicClass:QuickSettingsFragmentState.kt$AutoplayValue$BlockAudible : AutoplayValue + UndocumentedPublicClass:QuickSettingsFragmentState.kt$WebsitePermission$Autoplay : WebsitePermission + UndocumentedPublicClass:QuickSettingsFragmentState.kt$WebsitePermission$Toggleable : WebsitePermission + UndocumentedPublicClass:QuickSettingsFragmentState.kt$WebsiteSecurityUiValues + UndocumentedPublicClass:RadioButtonInfoPreference.kt$RadioButtonInfoPreference : RadioButtonPreference + UndocumentedPublicClass:RadioButtonPreference.kt$RadioButtonPreference : PreferenceGroupableRadioButton + UndocumentedPublicClass:RadioSearchEngineListPreference.kt$RadioSearchEngineListPreference : PreferenceOnCheckedChangeListener + UndocumentedPublicClass:ReaderModeController.kt$DefaultReaderModeController : ReaderModeController + UndocumentedPublicClass:RecentBookmarksViewHolder.kt$RecentBookmarksViewHolder : ComposeViewHolder + UndocumentedPublicClass:RecentTabsListFeature.kt$RecentTab + UndocumentedPublicClass:RecentlyClosedAdapter.kt$RecentlyClosedAdapter : ListAdapterSelectionHolder + UndocumentedPublicClass:RecentlyClosedController.kt$DefaultRecentlyClosedController : RecentlyClosedController + UndocumentedPublicClass:RecentlyClosedController.kt$RecentlyClosedController + UndocumentedPublicClass:RecentlyClosedFragment.kt$RecentlyClosedFragment : LibraryPageFragmentUserInteractionHandler + UndocumentedPublicClass:RecentlyClosedFragmentStore.kt$RecentlyClosedFragmentAction$Change : RecentlyClosedFragmentAction + UndocumentedPublicClass:RecentlyClosedFragmentStore.kt$RecentlyClosedFragmentAction$Deselect : RecentlyClosedFragmentAction + UndocumentedPublicClass:RecentlyClosedFragmentStore.kt$RecentlyClosedFragmentAction$DeselectAll : RecentlyClosedFragmentAction + UndocumentedPublicClass:RecentlyClosedFragmentStore.kt$RecentlyClosedFragmentAction$Select : RecentlyClosedFragmentAction + UndocumentedPublicClass:RecentlyClosedFragmentView.kt$RecentlyClosedInteractor : SelectionInteractor + UndocumentedPublicClass:RecentlyClosedItemViewHolder.kt$RecentlyClosedItemViewHolder : ViewHolder + UndocumentedPublicClass:SaveCollectionListAdapter.kt$CollectionViewHolder : ViewHolder + UndocumentedPublicClass:SaveCollectionListAdapter.kt$SaveCollectionListAdapter : Adapter + UndocumentedPublicClass:SavedLoginsAuthFragment.kt$SavedLoginsAuthFragment : PreferenceFragmentCompat + UndocumentedPublicClass:SavedLoginsFragment.kt$SavedLoginsFragment : SecureFragment + UndocumentedPublicClass:SavedLoginsSettingFragment.kt$SavedLoginsSettingFragment : PreferenceFragmentCompat + UndocumentedPublicClass:SavedLoginsSortingStrategyMenu.kt$SavedLoginsSortingStrategyMenu + UndocumentedPublicClass:SavedLoginsSortingStrategyMenu.kt$SavedLoginsSortingStrategyMenu$Item + UndocumentedPublicClass:SearchDialogController.kt$SearchDialogController : SearchController + UndocumentedPublicClass:SearchDialogFragment.kt$SearchDialogFragment : AppCompatDialogFragmentUserInteractionHandler + UndocumentedPublicClass:SearchEngineFragment.kt$SearchEngineFragment : PreferenceFragmentCompat + UndocumentedPublicClass:SearchEngineMenu.kt$SearchEngineMenu + UndocumentedPublicClass:SearchEngineMenu.kt$SearchEngineMenu$Item + UndocumentedPublicClass:SearchEngineMenu.kt$SearchEngineMenu.Item$Delete : Item + UndocumentedPublicClass:SearchEngineMenu.kt$SearchEngineMenu.Item$Edit : Item + UndocumentedPublicClass:SearchFragmentStore.kt$SearchEngineSource$Default : SearchEngineSource + UndocumentedPublicClass:SearchFragmentStore.kt$SearchEngineSource$None : SearchEngineSource + UndocumentedPublicClass:SearchFragmentStore.kt$SearchEngineSource$Shortcut : SearchEngineSource + UndocumentedPublicClass:SearchFragmentStore.kt$SearchFragmentAction$AllowSearchSuggestionsInPrivateModePrompt : SearchFragmentAction + UndocumentedPublicClass:SearchFragmentStore.kt$SearchFragmentAction$SearchShortcutEngineSelected : SearchFragmentAction + UndocumentedPublicClass:SearchFragmentStore.kt$SearchFragmentAction$SetShowSearchSuggestions : SearchFragmentAction + UndocumentedPublicClass:SearchFragmentStore.kt$SearchFragmentAction$ShowSearchShortcutEnginePicker : SearchFragmentAction + UndocumentedPublicClass:SearchFragmentStore.kt$SearchFragmentAction$UpdateClipboardHasUrl : SearchFragmentAction + UndocumentedPublicClass:SearchFragmentStore.kt$SearchFragmentAction$UpdateQuery : SearchFragmentAction + UndocumentedPublicClass:SearchStringValidator.kt$SearchStringValidator + UndocumentedPublicClass:SearchStringValidator.kt$SearchStringValidator$Result + UndocumentedPublicClass:SearchWidgetProvider.kt$SearchWidgetProvider : AppWidgetProvider + UndocumentedPublicClass:SearchWidgetProvider.kt$SearchWidgetProviderSize + UndocumentedPublicClass:SecretDebugSettingsFragment.kt$SecretDebugSettingsFragment : Fragment + UndocumentedPublicClass:SecretSettingsFragment.kt$SecretSettingsFragment : PreferenceFragmentCompat + UndocumentedPublicClass:SelectBookmarkFolderAdapter.kt$SelectBookmarkFolderAdapter : ListAdapter + UndocumentedPublicClass:SelectBookmarkFolderAdapter.kt$SelectBookmarkFolderAdapter$BookmarkFolderViewHolder : ViewHolder + UndocumentedPublicClass:SelectBookmarkFolderFragment.kt$SelectBookmarkFolderFragment : Fragment + UndocumentedPublicClass:SelectionMenu.kt$SelectionMenu + UndocumentedPublicClass:SelectionMenu.kt$SelectionMenu$Item + UndocumentedPublicClass:SelectionMenu.kt$SelectionMenu.Item$BookmarkTabs : Item + UndocumentedPublicClass:SelectionMenu.kt$SelectionMenu.Item$DeleteTabs : Item + UndocumentedPublicClass:SelectionMenu.kt$SelectionMenu.Item$MakeInactive : Item + UndocumentedPublicClass:SelectionMenuIntegration.kt$SelectionMenuIntegration + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$BottomSpacer : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$CollectionHeader : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$CollectionItem : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$CustomizeHomeButton : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$NimbusMessageCard : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$NoCollectionsMessage : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$OnboardingFinish : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$OnboardingHeader : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$OnboardingManualSignIn : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$OnboardingPrivacyNotice : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$OnboardingSectionHeader : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$OnboardingThemePicker : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$OnboardingToolbarPositionPicker : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$OnboardingTrackingProtection : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$PocketCategoriesItem : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$PocketRecommendationsFooterItem : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$PocketStoriesItem : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$PrivateBrowsingDescription : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$RecentBookmarks : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$RecentBookmarksHeader : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$RecentTabItem : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$RecentTabsHeader : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$RecentVisitsHeader : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$RecentVisitsItems : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$TabInCollectionItem : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$TopPlaceholderItem : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItem$TopSitePager : AdapterItem + UndocumentedPublicClass:SessionControlAdapter.kt$AdapterItemDiffCallback : ItemCallback + UndocumentedPublicClass:SessionControlAdapter.kt$SessionControlAdapter : ListAdapter + UndocumentedPublicClass:SessionControlController.kt$DefaultSessionControlController : SessionControlController + UndocumentedPublicClass:SessionControlInteractor.kt$CustomizeHomeIteractor + UndocumentedPublicClass:SessionControlInteractor.kt$MessageCardInteractor + UndocumentedPublicClass:SessionControlInteractor.kt$ToolbarInteractor + UndocumentedPublicClass:SessionControlView.kt$SessionControlView + UndocumentedPublicClass:Settings.kt$Settings$TabTimout + UndocumentedPublicClass:Settings.kt$Settings$TabView + UndocumentedPublicClass:SettingsFragment.kt$SettingsFragment : PreferenceFragmentCompat + UndocumentedPublicClass:ShareCloseView.kt$ShareCloseView + UndocumentedPublicClass:ShareController.kt$ShareController$Result + UndocumentedPublicClass:ShareFragment.kt$ShareFragment : AppCompatDialogFragment + UndocumentedPublicClass:ShareTabsAdapter.kt$ShareTabsAdapter$ShareTabViewHolder : ViewHolder + UndocumentedPublicClass:ShareToAccountDevicesView.kt$ShareToAccountDevicesView + UndocumentedPublicClass:ShareToAppsView.kt$ShareToAppsView + UndocumentedPublicClass:ShareViewModel.kt$ShareViewModel : AndroidViewModel + UndocumentedPublicClass:SharedViewModel.kt$SharedViewModel : ViewModel + UndocumentedPublicClass:SignOutFragment.kt$SignOutFragment : AppCompatDialogFragment + UndocumentedPublicClass:SitePermissionsDetailsExceptionsFragment.kt$SitePermissionsDetailsExceptionsFragment : PreferenceFragmentCompat + UndocumentedPublicClass:SitePermissionsExceptionsFragment.kt$ExceptionsAdapter : PagedListAdapter + UndocumentedPublicClass:SitePermissionsExceptionsFragment.kt$SitePermissionsExceptionsFragment : FragmentOnClickListener + UndocumentedPublicClass:SitePermissionsExceptionsFragment.kt$SitePermissionsViewHolder : ViewHolder + UndocumentedPublicClass:SitePermissionsFragment.kt$SitePermissionsFragment : PreferenceFragmentCompat + UndocumentedPublicClass:SitePermissionsManageExceptionsPhoneFeatureFragment.kt$SitePermissionsManageExceptionsPhoneFeatureFragment : Fragment + UndocumentedPublicClass:SitePermissionsManagePhoneFeatureFragment.kt$SitePermissionsManagePhoneFeatureFragment : Fragment + UndocumentedPublicClass:SortingStrategy.kt$SortingStrategy + UndocumentedPublicClass:SortingStrategy.kt$SortingStrategy$Alphabetically : SortingStrategy + UndocumentedPublicClass:SortingStrategy.kt$SortingStrategy$LastUsed : SortingStrategy + 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$StartupPathLifecycleObserver : DefaultLifecycleObserver + UndocumentedPublicClass:StartupTypeTelemetry.kt$StartupTypeTelemetry$StartupTypeLifecycleObserver : DefaultLifecycleObserver + UndocumentedPublicClass:StrictModeManager.kt$StrictModeManager$DisableStrictModeFragmentLifecycleCallbacks : FragmentLifecycleCallbacks + UndocumentedPublicClass:StudiesInteractor.kt$DefaultStudiesInteractor : StudiesInteractor + UndocumentedPublicClass:StudiesInteractor.kt$StudiesInteractor + UndocumentedPublicClass:StudiesView.kt$StudiesView : StudiesAdapterDelegate + UndocumentedPublicClass:SupportUtils.kt$SupportUtils + UndocumentedPublicClass:SupportUtils.kt$SupportUtils$MozillaPage + UndocumentedPublicClass:SupportUtils.kt$SupportUtils$SumoTopic + UndocumentedPublicClass:SwipeToDeleteCallback.kt$SwipeToDeleteCallback : SimpleCallback + UndocumentedPublicClass:SwitchWithDescription.kt$SwitchWithDescription : ConstraintLayout + UndocumentedPublicClass:Tab.kt$Tab + UndocumentedPublicClass:TabCollectionStorage.kt$TabCollectionStorage : Observable + UndocumentedPublicClass:TabDragData.kt$TabDragData + UndocumentedPublicClass:TabHistoryAdapter.kt$TabHistoryAdapter : ListAdapter + UndocumentedPublicClass:TabHistoryAdapter.kt$TabHistoryItem + UndocumentedPublicClass:TabHistoryController.kt$DefaultTabHistoryController : TabHistoryController + UndocumentedPublicClass:TabHistoryController.kt$TabHistoryController + UndocumentedPublicClass:TabHistoryDialogFragment.kt$TabHistoryDialogFragment : BottomSheetDialogFragment + UndocumentedPublicClass:TabHistoryInteractor.kt$TabHistoryInteractor : TabHistoryViewInteractor + UndocumentedPublicClass:TabHistoryView.kt$TabHistoryView + UndocumentedPublicClass:TabHistoryView.kt$TabHistoryViewInteractor + UndocumentedPublicClass:TabHistoryViewHolder.kt$TabHistoryViewHolder : ViewHolder + UndocumentedPublicClass:TabInCollectionViewHolder.kt$TabInCollectionViewHolder : ViewHolder + UndocumentedPublicClass:TabPreview.kt$TabPreview : FrameLayout + UndocumentedPublicClass:TabsTrayController.kt$DefaultTabsTrayController : TabsTrayController + UndocumentedPublicClass:TabsTrayController.kt$TabsTrayController + UndocumentedPublicClass:TabsTrayFragment.kt$TabsTrayFragment : AppCompatDialogFragment + UndocumentedPublicClass:TabsTrayInactiveTabsOnboardingBinding.kt$TabsTrayInactiveTabsOnboardingBinding : AbstractBinding + UndocumentedPublicClass:TabsTrayInfoBannerBinding.kt$TabsTrayInfoBannerBinding : AbstractBinding + UndocumentedPublicClass:TabsTrayInteractor.kt$TabsTrayInteractor + UndocumentedPublicClass:TabsTrayMenu.kt$TabsTrayMenu + UndocumentedPublicClass:TabsTrayMenu.kt$TabsTrayMenu$Item + UndocumentedPublicClass:TabsTrayMenu.kt$TabsTrayMenu.Item$CloseAllTabs : Item + UndocumentedPublicClass:TabsTrayMenu.kt$TabsTrayMenu.Item$OpenAccountSettings : Item + UndocumentedPublicClass:TabsTrayMenu.kt$TabsTrayMenu.Item$OpenRecentlyClosed : Item + UndocumentedPublicClass:TabsTrayMenu.kt$TabsTrayMenu.Item$OpenTabSettings : Item + UndocumentedPublicClass:TabsTrayMenu.kt$TabsTrayMenu.Item$SelectTabs : Item + UndocumentedPublicClass:TabsTrayMenu.kt$TabsTrayMenu.Item$ShareAllTabs : Item + UndocumentedPublicClass:ThemeManager.kt$DefaultThemeManager : ThemeManager + UndocumentedPublicClass:ThemeManager.kt$ThemeManager + UndocumentedPublicClass:TitleHeaderAdapter.kt$TitleHeaderAdapter$Header + UndocumentedPublicClass:TitleHeaderAdapter.kt$TitleHeaderAdapter$HeaderViewHolder : ViewHolder + UndocumentedPublicClass:ToolbarIntegration.kt$DefaultToolbarIntegration : ToolbarIntegration + UndocumentedPublicClass:ToolbarIntegration.kt$ToolbarIntegration : LifecycleAwareFeature + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu$Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$AddToHomeScreen : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$AddToTopSites : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$AddonsManager : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Back : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Bookmark : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Bookmarks : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$CustomizeReaderView : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Downloads : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$FindInPage : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Forward : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$History : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$InstallPwaToHomeScreen : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$NewTab : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$OpenInApp : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$OpenInFenix : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Quit : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Reload : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$RemoveFromTopSites : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$RequestDesktop : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$SaveToCollection : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$SetDefaultBrowser : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Settings : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Share : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$Stop : Item + UndocumentedPublicClass:ToolbarMenu.kt$ToolbarMenu.Item$SyncAccount : Item + UndocumentedPublicClass:ToolbarPopupWindow.kt$ToolbarPopupWindow + UndocumentedPublicClass:TopSiteItemMenu.kt$TopSiteItemMenu$Item + UndocumentedPublicClass:TopSiteItemMenu.kt$TopSiteItemMenu.Item$OpenInPrivateTab : Item + UndocumentedPublicClass:TopSiteItemMenu.kt$TopSiteItemMenu.Item$RemoveTopSite : Item + UndocumentedPublicClass:TopSiteItemMenu.kt$TopSiteItemMenu.Item$RenameTopSite : Item + UndocumentedPublicClass:TopSiteItemMenu.kt$TopSiteItemMenu.Item$Settings : Item + UndocumentedPublicClass:TopSiteItemMenu.kt$TopSiteItemMenu.Item$SponsorPrivacy : Item + UndocumentedPublicClass:TopSiteItemViewHolder.kt$TopSiteItemViewHolder : ViewHolder + UndocumentedPublicClass:TopSitePagerViewHolder.kt$TopSitePagerViewHolder : ViewHolder + UndocumentedPublicClass:TopSiteViewHolder.kt$TopSiteViewHolder : ViewHolder + UndocumentedPublicClass:TopSitesAdapter.kt$TopSitesAdapter : ListAdapter + UndocumentedPublicClass:TopSitesPagerAdapter.kt$TopSitesPagerAdapter : ListAdapter + UndocumentedPublicClass:TrackerBuckets.kt$TrackerBuckets$BucketedTrackerLog + UndocumentedPublicClass:TrackingProtectionBlockingFragment.kt$TrackingProtectionBlockingFragment : Fragment + UndocumentedPublicClass:TrackingProtectionCategoryItem.kt$TrackingProtectionCategoryItem : ConstraintLayout + UndocumentedPublicClass:TrackingProtectionExceptionsAdapter.kt$TrackingProtectionExceptionsAdapter$TrackingProtectionAdapterItem : Item + UndocumentedPublicClass:TrackingProtectionExceptionsInteractor.kt$DefaultTrackingProtectionExceptionsInteractor : TrackingProtectionExceptionsInteractor + UndocumentedPublicClass:TrackingProtectionExceptionsInteractor.kt$TrackingProtectionExceptionsInteractor : ExceptionsInteractor + UndocumentedPublicClass:TrackingProtectionExceptionsView.kt$TrackingProtectionExceptionsView : ExceptionsView + UndocumentedPublicClass:TrackingProtectionMode.kt$TrackingProtectionMode : Parcelable + UndocumentedPublicClass:TrackingProtectionPanelDialogFragment.kt$TrackingProtectionPanelDialogFragment : AppCompatDialogFragmentUserInteractionHandler + UndocumentedPublicClass:TrackingProtectionStore.kt$TrackingProtectionAction$Change : TrackingProtectionAction + UndocumentedPublicClass:TrackingProtectionStore.kt$TrackingProtectionAction$EnterDetailsMode : TrackingProtectionAction + UndocumentedPublicClass:TrackingProtectionStore.kt$TrackingProtectionAction$ExitDetailsMode : TrackingProtectionAction + UndocumentedPublicClass:TrackingProtectionStore.kt$TrackingProtectionAction$TrackerLogChange : TrackingProtectionAction + UndocumentedPublicClass:TrackingProtectionStore.kt$TrackingProtectionAction$UrlChange : TrackingProtectionAction + UndocumentedPublicClass:TrackingProtectionStore.kt$TrackingProtectionState$Mode + UndocumentedPublicClass:TrackingProtectionStore.kt$TrackingProtectionState.Mode$Details : Mode + UndocumentedPublicClass:TrackingProtectionStore.kt$TrackingProtectionState.Mode$Normal : Mode + UndocumentedPublicClass:TrayPagerAdapter.kt$TrayPagerAdapter : Adapter + UndocumentedPublicClass:TurnOnSyncFragment.kt$TurnOnSyncFragment : FragmentAccountObserver + UndocumentedPublicClass:UseCases.kt$RemoveTabUseCaseWrapper : RemoveTabUseCase + UndocumentedPublicClass:UseCases.kt$SelectTabUseCaseWrapper : SelectTabUseCase + UndocumentedPublicClass:Utils.kt$BookmarkNodeWithDepth + UndocumentedPublicClass:Wallpaper.kt$Wallpaper.Local$Firefox : Local + UndocumentedPublicClass:Wallpaper.kt$Wallpaper.Remote$House : Remote + UndocumentedPublicClass:WallpaperFileManager.kt$WallpaperFileManager + UndocumentedPublicClass:WallpaperSettingsFragment.kt$WallpaperSettingsFragment : Fragment + UndocumentedPublicClass:WebAppSiteControlsBuilder.kt$WebAppSiteControlsBuilder : SiteControlsBuilder + UndocumentedPublicClass:WebsitePermissionsView.kt$WebsitePermissionsView$PermissionViewHolder + UndocumentedPublicClass:WebsitePermissionsView.kt$WebsitePermissionsView.PermissionViewHolder$SpinnerPermission : PermissionViewHolder + UndocumentedPublicClass:WebsitePermissionsView.kt$WebsitePermissionsView.PermissionViewHolder$ToggleablePermission : PermissionViewHolder + UndocumentedPublicClass:WhatsNewStorage.kt$SharedPreferenceWhatsNewStorage : WhatsNewStorage + UndocumentedPublicClass:WhatsNewVersion.kt$ContextWhatsNewVersion : WhatsNewVersion + UndocumentedPublicFunction:AboutItemViewHolder.kt$AboutItemViewHolder$fun bind(item: AboutPageItem) + UndocumentedPublicFunction:AboutPageAdapter.kt$AboutPageListener$fun onAboutItemClicked(item: AboutItem) + UndocumentedPublicFunction:AbstractBrowserTabViewHolder.kt$AbstractBrowserTabViewHolder$fun showTabIsMultiSelectEnabled(selectedMaskView: View?, isSelected: Boolean) + UndocumentedPublicFunction:AccountDeviceViewHolder.kt$AccountDeviceViewHolder$fun bind(option: SyncShareOption) + UndocumentedPublicFunction:Activity.kt$fun Activity.breadcrumb( message: String, data: Map<String, String> = emptyMap() ) + UndocumentedPublicFunction:AddLoginInteractor.kt$AddLoginInteractor$fun findDuplicate(originText: String, usernameText: String, passwordText: String) + UndocumentedPublicFunction:AddLoginInteractor.kt$AddLoginInteractor$fun onAddLogin(originText: String, usernameText: String, passwordText: String) + UndocumentedPublicFunction:AddonDetailsBindingDelegate.kt$AddonDetailsBindingDelegate$fun bind(addon: Addon) + UndocumentedPublicFunction:AddonPermissionDetailsBindingDelegate.kt$AddonPermissionDetailsBindingDelegate$fun bind(addon: Addon) + UndocumentedPublicFunction:Analytics.kt$fun isSentryEnabled() + UndocumentedPublicFunction:AppRequestInterceptor.kt$AppRequestInterceptor$fun setNavigationController(navController: NavController) + UndocumentedPublicFunction:AppViewHolder.kt$AppViewHolder$fun bind(item: AppShareOption) + UndocumentedPublicFunction:AwesomeBarView.kt$AwesomeBarView$fun update(state: BookmarkSearchFragmentState) + UndocumentedPublicFunction:AwesomeBarView.kt$AwesomeBarView$fun update(state: HistorySearchFragmentState) + UndocumentedPublicFunction:AwesomeBarView.kt$AwesomeBarView$fun update(state: SearchFragmentState) + UndocumentedPublicFunction:AwesomeBarView.kt$AwesomeBarView$fun updateSuggestionProvidersVisibility( state: SearchProviderState ) + UndocumentedPublicFunction:AwesomeBarView.kt$fun SearchFragmentState.toSearchProviderState() + UndocumentedPublicFunction:BackgroundServices.kt$BackgroundServices$@VisibleForTesting(otherwise = PRIVATE) fun makeAccountManager( context: Context, serverConfig: ServerConfig, deviceConfig: DeviceConfig, syncConfig: SyncConfig?, crashReporter: CrashReporter? ) + UndocumentedPublicFunction:BackgroundServices.kt$BackgroundServices$fun defaultDeviceName(context: Context): String + UndocumentedPublicFunction:BookmarkAdapter.kt$BookmarkAdapter$fun updateData(tree: BookmarkNode?, mode: BookmarkFragmentState.Mode) + UndocumentedPublicFunction:BookmarkAdapter.kt$fun BookmarkNode.inRoots() + UndocumentedPublicFunction:BookmarkController.kt$BookmarkController$fun handleAllBookmarksDeselected() + UndocumentedPublicFunction:BookmarkController.kt$BookmarkController$fun handleBackPressed() + UndocumentedPublicFunction:BookmarkController.kt$BookmarkController$fun handleBookmarkChanged(item: BookmarkNode) + UndocumentedPublicFunction:BookmarkController.kt$BookmarkController$fun handleBookmarkDeletion(nodes: Set<BookmarkNode>, eventType: Event) + UndocumentedPublicFunction:BookmarkController.kt$BookmarkController$fun handleBookmarkDeselected(node: BookmarkNode) + UndocumentedPublicFunction:BookmarkController.kt$BookmarkController$fun handleBookmarkEdit(node: BookmarkNode) + UndocumentedPublicFunction:BookmarkController.kt$BookmarkController$fun handleBookmarkExpand(folder: BookmarkNode) + UndocumentedPublicFunction:BookmarkController.kt$BookmarkController$fun handleBookmarkFolderDeletion(nodes: Set<BookmarkNode>) + UndocumentedPublicFunction:BookmarkController.kt$BookmarkController$fun handleBookmarkSelected(node: BookmarkNode) + UndocumentedPublicFunction:BookmarkController.kt$BookmarkController$fun handleBookmarkSharing(item: BookmarkNode) + UndocumentedPublicFunction:BookmarkController.kt$BookmarkController$fun handleBookmarkTapped(item: BookmarkNode) + UndocumentedPublicFunction:BookmarkController.kt$BookmarkController$fun handleCopyUrl(item: BookmarkNode) + UndocumentedPublicFunction:BookmarkController.kt$BookmarkController$fun handleOpeningBookmark(item: BookmarkNode, mode: BrowsingMode) + UndocumentedPublicFunction:BookmarkController.kt$BookmarkController$fun handleRequestSync() + UndocumentedPublicFunction:BookmarkController.kt$BookmarkController$fun handleSearch() + UndocumentedPublicFunction:BookmarkController.kt$BookmarkController$fun handleSelectionModeSwitch() + UndocumentedPublicFunction:BookmarkFragmentStore.kt$operator fun BookmarkNode.contains(item: BookmarkNode): Boolean + UndocumentedPublicFunction:BookmarkItemMenu.kt$BookmarkItemMenu$fun updateMenu(itemType: BookmarkNodeType) + UndocumentedPublicFunction:BookmarkNodeViewHolder.kt$BookmarkNodeViewHolder$fun bind( item: BookmarkNode, mode: BookmarkFragmentState.Mode, payload: BookmarkPayload ) + UndocumentedPublicFunction:BookmarkSearchController.kt$BookmarkSearchController$fun handleEditingCancelled() + UndocumentedPublicFunction:BookmarkSearchController.kt$BookmarkSearchController$fun handleTextChanged(text: String) + UndocumentedPublicFunction:BookmarkSearchController.kt$BookmarkSearchController$fun handleUrlTapped(url: String, flags: LoadUrlFlags = LoadUrlFlags.none()) + UndocumentedPublicFunction:BookmarkSearchFragmentStore.kt$fun createInitialBookmarkSearchFragmentState(): BookmarkSearchFragmentState + UndocumentedPublicFunction:BookmarkView.kt$BookmarkView$fun update(state: BookmarkFragmentState) + UndocumentedPublicFunction:BrowserAnimator.kt$BrowserAnimator$fun beginAnimateInIfNecessary() + UndocumentedPublicFunction:BrowserAnimator.kt$BrowserAnimator.Companion$fun getToolbarNavOptions(context: Context): NavOptions + UndocumentedPublicFunction:BrowserIcons.kt$fun BrowserIcons.loadIntoView(view: ImageView, url: String) + UndocumentedPublicFunction:BrowserToolbarController.kt$BrowserToolbarController$fun handleReaderModePressed(enabled: Boolean) + UndocumentedPublicFunction:BrowserToolbarController.kt$BrowserToolbarController$fun handleScroll(offset: Int) + UndocumentedPublicFunction:BrowserToolbarController.kt$BrowserToolbarController$fun handleTabCounterClick() + UndocumentedPublicFunction:BrowserToolbarController.kt$BrowserToolbarController$fun handleTabCounterItemInteraction(item: TabCounterMenu.Item) + UndocumentedPublicFunction:BrowserToolbarController.kt$BrowserToolbarController$fun handleToolbarClick() + UndocumentedPublicFunction:BrowserToolbarController.kt$BrowserToolbarController$fun handleToolbarPaste(text: String) + UndocumentedPublicFunction:BrowserToolbarController.kt$BrowserToolbarController$fun handleToolbarPasteAndGo(text: String) + UndocumentedPublicFunction:BrowserToolbarInteractor.kt$BrowserToolbarInteractor$fun onBrowserToolbarClicked() + UndocumentedPublicFunction:BrowserToolbarInteractor.kt$BrowserToolbarInteractor$fun onBrowserToolbarMenuItemTapped(item: ToolbarMenu.Item) + UndocumentedPublicFunction:BrowserToolbarInteractor.kt$BrowserToolbarInteractor$fun onBrowserToolbarPaste(text: String) + UndocumentedPublicFunction:BrowserToolbarInteractor.kt$BrowserToolbarInteractor$fun onBrowserToolbarPasteAndGo(text: String) + UndocumentedPublicFunction:BrowserToolbarInteractor.kt$BrowserToolbarInteractor$fun onReaderModePressed(enabled: Boolean) + UndocumentedPublicFunction:BrowserToolbarInteractor.kt$BrowserToolbarInteractor$fun onScrolled(offset: Int) + UndocumentedPublicFunction:BrowserToolbarInteractor.kt$BrowserToolbarInteractor$fun onTabCounterClicked() + UndocumentedPublicFunction:BrowserToolbarInteractor.kt$BrowserToolbarInteractor$fun onTabCounterMenuItemTapped(item: TabCounterMenu.Item) + UndocumentedPublicFunction:BrowserToolbarMenuController.kt$BrowserToolbarMenuController$fun handleToolbarItemInteraction(item: ToolbarMenu.Item) + UndocumentedPublicFunction:BrowserToolbarView.kt$BrowserToolbarView$fun collapse() + UndocumentedPublicFunction:BrowserToolbarView.kt$BrowserToolbarView$fun dismissMenu() + UndocumentedPublicFunction:BrowserToolbarView.kt$BrowserToolbarView$fun expand() + UndocumentedPublicFunction:BrowsersCache.kt$BrowsersCache$@Synchronized fun all(context: Context): Browsers + UndocumentedPublicFunction:BrowsersCache.kt$BrowsersCache$@Synchronized fun resetAll() + UndocumentedPublicFunction:ClearSiteDataView.kt$ClearSiteDataView$fun update(webInfoState: WebsiteInfoState) + UndocumentedPublicFunction:ClearableEditText.kt$ClearableEditText$fun onTextChanged(text: CharSequence?) + UndocumentedPublicFunction:ColdStartupDurationTelemetry.kt$ColdStartupDurationTelemetry$fun onHomeActivityOnCreate( visualCompletenessQueue: VisualCompletenessQueue, startupStateProvider: StartupStateProvider, safeIntent: SafeIntent, rootContainer: View ) + UndocumentedPublicFunction:CollectionCreationBottomBarView.kt$CollectionCreationBottomBarView$fun update(step: SaveCollectionStep, state: CollectionCreationState) + UndocumentedPublicFunction:CollectionCreationController.kt$CollectionCreationController$fun addNewCollection() + UndocumentedPublicFunction:CollectionCreationController.kt$CollectionCreationController$fun addTabToSelection(tab: Tab) + UndocumentedPublicFunction:CollectionCreationController.kt$CollectionCreationController$fun removeTabFromSelection(tab: Tab) + UndocumentedPublicFunction:CollectionCreationController.kt$CollectionCreationController$fun renameCollection(collection: TabCollection, name: String) + UndocumentedPublicFunction:CollectionCreationController.kt$CollectionCreationController$fun saveCollectionName(tabs: List<Tab>, name: String) + UndocumentedPublicFunction:CollectionCreationController.kt$CollectionCreationController$fun selectCollection(collection: TabCollection, tabs: List<Tab>) + UndocumentedPublicFunction:CollectionCreationController.kt$fun List<Tab>.toTabSessionStateList(store: BrowserStore): List<TabSessionState> + UndocumentedPublicFunction:CollectionCreationInteractor.kt$CollectionCreationInteractor$fun addNewCollection() + UndocumentedPublicFunction:CollectionCreationInteractor.kt$CollectionCreationInteractor$fun addTabToSelection(tab: Tab) + UndocumentedPublicFunction:CollectionCreationInteractor.kt$CollectionCreationInteractor$fun onCollectionRenamed(collection: TabCollection, name: String) + UndocumentedPublicFunction:CollectionCreationInteractor.kt$CollectionCreationInteractor$fun onNewCollectionNameSaved(tabs: List<Tab>, name: String) + UndocumentedPublicFunction:CollectionCreationInteractor.kt$CollectionCreationInteractor$fun removeTabFromSelection(tab: Tab) + UndocumentedPublicFunction:CollectionCreationInteractor.kt$CollectionCreationInteractor$fun selectCollection(collection: TabCollection, tabs: List<Tab>) + UndocumentedPublicFunction:CollectionCreationStore.kt$@Suppress("LongParameterList") fun createInitialCollectionCreationState( browserState: BrowserState, tabCollectionStorage: TabCollectionStorage, publicSuffixList: PublicSuffixList, saveCollectionStep: SaveCollectionStep, tabIds: Array<String>?, selectedTabIds: Array<String>?, selectedTabCollectionId: Long ): CollectionCreationState + UndocumentedPublicFunction:CollectionCreationTabListAdapter.kt$CollectionCreationTabListAdapter$fun updateData(tabs: List<Tab>, selectedTabs: Set<Tab>, hideCheckboxes: Boolean = false) + UndocumentedPublicFunction:CollectionCreationTabListAdapter.kt$TabViewHolder$fun bind(tab: Tab, isSelected: Boolean, shouldHideCheckBox: Boolean) + UndocumentedPublicFunction:CollectionCreationView.kt$CollectionCreationView$fun onKey(keyCode: Int, event: KeyEvent): Boolean + UndocumentedPublicFunction:CollectionCreationView.kt$CollectionCreationView$fun onResumed() + UndocumentedPublicFunction:CollectionCreationView.kt$CollectionCreationView$fun update(state: CollectionCreationState) + UndocumentedPublicFunction:CollectionViewHolder.kt$CollectionViewHolder$fun bindSession(collection: TabCollection, expanded: Boolean) + UndocumentedPublicFunction:CollectionsListAdapter.kt$CollectionsListAdapter$fun getSelectedCollection() + UndocumentedPublicFunction:Context.kt$fun Context.asActivity() + UndocumentedPublicFunction:Context.kt$fun Context.getPreferenceKey(@StringRes resourceId: Int): String + UndocumentedPublicFunction:Context.kt$fun Context.settings() + UndocumentedPublicFunction:CounterPreference.kt$CounterPreference$fun increment() + UndocumentedPublicFunction:CounterPreference.kt$CounterPreference$fun underMaxCount() + UndocumentedPublicFunction:CreditCardItemViewHolder.kt$CreditCardItemViewHolder$fun bind(creditCard: CreditCard) + UndocumentedPublicFunction:CustomizeHomeButtonViewHolder.kt$@Composable @Preview fun CustomizeHomeButtonPreview() + UndocumentedPublicFunction:DefaultBrowserNotificationWorker.kt$DefaultBrowserNotificationWorker.Companion$fun isDefaultBrowserNotificationIntent(intent: Intent) + UndocumentedPublicFunction:DefaultBrowserNotificationWorker.kt$DefaultBrowserNotificationWorker.Companion$fun setDefaultBrowserNotificationIfNeeded(context: Context) + UndocumentedPublicFunction:DefaultBrowserPreference.kt$DefaultBrowserPreference$fun updateSwitch() + UndocumentedPublicFunction:DefaultLocaleSettingsController.kt$LocaleSettingsController$fun handleDefaultLocaleSelected() + UndocumentedPublicFunction:DefaultLocaleSettingsController.kt$LocaleSettingsController$fun handleLocaleSelected(locale: Locale) + UndocumentedPublicFunction:DefaultLocaleSettingsController.kt$LocaleSettingsController$fun handleSearchQueryTyped(query: String) + UndocumentedPublicFunction:DefaultSyncController.kt$DefaultSyncController$@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) fun buildDialog(): AlertDialog.Builder + UndocumentedPublicFunction:DefaultSyncController.kt$SyncController$fun handleCameraPermissionsNeeded() + UndocumentedPublicFunction:DefaultSyncInteractor.kt$SyncInteractor$fun onCameraPermissionsNeeded() + UndocumentedPublicFunction:DefaultToolbarMenu.kt$DefaultToolbarMenu$// Predicates that need to be repeatedly called as the session changes @VisibleForTesting(otherwise = PRIVATE) fun canAddToHomescreen(): Boolean + UndocumentedPublicFunction:DefaultToolbarMenu.kt$DefaultToolbarMenu$@VisibleForTesting(otherwise = PRIVATE) fun canInstall(): Boolean + UndocumentedPublicFunction:DefaultToolbarMenu.kt$DefaultToolbarMenu$@VisibleForTesting(otherwise = PRIVATE) fun shouldShowOpenInApp(): Boolean + UndocumentedPublicFunction:DefaultToolbarMenu.kt$DefaultToolbarMenu$@VisibleForTesting(otherwise = PRIVATE) fun shouldShowReaderViewCustomization(): Boolean + UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteBrowsingData() + UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteCachedFiles() + UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteCookies() + UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteDownloads() + UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteSitePermissions() + UndocumentedPublicFunction:DeleteBrowsingDataController.kt$DeleteBrowsingDataController$suspend fun deleteTabs() + UndocumentedPublicFunction:DeleteBrowsingDataOnQuitType.kt$DeleteBrowsingDataOnQuitType$fun getPreferenceKey(context: Context) + UndocumentedPublicFunction:DesktopFolders.kt$DesktopFolders$suspend fun withOptionalDesktopFolders(node: BookmarkNode): BookmarkNode + UndocumentedPublicFunction:DownloadAdapter.kt$DownloadAdapter$fun updateDownloads(downloads: List<DownloadItem>) + UndocumentedPublicFunction:DownloadAdapter.kt$DownloadAdapter$fun updateMode(mode: DownloadFragmentState.Mode) + UndocumentedPublicFunction:DownloadAdapter.kt$DownloadAdapter$fun updatePendingDeletionIds(pendingDeletionIds: Set<String>) + UndocumentedPublicFunction:DownloadController.kt$DownloadController$fun handleBackPressed(): Boolean + UndocumentedPublicFunction:DownloadController.kt$DownloadController$fun handleDeleteSome(items: Set<DownloadItem>) + UndocumentedPublicFunction:DownloadController.kt$DownloadController$fun handleDeselect(item: DownloadItem) + UndocumentedPublicFunction:DownloadController.kt$DownloadController$fun handleModeSwitched() + UndocumentedPublicFunction:DownloadController.kt$DownloadController$fun handleOpen(item: DownloadItem, mode: BrowsingMode? = null) + UndocumentedPublicFunction:DownloadController.kt$DownloadController$fun handleSelect(item: DownloadItem) + UndocumentedPublicFunction:DownloadItem.kt$// While this looks complex, it's actually pretty simple. @SuppressWarnings("ComplexMethod") fun DownloadItem.getIcon(): Int + UndocumentedPublicFunction:DownloadState.kt$fun DownloadState.isActiveDownload(): Boolean + UndocumentedPublicFunction:DownloadView.kt$DownloadView$fun update(state: DownloadFragmentState) + UndocumentedPublicFunction:DownloadsListItemViewHolder.kt$DownloadsListItemViewHolder$fun bind( item: DownloadItem, isPendingDeletion: Boolean = false ) + UndocumentedPublicFunction:Drawable.kt$fun Drawable.setBounds(size: Int) + UndocumentedPublicFunction:DynamicDownloadDialog.kt$DynamicDownloadDialog$fun show() + UndocumentedPublicFunction:DynamicDownloadDialog.kt$DynamicDownloadDialog.Companion$fun getCannotOpenFileErrorMessage(context: Context, download: DownloadState): String + UndocumentedPublicFunction:DynamicDownloadDialogBehavior.kt$DynamicDownloadDialogBehavior$fun forceExpand(view: View) + UndocumentedPublicFunction:EditLoginInteractor.kt$EditLoginInteractor$fun findDuplicate(loginId: String, usernameText: String, passwordText: String) + UndocumentedPublicFunction:EditLoginInteractor.kt$EditLoginInteractor$fun onSaveLogin(loginId: String, usernameText: String, passwordText: String) + UndocumentedPublicFunction:Event.kt$Event.ContextMenuItemTapped.Companion$fun create(context_item: String) + UndocumentedPublicFunction:ExceptionsListItemViewHolder.kt$ExceptionsListItemViewHolder$fun bind(item: T, url: String) + UndocumentedPublicFunction:ExceptionsView.kt$ExceptionsView$fun update(items: List<T>) + UndocumentedPublicFunction:Extensions.kt$fun SitePermissions.get(field: PhoneFeature) + UndocumentedPublicFunction:Extensions.kt$fun SitePermissions.toggle(featurePhone: PhoneFeature): SitePermissions + UndocumentedPublicFunction:Extensions.kt$fun SitePermissions.update(field: PhoneFeature, value: SitePermissions.Status) + UndocumentedPublicFunction:FenixApplication.kt$FenixApplication$@CallSuper open fun setupInAllProcesses() + UndocumentedPublicFunction:FenixApplication.kt$FenixApplication$@CallSuper open fun setupInMainProcessOnly() + UndocumentedPublicFunction:FenixApplication.kt$FenixApplication$@OptIn(DelicateCoroutinesApi::class) open fun downloadWallpapers() + UndocumentedPublicFunction:FenixApplication.kt$FenixApplication$open fun updateLeakCanaryState(isEnabled: Boolean) + UndocumentedPublicFunction:FenixDialogFragment.kt$FenixDialogFragment$fun inflateRootView(container: ViewGroup? = null): View + UndocumentedPublicFunction:FenixOnboarding.kt$FenixOnboarding$fun finish() + UndocumentedPublicFunction:FenixOnboarding.kt$FenixOnboarding$fun userHasBeenOnboarded(): Boolean + UndocumentedPublicFunction:FenixSnackbar.kt$FenixSnackbar$fun setAction(text: String, action: () -> Unit) + UndocumentedPublicFunction:FenixSnackbar.kt$FenixSnackbar$fun setAppropriateBackground(isError: Boolean) + UndocumentedPublicFunction:FenixSnackbar.kt$FenixSnackbar$fun setLength(duration: Int) + UndocumentedPublicFunction:FenixSnackbar.kt$FenixSnackbar$fun setText(text: String) + UndocumentedPublicFunction:FirefoxTheme.kt$@Composable fun ProvideFirefoxColors( colors: FirefoxColors, content: @Composable () -> Unit ) + UndocumentedPublicFunction:FirefoxTheme.kt$FirefoxColors$fun copy(): FirefoxColors + UndocumentedPublicFunction:FirefoxTheme.kt$FirefoxColors$fun update(other: FirefoxColors) + UndocumentedPublicFunction:Fragment.kt$fun Fragment.breadcrumb( message: String, data: Map<String, String> = emptyMap() ) + UndocumentedPublicFunction:Fragment.kt$fun Fragment.getPreferenceKey(@StringRes resourceId: Int): String + UndocumentedPublicFunction:Fragment.kt$fun Fragment.nav(@IdRes id: Int?, directions: NavDirections, options: NavOptions? = null) + UndocumentedPublicFunction:FxaServer.kt$FxaServer$fun config(context: Context): ServerConfig + UndocumentedPublicFunction:GeckoProvider.kt$GeckoProvider$@Synchronized fun getOrCreateRuntime( context: Context, autofillStorage: Lazy<CreditCardsAddressesStorage>, loginStorage: Lazy<LoginsStorage>, trackingProtectionPolicy: TrackingProtectionPolicy ): GeckoRuntime + UndocumentedPublicFunction:GroupableRadioButton.kt$GroupableRadioButton$fun addToRadioGroup(radioButton: GroupableRadioButton) + UndocumentedPublicFunction:GroupableRadioButton.kt$GroupableRadioButton$fun updateRadioValue(isChecked: Boolean) + UndocumentedPublicFunction:GroupableRadioButton.kt$fun Iterable<GroupableRadioButton>.uncheckAll() + UndocumentedPublicFunction:HistoryAdapter.kt$HistoryAdapter$fun updateMode(mode: HistoryFragmentState.Mode) + UndocumentedPublicFunction:HistoryAdapter.kt$HistoryAdapter$fun updatePendingDeletionIds(pendingDeletionIds: Set<Long>) + UndocumentedPublicFunction:HistoryController.kt$HistoryController$fun handleBackPressed(): Boolean + UndocumentedPublicFunction:HistoryController.kt$HistoryController$fun handleDeleteAll() + UndocumentedPublicFunction:HistoryController.kt$HistoryController$fun handleDeleteSome(items: Set<History>) + UndocumentedPublicFunction:HistoryController.kt$HistoryController$fun handleDeselect(item: History) + UndocumentedPublicFunction:HistoryController.kt$HistoryController$fun handleEnterRecentlyClosed() + UndocumentedPublicFunction:HistoryController.kt$HistoryController$fun handleModeSwitched() + UndocumentedPublicFunction:HistoryController.kt$HistoryController$fun handleOpen(item: History) + UndocumentedPublicFunction:HistoryController.kt$HistoryController$fun handleRequestSync() + UndocumentedPublicFunction:HistoryController.kt$HistoryController$fun handleSearch() + UndocumentedPublicFunction:HistoryController.kt$HistoryController$fun handleSelect(item: History) + UndocumentedPublicFunction:HistoryItemTimeGroup.kt$HistoryItemTimeGroup$fun humanReadable(context: Context): String + UndocumentedPublicFunction:HistoryListItemViewHolder.kt$HistoryListItemViewHolder$fun bind( item: History, timeGroup: HistoryItemTimeGroup?, showTopContent: Boolean, mode: HistoryFragmentState.Mode, isPendingDeletion: Boolean = false, ) + UndocumentedPublicFunction:HistoryMetadataGroupAdapter.kt$HistoryMetadataGroupAdapter$fun updateData(items: List<History.Metadata>) + UndocumentedPublicFunction:HistoryMetadataGroupItemViewHolder.kt$HistoryMetadataGroupItemViewHolder$fun bind(item: History.Metadata) + UndocumentedPublicFunction:HistoryMetadataService.kt$fun TabSessionState.toHistoryMetadataKey(searchTerms: String?, referrerUrl: String?): HistoryMetadataKey + UndocumentedPublicFunction:HistorySearchController.kt$HistorySearchController$fun handleEditingCancelled() + UndocumentedPublicFunction:HistorySearchController.kt$HistorySearchController$fun handleTextChanged(text: String) + UndocumentedPublicFunction:HistorySearchController.kt$HistorySearchController$fun handleUrlTapped(url: String, flags: LoadUrlFlags = LoadUrlFlags.none()) + UndocumentedPublicFunction:HistorySearchFragmentStore.kt$fun createInitialHistorySearchFragmentState(): HistorySearchFragmentState + UndocumentedPublicFunction:HistoryView.kt$HistoryView$fun update(state: HistoryFragmentState) + UndocumentedPublicFunction:HistoryView.kt$HistoryView$fun updateEmptyState(userHasHistory: Boolean) + UndocumentedPublicFunction:HistoryViewModel.kt$HistoryViewModel$fun invalidate() + UndocumentedPublicFunction:HomeActivity.kt$HomeActivity$@Suppress("SpreadOperator") fun setupNavigationToolbar(vararg topLevelDestinationIds: Int) + UndocumentedPublicFunction:HomeActivity.kt$HomeActivity$fun finishActionMode() + UndocumentedPublicFunction:HomeActivity.kt$HomeActivity$fun openToBrowser(from: BrowserDirection, customTabSessionId: String? = null) + UndocumentedPublicFunction:HomeActivity.kt$HomeActivity$fun processIntent(intent: Intent): Boolean + UndocumentedPublicFunction:HomeActivity.kt$HomeActivity$open fun handleNewIntent(intent: Intent) + UndocumentedPublicFunction:HomeActivity.kt$HomeActivity$open fun navigateToBrowserOnColdStart() + UndocumentedPublicFunction:HomeActivity.kt$HomeActivity$open fun navigateToHome() + UndocumentedPublicFunction:ImageButton.kt$fun ImageButton.hideAndDisable() + UndocumentedPublicFunction:ImageButton.kt$fun ImageButton.removeAndDisable() + UndocumentedPublicFunction:ImageButton.kt$fun ImageButton.showAndEnable() + UndocumentedPublicFunction:InactiveTabViewHolder.kt$InactiveTabViewHolder.TabViewHolder$fun bind(tab: TabSessionState) + UndocumentedPublicFunction:IntentReceiverActivity.kt$IntentReceiverActivity$fun processIntent(intent: Intent) + UndocumentedPublicFunction:LibrarySiteItemView.kt$LibrarySiteItemView$fun <T> setSelectionInteractor(item: T, holder: SelectionHolder<T>, interactor: SelectionInteractor<T>) + UndocumentedPublicFunction:LibrarySiteItemView.kt$LibrarySiteItemView$fun attachMenu(menuController: MenuController) + UndocumentedPublicFunction:LibrarySiteItemView.kt$LibrarySiteItemView$fun loadFavicon(url: String) + UndocumentedPublicFunction:LocaleAdapter.kt$LocaleAdapter$fun updateData(localeList: List<Locale>, selectedLocale: Locale) + UndocumentedPublicFunction:LocaleManagerExtension.kt$fun LocaleManager.isDefaultLocaleSelected(context: Context): Boolean + UndocumentedPublicFunction:LocaleSettingsStore.kt$fun createInitialLocaleSettingsState(context: Context): LocaleSettingsState + UndocumentedPublicFunction:LocaleSettingsView.kt$LocaleSettingsView$fun onResume() + UndocumentedPublicFunction:LocaleSettingsView.kt$LocaleSettingsView$fun update(state: LocaleSettingsState) + UndocumentedPublicFunction:LocaleSettingsView.kt$LocaleSettingsViewInteractor$fun onDefaultLocaleSelected() + UndocumentedPublicFunction:LocaleSettingsView.kt$LocaleSettingsViewInteractor$fun onLocaleSelected(locale: Locale) + UndocumentedPublicFunction:LocaleSettingsView.kt$LocaleSettingsViewInteractor$fun onSearchQueryTyped(query: String) + UndocumentedPublicFunction:LocaleViewHolders.kt$BaseLocaleViewHolder$abstract fun bind(locale: Locale) + UndocumentedPublicFunction:LoginDetailInteractor.kt$LoginDetailInteractor$fun onDeleteLogin(loginId: String) + UndocumentedPublicFunction:LoginDetailInteractor.kt$LoginDetailInteractor$fun onFetchLoginList(loginId: String) + UndocumentedPublicFunction:LoginDetailsBindingDelegate.kt$LoginDetailsBindingDelegate$fun update(login: LoginsListState) + UndocumentedPublicFunction:LoginsFragmentStore.kt$fun Login.mapToSavedLogin(): SavedLogin + UndocumentedPublicFunction:LoginsFragmentStore.kt$fun createInitialLoginsListState(settings: Settings) + UndocumentedPublicFunction:LoginsListController.kt$LoginsListController$fun handleAddLoginClicked() + UndocumentedPublicFunction:LoginsListController.kt$LoginsListController$fun handleItemClicked(item: SavedLogin) + UndocumentedPublicFunction:LoginsListController.kt$LoginsListController$fun handleLearnMoreClicked() + UndocumentedPublicFunction:LoginsListController.kt$LoginsListController$fun handleSort(sortingStrategy: SortingStrategy) + UndocumentedPublicFunction:LoginsListViewHolder.kt$LoginsListViewHolder$fun bind(item: SavedLogin) + UndocumentedPublicFunction:MarkersFragmentLifecycleCallbacks.kt$MarkersFragmentLifecycleCallbacks.Companion$fun register(supportFragmentManager: FragmentManager, engine: Engine) + UndocumentedPublicFunction:MenuPresenter.kt$MenuPresenter$fun invalidateActions() + UndocumentedPublicFunction:MenuPresenter.kt$MenuPresenter$fun start() + UndocumentedPublicFunction:MenuPresenter.kt$MenuPresenter$fun stop() + UndocumentedPublicFunction:MessageCardViewHolder.kt$MessageCardViewHolder$fun bind(message: Message) + UndocumentedPublicFunction:MetricController.kt$MetricController$fun start(type: MetricServiceType) + UndocumentedPublicFunction:MetricController.kt$MetricController$fun stop(type: MetricServiceType) + UndocumentedPublicFunction:MetricController.kt$MetricController$fun track(event: Event) + UndocumentedPublicFunction:MetricController.kt$MetricController.Companion$fun create( services: List<MetricsService>, isDataTelemetryEnabled: () -> Boolean, isMarketingDataTelemetryEnabled: () -> Boolean, settings: Settings ): MetricController + UndocumentedPublicFunction:MetricsService.kt$MetricsService$fun shouldTrack(event: Event): Boolean + UndocumentedPublicFunction:MetricsService.kt$MetricsService$fun start() + UndocumentedPublicFunction:MetricsService.kt$MetricsService$fun stop() + UndocumentedPublicFunction:MetricsService.kt$MetricsService$fun track(event: Event) + UndocumentedPublicFunction:MetricsUtils.kt$MetricsUtils$fun createSearchEvent( engine: SearchEngine, store: BrowserStore, searchAccessPoint: SearchAccessPoint ): Event.PerformedSearch? + UndocumentedPublicFunction:Mode.kt$CurrentMode$fun emitModeChanges() + UndocumentedPublicFunction:Mode.kt$CurrentMode$fun getCurrentMode() + UndocumentedPublicFunction:Mode.kt$Mode.Companion$fun fromBrowsingMode(browsingMode: BrowsingMode) + UndocumentedPublicFunction:MozillaProductDetector.kt$MozillaProductDetector$fun getInstalledMozillaProducts(context: Context): List<String> + UndocumentedPublicFunction:MozillaProductDetector.kt$MozillaProductDetector$fun packageIsInstalled(context: Context, packageName: String): Boolean + UndocumentedPublicFunction:NavController.kt$fun NavController.alreadyOnDestination(@IdRes destId: Int?): Boolean + UndocumentedPublicFunction:NavController.kt$fun NavController.navigateSafe( @IdRes resId: Int, directions: NavDirections ) + UndocumentedPublicFunction:NimbusBranchesView.kt$NimbusBranchesView$fun update(state: NimbusBranchesState) + UndocumentedPublicFunction:NimbusSetup.kt$@Suppress("TooGenericExceptionCaught") fun createNimbus(context: Context, url: String?): NimbusApi + UndocumentedPublicFunction:NotificationManager.kt$NotificationManager$fun showReceivedTabs(context: Context, device: Device?, tabs: List<TabData>) + UndocumentedPublicFunction:OnSharedPreferenceChangeListener.kt$fun SharedPreferences.registerOnSharedPreferenceChangeListener( owner: LifecycleOwner, listener: (SharedPreferences, String) -> Unit ) + UndocumentedPublicFunction:OnboardingManualSignInViewHolder.kt$OnboardingManualSignInViewHolder$fun bind() + UndocumentedPublicFunction:OnboardingRadioButton.kt$OnboardingRadioButton$fun addIllustration(illustration: ImageView) + UndocumentedPublicFunction:OnboardingRadioButton.kt$OnboardingRadioButton$fun onClickListener(listener: () -> Unit) + UndocumentedPublicFunction:OnboardingSectionHeaderViewHolder.kt$OnboardingSectionHeaderViewHolder$fun bind(labelBuilder: (Context) -> String) + UndocumentedPublicFunction:PagerIndicator.kt$fun Context.dpToPx(value: Float): Int + UndocumentedPublicFunction:PagerIndicator.kt$fun View.dpToPx(value: Float): Int + UndocumentedPublicFunction:PasswordRevealHelper.kt$fun togglePasswordReveal(passwordText: TextView, revealPasswordButton: ImageButton) + UndocumentedPublicFunction:PermissionStorage.kt$PermissionStorage$suspend fun add(sitePermissions: SitePermissions) + UndocumentedPublicFunction:PermissionStorage.kt$PermissionStorage$suspend fun deleteAllSitePermissions() + UndocumentedPublicFunction:PermissionStorage.kt$PermissionStorage$suspend fun deleteSitePermissions(sitePermissions: SitePermissions) + UndocumentedPublicFunction:PermissionStorage.kt$PermissionStorage$suspend fun findSitePermissionsBy(origin: String): SitePermissions? + UndocumentedPublicFunction:PermissionStorage.kt$PermissionStorage$suspend fun getSitePermissionsPaged(): DataSource.Factory<Int, SitePermissions> + UndocumentedPublicFunction:PermissionStorage.kt$PermissionStorage$suspend fun updateSitePermissions(sitePermissions: SitePermissions) + UndocumentedPublicFunction:PhoneFeature.kt$PhoneFeature$@Suppress("ComplexMethod") fun getActionLabel( context: Context, sitePermissions: SitePermissions? = null, settings: Settings? = null ): String + UndocumentedPublicFunction:PhoneFeature.kt$PhoneFeature$fun getAction(settings: Settings): SitePermissionsRules.Action + UndocumentedPublicFunction:PhoneFeature.kt$PhoneFeature$fun getLabel(context: Context): String + UndocumentedPublicFunction:PhoneFeature.kt$PhoneFeature$fun getStatus( sitePermissions: SitePermissions? = null, settings: Settings? = null ): SitePermissions.Status + UndocumentedPublicFunction:PhoneFeature.kt$PhoneFeature$fun isAndroidPermissionGranted(context: Context): Boolean + UndocumentedPublicFunction:PhoneFeature.kt$PhoneFeature.Companion$fun findFeatureBy(permissions: Array<out String>): PhoneFeature? + UndocumentedPublicFunction:PocketRecommendationsHeaderViewHolder.kt$@Composable @Preview fun PocketRecommendationsFooterViewHolderPreview() + UndocumentedPublicFunction:PocketStoriesViewHolder.kt$@Composable @Preview fun PocketStoriesViewHolderPreview() + UndocumentedPublicFunction:PrivacyContentDisplayHelper.kt$fun showPrivacyPopWindow(context: Context, activity: Activity) + UndocumentedPublicFunction:PrivateShortcutCreateManager.kt$PrivateShortcutCreateManager$fun createPrivateShortcut(context: Context) + UndocumentedPublicFunction:ProfilerMarkerFactProcessor.kt$ProfilerMarkerFactProcessor.Companion$fun create(profilerProvider: () -> Profiler?) + UndocumentedPublicFunction:ProfilerMarkers.kt$ProfilerMarkers$fun addForDispatchTouchEvent(profiler: Profiler?, ev: MotionEvent?) + UndocumentedPublicFunction:ProfilerMarkers.kt$ProfilerMarkers$fun addListenerForOnGlobalLayout(engine: Engine, activity: Activity, rootView: View) + UndocumentedPublicFunction:ProfilerMarkers.kt$ProfilerMarkers$fun homeActivityOnStart(rootContainer: View, profiler: Profiler?) + UndocumentedPublicFunction:PwaOnboardingObserver.kt$PwaOnboardingObserver$fun start() + UndocumentedPublicFunction:PwaOnboardingObserver.kt$PwaOnboardingObserver$fun stop() + UndocumentedPublicFunction:QuickSettingsFragmentState.kt$AutoplayValue$abstract fun createSitePermissionsFromCustomRules(origin: String, settings: Settings): SitePermissions + UndocumentedPublicFunction:QuickSettingsFragmentState.kt$AutoplayValue$abstract fun isSelected(): Boolean + UndocumentedPublicFunction:QuickSettingsFragmentState.kt$AutoplayValue$abstract fun updateSitePermissions(sitePermissions: SitePermissions): SitePermissions + UndocumentedPublicFunction:QuickSettingsFragmentState.kt$AutoplayValue.Companion$fun getFallbackValue( context: Context, settings: Settings, sitePermission: SitePermissions? ): AutoplayValue + UndocumentedPublicFunction:QuickSettingsFragmentState.kt$AutoplayValue.Companion$fun values( context: Context, settings: Settings, sitePermission: SitePermissions? ): List<AutoplayValue> + UndocumentedPublicFunction:RadioButtonInfoPreference.kt$RadioButtonInfoPreference$fun onInfoClickListener(listener: (() -> Unit)) + UndocumentedPublicFunction:RadioButtonPreference.kt$RadioButtonPreference$fun onClickListener(listener: (() -> Unit)) + UndocumentedPublicFunction:RadioButtonPreference.kt$RadioButtonPreference$fun setCheckedWithoutClickListener(isChecked: Boolean) + UndocumentedPublicFunction:ReaderModeController.kt$ReaderModeController$fun hideReaderView() + UndocumentedPublicFunction:ReaderModeController.kt$ReaderModeController$fun showControls() + UndocumentedPublicFunction:ReaderModeController.kt$ReaderModeController$fun showReaderView() + UndocumentedPublicFunction:RecentBookmarksController.kt$DefaultRecentBookmarksController$@VisibleForTesting(otherwise = PRIVATE) fun dismissSearchDialogIfDisplayed() + UndocumentedPublicFunction:RecentTabController.kt$DefaultRecentTabsController$@VisibleForTesting(otherwise = PRIVATE) fun dismissSearchDialogIfDisplayed() + UndocumentedPublicFunction:RecentVisitsController.kt$DefaultRecentVisitsController$@VisibleForTesting(otherwise = PRIVATE) fun dismissSearchDialogIfDisplayed() + UndocumentedPublicFunction:RecentlyClosedAdapter.kt$RecentlyClosedAdapter$fun updateData(tabs: List<TabState>, selectedTabs: Set<TabState>) + UndocumentedPublicFunction:RecentlyClosedController.kt$RecentlyClosedController$fun handleBackPressed(): Boolean + UndocumentedPublicFunction:RecentlyClosedController.kt$RecentlyClosedController$fun handleDelete(tab: TabState) + UndocumentedPublicFunction:RecentlyClosedController.kt$RecentlyClosedController$fun handleDelete(tabs: Set<TabState>) + UndocumentedPublicFunction:RecentlyClosedController.kt$RecentlyClosedController$fun handleDeselect(tab: TabState) + UndocumentedPublicFunction:RecentlyClosedController.kt$RecentlyClosedController$fun handleNavigateToHistory() + UndocumentedPublicFunction:RecentlyClosedController.kt$RecentlyClosedController$fun handleOpen(tab: TabState, mode: BrowsingMode? = null) + UndocumentedPublicFunction:RecentlyClosedController.kt$RecentlyClosedController$fun handleOpen(tabs: Set<TabState>, mode: BrowsingMode? = null) + UndocumentedPublicFunction:RecentlyClosedController.kt$RecentlyClosedController$fun handleRestore(item: TabState) + UndocumentedPublicFunction:RecentlyClosedController.kt$RecentlyClosedController$fun handleSelect(tab: TabState) + UndocumentedPublicFunction:RecentlyClosedController.kt$RecentlyClosedController$fun handleShare(tabs: Set<TabState>) + UndocumentedPublicFunction:RecentlyClosedFragmentView.kt$RecentlyClosedFragmentView$fun update(state: RecentlyClosedFragmentState) + UndocumentedPublicFunction:RecentlyClosedItemViewHolder.kt$RecentlyClosedItemViewHolder$fun bind(item: TabState) + UndocumentedPublicFunction:RecentlyVisitedItem.kt$// The last updated time of the group is based on the most recently updated item in the group fun RecentHistoryGroup.lastUpdated(): Long + UndocumentedPublicFunction:ReviewPromptController.kt$ReviewPromptController$@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) fun shouldShowPrompt(): Boolean + UndocumentedPublicFunction:ReviewPromptController.kt$ReviewPromptController$fun trackApplicationLaunch() + UndocumentedPublicFunction:ReviewPromptController.kt$ReviewPromptController$suspend fun promptReview(activity: Activity) + UndocumentedPublicFunction:SaveCollectionListAdapter.kt$CollectionViewHolder$fun bind(collection: TabCollection) + UndocumentedPublicFunction:SaveCollectionListAdapter.kt$SaveCollectionListAdapter$fun updateData(tabCollections: List<TabCollection>, selectedTabs: Set<Tab>) + UndocumentedPublicFunction:SavedLoginsInteractor.kt$SavedLoginsInteractor$fun loadAndMapLogins() + UndocumentedPublicFunction:SavedLoginsInteractor.kt$SavedLoginsInteractor$fun onAddLoginClick() + UndocumentedPublicFunction:SavedLoginsInteractor.kt$SavedLoginsInteractor$fun onItemClicked(item: SavedLogin) + UndocumentedPublicFunction:SavedLoginsInteractor.kt$SavedLoginsInteractor$fun onLearnMoreClicked() + UndocumentedPublicFunction:SavedLoginsInteractor.kt$SavedLoginsInteractor$fun onSortingStrategyChanged(sortingStrategy: SortingStrategy) + UndocumentedPublicFunction:SavedLoginsListView.kt$SavedLoginsListView$fun update(state: LoginsListState) + UndocumentedPublicFunction:SavedLoginsSortingStrategyMenu.kt$SavedLoginsSortingStrategyMenu$fun updateMenu(itemToHighlight: Item) + UndocumentedPublicFunction:SavedLoginsSortingStrategyMenu.kt$SavedLoginsSortingStrategyMenu.Item.Companion$fun fromString(strategyString: String) + UndocumentedPublicFunction:SavedLoginsStorageController.kt$SavedLoginsStorageController$fun add(originText: String, usernameText: String, passwordText: String) + UndocumentedPublicFunction:SavedLoginsStorageController.kt$SavedLoginsStorageController$fun delete(loginId: String) + UndocumentedPublicFunction:SavedLoginsStorageController.kt$SavedLoginsStorageController$fun fetchLoginDetails(loginId: String) + UndocumentedPublicFunction:SavedLoginsStorageController.kt$SavedLoginsStorageController$fun findDuplicateForAdd(originText: String, usernameText: String, passwordText: String) + UndocumentedPublicFunction:SavedLoginsStorageController.kt$SavedLoginsStorageController$fun findDuplicateForSave(loginId: String, usernameText: String, passwordText: String) + UndocumentedPublicFunction:SavedLoginsStorageController.kt$SavedLoginsStorageController$fun handleLoadAndMapLogins() + UndocumentedPublicFunction:SavedLoginsStorageController.kt$SavedLoginsStorageController$fun save(loginId: String, usernameText: String, passwordText: String) + UndocumentedPublicFunction:SearchDialogController.kt$SearchController$fun handleCameraPermissionsNeeded() + UndocumentedPublicFunction:SearchDialogController.kt$SearchController$fun handleClickSearchEngineSettings() + UndocumentedPublicFunction:SearchDialogController.kt$SearchController$fun handleEditingCancelled() + UndocumentedPublicFunction:SearchDialogController.kt$SearchController$fun handleExistingSessionSelected(tabId: String) + UndocumentedPublicFunction:SearchDialogController.kt$SearchController$fun handleSearchEngineSuggestionClicked(searchEngine: SearchEngine) + UndocumentedPublicFunction:SearchDialogController.kt$SearchController$fun handleSearchShortcutEngineSelected(searchEngine: SearchEngine) + UndocumentedPublicFunction:SearchDialogController.kt$SearchController$fun handleSearchShortcutsButtonClicked() + UndocumentedPublicFunction:SearchDialogController.kt$SearchController$fun handleSearchTermsTapped(searchTerms: String) + UndocumentedPublicFunction:SearchDialogController.kt$SearchController$fun handleTextChanged(text: String) + UndocumentedPublicFunction:SearchDialogController.kt$SearchController$fun handleUrlCommitted(url: String, fromHomeScreen: Boolean = false) + UndocumentedPublicFunction:SearchDialogController.kt$SearchController$fun handleUrlTapped(url: String, flags: LoadUrlFlags = LoadUrlFlags.none()) + UndocumentedPublicFunction:SearchDialogController.kt$SearchDialogController$@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) fun buildDialog(): AlertDialog.Builder + UndocumentedPublicFunction:SearchDialogInteractor.kt$SearchDialogInteractor$fun onCameraPermissionsNeeded() + UndocumentedPublicFunction:SearchFragmentStore.kt$fun createInitialSearchFragmentState( activity: HomeActivity, components: Components, tabId: String?, pastedText: String?, searchAccessPoint: Event.PerformedSearch.SearchAccessPoint ): SearchFragmentState + UndocumentedPublicFunction:SearchStringValidator.kt$SearchStringValidator$fun isSearchStringValid(client: Client, searchString: String): Result + UndocumentedPublicFunction:SearchWidgetProvider.kt$SearchWidgetProvider.Companion$fun updateAllWidgets(context: Context) + UndocumentedPublicFunction:SelectBookmarkFolderAdapter.kt$SelectBookmarkFolderAdapter$fun updateData(tree: BookmarkNode?, hideFolderGuid: String?) + UndocumentedPublicFunction:SelectBookmarkFolderAdapter.kt$SelectBookmarkFolderAdapter.BookmarkFolderViewHolder$fun bind(folder: BookmarkNodeWithDepth, selected: Boolean, onSelect: (BookmarkNode) -> Unit) + UndocumentedPublicFunction:SessionControlAdapter.kt$AdapterItem$open fun contentsSameAs(other: AdapterItem) + UndocumentedPublicFunction:SessionControlView.kt$SessionControlView$fun update(state: AppState, shouldReportMetrics: Boolean = false) + UndocumentedPublicFunction:Settings.kt$Settings$@VisibleForTesting(otherwise = PRIVATE) fun setStrictETP() + UndocumentedPublicFunction:Settings.kt$Settings$fun addSearchWidgetInstalled(count: Int) + UndocumentedPublicFunction:Settings.kt$Settings$fun amoCollectionOverrideConfigured(): Boolean + UndocumentedPublicFunction:Settings.kt$Settings$fun getDeleteDataOnQuit(type: DeleteBrowsingDataOnQuitType): Boolean + UndocumentedPublicFunction:Settings.kt$Settings$fun getSitePermissionsCustomSettingsRules(): SitePermissionsRules + UndocumentedPublicFunction:Settings.kt$Settings$fun getSitePermissionsPhoneFeatureAction( feature: PhoneFeature, default: Action = Action.ASK_TO_ALLOW ) + UndocumentedPublicFunction:Settings.kt$Settings$fun getTabTimeout(): Long + UndocumentedPublicFunction:Settings.kt$Settings$fun getTabTimeoutPingString(): String + UndocumentedPublicFunction:Settings.kt$Settings$fun getTabTimeoutString(): String + UndocumentedPublicFunction:Settings.kt$Settings$fun getTabViewPingString() + UndocumentedPublicFunction:Settings.kt$Settings$fun incrementNumTimesPrivateModeOpened() + UndocumentedPublicFunction:Settings.kt$Settings$fun incrementSecureWarningCount() + UndocumentedPublicFunction:Settings.kt$Settings$fun incrementShowLoginsSecureWarningSyncCount() + UndocumentedPublicFunction:Settings.kt$Settings$fun incrementVisitedInstallableCount() + UndocumentedPublicFunction:Settings.kt$Settings$fun isDefaultBrowserMessageLocation(surfaceId: MessageSurfaceId): Boolean + UndocumentedPublicFunction:Settings.kt$Settings$fun recordPasswordsEncryptionKeyGenerated() + UndocumentedPublicFunction:Settings.kt$Settings$fun setDeleteDataOnQuit(type: DeleteBrowsingDataOnQuitType, value: Boolean) + UndocumentedPublicFunction:Settings.kt$Settings$fun setSitePermissionSettingListener(lifecycleOwner: LifecycleOwner, listener: () -> Unit) + UndocumentedPublicFunction:Settings.kt$Settings$fun setSitePermissionsPhoneFeatureAction( feature: PhoneFeature, value: Action ) + UndocumentedPublicFunction:Settings.kt$Settings$fun shouldDeleteAnyDataOnQuit() + UndocumentedPublicFunction:Settings.kt$Settings$fun shouldShowDefaultBrowserNotification(): Boolean + UndocumentedPublicFunction:ShareCloseView.kt$ShareCloseInteractor$fun onShareClosed() + UndocumentedPublicFunction:ShareCloseView.kt$ShareCloseView$fun setTabs(tabs: List<ShareData>) + UndocumentedPublicFunction:ShareController.kt$DefaultShareController$@VisibleForTesting fun getShareText() + UndocumentedPublicFunction:ShareController.kt$DefaultShareController$@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) fun getSuccessMessage(): String + UndocumentedPublicFunction:ShareController.kt$DefaultShareController$@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) fun showFailureWithRetryOption(operation: () -> Unit) + UndocumentedPublicFunction:ShareController.kt$DefaultShareController$@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) fun showSuccess() + UndocumentedPublicFunction:ShareController.kt$ShareController$fun handleAddNewDevice() + UndocumentedPublicFunction:ShareController.kt$ShareController$fun handleReauth() + UndocumentedPublicFunction:ShareController.kt$ShareController$fun handleShareClosed() + UndocumentedPublicFunction:ShareController.kt$ShareController$fun handleShareToAllDevices(devices: List<Device>) + UndocumentedPublicFunction:ShareController.kt$ShareController$fun handleShareToApp(app: AppShareOption) + UndocumentedPublicFunction:ShareController.kt$ShareController$fun handleShareToDevice(device: Device) + UndocumentedPublicFunction:ShareController.kt$ShareController$fun handleSignIn() + UndocumentedPublicFunction:ShareTabsAdapter.kt$ShareTabsAdapter.ShareTabViewHolder$fun bind(item: ShareData) + UndocumentedPublicFunction:ShareToAccountDevicesView.kt$ShareToAccountDevicesInteractor$fun onAddNewDevice() + UndocumentedPublicFunction:ShareToAccountDevicesView.kt$ShareToAccountDevicesInteractor$fun onReauth() + UndocumentedPublicFunction:ShareToAccountDevicesView.kt$ShareToAccountDevicesInteractor$fun onShareToAllDevices(devices: List<Device>) + UndocumentedPublicFunction:ShareToAccountDevicesView.kt$ShareToAccountDevicesInteractor$fun onShareToDevice(device: Device) + UndocumentedPublicFunction:ShareToAccountDevicesView.kt$ShareToAccountDevicesInteractor$fun onSignIn() + UndocumentedPublicFunction:ShareToAccountDevicesView.kt$ShareToAccountDevicesView$fun setShareTargets(targets: List<SyncShareOption>) + UndocumentedPublicFunction:ShareToAppsView.kt$ShareToAppsInteractor$fun onShareToApp(appToShareTo: AppShareOption) + UndocumentedPublicFunction:ShareToAppsView.kt$ShareToAppsView$fun setRecentShareTargets(recentTargets: List<AppShareOption>) + UndocumentedPublicFunction:ShareToAppsView.kt$ShareToAppsView$fun setShareTargets(targets: List<AppShareOption>) + UndocumentedPublicFunction:ShareViewModel.kt$ShareViewModel$@VisibleForTesting @WorkerThread fun getIntentActivities(shareIntent: Intent, context: Context): List<ResolveInfo>? + UndocumentedPublicFunction:SitePermissionsManageExceptionsPhoneFeatureFragment.kt$SitePermissionsManageExceptionsPhoneFeatureFragment$fun initAutoplay(sitePermissions: SitePermissions? = null) + UndocumentedPublicFunction:SitePermissionsManageExceptionsPhoneFeatureFragment.kt$SitePermissionsManageExceptionsPhoneFeatureFragment$fun initNormalFeature() + UndocumentedPublicFunction:SortingStrategy.kt$SortingStrategy$abstract operator fun invoke(logins: List<SavedLogin>): List<SavedLogin> + UndocumentedPublicFunction:SpannableString.kt$fun SpannableString.setTextColor(context: Context, @AttrRes colorResId: Int) + UndocumentedPublicFunction:SpannableString.kt$fun SpannableString.setTextSize(context: Context, @Dimension(unit = DP) textSize: Int) + 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:StartupTimeline.kt$StartupTimeline$fun onActivityCreateEndHome(activity: HomeActivity) + UndocumentedPublicFunction:StartupTimeline.kt$StartupTimeline$fun onActivityCreateEndIntentReceiver() + UndocumentedPublicFunction:StartupTimeline.kt$StartupTimeline$fun onApplicationInit() + UndocumentedPublicFunction:StartupTimeline.kt$StartupTimeline$fun onTopSitesItemBound(holder: TopSiteItemViewHolder) + UndocumentedPublicFunction:StartupTypeTelemetry.kt$StartupTypeTelemetry$@VisibleForTesting(otherwise = NONE) fun getTestCallbacks() + UndocumentedPublicFunction:StartupTypeTelemetry.kt$StartupTypeTelemetry$@VisibleForTesting(otherwise = PRIVATE) fun record() + UndocumentedPublicFunction:StartupTypeTelemetry.kt$StartupTypeTelemetry$fun attachOnHomeActivityOnCreate(lifecycle: Lifecycle) + UndocumentedPublicFunction:StorageStatsMetrics.kt$StorageStatsMetrics$// I couldn't get runBlockingTest to work correctly so I moved the functionality under test to // a synchronous function. @VisibleForTesting(otherwise = PRIVATE) @WorkerThread // queryStatsForUid fun reportSync(context: Context) + UndocumentedPublicFunction:StorageStatsMetrics.kt$StorageStatsMetrics$@OptIn(DelicateCoroutinesApi::class) // GlobalScope usage fun report(context: Context) + UndocumentedPublicFunction:StoreProvider.kt$StoreProvider.Companion$fun <T : Store<*, *>> get(fragment: Fragment, createStore: () -> T): T + UndocumentedPublicFunction:StudiesView.kt$StudiesView$@Suppress("TooGenericExceptionCaught", "ApplySharedPref") fun bind() + UndocumentedPublicFunction:SupportUtils.kt$SupportUtils$fun createAuthCustomTabIntent(context: Context, url: String): Intent + UndocumentedPublicFunction:SupportUtils.kt$SupportUtils$fun createCustomTabIntent(context: Context, url: String): Intent + UndocumentedPublicFunction:SupportUtils.kt$SupportUtils$fun getFirefoxAccountSumoUrl(): String + UndocumentedPublicFunction:SupportUtils.kt$SupportUtils$fun getMozillaPageUrl(page: MozillaPage, locale: Locale = Locale.getDefault()): String + UndocumentedPublicFunction:SupportUtils.kt$SupportUtils$fun getWhatsNewUrl(context: Context) + UndocumentedPublicFunction:SwipeGestureLayout.kt$SwipeGestureLayout$fun addGestureListener(listener: SwipeGestureListener) + UndocumentedPublicFunction:SyncedTabsIntegration.kt$SyncedTabsIntegration$fun launch() + UndocumentedPublicFunction:SyncedTabsPageViewHolder.kt$SyncedTabsPageViewHolder$fun bind() + UndocumentedPublicFunction:TabCollectionStorage.kt$TabCollectionStorage$fun getCollections(): LiveData<List<TabCollection>> + UndocumentedPublicFunction:TabCollectionStorage.kt$TabCollectionStorage$suspend fun addTabsToCollection(tabCollection: TabCollection, sessions: List<TabSessionState>): Long? + UndocumentedPublicFunction:TabCollectionStorage.kt$TabCollectionStorage$suspend fun createCollection(tabCollection: TabCollection): Long? + UndocumentedPublicFunction:TabCollectionStorage.kt$TabCollectionStorage$suspend fun createCollection(title: String, sessions: List<TabSessionState>): Long? + UndocumentedPublicFunction:TabCollectionStorage.kt$TabCollectionStorage$suspend fun removeCollection(tabCollection: TabCollection) + UndocumentedPublicFunction:TabCollectionStorage.kt$TabCollectionStorage$suspend fun removeTabFromCollection(tabCollection: TabCollection, tab: Tab) + UndocumentedPublicFunction:TabCollectionStorage.kt$TabCollectionStorage$suspend fun renameCollection(tabCollection: TabCollection, title: String) + UndocumentedPublicFunction:TabCollectionStorage.kt$fun TabCollection.description(context: Context): String + UndocumentedPublicFunction:TabGroupViewHolder.kt$TabGroupViewHolder$fun bind( tabGroup: TabGroup, ) + UndocumentedPublicFunction:TabHistoryController.kt$TabHistoryController$fun handleGoToHistoryItem(item: TabHistoryItem) + UndocumentedPublicFunction:TabHistoryView.kt$TabHistoryView$fun updateState(historyState: HistoryState) + UndocumentedPublicFunction:TabHistoryViewHolder.kt$TabHistoryViewHolder$fun bind(item: TabHistoryItem) + UndocumentedPublicFunction:TabInCollectionViewHolder.kt$TabInCollectionViewHolder$fun bindSession(collection: TabCollection, tab: ComponentTab, isLastTab: Boolean) + UndocumentedPublicFunction:TabLayout.kt$fun TabLayout.isNormalModeSelected(): Boolean + UndocumentedPublicFunction:TabLayout.kt$fun TabLayout.isPrivateModeSelected(): Boolean + UndocumentedPublicFunction:TabLayout.kt$fun TabLayout.isSyncedModeSelected(): Boolean + UndocumentedPublicFunction:TabLayoutMediator.kt$TabLayoutMediator$fun selectTabAtPosition(position: Int) + UndocumentedPublicFunction:TabPreview.kt$TabPreview$fun loadPreviewThumbnail(thumbnailId: String) + UndocumentedPublicFunction:TabSelectors.kt$fun BrowserState.getTabGroups(): List<TabGroup>? + UndocumentedPublicFunction:TabSessionState.kt$fun TabSessionState.isActive(maxActiveTime: Long): Boolean + UndocumentedPublicFunction:TabsTrayStore.kt$Page.Companion$fun positionToPage(position: Int): Page + UndocumentedPublicFunction:ThemeManager.kt$ThemeManager$fun applyStatusBarTheme(window: Window, context: Context) + UndocumentedPublicFunction:ThemeManager.kt$ThemeManager$fun setActivityTheme(activity: Activity) + UndocumentedPublicFunction:ThemeManager.kt$ThemeManager.Companion$@Composable fun resolveAttributeColor(attribute: Int): androidx.compose.ui.graphics.Color + UndocumentedPublicFunction:ThemeManager.kt$ThemeManager.Companion$fun resolveAttribute(attribute: Int, context: Context): Int + UndocumentedPublicFunction:TitleHeaderAdapter.kt$TitleHeaderAdapter$fun handleListChanges(showHeader: Boolean) + UndocumentedPublicFunction:TitleHeaderAdapter.kt$TitleHeaderAdapter.HeaderViewHolder$fun bind() + UndocumentedPublicFunction:ToolbarIntegration.kt$ToolbarIntegration$fun invalidateMenu() + UndocumentedPublicFunction:ToolbarPopupWindow.kt$ToolbarPopupWindow$fun show( view: WeakReference<View>, customTabId: String? = null, handlePasteAndGo: (String) -> Unit, handlePaste: (String) -> Unit, copyVisible: Boolean = true ) + UndocumentedPublicFunction:ToolbarView.kt$ToolbarView$fun update(searchState: SearchFragmentState) + UndocumentedPublicFunction:ToolbarView.kt$ToolbarView$fun update(state: BookmarkSearchFragmentState) + UndocumentedPublicFunction:ToolbarView.kt$ToolbarView$fun update(state: HistorySearchFragmentState) + UndocumentedPublicFunction:TopPlaceholderViewHolder.kt$TopPlaceholderViewHolder$fun bind() + UndocumentedPublicFunction:TopSiteItemViewHolder.kt$TopSiteItemViewHolder$fun bind(topSite: TopSite, position: Int) + UndocumentedPublicFunction:TopSitePagerViewHolder.kt$TopSitePagerViewHolder$fun bind(topSites: List<TopSite>) + UndocumentedPublicFunction:TopSitePagerViewHolder.kt$TopSitePagerViewHolder$fun update(payload: AdapterItem.TopSitePagerPayload) + UndocumentedPublicFunction:TopSiteViewHolder.kt$TopSiteViewHolder$fun bind(topSites: List<TopSite>) + UndocumentedPublicFunction:TrackingProtectionExceptionsInteractor.kt$DefaultTrackingProtectionExceptionsInteractor$fun reloadExceptions() + UndocumentedPublicFunction:TrackingProtectionPanelView.kt$TrackingProtectionPanelView$fun onBackPressed(): Boolean + UndocumentedPublicFunction:TrackingProtectionPanelView.kt$TrackingProtectionPanelView$fun update(state: TrackingProtectionState) + UndocumentedPublicFunction:TrackingProtectionView.kt$TrackingProtectionView$fun update(state: TrackingProtectionState) + UndocumentedPublicFunction:TrackingProtectionView.kt$TrackingProtectionView$fun updateDetailsSection(show: Boolean) + UndocumentedPublicFunction:UseCases.kt$RemoveTabUseCaseWrapper$operator fun invoke(tabId: String, source: String? = null) + UndocumentedPublicFunction:UseCases.kt$SelectTabUseCaseWrapper$operator fun invoke(tabId: String, source: String? = null) + UndocumentedPublicFunction:Utils.kt$fun BookmarkNode.flatNodeList(excludeSubtreeRoot: String?, depth: Int = 0): List<BookmarkNodeWithDepth> + UndocumentedPublicFunction:Utils.kt$fun friendlyRootTitle( context: Context, node: BookmarkNode, withMobileRoot: Boolean = true, rootTitles: Map<String, String> = rootTitles(context, withMobileRoot) ) + UndocumentedPublicFunction:Utils.kt$fun rootTitles(context: Context, withMobileRoot: Boolean): Map<String, String> + UndocumentedPublicFunction:View.kt$fun View.increaseTapArea(@Dimension(unit = DP) extraDps: Int) + UndocumentedPublicFunction:View.kt$fun View.removeTouchDelegate() + UndocumentedPublicFunction:WebPushEngineIntegration.kt$WebPushEngineIntegration$fun start() + UndocumentedPublicFunction:WebPushEngineIntegration.kt$WebPushEngineIntegration$fun stop() + UndocumentedPublicFunction:WhatsNewStorage.kt$WhatsNewStorage$fun getDaysSinceUpdate(): Long + UndocumentedPublicFunction:WhatsNewStorage.kt$WhatsNewStorage$fun getVersion(): WhatsNewVersion? + UndocumentedPublicFunction:WhatsNewStorage.kt$WhatsNewStorage$fun getWhatsNewHasBeenCleared(): Boolean + UndocumentedPublicFunction:WhatsNewStorage.kt$WhatsNewStorage$fun setDateOfUpdate(day: Long) + UndocumentedPublicFunction:WhatsNewStorage.kt$WhatsNewStorage$fun setVersion(version: WhatsNewVersion) + UndocumentedPublicFunction:WhatsNewStorage.kt$WhatsNewStorage$fun setWhatsNewHasBeenCleared(cleared: Boolean) + UtilityClassWithPublicConstructor:CustomTabContextMenuCandidate.kt$CustomTabContextMenuCandidate + +