1
0
Fork 0
fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserInteractor.kt

74 lines
2.5 KiB
Kotlin

/* 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.components.toolbar
import android.content.Context
import mozilla.components.browser.session.Session
import org.mozilla.fenix.browser.readermode.ReaderModeController
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.metrics
import org.mozilla.fenix.quickactionsheet.QuickActionSheetController
import org.mozilla.fenix.quickactionsheet.QuickActionSheetViewInteractor
class BrowserInteractor(
private val context: Context,
private val store: BrowserStore,
private val browserToolbarController: BrowserToolbarController,
private val quickActionSheetController: QuickActionSheetController,
private val readerModeController: ReaderModeController,
private val currentSession: Session
) : BrowserToolbarViewInteractor, QuickActionSheetViewInteractor {
override fun onBrowserToolbarClicked() {
browserToolbarController.handleToolbarClick()
}
override fun onBrowserToolbarMenuItemTapped(item: ToolbarMenu.Item) {
browserToolbarController.handleToolbarItemInteraction(item)
}
override fun onQuickActionSheetOpened() {
context.metrics.track(Event.QuickActionSheetOpened)
}
override fun onQuickActionSheetClosed() {
context.metrics.track(Event.QuickActionSheetClosed)
}
override fun onQuickActionSheetSharePressed() {
quickActionSheetController.handleShare()
}
override fun onQuickActionSheetDownloadPressed() {
quickActionSheetController.handleDownload()
}
override fun onQuickActionSheetBookmarkPressed() {
quickActionSheetController.handleBookmark()
}
override fun onQuickActionSheetReadPressed() {
val enabled = currentSession.readerMode
if (enabled) {
context.metrics.track(Event.QuickActionSheetClosed)
readerModeController.hideReaderView()
} else {
context.metrics.track(Event.QuickActionSheetOpened)
readerModeController.showReaderView()
}
store.dispatch(QuickActionSheetAction.ReaderActiveStateChange(!enabled))
}
override fun onQuickActionSheetOpenLinkPressed() {
quickActionSheetController.handleOpenLink()
}
override fun onQuickActionSheetAppearancePressed() {
context.metrics.track(Event.ReaderModeAppearanceOpened)
readerModeController.showControls()
}
}