diff --git a/services/credentials/java/com/android/server/credentials/CredentialManagerService.java b/services/credentials/java/com/android/server/credentials/CredentialManagerService.java index f76cf4993ebce..4f479bf8559e4 100644 --- a/services/credentials/java/com/android/server/credentials/CredentialManagerService.java +++ b/services/credentials/java/com/android/server/credentials/CredentialManagerService.java @@ -45,8 +45,6 @@ import android.os.ICancellationSignal; import android.os.RemoteException; import android.os.UserHandle; 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; @@ -302,11 +300,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; } @@ -350,12 +344,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; } @@ -468,14 +457,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(); }