Loading services/credentials/java/com/android/server/credentials/CredentialManagerUi.java +27 −2 Original line number Diff line number Diff line Loading @@ -17,8 +17,11 @@ package com.android.server.credentials; import android.annotation.NonNull; import android.app.PendingIntent; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.ServiceInfo; import android.credentials.ui.DisabledProviderData; import android.credentials.ui.IntentFactory; import android.credentials.ui.ProviderData; import android.credentials.ui.RequestInfo; Loading @@ -27,11 +30,14 @@ import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.ResultReceiver; import android.service.credentials.CredentialProviderInfo; import android.util.Log; import android.util.Slog; import java.util.ArrayList; import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; /** Initiates the Credential Manager UI and receives results. */ public class CredentialManagerUi { Loading Loading @@ -89,8 +95,27 @@ public class CredentialManagerUi { public PendingIntent createPendingIntent( RequestInfo requestInfo, ArrayList<ProviderData> providerDataList) { Log.i(TAG, "In createPendingIntent"); Intent intent = IntentFactory.newIntent(requestInfo, providerDataList, new ArrayList<>(), mResultReceiver) ArrayList<DisabledProviderData> disabledProviderDataList = new ArrayList<>(); Set<String> enabledProviders = providerDataList.stream() .map(ProviderData::getProviderFlattenedComponentName) .collect(Collectors.toUnmodifiableSet()); // TODO("Filter out non user configurable providers") Set<String> allProviders = CredentialProviderInfo.getAvailableServices(mContext, mUserId).stream() .map(CredentialProviderInfo::getServiceInfo) .map(ServiceInfo::getComponentName) .map(ComponentName::flattenToString) .collect(Collectors.toUnmodifiableSet()); for (String provider: allProviders) { if (!enabledProviders.contains(provider)) { disabledProviderDataList.add(new DisabledProviderData(provider)); } } Intent intent = IntentFactory.newIntent(requestInfo, providerDataList, disabledProviderDataList, mResultReceiver) .setAction(UUID.randomUUID().toString()); //TODO: Create unique pending intent using request code and cancel any pre-existing pending // intents Loading Loading
services/credentials/java/com/android/server/credentials/CredentialManagerUi.java +27 −2 Original line number Diff line number Diff line Loading @@ -17,8 +17,11 @@ package com.android.server.credentials; import android.annotation.NonNull; import android.app.PendingIntent; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.ServiceInfo; import android.credentials.ui.DisabledProviderData; import android.credentials.ui.IntentFactory; import android.credentials.ui.ProviderData; import android.credentials.ui.RequestInfo; Loading @@ -27,11 +30,14 @@ import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.ResultReceiver; import android.service.credentials.CredentialProviderInfo; import android.util.Log; import android.util.Slog; import java.util.ArrayList; import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; /** Initiates the Credential Manager UI and receives results. */ public class CredentialManagerUi { Loading Loading @@ -89,8 +95,27 @@ public class CredentialManagerUi { public PendingIntent createPendingIntent( RequestInfo requestInfo, ArrayList<ProviderData> providerDataList) { Log.i(TAG, "In createPendingIntent"); Intent intent = IntentFactory.newIntent(requestInfo, providerDataList, new ArrayList<>(), mResultReceiver) ArrayList<DisabledProviderData> disabledProviderDataList = new ArrayList<>(); Set<String> enabledProviders = providerDataList.stream() .map(ProviderData::getProviderFlattenedComponentName) .collect(Collectors.toUnmodifiableSet()); // TODO("Filter out non user configurable providers") Set<String> allProviders = CredentialProviderInfo.getAvailableServices(mContext, mUserId).stream() .map(CredentialProviderInfo::getServiceInfo) .map(ServiceInfo::getComponentName) .map(ComponentName::flattenToString) .collect(Collectors.toUnmodifiableSet()); for (String provider: allProviders) { if (!enabledProviders.contains(provider)) { disabledProviderDataList.add(new DisabledProviderData(provider)); } } Intent intent = IntentFactory.newIntent(requestInfo, providerDataList, disabledProviderDataList, mResultReceiver) .setAction(UUID.randomUUID().toString()); //TODO: Create unique pending intent using request code and cancel any pre-existing pending // intents Loading