/* 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.trackingprotection

/**
 * Interactor for the tracking protection panel
 * Provides implementations for the TrackingProtectionPanelViewInteractor
 */
class TrackingProtectionPanelInteractor(
    private val store: TrackingProtectionStore,
    private val toggleTrackingProtection: (Boolean) -> Unit,
    private val openTrackingProtectionSettings: () -> Unit
) : TrackingProtectionPanelViewInteractor {
    override fun openDetails(category: TrackingProtectionCategory, categoryBlocked: Boolean) {
        store.dispatch(TrackingProtectionAction.EnterDetailsMode(category, categoryBlocked))
    }

    override fun selectTrackingProtectionSettings() {
        openTrackingProtectionSettings.invoke()
    }

    override fun trackingProtectionToggled(isEnabled: Boolean) {
        toggleTrackingProtection.invoke(isEnabled)
    }

    override fun onBackPressed() {
        store.dispatch(TrackingProtectionAction.ExitDetailsMode)
    }
}
