/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.mozilla.fenix.tabstray.browser /** * Interactor for all things related to inactive tabs in the tabs tray. */ interface InactiveTabsInteractor : InactiveTabsAutoCloseDialogInteractor { /** * Invoked when the header is tapped on. * * @param activated true when the tap should expand the inactive section. */ fun onHeaderClicked(activated: Boolean) } /** * Interactor for the auto-close dialog in the inactive tabs section. */ interface InactiveTabsAutoCloseDialogInteractor { /** * Invoked when the close button is clicked. */ fun onCloseClicked() /** * Invoked when the dialog is clicked. */ fun onEnabledAutoCloseClicked() } class DefaultInactiveTabsInteractor( private val controller: InactiveTabsController ) : InactiveTabsInteractor { /** * See [InactiveTabsInteractor.onHeaderClicked]. */ override fun onHeaderClicked(activated: Boolean) { controller.updateCardExpansion(activated) } /** * See [InactiveTabsAutoCloseDialogInteractor.onCloseClicked]. */ override fun onCloseClicked() { controller.close() } /** * See [InactiveTabsAutoCloseDialogInteractor.onEnabledAutoCloseClicked]. */ override fun onEnabledAutoCloseClicked() { controller.enableAutoClosed() } }