diff --git a/sshauthentication-api/src/main/java/org/openintents/ssh/authentication/util/SshAuthenticationApiUtils.java b/sshauthentication-api/src/main/java/org/openintents/ssh/authentication/util/SshAuthenticationApiUtils.java index 8402b9fef..e6c94a382 100644 --- a/sshauthentication-api/src/main/java/org/openintents/ssh/authentication/util/SshAuthenticationApiUtils.java +++ b/sshauthentication-api/src/main/java/org/openintents/ssh/authentication/util/SshAuthenticationApiUtils.java @@ -26,16 +26,31 @@ import java.util.List; public class SshAuthenticationApiUtils { - public static List getAgentProviders(Context context) { - Intent intent = new Intent(SshAuthenticationApi.SERVICE_INTENT); - List resolvedInfo = context.getPackageManager().queryIntentServices(intent, 0); + public static List getAuthenticationProviderPackageNames(Context context) { + List resolvedInfo = getAuthenticationProviderInfo(context); + return getAuthenticationProviderPackageNames(resolvedInfo); + } + + public static List getAuthenticationProviderPackageNames(List resolvedInfo) { ArrayList providers = new ArrayList<>(); - if (resolvedInfo != null) { - for (ResolveInfo resolveInfoEntry : resolvedInfo) { - providers.add(resolveInfoEntry.serviceInfo.packageName); - } + for (ResolveInfo resolveInfoEntry : resolvedInfo) { + providers.add(resolveInfoEntry.serviceInfo.packageName); } return providers; } + public static List getAuthenticationProviderLabel(Context context, List resolvedInfo) { + ArrayList providerLabel = new ArrayList<>(); + for (ResolveInfo resolveInfoEntry : resolvedInfo) { + CharSequence label = context.getPackageManager() + .getApplicationLabel(resolveInfoEntry.serviceInfo.applicationInfo); + providerLabel.add(label.toString()); + } + return providerLabel; + } + + public static List getAuthenticationProviderInfo(Context context) { + Intent intent = new Intent(SshAuthenticationApi.SERVICE_INTENT); + return context.getPackageManager().queryIntentServices(intent, 0); + } }