diff options
Diffstat (limited to 'autofill-parser')
4 files changed, 37 insertions, 47 deletions
diff --git a/autofill-parser/api.txt b/autofill-parser/api.txt index a999127f..89cfaa3c 100644 --- a/autofill-parser/api.txt +++ b/autofill-parser/api.txt @@ -2,8 +2,6 @@ package com.github.androidpasswordstore.autofillparser { public enum AutofillAction { - method public static com.github.androidpasswordstore.autofillparser.AutofillAction valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException; - method public static com.github.androidpasswordstore.autofillparser.AutofillAction[] values(); enum_constant public static final com.github.androidpasswordstore.autofillparser.AutofillAction FillOtpFromSms; enum_constant public static final com.github.androidpasswordstore.autofillparser.AutofillAction Generate; enum_constant public static final com.github.androidpasswordstore.autofillparser.AutofillAction Match; @@ -14,13 +12,13 @@ package com.github.androidpasswordstore.autofillparser { method public static String computeCertificatesHash(android.content.Context context, String appPackage); } - @RequiresApi(android.os.Build.VERSION_CODES.O) public abstract sealed class AutofillScenario<T> { - method public final java.util.List<T> getFieldsToSave(); - method public final boolean getHasFieldsToSave(); - method public final boolean getHasPasswordFieldsToSave(); - method public final boolean getHasUsername(); - method public abstract java.util.List<T> getPasswordFieldsToSave(); - method public abstract T? getUsername(); + @RequiresApi(android.os.Build.VERSION_CODES.O) public abstract sealed nonexhaustive class AutofillScenario<T> { + method @InaccessibleFromKotlin public final java.util.List<T> getFieldsToSave(); + method @InaccessibleFromKotlin public final boolean getHasFieldsToSave(); + method @InaccessibleFromKotlin public final boolean getHasPasswordFieldsToSave(); + method @InaccessibleFromKotlin public final boolean getHasUsername(); + method @InaccessibleFromKotlin public abstract java.util.List<T> getPasswordFieldsToSave(); + method @InaccessibleFromKotlin public abstract T? getUsername(); method public final boolean hasFieldsToFillOn(com.github.androidpasswordstore.autofillparser.AutofillAction action); property public final java.util.List<T> fieldsToSave; property public final boolean hasFieldsToSave; @@ -37,15 +35,16 @@ package com.github.androidpasswordstore.autofillparser { } public final class AutofillScenarioKt { - method @RequiresApi(android.os.Build.VERSION_CODES.O) public static void fillWithAutofillId(android.service.autofill.Dataset.Builder, com.github.androidpasswordstore.autofillparser.AutofillScenario<android.view.autofill.AutofillId> scenario, com.github.androidpasswordstore.autofillparser.AutofillAction action, com.github.androidpasswordstore.autofillparser.Credentials? credentials); - method @RequiresApi(android.os.Build.VERSION_CODES.O) public static String? getPasswordValue(com.github.androidpasswordstore.autofillparser.AutofillScenario<? extends android.app.assist.AssistStructure.ViewNode>); - method @RequiresApi(android.os.Build.VERSION_CODES.O) public static String? getUsernameValue(com.github.androidpasswordstore.autofillparser.AutofillScenario<? extends android.app.assist.AssistStructure.ViewNode>); + method @KotlinOnly @RequiresApi(android.os.Build.VERSION_CODES.O) public static void fillWith(android.service.autofill.Dataset.Builder, com.github.androidpasswordstore.autofillparser.AutofillScenario<android.view.autofill.AutofillId> scenario, com.github.androidpasswordstore.autofillparser.AutofillAction action, com.github.androidpasswordstore.autofillparser.Credentials? credentials); + method @InaccessibleFromKotlin @RequiresApi(android.os.Build.VERSION_CODES.O) public static void fillWithAutofillId(android.service.autofill.Dataset.Builder, com.github.androidpasswordstore.autofillparser.AutofillScenario<android.view.autofill.AutofillId> scenario, com.github.androidpasswordstore.autofillparser.AutofillAction action, com.github.androidpasswordstore.autofillparser.Credentials? credentials); + method @InaccessibleFromKotlin @RequiresApi(android.os.Build.VERSION_CODES.O) public static String? getPasswordValue(com.github.androidpasswordstore.autofillparser.AutofillScenario<? extends android.app.assist.AssistStructure.ViewNode>); + method @InaccessibleFromKotlin @RequiresApi(android.os.Build.VERSION_CODES.O) public static String? getUsernameValue(com.github.androidpasswordstore.autofillparser.AutofillScenario<? extends android.app.assist.AssistStructure.ViewNode>); method @RequiresApi(android.os.Build.VERSION_CODES.O) public static com.github.androidpasswordstore.autofillparser.AutofillScenario<android.app.assist.AssistStructure.ViewNode>? recoverNodes(com.github.androidpasswordstore.autofillparser.AutofillScenario<android.view.autofill.AutofillId>, android.app.assist.AssistStructure structure); + property @RequiresApi(android.os.Build.VERSION_CODES.O) public static String? com.github.androidpasswordstore.autofillparser.AutofillScenario<android.app.assist.AssistStructure.ViewNode>.passwordValue; + property @RequiresApi(android.os.Build.VERSION_CODES.O) public static String? com.github.androidpasswordstore.autofillparser.AutofillScenario<android.app.assist.AssistStructure.ViewNode>.usernameValue; } public enum BrowserAutofillSupportLevel { - method public static com.github.androidpasswordstore.autofillparser.BrowserAutofillSupportLevel valueOf(String value) throws java.lang.IllegalArgumentException, java.lang.NullPointerException; - method public static com.github.androidpasswordstore.autofillparser.BrowserAutofillSupportLevel[] values(); enum_constant public static final com.github.androidpasswordstore.autofillparser.BrowserAutofillSupportLevel FlakyFill; enum_constant public static final com.github.androidpasswordstore.autofillparser.BrowserAutofillSupportLevel GeneralFill; enum_constant public static final com.github.androidpasswordstore.autofillparser.BrowserAutofillSupportLevel GeneralFillAndSave; @@ -59,13 +58,13 @@ package com.github.androidpasswordstore.autofillparser { method public String? component1(); method public String? component2(); method public String? component3(); - method public com.github.androidpasswordstore.autofillparser.Credentials copy(String? username, String? password, String? otp); - method public String? getOtp(); - method public String? getPassword(); - method public String? getUsername(); - property public final String? otp; - property public final String? password; - property public final String? username; + method public com.github.androidpasswordstore.autofillparser.Credentials copy(optional String? username, optional String? password, optional String? otp); + method @InaccessibleFromKotlin public String? getOtp(); + method @InaccessibleFromKotlin public String? getPassword(); + method @InaccessibleFromKotlin public String? getUsername(); + property public String? otp; + property public String? password; + property public String? username; } public final class FeatureAndTrustDetectionKt { @@ -73,15 +72,15 @@ package com.github.androidpasswordstore.autofillparser { } @RequiresApi(android.os.Build.VERSION_CODES.O) public final class FillableForm { - method public com.github.androidpasswordstore.autofillparser.FormOrigin getFormOrigin(); - method public java.util.List<android.view.autofill.AutofillId> getIgnoredIds(); - method public Integer? getSaveFlags(); - method public com.github.androidpasswordstore.autofillparser.AutofillScenario<android.view.autofill.AutofillId> getScenario(); + method @InaccessibleFromKotlin public com.github.androidpasswordstore.autofillparser.FormOrigin getFormOrigin(); + method @InaccessibleFromKotlin public java.util.List<android.view.autofill.AutofillId> getIgnoredIds(); + method @InaccessibleFromKotlin public Integer? getSaveFlags(); + method @InaccessibleFromKotlin public com.github.androidpasswordstore.autofillparser.AutofillScenario<android.view.autofill.AutofillId> getScenario(); method public android.os.Bundle toClientState(); - property public final com.github.androidpasswordstore.autofillparser.FormOrigin formOrigin; - property public final java.util.List<android.view.autofill.AutofillId> ignoredIds; - property public final Integer? saveFlags; - property public final com.github.androidpasswordstore.autofillparser.AutofillScenario<android.view.autofill.AutofillId> scenario; + property public com.github.androidpasswordstore.autofillparser.FormOrigin formOrigin; + property public java.util.List<android.view.autofill.AutofillId> ignoredIds; + property public Integer? saveFlags; + property public com.github.androidpasswordstore.autofillparser.AutofillScenario<android.view.autofill.AutofillId> scenario; field public static final com.github.androidpasswordstore.autofillparser.FillableForm.Companion Companion; } @@ -95,8 +94,8 @@ package com.github.androidpasswordstore.autofillparser { method public void onSuccess(android.content.IntentSender intentSender); } - public abstract sealed class FormOrigin { - method public String getIdentifier(); + public abstract sealed exhaustive class FormOrigin { + method @InaccessibleFromKotlin public String getIdentifier(); method public final String getPrettyIdentifier(android.content.Context context, optional boolean untrusted); method public final android.os.Bundle toBundle(); property public String identifier; @@ -106,7 +105,7 @@ package com.github.androidpasswordstore.autofillparser { public static final class FormOrigin.App extends com.github.androidpasswordstore.autofillparser.FormOrigin { ctor public FormOrigin.App(String identifier); method public String component1(); - method public com.github.androidpasswordstore.autofillparser.FormOrigin.App copy(String identifier); + method public com.github.androidpasswordstore.autofillparser.FormOrigin.App copy(optional String identifier); property public String identifier; } @@ -117,7 +116,7 @@ package com.github.androidpasswordstore.autofillparser { public static final class FormOrigin.Web extends com.github.androidpasswordstore.autofillparser.FormOrigin { ctor public FormOrigin.Web(String identifier); method public String component1(); - method public com.github.androidpasswordstore.autofillparser.FormOrigin.Web copy(String identifier); + method public com.github.androidpasswordstore.autofillparser.FormOrigin.Web copy(optional String identifier); property public String identifier; } @@ -127,12 +126,3 @@ package com.github.androidpasswordstore.autofillparser { } -package mozilla.components.lib.publicsuffixlist { - - public final class PublicSuffixListLoaderTest { - ctor public PublicSuffixListLoaderTest(); - method public void testLoadingBundledPublicSuffixList(); - } - -} - diff --git a/autofill-parser/build.gradle.kts b/autofill-parser/build.gradle.kts index 472f78fb..39157b37 100644 --- a/autofill-parser/build.gradle.kts +++ b/autofill-parser/build.gradle.kts @@ -15,7 +15,7 @@ android { minSdk = 23 consumerProguardFiles("consumer-rules.pro") } - sourceSets { getByName("test") { resources.srcDir("src/main/assets") } } + sourceSets { getByName("test") { resources.directories.add("src/main/assets") } } namespace = "com.github.androidpasswordstore.autofillparser" } diff --git a/autofill-parser/src/main/java/com/github/androidpasswordstore/autofillparser/AutofillFormParser.kt b/autofill-parser/src/main/java/com/github/androidpasswordstore/autofillparser/AutofillFormParser.kt index c273bdfc..3dc74f33 100644 --- a/autofill-parser/src/main/java/com/github/androidpasswordstore/autofillparser/AutofillFormParser.kt +++ b/autofill-parser/src/main/java/com/github/androidpasswordstore/autofillparser/AutofillFormParser.kt @@ -8,11 +8,11 @@ import android.app.assist.AssistStructure import android.content.Context import android.content.pm.PackageManager import android.content.pm.PackageManager.ApplicationInfoFlags -import android.net.Uri import android.os.Build import android.os.Bundle import android.view.autofill.AutofillId import androidx.annotation.RequiresApi +import androidx.core.net.toUri import logcat.logcat /** @@ -150,7 +150,7 @@ private class AutofillFormParser( } private fun webOriginToFormOrigin(context: Context, origin: String): FormOrigin? { - val uri = Uri.parse(origin) ?: return null + val uri = origin.toUri() val scheme = uri.scheme ?: return null if (scheme !in SUPPORTED_SCHEMES) return null val host = uri.host ?: return null diff --git a/autofill-parser/src/main/java/com/github/androidpasswordstore/autofillparser/FeatureAndTrustDetection.kt b/autofill-parser/src/main/java/com/github/androidpasswordstore/autofillparser/FeatureAndTrustDetection.kt index 2da3a102..d531dd49 100644 --- a/autofill-parser/src/main/java/com/github/androidpasswordstore/autofillparser/FeatureAndTrustDetection.kt +++ b/autofill-parser/src/main/java/com/github/androidpasswordstore/autofillparser/FeatureAndTrustDetection.kt @@ -8,11 +8,11 @@ import android.content.Context import android.content.Intent import android.content.pm.PackageManager import android.content.pm.PackageManager.ResolveInfoFlags -import android.net.Uri import android.os.Build import android.provider.Settings import android.service.autofill.SaveInfo import androidx.annotation.RequiresApi +import androidx.core.net.toUri /** * In order to add a new browser, do the following: @@ -244,7 +244,7 @@ private fun getBrowserAutofillSupportLevel( public fun getInstalledBrowsersWithAutofillSupportLevel( context: Context ): List<Pair<String, BrowserAutofillSupportLevel>> { - val testWebIntent = Intent(Intent.ACTION_VIEW).apply { data = Uri.parse("https://example.org") } + val testWebIntent = Intent(Intent.ACTION_VIEW).apply { data = "https://example.org".toUri() } val installedBrowsers = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { context.packageManager.queryIntentActivities( |
