Merge "Change the icon and displayName inside the providerInfo data class from the packageInfo"
This commit is contained in:
@@ -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. -->
|
||||
|
||||
@@ -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")
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -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(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user