summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Omer Ozer <omerozer@google.com> 2023-03-10 17:03:52 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-03-10 17:03:52 +0000
commit4b2b7800ec12b18c68fa1263e8f29dd8792302f6 (patch)
tree79f1ce0857f5f3d3b431687d4acf878995b12a42
parenteea97a6ad775a6ae91c8ca215c506b78459cd170 (diff)
parent094fa9109e4e7a2e23422ebc1e0c337b1fac8992 (diff)
Merge "Add sessions to requestsession" into udc-dev
-rw-r--r--services/credentials/java/com/android/server/credentials/CredentialDescriptionRegistry.java4
-rw-r--r--services/credentials/java/com/android/server/credentials/CredentialManagerService.java28
-rw-r--r--services/credentials/java/com/android/server/credentials/RequestSession.java4
3 files changed, 23 insertions, 13 deletions
diff --git a/services/credentials/java/com/android/server/credentials/CredentialDescriptionRegistry.java b/services/credentials/java/com/android/server/credentials/CredentialDescriptionRegistry.java
index 3b92cc9647f7..8ccc61b70f45 100644
--- a/services/credentials/java/com/android/server/credentials/CredentialDescriptionRegistry.java
+++ b/services/credentials/java/com/android/server/credentials/CredentialDescriptionRegistry.java
@@ -221,12 +221,12 @@ public class CredentialDescriptionRegistry {
return false;
}
- private static boolean checkForMatch(Set<String> registeredUnflattenedStrings,
+ static boolean checkForMatch(Set<String> registeredUnflattenedStrings,
Set<String> requestedUnflattenedString) {
return registeredUnflattenedStrings.containsAll(requestedUnflattenedString);
}
- private static Set<String> flatStringToSet(String flatString) {
+ static Set<String> flatStringToSet(String flatString) {
return new HashSet<>(Arrays
.asList(flatString.split(FLAT_STRING_SPLIT_REGEX)));
}
diff --git a/services/credentials/java/com/android/server/credentials/CredentialManagerService.java b/services/credentials/java/com/android/server/credentials/CredentialManagerService.java
index a58dbe581437..10d3dc030362 100644
--- a/services/credentials/java/com/android/server/credentials/CredentialManagerService.java
+++ b/services/credentials/java/com/android/server/credentials/CredentialManagerService.java
@@ -291,14 +291,15 @@ public final class CredentialManagerService
List<ProviderSession> providerSessions = new ArrayList<>();
for (Pair<CredentialOption, CredentialDescriptionRegistry.FilterResult> result :
activeCredentialContainers) {
- providerSessions.add(
- ProviderRegistryGetSession.createNewSession(
- mContext,
- UserHandle.getCallingUserId(),
- session,
- session.mClientAppInfo,
- result.second.mPackageName,
- result.first));
+ ProviderSession providerSession = ProviderRegistryGetSession.createNewSession(
+ mContext,
+ UserHandle.getCallingUserId(),
+ session,
+ session.mClientAppInfo,
+ result.second.mPackageName,
+ result.first);
+ providerSessions.add(providerSession);
+ session.addProviderSession(providerSession.getComponentName(), providerSession);
}
return providerSessions;
}
@@ -328,10 +329,15 @@ public final class CredentialManagerService
new HashSet<>();
for (CredentialDescriptionRegistry.FilterResult filterResult : filterResults) {
+ Set<String> registeredUnflattenedStrings = CredentialDescriptionRegistry
+ .flatStringToSet(filterResult.mFlattenedRequest);
for (CredentialOption credentialOption : options) {
- if (filterResult.mFlattenedRequest.equals(credentialOption
- .getCredentialRetrievalData()
- .getString(CredentialOption.FLATTENED_REQUEST))) {
+ Set<String> requestedUnflattenedStrings = CredentialDescriptionRegistry
+ .flatStringToSet(credentialOption
+ .getCredentialRetrievalData()
+ .getString(CredentialOption.FLATTENED_REQUEST));
+ if (CredentialDescriptionRegistry.checkForMatch(registeredUnflattenedStrings,
+ requestedUnflattenedStrings)) {
result.add(new Pair<>(credentialOption, filterResult));
}
}
diff --git a/services/credentials/java/com/android/server/credentials/RequestSession.java b/services/credentials/java/com/android/server/credentials/RequestSession.java
index ebd155a379d6..edddba0bedd3 100644
--- a/services/credentials/java/com/android/server/credentials/RequestSession.java
+++ b/services/credentials/java/com/android/server/credentials/RequestSession.java
@@ -128,6 +128,10 @@ abstract class RequestSession<T, U> implements CredentialManagerUi.CredentialMan
this.mInitialPhaseMetric.setCountRequestClassType(requestClassType);
}
+ public void addProviderSession(ComponentName componentName, ProviderSession providerSession) {
+ mProviders.put(componentName.flattenToString(), providerSession);
+ }
+
// UI callbacks
@Override // from CredentialManagerUiCallbacks