diff --git a/autofill/autofill-impl/src/main/java/com/duckduckgo/autofill/impl/service/AutofillServiceFeature.kt b/autofill/autofill-impl/src/main/java/com/duckduckgo/autofill/impl/service/AutofillServiceFeature.kt index 9ba6ba64edea..48785d689240 100644 --- a/autofill/autofill-impl/src/main/java/com/duckduckgo/autofill/impl/service/AutofillServiceFeature.kt +++ b/autofill/autofill-impl/src/main/java/com/duckduckgo/autofill/impl/service/AutofillServiceFeature.kt @@ -44,4 +44,7 @@ interface AutofillServiceFeature { @Toggle.DefaultValue(false) @InternalAlwaysEnabled fun canAutofillInsideDDG(): Toggle + + @Toggle.DefaultValue(true) + fun canProcessSystemFillRequests(): Toggle } diff --git a/autofill/autofill-impl/src/main/java/com/duckduckgo/autofill/impl/service/RealAutofillService.kt b/autofill/autofill-impl/src/main/java/com/duckduckgo/autofill/impl/service/RealAutofillService.kt index 6c7e794578a0..0571186764f4 100644 --- a/autofill/autofill-impl/src/main/java/com/duckduckgo/autofill/impl/service/RealAutofillService.kt +++ b/autofill/autofill-impl/src/main/java/com/duckduckgo/autofill/impl/service/RealAutofillService.kt @@ -76,7 +76,7 @@ class RealAutofillService : AutofillService() { autofillJob += coroutineScope.launch(dispatcherProvider.io()) { runCatching { - if (autofillServiceFeature.self().isEnabled().not()) { + if (isAutofillServiceEnabled().not()) { callback.onSuccess(null) return@launch } @@ -169,6 +169,10 @@ class RealAutofillService : AutofillService() { Timber.v("DDGAutofillService onDisconnected") } + private fun isAutofillServiceEnabled(): Boolean { + return autofillServiceFeature.self().isEnabled() && autofillServiceFeature.canProcessSystemFillRequests().isEnabled() + } + companion object { private val DDG_PACKAGE_IDS = setOf( "com.duckduckgo.mobile.android",