export & copy page content as pdf/md
This commit is contained in:
+2
@@ -21,6 +21,7 @@ import eu.weblibre.flutter_mozilla_components.activities.NotificationActivity
|
||||
import eu.weblibre.flutter_mozilla_components.R
|
||||
import eu.weblibre.flutter_mozilla_components.ext.getPreferenceKey
|
||||
import eu.weblibre.flutter_mozilla_components.middleware.FlutterEventMiddleware
|
||||
import eu.weblibre.flutter_mozilla_components.middleware.SaveToPDFMiddleware
|
||||
import eu.weblibre.flutter_mozilla_components.pigeons.BrowserExtensionEvents
|
||||
import eu.weblibre.flutter_mozilla_components.pigeons.GeckoStateEvents
|
||||
import kotlinx.coroutines.FlowPreview
|
||||
@@ -191,6 +192,7 @@ class Core(
|
||||
SessionPrioritizationMiddleware(),
|
||||
RecordingDevicesMiddleware(context, components.notificationsDelegate),
|
||||
PromptMiddleware(),
|
||||
SaveToPDFMiddleware(),
|
||||
FileUploadsDirCleanerMiddleware(fileUploadsDirCleaner),
|
||||
LastMediaAccessMiddleware(),
|
||||
) + EngineMiddleware.create(
|
||||
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
package eu.weblibre.flutter_mozilla_components.middleware
|
||||
|
||||
import mozilla.components.browser.state.action.BrowserAction
|
||||
import mozilla.components.browser.state.action.EngineAction
|
||||
import mozilla.components.browser.state.state.BrowserState
|
||||
import mozilla.components.feature.addons.logger
|
||||
import mozilla.components.lib.state.Middleware
|
||||
import mozilla.components.lib.state.MiddlewareContext
|
||||
|
||||
class SaveToPDFMiddleware : Middleware<BrowserState, BrowserAction> {
|
||||
override fun invoke(
|
||||
context: MiddlewareContext<BrowserState, BrowserAction>,
|
||||
next: (BrowserAction) -> Unit,
|
||||
action: BrowserAction,
|
||||
) {
|
||||
when (action) {
|
||||
is EngineAction.SaveToPdfAction -> {
|
||||
// Continue to generate the PDF, passing through here to add telemetry
|
||||
next(action)
|
||||
}
|
||||
is EngineAction.SaveToPdfCompleteAction -> {
|
||||
logger.info("Saved PDF successfully")
|
||||
}
|
||||
is EngineAction.SaveToPdfExceptionAction -> {
|
||||
logger.error("Unable to save PDF", action.throwable)
|
||||
}
|
||||
else -> {
|
||||
next(action)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user