From 29d6a9205b15ec56387a35caa58894459e37bb24 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Mon, 2 Nov 2026 19:31:24 +0100 Subject: refactor(autofill): remove the fill-OTP-from-SMS paths Filling OTPs from SMS used Play Services' SMS User Consent API, removed with the nonFree flavor; since then AutofillSmsActivity was a stub that never offered the dataset. Delete it, its manifest entry, the dataset builders in both response builders, its drawable and string. AutofillAction.FillOtpFromSms stays in autofill-parser: it is public, metalava-checked API and harmless for a client that never fills it. Co-Authored-By: Claude Opus 5.5 --- .../util/autofill/Api26AutofillResponseBuilder.kt | 13 ------------- .../util/autofill/Api30AutofillResponseBuilder.kt | 22 ---------------------- .../util/autofill/AutofillViewUtils.kt | 7 ------- 3 files changed, 42 deletions(-) (limited to 'app/src/main/java') diff --git a/app/src/main/java/app/passwordstore/util/autofill/Api26AutofillResponseBuilder.kt b/app/src/main/java/app/passwordstore/util/autofill/Api26AutofillResponseBuilder.kt index 08db33d9..f38011a7 100644 --- a/app/src/main/java/app/passwordstore/util/autofill/Api26AutofillResponseBuilder.kt +++ b/app/src/main/java/app/passwordstore/util/autofill/Api26AutofillResponseBuilder.kt @@ -12,7 +12,6 @@ import android.service.autofill.FillCallback import android.service.autofill.FillRequest import android.service.autofill.FillResponse import android.service.autofill.SaveInfo -import app.passwordstore.autofill.oreo.ui.AutofillSmsActivity import app.passwordstore.ui.autofill.AutofillDecryptActivity import app.passwordstore.ui.autofill.AutofillFilterView import app.passwordstore.ui.autofill.AutofillPublisherChangedActivity @@ -79,14 +78,6 @@ class Api26AutofillResponseBuilder private constructor(form: FillableForm) : return makeIntentDataset(context, AutofillAction.Generate, intentSender, metadata) } - private fun makeFillOtpFromSmsDataset(context: Context): Dataset? { - if (!scenario.hasFieldsToFillOn(AutofillAction.FillOtpFromSms)) return null - if (!AutofillSmsActivity.shouldOfferFillFromSms(context)) return null - val metadata = makeFillOtpFromSmsMetadata(context) - val intentSender = AutofillSmsActivity.makeFillOtpFromSmsIntentSender(context) - return makeIntentDataset(context, AutofillAction.FillOtpFromSms, intentSender, metadata) - } - private fun makePublisherChangedDataset( context: Context, publisherChangedException: AutofillPublisherChangedException, @@ -148,10 +139,6 @@ class Api26AutofillResponseBuilder private constructor(form: FillableForm) : datasetCount++ addDataset(it) } - makeFillOtpFromSmsDataset(context)?.let { - datasetCount++ - addDataset(it) - } makeSearchDataset(context)?.let { datasetCount++ addDataset(it) diff --git a/app/src/main/java/app/passwordstore/util/autofill/Api30AutofillResponseBuilder.kt b/app/src/main/java/app/passwordstore/util/autofill/Api30AutofillResponseBuilder.kt index c64b789f..55679b21 100644 --- a/app/src/main/java/app/passwordstore/util/autofill/Api30AutofillResponseBuilder.kt +++ b/app/src/main/java/app/passwordstore/util/autofill/Api30AutofillResponseBuilder.kt @@ -17,7 +17,6 @@ import android.service.autofill.SaveInfo import android.view.inputmethod.InlineSuggestionsRequest import android.widget.inline.InlinePresentationSpec import androidx.annotation.RequiresApi -import app.passwordstore.autofill.oreo.ui.AutofillSmsActivity import app.passwordstore.ui.autofill.AutofillDecryptActivity import app.passwordstore.ui.autofill.AutofillFilterView import app.passwordstore.ui.autofill.AutofillPublisherChangedActivity @@ -146,23 +145,6 @@ class Api30AutofillResponseBuilder private constructor(form: FillableForm) : return makeIntentDataset(context, AutofillAction.Generate, intentSender, metadata, imeSpec) } - private fun makeFillOtpFromSmsDataset( - context: Context, - imeSpec: InlinePresentationSpec?, - ): Dataset? { - if (!scenario.hasFieldsToFillOn(AutofillAction.FillOtpFromSms)) return null - if (!AutofillSmsActivity.shouldOfferFillFromSms(context)) return null - val metadata = makeFillOtpFromSmsMetadata(context) - val intentSender = AutofillSmsActivity.makeFillOtpFromSmsIntentSender(context) - return makeIntentDataset( - context, - AutofillAction.FillOtpFromSms, - intentSender, - metadata, - imeSpec, - ) - } - private fun makePublisherChangedDataset( context: Context, publisherChangedException: AutofillPublisherChangedException, @@ -214,10 +196,6 @@ class Api30AutofillResponseBuilder private constructor(form: FillableForm) : datasetCount++ addDataset(it) } - makeFillOtpFromSmsDataset(context, imeSpecs.getOrNull(datasetCount))?.let { - datasetCount++ - addDataset(it) - } makeSearchDataset(context, imeSpecs.getOrNull(datasetCount))?.let { datasetCount++ addDataset(it) diff --git a/app/src/main/java/app/passwordstore/util/autofill/AutofillViewUtils.kt b/app/src/main/java/app/passwordstore/util/autofill/AutofillViewUtils.kt index 6349acd8..ebe4bc7d 100644 --- a/app/src/main/java/app/passwordstore/util/autofill/AutofillViewUtils.kt +++ b/app/src/main/java/app/passwordstore/util/autofill/AutofillViewUtils.kt @@ -101,13 +101,6 @@ fun makeGenerateAndFillMetadata(context: Context) = R.drawable.ic_autofill_new_password, ) -fun makeFillOtpFromSmsMetadata(context: Context) = - DatasetMetadata( - context.getString(R.string.oreo_autofill_fill_otp_from_sms), - null, - R.drawable.ic_autofill_sms, - ) - fun makeEmptyMetadata() = DatasetMetadata("PLACEHOLDER", "PLACEHOLDER", R.mipmap.ic_launcher) fun makeWarningMetadata(context: Context) = -- cgit v1.2.3