diff options
| author | Harsh Shandilya <me@msfjarvis.dev> | 2021-05-15 12:56:49 +0530 |
|---|---|---|
| committer | Harsh Shandilya <me@msfjarvis.dev> | 2021-05-15 15:40:20 +0530 |
| commit | 7e2eb2425e7b9b6ccb37b7b89f19de3fa7a20c44 (patch) | |
| tree | 6b8a9557ac51b5fab5d2ad7611084cf0de6c57cf /app/src/main/java/dev/msfjarvis/aps/util/autofill | |
| parent | 2fcb285e276594842798be6990b92ba09e733f49 (diff) | |
| download | HardenedPass-7e2eb2425e7b9b6ccb37b7b89f19de3fa7a20c44.tar.gz HardenedPass-7e2eb2425e7b9b6ccb37b7b89f19de3fa7a20c44.zip | |
all: reformat with Spotless again
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Diffstat (limited to 'app/src/main/java/dev/msfjarvis/aps/util/autofill')
5 files changed, 77 insertions, 23 deletions
diff --git a/app/src/main/java/dev/msfjarvis/aps/util/autofill/Api30AutofillResponseBuilder.kt b/app/src/main/java/dev/msfjarvis/aps/util/autofill/Api30AutofillResponseBuilder.kt index a39db31d..ea03bb23 100644 --- a/app/src/main/java/dev/msfjarvis/aps/util/autofill/Api30AutofillResponseBuilder.kt +++ b/app/src/main/java/dev/msfjarvis/aps/util/autofill/Api30AutofillResponseBuilder.kt @@ -61,7 +61,11 @@ class Api30AutofillResponseBuilder(form: FillableForm) { } } - private fun makeMatchDataset(context: Context, file: File, imeSpec: InlinePresentationSpec?): Dataset? { + private fun makeMatchDataset( + context: Context, + file: File, + imeSpec: InlinePresentationSpec? + ): Dataset? { if (!scenario.hasFieldsToFillOn(AutofillAction.Match)) return null val metadata = makeFillMatchMetadata(context, file) val intentSender = AutofillDecryptActivity.makeDecryptFileIntentSender(file, context) @@ -82,12 +86,21 @@ class Api30AutofillResponseBuilder(form: FillableForm) { return makeIntentDataset(context, AutofillAction.Generate, intentSender, metadata, imeSpec) } - private fun makeFillOtpFromSmsDataset(context: Context, imeSpec: InlinePresentationSpec?): Dataset? { + 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) + return makeIntentDataset( + context, + AutofillAction.FillOtpFromSms, + intentSender, + metadata, + imeSpec + ) } private fun makePublisherChangedDataset( @@ -150,7 +163,12 @@ class Api30AutofillResponseBuilder(form: FillableForm) { addDataset(it) } if (datasetCount == 0) return null - setHeader(makeRemoteView(context, makeHeaderMetadata(formOrigin.getPrettyIdentifier(context, untrusted = true)))) + setHeader( + makeRemoteView( + context, + makeHeaderMetadata(formOrigin.getPrettyIdentifier(context, untrusted = true)) + ) + ) makeSaveInfo()?.let { setSaveInfo(it) } setClientState(clientState) setIgnoredIds(*ignoredIds.toTypedArray()) @@ -177,7 +195,11 @@ class Api30AutofillResponseBuilder(form: FillableForm) { } /** Creates and returns a suitable [FillResponse] to the Autofill framework. */ - fun fillCredentials(context: Context, inlineSuggestionsRequest: InlineSuggestionsRequest?, callback: FillCallback) { + fun fillCredentials( + context: Context, + inlineSuggestionsRequest: InlineSuggestionsRequest?, + callback: FillCallback + ) { AutofillMatcher.getMatchesFor(context, formOrigin) .fold( success = { matchedFiles -> diff --git a/app/src/main/java/dev/msfjarvis/aps/util/autofill/AutofillMatcher.kt b/app/src/main/java/dev/msfjarvis/aps/util/autofill/AutofillMatcher.kt index 418843f6..ea10c1ac 100644 --- a/app/src/main/java/dev/msfjarvis/aps/util/autofill/AutofillMatcher.kt +++ b/app/src/main/java/dev/msfjarvis/aps/util/autofill/AutofillMatcher.kt @@ -35,7 +35,9 @@ private fun Context.matchPreferences(formOrigin: FormOrigin): SharedPreferences } class AutofillPublisherChangedException(val formOrigin: FormOrigin) : - Exception("The publisher of '${formOrigin.identifier}' changed since an entry was first matched with this app") { + Exception( + "The publisher of '${formOrigin.identifier}' changed since an entry was first matched with this app" + ) { init { require(formOrigin is FormOrigin.App) @@ -50,10 +52,12 @@ class AutofillMatcher { private const val MAX_NUM_MATCHES = 10 private const val PREFERENCE_PREFIX_TOKEN = "token;" - private fun tokenKey(formOrigin: FormOrigin.App) = "$PREFERENCE_PREFIX_TOKEN${formOrigin.identifier}" + private fun tokenKey(formOrigin: FormOrigin.App) = + "$PREFERENCE_PREFIX_TOKEN${formOrigin.identifier}" private const val PREFERENCE_PREFIX_MATCHES = "matches;" - private fun matchesKey(formOrigin: FormOrigin) = "$PREFERENCE_PREFIX_MATCHES${formOrigin.identifier}" + private fun matchesKey(formOrigin: FormOrigin) = + "$PREFERENCE_PREFIX_MATCHES${formOrigin.identifier}" private fun hasFormOriginHashChanged(context: Context, formOrigin: FormOrigin): Boolean { return when (formOrigin) { @@ -61,7 +65,8 @@ class AutofillMatcher { is FormOrigin.App -> { val packageName = formOrigin.identifier val certificatesHash = computeCertificatesHash(context, packageName) - val storedCertificatesHash = context.autofillAppMatches.getString(tokenKey(formOrigin), null) ?: return false + val storedCertificatesHash = + context.autofillAppMatches.getString(tokenKey(formOrigin), null) ?: return false val hashHasChanged = certificatesHash != storedCertificatesHash if (hashHasChanged) { e { "$packageName: stored=$storedCertificatesHash, new=$certificatesHash" } @@ -91,15 +96,21 @@ class AutofillMatcher { * time the user associated an entry with it, an [AutofillPublisherChangedException] will be * thrown. */ - fun getMatchesFor(context: Context, formOrigin: FormOrigin): Result<List<File>, AutofillPublisherChangedException> { + fun getMatchesFor( + context: Context, + formOrigin: FormOrigin + ): Result<List<File>, AutofillPublisherChangedException> { if (hasFormOriginHashChanged(context, formOrigin)) { return Err(AutofillPublisherChangedException(formOrigin)) } val matchPreferences = context.matchPreferences(formOrigin) - val matchedFiles = matchPreferences.getStringSet(matchesKey(formOrigin), emptySet())!!.map { File(it) } + val matchedFiles = + matchPreferences.getStringSet(matchesKey(formOrigin), emptySet())!!.map { File(it) } return Ok( matchedFiles.filter { it.exists() }.also { validFiles -> - matchPreferences.edit { putStringSet(matchesKey(formOrigin), validFiles.map { it.absolutePath }.toSet()) } + matchPreferences.edit { + putStringSet(matchesKey(formOrigin), validFiles.map { it.absolutePath }.toSet()) + } } ) } @@ -127,7 +138,8 @@ class AutofillMatcher { throw AutofillPublisherChangedException(formOrigin) } val matchPreferences = context.matchPreferences(formOrigin) - val matchedFiles = matchPreferences.getStringSet(matchesKey(formOrigin), emptySet())!!.map { File(it) } + val matchedFiles = + matchPreferences.getStringSet(matchesKey(formOrigin), emptySet())!!.map { File(it) } val newFiles = setOf(file.absoluteFile).union(matchedFiles) if (newFiles.size > MAX_NUM_MATCHES) { Toast.makeText( @@ -138,7 +150,9 @@ class AutofillMatcher { .show() return } - matchPreferences.edit { putStringSet(matchesKey(formOrigin), newFiles.map { it.absolutePath }.toSet()) } + matchPreferences.edit { + putStringSet(matchesKey(formOrigin), newFiles.map { it.absolutePath }.toSet()) + } storeFormOriginHash(context, formOrigin) d { "Stored match for $formOrigin" } } @@ -153,7 +167,8 @@ class AutofillMatcher { delete: Collection<File> = emptyList() ) { val deletePathList = delete.map { it.absolutePath } - val oldNewPathMap = moveFromTo.mapValues { it.value.absolutePath }.mapKeys { it.key.absolutePath } + val oldNewPathMap = + moveFromTo.mapValues { it.value.absolutePath }.mapKeys { it.key.absolutePath } for (prefs in listOf(context.autofillAppMatches, context.autofillWebMatches)) { for ((key, value) in prefs.all) { if (!key.startsWith(PREFERENCE_PREFIX_MATCHES)) continue diff --git a/app/src/main/java/dev/msfjarvis/aps/util/autofill/AutofillPreferences.kt b/app/src/main/java/dev/msfjarvis/aps/util/autofill/AutofillPreferences.kt index c6cdffed..fdbd15af 100644 --- a/app/src/main/java/dev/msfjarvis/aps/util/autofill/AutofillPreferences.kt +++ b/app/src/main/java/dev/msfjarvis/aps/util/autofill/AutofillPreferences.kt @@ -96,7 +96,8 @@ enum class DirectoryStructure(val value: String) { when (this) { EncryptedUsername -> null FileBased -> file.nameWithoutExtension.takeIf { file.parentFile != null } - DirectoryBased -> file.parentFile?.let { parentFile -> "${parentFile.name}/${file.nameWithoutExtension}" } + DirectoryBased -> + file.parentFile?.let { parentFile -> "${parentFile.name}/${file.nameWithoutExtension}" } ?: file.nameWithoutExtension } @@ -138,7 +139,8 @@ object AutofillPreferences { directoryStructure: DirectoryStructure ): Credentials { // Always give priority to a username stored in the encrypted extras - val username = entry.username ?: directoryStructure.getUsernameFor(file) ?: context.getDefaultUsername() + val username = + entry.username ?: directoryStructure.getUsernameFor(file) ?: context.getDefaultUsername() return Credentials(username, entry.password, entry.totp.value) } } diff --git a/app/src/main/java/dev/msfjarvis/aps/util/autofill/AutofillResponseBuilder.kt b/app/src/main/java/dev/msfjarvis/aps/util/autofill/AutofillResponseBuilder.kt index d8126438..9dabf914 100644 --- a/app/src/main/java/dev/msfjarvis/aps/util/autofill/AutofillResponseBuilder.kt +++ b/app/src/main/java/dev/msfjarvis/aps/util/autofill/AutofillResponseBuilder.kt @@ -154,7 +154,10 @@ class AutofillResponseBuilder(form: FillableForm) { if (datasetCount == 0) return null if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { setHeader( - makeRemoteView(context, makeHeaderMetadata(formOrigin.getPrettyIdentifier(context, untrusted = true))) + makeRemoteView( + context, + makeHeaderMetadata(formOrigin.getPrettyIdentifier(context, untrusted = true)) + ) ) } makeSaveInfo()?.let { setSaveInfo(it) } diff --git a/app/src/main/java/dev/msfjarvis/aps/util/autofill/AutofillViewUtils.kt b/app/src/main/java/dev/msfjarvis/aps/util/autofill/AutofillViewUtils.kt index 46f7d821..1d09d001 100644 --- a/app/src/main/java/dev/msfjarvis/aps/util/autofill/AutofillViewUtils.kt +++ b/app/src/main/java/dev/msfjarvis/aps/util/autofill/AutofillViewUtils.kt @@ -51,13 +51,15 @@ fun makeInlinePresentation( if (UiVersions.INLINE_UI_VERSION_1 !in UiVersions.getVersions(imeSpec.style)) return null - val launchIntent = PendingIntent.getActivity(context, 0, Intent(context, PasswordStore::class.java), 0) + val launchIntent = + PendingIntent.getActivity(context, 0, Intent(context, PasswordStore::class.java), 0) val slice = InlineSuggestionUi.newContentBuilder(launchIntent).run { setTitle(metadata.title) if (metadata.subtitle != null) setSubtitle(metadata.subtitle) setContentDescription( - if (metadata.subtitle != null) "${metadata.title} - ${metadata.subtitle}" else metadata.title + if (metadata.subtitle != null) "${metadata.title} - ${metadata.subtitle}" + else metadata.title ) setStartIcon(Icon.createWithResource(context, metadata.iconRes)) build().slice @@ -69,13 +71,19 @@ fun makeInlinePresentation( fun makeFillMatchMetadata(context: Context, file: File): DatasetMetadata { val directoryStructure = AutofillPreferences.directoryStructure(context) val relativeFile = file.relativeTo(PasswordRepository.getRepositoryDirectory()) - val title = directoryStructure.getIdentifierFor(relativeFile) ?: directoryStructure.getAccountPartFor(relativeFile)!! + val title = + directoryStructure.getIdentifierFor(relativeFile) + ?: directoryStructure.getAccountPartFor(relativeFile)!! val subtitle = directoryStructure.getAccountPartFor(relativeFile) return DatasetMetadata(title, subtitle, R.drawable.ic_person_black_24dp) } fun makeSearchAndFillMetadata(context: Context) = - DatasetMetadata(context.getString(R.string.oreo_autofill_search_in_store), null, R.drawable.ic_search_black_24dp) + DatasetMetadata( + context.getString(R.string.oreo_autofill_search_in_store), + null, + R.drawable.ic_search_black_24dp + ) fun makeGenerateAndFillMetadata(context: Context) = DatasetMetadata( @@ -85,7 +93,11 @@ fun makeGenerateAndFillMetadata(context: Context) = ) fun makeFillOtpFromSmsMetadata(context: Context) = - DatasetMetadata(context.getString(R.string.oreo_autofill_fill_otp_from_sms), null, R.drawable.ic_autofill_sms) + 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) |
