Merge "Change the icon and displayName inside the providerInfo data class from the packageInfo"

This commit is contained in:
Qinmei Du
2022-11-11 08:02:04 +00:00
committed by Android (Google) Code Review
4 changed files with 28 additions and 26 deletions

View File

@@ -21,15 +21,14 @@
<string name="use_provider_for_all_title">Use <xliff:g id="providerInfoDisplayName">%1$s</xliff:g> for all your sign-ins?</string>
<string name="set_as_default">Set as default</string>
<string name="use_once">Use once</string>
<string name="choose_create_option_description">You can use saved <xliff:g id="type">%1$s</xliff:g> on any device. It will be saved to <xliff:g id="providerInfoDisplayName">%2$s</xliff:g> for <xliff:g id="createInfoDisplayName">%3$s</xliff:g></string>
<string name="choose_create_option_description">You can use your <xliff:g id="appDomainName">%1$s</xliff:g> <xliff:g id="type">%2$s</xliff:g> on any device. It is saved to <xliff:g id="providerInfoDisplayName">%3$s</xliff:g> for <xliff:g id="createInfoDisplayName">%4$s</xliff:g></string>
<string name="more_options_usage_passwords_passkeys"><xliff:g id="passwordsNumber">%1$s</xliff:g> passwords, <xliff:g id="passkeysNumber">%2$s</xliff:g> passkeys</string>
<string name="more_options_usage_passwords"><xliff:g id="passwordsNumber">%1$s</xliff:g> passwords</string>
<string name="more_options_usage_passkeys"><xliff:g id="passkeysNumber">%1$s</xliff:g> passkeys</string>
<string name="passkeys">passkeys</string>
<string name="passwords">passwords</string>
<string name="passkey">passkey</string>
<string name="password">password</string>
<string name="sign_ins">sign-ins</string>
<string name="other_password_manager">Other password manager</string>
<string name="createOptionInfo_icon_description">CreateOptionInfo credentialType icon</string>
<!-- Spoken content description of an element which will close the sheet when clicked. -->
<string name="close_sheet">"Close sheet"</string>
<!-- Spoken content description of the back arrow button. -->

View File

