diff --git a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt index 43df89613..b4f37a0af 100644 --- a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt +++ b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt @@ -384,6 +384,7 @@ open class FenixApplication : LocaleAwareApplication(), Provider { components.fxSuggest.ingestionScheduler.stopPeriodicIngestion() } } + components.core.fileUploadsDirCleaner.cleanUploadsDirectory() } // Account manager initialization needs to happen on the main thread. GlobalScope.launch(Dispatchers.Main) { diff --git a/app/src/main/java/org/mozilla/fenix/addons/AddonPopupBaseFragment.kt b/app/src/main/java/org/mozilla/fenix/addons/AddonPopupBaseFragment.kt index 168ab2fe9..b1c54ee1f 100644 --- a/app/src/main/java/org/mozilla/fenix/addons/AddonPopupBaseFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/addons/AddonPopupBaseFragment.kt @@ -43,6 +43,7 @@ abstract class AddonPopupBaseFragment : Fragment(), EngineSession.Observer, User store = requireComponents.core.store, customTabId = it.id, fragmentManager = parentFragmentManager, + fileUploadsDirCleaner = requireComponents.core.fileUploadsDirCleaner, onNeedToRequestPermissions = { permissions -> requestPermissions(permissions, REQUEST_CODE_PROMPT_PERMISSIONS) }, diff --git a/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt index 7c667782a..cf237221d 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt @@ -696,6 +696,7 @@ abstract class BaseBrowserFragment : fragmentManager = parentFragmentManager, identityCredentialColorsProvider = colorsProvider, tabsUseCases = requireComponents.useCases.tabsUseCases, + fileUploadsDirCleaner = requireComponents.core.fileUploadsDirCleaner, creditCardValidationDelegate = DefaultCreditCardValidationDelegate( context.components.core.lazyAutofillStorage, ), diff --git a/app/src/main/java/org/mozilla/fenix/components/Core.kt b/app/src/main/java/org/mozilla/fenix/components/Core.kt index e87e48814..22447bbe2 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Core.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Core.kt @@ -50,6 +50,8 @@ import mozilla.components.feature.media.MediaSessionFeature import mozilla.components.feature.media.middleware.LastMediaAccessMiddleware import mozilla.components.feature.media.middleware.RecordingDevicesMiddleware import mozilla.components.feature.prompts.PromptMiddleware +import mozilla.components.feature.prompts.file.FileUploadsDirCleaner +import mozilla.components.feature.prompts.file.FileUploadsDirCleanerMiddleware import mozilla.components.feature.pwa.ManifestStorage import mozilla.components.feature.pwa.WebAppShortcutManager import mozilla.components.feature.readerview.ReaderViewMiddleware @@ -195,6 +197,10 @@ class Core( ) } + val fileUploadsDirCleaner: FileUploadsDirCleaner by lazyMonitored { + FileUploadsDirCleaner { context.cacheDir } + } + val geckoRuntime: GeckoRuntime by lazyMonitored { GeckoProvider.getOrCreateRuntime( context, @@ -292,6 +298,7 @@ class Core( SessionPrioritizationMiddleware(), SaveToPDFMiddleware(context), FxSuggestFactsMiddleware(), + FileUploadsDirCleanerMiddleware(fileUploadsDirCleaner), ) BrowserStore(