diff options
| author | 2023-03-28 23:38:39 +0000 | |
|---|---|---|
| committer | 2023-03-28 23:38:39 +0000 | |
| commit | f6f64e59f98c28216ab2e3071a0a58455d95417f (patch) | |
| tree | 077abeb071b962ae20ea6098d253a134430824e6 | |
| parent | 143eb5c5bb2ebf747c2d63fbf872e8674de8501b (diff) | |
Support the mdoc component name format.
Since the mdoc provider doesn't need to register a CredMan service and
can solely rely on the registration api, its component format will be
"packagename/packagename".
Bug: 274007049
Test: local deployment
Change-Id: I3dcf44eb4e6ffd4dca9d8f0a38395abe9bcf2fd0
| -rw-r--r-- | packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt b/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt index b3d3b6dc66d0..783cf3b47344 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt @@ -102,7 +102,7 @@ private fun getServiceLabelAndIcon( ).toString() providerIcon = pkgInfo.applicationInfo.loadIcon(pm) } catch (e: PackageManager.NameNotFoundException) { - Log.e(Constants.LOG_TAG, "Provider info not found", e) + Log.e(Constants.LOG_TAG, "Provider package info not found", e) } } else { try { @@ -113,7 +113,23 @@ private fun getServiceLabelAndIcon( ).toString() providerIcon = si.loadIcon(pm) } catch (e: PackageManager.NameNotFoundException) { - Log.e(Constants.LOG_TAG, "Provider info not found", e) + Log.e(Constants.LOG_TAG, "Provider service info not found", e) + // Added for mdoc use case where the provider may not need to register a service and + // instead only relies on the registration api. + try { + val pkgInfo = pm.getPackageInfo( + component.packageName, + PackageManager.PackageInfoFlags.of(0) + ) + providerLabel = + pkgInfo.applicationInfo.loadSafeLabel( + pm, 0f, + TextUtils.SAFE_STRING_FLAG_FIRST_LINE or TextUtils.SAFE_STRING_FLAG_TRIM + ).toString() + providerIcon = pkgInfo.applicationInfo.loadIcon(pm) + } catch (e: PackageManager.NameNotFoundException) { + Log.e(Constants.LOG_TAG, "Provider package info not found", e) + } } } return if (providerLabel == null || providerIcon == null) { |