diff --git a/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/SummarizationAction.kt b/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/SummarizationAction.kt index cb90214189b26..46f291513dc9a 100644 --- a/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/SummarizationAction.kt +++ b/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/SummarizationAction.kt @@ -13,7 +13,7 @@ import mozilla.components.ui.richtext.ir.RichDocument /** * Actions for the [SummarizationStore]. */ -interface SummarizationAction : Action +sealed interface SummarizationAction : Action /** The Summarization Screen View Appeared */ data object ViewAppeared : SummarizationAction diff --git a/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/SummarizationMiddleware.kt b/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/SummarizationMiddleware.kt index 3d7f8868acf7f..41d615e68eca4 100644 --- a/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/SummarizationMiddleware.kt +++ b/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/SummarizationMiddleware.kt @@ -65,6 +65,29 @@ class SummarizationMiddleware( is SummarizationFailed -> scope.launch { errorReporter.report(TAG, action.exception) } + + is ContentExtracted, + DownloadConsentAction.AllowClicked, + DownloadConsentAction.CancelClicked, + DownloadConsentAction.LearnMoreClicked, + DownloadErrorAction.CancelClicked, + DownloadErrorAction.LearnMoreClicked, + DownloadErrorAction.TryAgainClicked, + DownloadInProgressAction.CancelClicked, + ErrorAction.ErrorDismissed, + ErrorAction.LearnMoreClicked, + OffDeviceSummarizationShakeConsentAction.LearnMoreClicked, + OnDeviceSummarizationShakeConsentAction.AllowClicked, + OnDeviceSummarizationShakeConsentAction.CancelClicked, + OnDeviceSummarizationShakeConsentAction.LearnMoreClicked, + is ReceivedParsedDocument, + SettingsBackClicked, + SettingsClicked, + ShakeConsentRequested, + SummarizationCompleted, + is SummarizationRequested, + is ViewDismissed, + -> Unit } next(action) diff --git a/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/SummarizationReducer.kt b/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/SummarizationReducer.kt index 0239d0a7aab99..5bfe290ef574a 100644 --- a/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/SummarizationReducer.kt +++ b/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/SummarizationReducer.kt @@ -31,7 +31,24 @@ fun summarizationReducer(state: SummarizationState, action: SummarizationAction) is SummarizationState.Settings -> SummarizationState.Summarized(info = state.info, document = state.document) else -> state } - else -> state + + is ContentExtracted, + DownloadConsentAction.AllowClicked, + DownloadConsentAction.CancelClicked, + DownloadConsentAction.LearnMoreClicked, + DownloadErrorAction.CancelClicked, + DownloadErrorAction.LearnMoreClicked, + DownloadErrorAction.TryAgainClicked, + DownloadInProgressAction.CancelClicked, + ErrorAction.LearnMoreClicked, + LlmProviderAction.ProviderAvailable, + is LlmProviderAction.ProviderInitialized, + OffDeviceSummarizationShakeConsentAction.AllowClicked, + OnDeviceSummarizationShakeConsentAction.AllowClicked, + OnDeviceSummarizationShakeConsentAction.CancelClicked, + ViewAppeared, + is ViewDismissed, + -> state } private fun SummarizationState.complete(): SummarizationState { diff --git a/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/SummarizationScreen.kt b/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/SummarizationScreen.kt index 40e5bf7ea4b26..1f490f9c287f1 100644 --- a/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/SummarizationScreen.kt +++ b/mobile/android/android-components/components/feature/summarize/src/main/java/mozilla/components/feature/summarize/SummarizationScreen.kt @@ -219,7 +219,11 @@ private fun SummarizationScreenContent( } } - else -> Unit + SummarizationState.DownloadConsentRequired, + is SummarizationState.Downloading, + SummarizationState.Finished.Cancelled, + SummarizationState.Finished.ErrorDismissed, + -> Unit } } @@ -239,7 +243,18 @@ private fun ApplyHaptics(state: SummarizationState) { is SummarizationState.Error -> { haptic.performHapticFeedback(HapticFeedbackType.Reject) } - else -> {} + + SummarizationState.DownloadConsentRequired, + is SummarizationState.Downloading, + SummarizationState.Finished.Cancelled, + SummarizationState.Finished.ErrorDismissed, + SummarizationState.LearnMoreAboutShakeConsent, + is SummarizationState.Loading, + is SummarizationState.Settings, + SummarizationState.ShakeConsentRequired, + SummarizationState.ShakeConsentWithDownloadRequired, + is SummarizationState.Summarizing, + -> {} } } } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/summarization/SummarizationTelemetryMiddleware.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/summarization/SummarizationTelemetryMiddleware.kt index c081d40e24dba..065ed1b02092c 100644 --- a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/summarization/SummarizationTelemetryMiddleware.kt +++ b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/summarization/SummarizationTelemetryMiddleware.kt @@ -6,10 +6,17 @@ package org.mozilla.fenix.summarization import mozilla.components.concept.llm.Llm import mozilla.components.feature.summarize.ContentExtracted +import mozilla.components.feature.summarize.DownloadConsentAction +import mozilla.components.feature.summarize.DownloadErrorAction +import mozilla.components.feature.summarize.DownloadInProgressAction +import mozilla.components.feature.summarize.ErrorAction import mozilla.components.feature.summarize.LlmProviderAction import mozilla.components.feature.summarize.OffDeviceSummarizationShakeConsentAction import mozilla.components.feature.summarize.OnDeviceSummarizationShakeConsentAction import mozilla.components.feature.summarize.ReceivedParsedDocument +import mozilla.components.feature.summarize.SettingsBackClicked +import mozilla.components.feature.summarize.SettingsClicked +import mozilla.components.feature.summarize.ShakeConsentRequested import mozilla.components.feature.summarize.SummarizationAction import mozilla.components.feature.summarize.SummarizationCompleted import mozilla.components.feature.summarize.SummarizationFailed @@ -147,7 +154,22 @@ class SummarizationTelemetryMiddleware( ) } - else -> {} + DownloadConsentAction.AllowClicked, + DownloadConsentAction.CancelClicked, + DownloadConsentAction.LearnMoreClicked, + DownloadErrorAction.CancelClicked, + DownloadErrorAction.LearnMoreClicked, + DownloadErrorAction.TryAgainClicked, + DownloadInProgressAction.CancelClicked, + ErrorAction.ErrorDismissed, + ErrorAction.LearnMoreClicked, + LlmProviderAction.ProviderAvailable, + OffDeviceSummarizationShakeConsentAction.LearnMoreClicked, + OnDeviceSummarizationShakeConsentAction.LearnMoreClicked, + SettingsBackClicked, + SettingsClicked, + ShakeConsentRequested, + -> {} } }