@@ -172,7 +172,7 @@ class CredentialManagerRepo(
private fun testCreateCredentialEnabledProviderList(): List<CreateCredentialProviderData> {
return listOf(
CreateCredentialProviderData
.Builder("com.google/com.google.CredentialManagerService")
.Builder("io.enpass.app")
.setSaveEntries(
listOf<Entry>(
newCreateEntry("key1", "subkey-1", "elisa.beckett@gmail.com",
@@ -184,7 +184,7 @@ class CredentialManagerRepo(
.setIsDefaultProvider(true)
.build(),
CreateCredentialProviderData
.Builder("com.dashlane/com.dashlane.CredentialManagerService")
.Builder("com.dashlane")
.setSaveEntries(
listOf<Entry>(
newCreateEntry("key1", "subkey-3", "elisa.beckett@dashlane.com",
@@ -199,8 +199,8 @@ class CredentialManagerRepo(
private fun testDisabledProviderList(): List<DisabledProviderData> {
return listOf(
DisabledProviderData("LastPass"),
DisabledProviderData("Xyzinstalledbutdisabled"),
DisabledProviderData("com.lastpass.lpandroid"),
DisabledProviderData("com.google.android.youtube")
)
}

View File

@@ -17,6 +17,7 @@
package com.android.credentialmanager
import android.content.Context
import android.content.pm.PackageManager
import android.credentials.ui.Entry
import android.credentials.ui.GetCredentialProviderData
import android.credentials.ui.CreateCredentialProviderData
@@ -108,12 +109,15 @@ class CreateFlowUtils {
providerDataList: List<CreateCredentialProviderData>,
context: Context,
): List<com.android.credentialmanager.createflow.EnabledProviderInfo> {
val packageManager = context.packageManager
return providerDataList.map {
val pkgInfo = packageManager
.getPackageInfo(it.providerFlattenedComponentName,
PackageManager.PackageInfoFlags.of(0))
com.android.credentialmanager.createflow.EnabledProviderInfo(
// TODO: replace to extract from the service data structure when available
icon = context.getDrawable(R.drawable.ic_passkey)!!,
icon = pkgInfo.applicationInfo.loadIcon(packageManager)!!,
name = it.providerFlattenedComponentName,
displayName = it.providerFlattenedComponentName,
displayName = pkgInfo.applicationInfo.loadLabel(packageManager).toString(),
createOptions = toCreationOptionInfoList(it.saveEntries, context),
isDefault = it.isDefaultProvider,
)
@@ -124,12 +128,15 @@ class CreateFlowUtils {
providerDataList: List<DisabledProviderData>,
context: Context,
): List<com.android.credentialmanager.createflow.DisabledProviderInfo> {
val packageManager = context.packageManager
return providerDataList.map {
val pkgInfo = packageManager
.getPackageInfo(it.providerFlattenedComponentName,
PackageManager.PackageInfoFlags.of(0))
com.android.credentialmanager.createflow.DisabledProviderInfo(
// TODO: replace to extract from the service data structure when available
icon = context.getDrawable(R.drawable.ic_passkey)!!,
icon = pkgInfo.applicationInfo.loadIcon(packageManager)!!,
name = it.providerFlattenedComponentName,
displayName = it.providerFlattenedComponentName,
displayName = pkgInfo.applicationInfo.loadLabel(packageManager).toString(),
)
}
}

View File

@@ -358,7 +358,7 @@ fun CreationSelectionCard(
Card() {
Column() {
Icon(
bitmap = createOptionInfo.credentialTypeIcon.toBitmap().asImageBitmap(),
bitmap = providerInfo.icon.toBitmap().asImageBitmap(),
contentDescription = null,
tint = Color.Unspecified,
modifier = Modifier.align(alignment = Alignment.CenterHorizontally).padding(all = 24.dp)
@@ -377,18 +377,14 @@ fun CreationSelectionCard(
.align(alignment = Alignment.CenterHorizontally),
textAlign = TextAlign.Center,
)
Text(
text = requestDisplayInfo.appDomainName,
style = MaterialTheme.typography.bodyMedium,
modifier = Modifier.align(alignment = Alignment.CenterHorizontally)
)
if (createOptionInfo.userProviderDisplayName != null) {
Text(
text = stringResource(
R.string.choose_create_option_description,
requestDisplayInfo.appDomainName,
when (requestDisplayInfo.type) {
TYPE_PUBLIC_KEY_CREDENTIAL -> stringResource(R.string.passkeys)
TYPE_PASSWORD_CREDENTIAL -> stringResource(R.string.passwords)
TYPE_PUBLIC_KEY_CREDENTIAL -> stringResource(R.string.passkey)
TYPE_PASSWORD_CREDENTIAL -> stringResource(R.string.password)
else -> stringResource(R.string.sign_ins)
},
providerInfo.displayName,
@@ -471,7 +467,7 @@ fun PrimaryCreateOptionRow(
icon = {
Image(modifier = Modifier.size(24.dp, 24.dp).padding(start = 10.dp),
bitmap = createOptionInfo.credentialTypeIcon.toBitmap().asImageBitmap(),
contentDescription = stringResource(R.string.createOptionInfo_icon_description))
contentDescription = null)
},
shape = MaterialTheme.shapes.large,
label = {
@@ -502,9 +498,9 @@ fun MoreOptionsInfoRow(
modifier = Modifier.fillMaxWidth(),
onClick = onOptionSelected,
icon = {
Image(modifier = Modifier.size(24.dp, 24.dp).padding(start = 10.dp),
bitmap = createOptionInfo.credentialTypeIcon.toBitmap().asImageBitmap(),
contentDescription = stringResource(R.string.createOptionInfo_icon_description))
Image(modifier = Modifier.size(32.dp, 32.dp).padding(start = 10.dp),
bitmap = providerInfo.icon.toBitmap().asImageBitmap(),
contentDescription = null)
},
shape = MaterialTheme.shapes.large,
label = {