diff --git a/services/credentials/java/com/android/server/credentials/CredentialManagerService.java b/services/credentials/java/com/android/server/credentials/CredentialManagerService.java index bb26fa949aa80..d9a6d5410a6a8 100644 --- a/services/credentials/java/com/android/server/credentials/CredentialManagerService.java +++ b/services/credentials/java/com/android/server/credentials/CredentialManagerService.java @@ -49,8 +49,6 @@ import android.os.RemoteException; import android.os.UserHandle; import android.provider.DeviceConfig; import android.provider.Settings; -import android.service.credentials.BeginCreateCredentialRequest; -import android.service.credentials.BeginGetCredentialRequest; import android.service.credentials.CallingAppInfo; import android.service.credentials.CredentialProviderInfo; import android.text.TextUtils; @@ -364,11 +362,7 @@ public final class CredentialManagerService } // Iterate over all provider sessions and invoke the request - providerSessions.forEach( - providerGetSession -> providerGetSession - .getRemoteCredentialService().onBeginGetCredential( - (BeginGetCredentialRequest) providerGetSession.getProviderRequest(), - /*callback=*/providerGetSession)); + providerSessions.forEach(ProviderSession::invokeSession); return cancelTransport; } @@ -412,12 +406,7 @@ public final class CredentialManagerService // Iterate over all provider sessions and invoke the request providerSessions.forEach( - providerCreateSession -> providerCreateSession - .getRemoteCredentialService() - .onCreateCredential( - (BeginCreateCredentialRequest) - providerCreateSession.getProviderRequest(), - /* callback= */ providerCreateSession)); + ProviderSession::invokeSession); return cancelTransport; } @@ -530,14 +519,7 @@ public final class CredentialManagerService // Iterate over all provider sessions and invoke the request providerSessions.forEach( - providerClearSession -> { - providerClearSession - .getRemoteCredentialService() - .onClearCredentialState( - (android.service.credentials.ClearCredentialStateRequest) - providerClearSession.getProviderRequest(), - /* callback= */ providerClearSession); - }); + ProviderSession::invokeSession); return cancelTransport; } diff --git a/services/credentials/java/com/android/server/credentials/ProviderClearSession.java b/services/credentials/java/com/android/server/credentials/ProviderClearSession.java index 48e35b2d0643f..b1126499d56fa 100644 --- a/services/credentials/java/com/android/server/credentials/ProviderClearSession.java +++ b/services/credentials/java/com/android/server/credentials/ProviderClearSession.java @@ -115,4 +115,11 @@ public final class ProviderClearSession extends ProviderSession prepareUiSaveEntries(@NonNull List saveEntries) { Log.i(TAG, "in populateUiSaveEntries"); List uiSaveEntries = new ArrayList<>(); diff --git a/services/credentials/java/com/android/server/credentials/ProviderGetSession.java b/services/credentials/java/com/android/server/credentials/ProviderGetSession.java index 95f231347ad10..b4058ed19725d 100644 --- a/services/credentials/java/com/android/server/credentials/ProviderGetSession.java +++ b/services/credentials/java/com/android/server/credentials/ProviderGetSession.java @@ -230,6 +230,13 @@ public final class ProviderGetSession extends ProviderSession /** Should be overridden to handle the selected entry from the UI. */ protected abstract void onUiEntrySelected(String entryType, String entryId, ProviderPendingIntentResponse providerPendingIntentResponse); + + /** Should be overridden to invoke the provider at a defined location. Helpful for + * situations such as metric generation. */ + protected abstract void invokeSession(); }