From b0b9e6113f38f432cc3b96aa7555f6ccdc0b58cf Mon Sep 17 00:00:00 2001 From: Helen Qin Date: Mon, 27 Feb 2023 03:39:00 +0000 Subject: [PATCH] CredManUI: Use origin to replace the calling app package name. Test: manual Bug: 265038790 Change-Id: I7ada9c73375e1b835aa2ad36a3cffb88c355dcd9 --- .../CredentialManagerRepo.kt | 23 +++++++++++++------ .../credentialmanager/DataConverter.kt | 8 +++++-- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt b/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt index 89ce4511b47a8..f8ad196c41f2a 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt @@ -72,6 +72,12 @@ class CredentialManagerRepo( RequestInfo::class.java ) ?: testCreatePasswordRequestInfo() + val originName: String? = when (requestInfo.type) { + RequestInfo.TYPE_CREATE -> requestInfo.createCredentialRequest?.origin + RequestInfo.TYPE_GET -> requestInfo.getCredentialRequest?.origin + else -> null + } + providerEnabledList = when (requestInfo.type) { RequestInfo.TYPE_CREATE -> intent.extras?.getParcelableArrayList( @@ -105,14 +111,15 @@ class CredentialManagerRepo( val isPasskeyFirstUse = userConfigRepo.getIsPasskeyFirstUse() val providerEnableListUiState = getCreateProviderEnableListInitialUiState() val providerDisableListUiState = getCreateProviderDisableListInitialUiState() - val requestDisplayInfoUiState = getCreateRequestDisplayInfoInitialUiState()!! + val requestDisplayInfoUiState = + getCreateRequestDisplayInfoInitialUiState(originName)!! UiState( createCredentialUiState = CreateFlowUtils.toCreateCredentialUiState( providerEnableListUiState, providerDisableListUiState, defaultProviderId, requestDisplayInfoUiState, - /** isOnPasskeyIntroStateAlready = */ + /** isOnPasskeyIntroStateAlready */ false, isPasskeyFirstUse )!!, @@ -121,7 +128,7 @@ class CredentialManagerRepo( } RequestInfo.TYPE_GET -> UiState( createCredentialUiState = null, - getCredentialUiState = getCredentialInitialUiState()!!, + getCredentialUiState = getCredentialInitialUiState(originName)!!, ) else -> throw IllegalStateException("Unrecognized request type: ${requestInfo.type}") } @@ -172,11 +179,11 @@ class CredentialManagerRepo( } // IMPORTANT: new invocation should be mindful that this method can throw. - private fun getCredentialInitialUiState(): GetCredentialUiState? { + private fun getCredentialInitialUiState(originName: String?): GetCredentialUiState? { val providerEnabledList = GetFlowUtils.toProviderList( providerEnabledList as List, context ) - val requestDisplayInfo = GetFlowUtils.toRequestDisplayInfo(requestInfo, context) + val requestDisplayInfo = GetFlowUtils.toRequestDisplayInfo(requestInfo, context, originName) return GetCredentialUiState( providerEnabledList, requestDisplayInfo ?: return null, @@ -198,8 +205,10 @@ class CredentialManagerRepo( ) } - private fun getCreateRequestDisplayInfoInitialUiState(): RequestDisplayInfo? { - return CreateFlowUtils.toRequestDisplayInfo(requestInfo, context) + private fun getCreateRequestDisplayInfoInitialUiState( + originName: String? + ): RequestDisplayInfo? { + return CreateFlowUtils.toRequestDisplayInfo(requestInfo, context, originName) } companion object { diff --git a/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt b/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt index ccfc132364a57..9c9c2a3a1d103 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt @@ -170,9 +170,11 @@ class GetFlowUtils { fun toRequestDisplayInfo( requestInfo: RequestInfo, context: Context, + originName: String?, ): com.android.credentialmanager.getflow.RequestDisplayInfo? { return com.android.credentialmanager.getflow.RequestDisplayInfo( - appName = getAppLabel(context.packageManager, requestInfo.appPackageName) + appName = originName + ?: getAppLabel(context.packageManager, requestInfo.appPackageName) ?: return null ) } @@ -395,8 +397,10 @@ class CreateFlowUtils { fun toRequestDisplayInfo( requestInfo: RequestInfo, context: Context, + originName: String?, ): RequestDisplayInfo? { - val appLabel = getAppLabel(context.packageManager, requestInfo.appPackageName) + val appLabel = originName + ?: getAppLabel(context.packageManager, requestInfo.appPackageName) ?: return null val createCredentialRequest = requestInfo.createCredentialRequest ?: return null val createCredentialRequestJetpack = CreateCredentialRequest.createFrom(