Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 42aa615a authored by Qinmei Du's avatar Qinmei Du Committed by Android (Google) Code Review
Browse files

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

parents a51725bc e3b37292
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -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. -->
+4 −4
Original line number Diff line number Diff line
@@ -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")
    )
  }

+13 −6
Original line number Diff line number Diff line
@@ -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(),
        )
      }
    }
+8 −12
Original line number Diff line number Diff line
@@ -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 = {