Fix the CredMan UI module to adopt the new credentials apis.

Bug: 271283162
Test: local deployment
Change-Id: I4d29a35c05fc96b5890c68cda911c6deb02491bf
This commit is contained in:
Helen Qin
2023-03-02 06:52:34 +00:00
parent a6b032d136
commit 3a059797cd
2 changed files with 16 additions and 19 deletions

View File

@@ -52,9 +52,7 @@ import androidx.credentials.CreateCustomCredentialRequest
import androidx.credentials.CreatePasswordRequest
import androidx.credentials.CredentialOption
import androidx.credentials.CreatePublicKeyCredentialRequest
import androidx.credentials.CreatePublicKeyCredentialRequestPrivileged
import androidx.credentials.GetPublicKeyCredentialOption
import androidx.credentials.GetPublicKeyCredentialOptionPrivileged
import androidx.credentials.PublicKeyCredential.Companion.TYPE_PUBLIC_KEY_CREDENTIAL
import androidx.credentials.provider.Action
import androidx.credentials.provider.AuthenticationAction
@@ -186,8 +184,6 @@ class GetFlowUtils {
)
if (credentialOptionJetpack is GetPublicKeyCredentialOption) {
credentialOptionJetpack.preferImmediatelyAvailableCredentials
} else if (credentialOptionJetpack is GetPublicKeyCredentialOptionPrivileged) {
credentialOptionJetpack.preferImmediatelyAvailableCredentials
} else {
false
}
@@ -448,23 +444,14 @@ class CreateFlowUtils {
createCredentialRequestJetpack.preferImmediatelyAvailableCredentials,
)
}
is CreatePublicKeyCredentialRequestPrivileged -> {
newRequestDisplayInfoFromPasskeyJson(
requestJson = createCredentialRequestJetpack.requestJson,
appLabel = appLabel,
context = context,
preferImmediatelyAvailableCredentials =
createCredentialRequestJetpack.preferImmediatelyAvailableCredentials,
)
}
is CreateCustomCredentialRequest -> {
// TODO: directly use the display info once made public
val displayInfo = CreateCredentialRequest.DisplayInfo
.parseFromCredentialDataBundle(createCredentialRequest.credentialData)
?: return null
RequestDisplayInfo(
title = displayInfo.userId,
subtitle = displayInfo.userDisplayName,
title = displayInfo.userId.toString(),
subtitle = displayInfo.userDisplayName?.toString(),
type = CredentialType.UNKNOWN,
appName = appLabel,
typeIcon = displayInfo.credentialTypeIcon?.loadDrawable(context)

View File

@@ -25,7 +25,10 @@ import android.credentials.Credential.TYPE_PASSWORD_CREDENTIAL
import android.credentials.ui.AuthenticationEntry
import android.credentials.ui.Entry
import android.net.Uri
import android.os.Bundle
import android.provider.Settings
import androidx.credentials.provider.BeginGetPasswordOption
import androidx.credentials.provider.BeginGetPublicKeyCredentialOption
import androidx.credentials.provider.CreateEntry
import androidx.credentials.provider.PasswordCredentialEntry
import androidx.credentials.provider.PublicKeyCredentialEntry
@@ -82,7 +85,9 @@ class GetTestUtils {
return Entry(
key,
subkey,
RemoteCredentialEntry(pendingIntent).slice
RemoteCredentialEntry(pendingIntent, BeginGetPublicKeyCredentialOption(
Bundle(), "id", "requestjson"
)).slice
)
}
@@ -137,7 +142,8 @@ class GetTestUtils {
intent, (PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
or PendingIntent.FLAG_ONE_SHOT)
)
val passwordEntry = PasswordCredentialEntry.Builder(context, userName, pendingIntent)
val passwordEntry = PasswordCredentialEntry.Builder(
context, userName, pendingIntent, BeginGetPasswordOption(Bundle(), "id"))
.setDisplayName(userDisplayName).setLastUsedTime(lastUsedTime).build()
return Entry(key, subkey, passwordEntry.slice, Intent())
}
@@ -158,8 +164,12 @@ class GetTestUtils {
intent, (PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
or PendingIntent.FLAG_ONE_SHOT)
)
val passkeyEntry = PublicKeyCredentialEntry.Builder(context, userName, pendingIntent)
.setDisplayName(userDisplayName).setLastUsedTime(lastUsedTime).build()
val passkeyEntry = PublicKeyCredentialEntry.Builder(
context,
userName,
pendingIntent,
BeginGetPublicKeyCredentialOption(Bundle(), "id", "requestjson")
).setDisplayName(userDisplayName).setLastUsedTime(lastUsedTime).build()
return Entry(key, subkey, passkeyEntry.slice, Intent())
}
}