Loading core/java/android/credentials/CredentialManager.java +4 −1 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.os.OutcomeReceiver; import android.os.RemoteException; import android.provider.DeviceConfig; import android.util.Log; import android.view.autofill.IAutoFillManagerClient; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -135,7 +136,8 @@ public final class CredentialManager { @Nullable CancellationSignal cancellationSignal, @CallbackExecutor @NonNull Executor executor, @NonNull OutcomeReceiver<GetCandidateCredentialsResponse, GetCandidateCredentialsException> callback GetCandidateCredentialsException> callback, @NonNull IAutoFillManagerClient clientCallback ) { requireNonNull(request, "request must not be null"); requireNonNull(callingPackage, "callingPackage must not be null"); Loading @@ -153,6 +155,7 @@ public final class CredentialManager { mService.getCandidateCredentials( request, new GetCandidateCredentialsTransport(executor, callback), clientCallback, callingPackage); } catch (RemoteException e) { e.rethrowFromSystemServer(); Loading core/java/android/credentials/GetCandidateCredentialsResponse.java +44 −3 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.credentials; import android.annotation.Hide; import android.annotation.NonNull; import android.app.PendingIntent; import android.credentials.ui.GetCredentialProviderData; import android.os.Parcel; import android.os.Parcelable; Loading @@ -35,22 +36,39 @@ import java.util.List; */ @Hide public final class GetCandidateCredentialsResponse implements Parcelable { // TODO(b/299321990): Add members @NonNull private final List<GetCredentialProviderData> mCandidateProviderDataList; private final PendingIntent mPendingIntent; private final GetCredentialResponse mGetCredentialResponse; /** * @hide */ @Hide public GetCandidateCredentialsResponse( List<GetCredentialProviderData> candidateProviderDataList GetCredentialResponse getCredentialResponse ) { mCandidateProviderDataList = null; mPendingIntent = null; mGetCredentialResponse = getCredentialResponse; } /** * @hide */ @Hide public GetCandidateCredentialsResponse( List<GetCredentialProviderData> candidateProviderDataList, PendingIntent pendingIntent ) { Preconditions.checkCollectionNotEmpty( candidateProviderDataList, /*valueName=*/ "candidateProviderDataList"); mCandidateProviderDataList = new ArrayList<>(candidateProviderDataList); mPendingIntent = pendingIntent; mGetCredentialResponse = null; } /** Loading @@ -62,17 +80,40 @@ public final class GetCandidateCredentialsResponse implements Parcelable { return mCandidateProviderDataList; } /** * Returns candidate provider data list. * * @hide */ public GetCredentialResponse getGetCredentialResponse() { return mGetCredentialResponse; } /** * Returns candidate provider data list. * * @hide */ public PendingIntent getPendingIntent() { return mPendingIntent; } protected GetCandidateCredentialsResponse(Parcel in) { List<GetCredentialProviderData> candidateProviderDataList = new ArrayList<>(); in.readTypedList(candidateProviderDataList, GetCredentialProviderData.CREATOR); mCandidateProviderDataList = candidateProviderDataList; AnnotationValidations.validate(NonNull.class, null, mCandidateProviderDataList); mPendingIntent = in.readTypedObject(PendingIntent.CREATOR); mGetCredentialResponse = in.readTypedObject(GetCredentialResponse.CREATOR); } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeTypedList(mCandidateProviderDataList); dest.writeTypedObject(mPendingIntent, flags); dest.writeTypedObject(mGetCredentialResponse, flags); } @Override Loading core/java/android/credentials/ICredentialManager.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.credentials.CredentialProviderInfo; import android.credentials.ClearCredentialStateRequest; import android.credentials.CreateCredentialRequest; import android.credentials.GetCandidateCredentialsRequest; import android.view.autofill.IAutoFillManagerClient; import android.credentials.GetCredentialRequest; import android.credentials.RegisterCredentialDescriptionRequest; import android.credentials.UnregisterCredentialDescriptionRequest; Loading @@ -47,7 +48,7 @@ interface ICredentialManager { @nullable ICancellationSignal executeCreateCredential(in CreateCredentialRequest request, in ICreateCredentialCallback callback, String callingPackage); @nullable ICancellationSignal getCandidateCredentials(in GetCredentialRequest request, in IGetCandidateCredentialsCallback callback, String callingPackage); @nullable ICancellationSignal getCandidateCredentials(in GetCredentialRequest request, in IGetCandidateCredentialsCallback callback, in IAutoFillManagerClient clientCallback, String callingPackage); @nullable ICancellationSignal clearCredentialState(in ClearCredentialStateRequest request, in IClearCredentialStateCallback callback, String callingPackage); Loading core/java/android/service/autofill/AutofillService.java +27 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.view.ViewStructure; import android.view.autofill.AutofillId; import android.view.autofill.AutofillManager; import android.view.autofill.AutofillValue; import android.view.autofill.IAutoFillManagerClient; import com.android.internal.os.IResultReceiver; Loading Loading @@ -621,6 +622,23 @@ public abstract class AutofillService extends Service { new FillCallback(callback, request.getId()))); } @Override public void onFillCredentialRequest(FillRequest request, IFillCallback callback, IAutoFillManagerClient autofillClientCallback) { ICancellationSignal transport = CancellationSignal.createTransport(); try { callback.onCancellable(transport); } catch (RemoteException e) { e.rethrowFromSystemServer(); } mHandler.sendMessage(obtainMessage( AutofillService::onFillCredentialRequest, AutofillService.this, request, CancellationSignal.fromTransport(transport), new FillCallback(callback, request.getId()), autofillClientCallback)); } @Override public void onSaveRequest(SaveRequest request, ISaveCallback callback) { mHandler.sendMessage(obtainMessage( Loading Loading @@ -682,6 +700,15 @@ public abstract class AutofillService extends Service { public abstract void onFillRequest(@NonNull FillRequest request, @NonNull CancellationSignal cancellationSignal, @NonNull FillCallback callback); /** * Variant of onFillRequest for internal credential manager proxy autofill service only. * * @hide */ public void onFillCredentialRequest(@NonNull FillRequest request, @NonNull CancellationSignal cancellationSignal, @NonNull FillCallback callback, IAutoFillManagerClient autofillClientCallback) {} /** * Called when the user requests the service to save the contents of a screen. * Loading core/java/android/service/autofill/IAutoFillService.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.service.autofill.FillRequest; import android.service.autofill.IFillCallback; import android.service.autofill.ISaveCallback; import android.service.autofill.SaveRequest; import android.view.autofill.IAutoFillManagerClient; import com.android.internal.os.IResultReceiver; /** Loading @@ -30,6 +31,8 @@ import com.android.internal.os.IResultReceiver; oneway interface IAutoFillService { void onConnectedStateChanged(boolean connected); void onFillRequest(in FillRequest request, in IFillCallback callback); void onFillCredentialRequest(in FillRequest request, in IFillCallback callback, in IAutoFillManagerClient client); void onSaveRequest(in SaveRequest request, in ISaveCallback callback); void onSavedPasswordCountRequest(in IResultReceiver receiver); } Loading
core/java/android/credentials/CredentialManager.java +4 −1 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.os.OutcomeReceiver; import android.os.RemoteException; import android.provider.DeviceConfig; import android.util.Log; import android.view.autofill.IAutoFillManagerClient; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -135,7 +136,8 @@ public final class CredentialManager { @Nullable CancellationSignal cancellationSignal, @CallbackExecutor @NonNull Executor executor, @NonNull OutcomeReceiver<GetCandidateCredentialsResponse, GetCandidateCredentialsException> callback GetCandidateCredentialsException> callback, @NonNull IAutoFillManagerClient clientCallback ) { requireNonNull(request, "request must not be null"); requireNonNull(callingPackage, "callingPackage must not be null"); Loading @@ -153,6 +155,7 @@ public final class CredentialManager { mService.getCandidateCredentials( request, new GetCandidateCredentialsTransport(executor, callback), clientCallback, callingPackage); } catch (RemoteException e) { e.rethrowFromSystemServer(); Loading
core/java/android/credentials/GetCandidateCredentialsResponse.java +44 −3 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.credentials; import android.annotation.Hide; import android.annotation.NonNull; import android.app.PendingIntent; import android.credentials.ui.GetCredentialProviderData; import android.os.Parcel; import android.os.Parcelable; Loading @@ -35,22 +36,39 @@ import java.util.List; */ @Hide public final class GetCandidateCredentialsResponse implements Parcelable { // TODO(b/299321990): Add members @NonNull private final List<GetCredentialProviderData> mCandidateProviderDataList; private final PendingIntent mPendingIntent; private final GetCredentialResponse mGetCredentialResponse; /** * @hide */ @Hide public GetCandidateCredentialsResponse( List<GetCredentialProviderData> candidateProviderDataList GetCredentialResponse getCredentialResponse ) { mCandidateProviderDataList = null; mPendingIntent = null; mGetCredentialResponse = getCredentialResponse; } /** * @hide */ @Hide public GetCandidateCredentialsResponse( List<GetCredentialProviderData> candidateProviderDataList, PendingIntent pendingIntent ) { Preconditions.checkCollectionNotEmpty( candidateProviderDataList, /*valueName=*/ "candidateProviderDataList"); mCandidateProviderDataList = new ArrayList<>(candidateProviderDataList); mPendingIntent = pendingIntent; mGetCredentialResponse = null; } /** Loading @@ -62,17 +80,40 @@ public final class GetCandidateCredentialsResponse implements Parcelable { return mCandidateProviderDataList; } /** * Returns candidate provider data list. * * @hide */ public GetCredentialResponse getGetCredentialResponse() { return mGetCredentialResponse; } /** * Returns candidate provider data list. * * @hide */ public PendingIntent getPendingIntent() { return mPendingIntent; } protected GetCandidateCredentialsResponse(Parcel in) { List<GetCredentialProviderData> candidateProviderDataList = new ArrayList<>(); in.readTypedList(candidateProviderDataList, GetCredentialProviderData.CREATOR); mCandidateProviderDataList = candidateProviderDataList; AnnotationValidations.validate(NonNull.class, null, mCandidateProviderDataList); mPendingIntent = in.readTypedObject(PendingIntent.CREATOR); mGetCredentialResponse = in.readTypedObject(GetCredentialResponse.CREATOR); } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeTypedList(mCandidateProviderDataList); dest.writeTypedObject(mPendingIntent, flags); dest.writeTypedObject(mGetCredentialResponse, flags); } @Override Loading
core/java/android/credentials/ICredentialManager.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.credentials.CredentialProviderInfo; import android.credentials.ClearCredentialStateRequest; import android.credentials.CreateCredentialRequest; import android.credentials.GetCandidateCredentialsRequest; import android.view.autofill.IAutoFillManagerClient; import android.credentials.GetCredentialRequest; import android.credentials.RegisterCredentialDescriptionRequest; import android.credentials.UnregisterCredentialDescriptionRequest; Loading @@ -47,7 +48,7 @@ interface ICredentialManager { @nullable ICancellationSignal executeCreateCredential(in CreateCredentialRequest request, in ICreateCredentialCallback callback, String callingPackage); @nullable ICancellationSignal getCandidateCredentials(in GetCredentialRequest request, in IGetCandidateCredentialsCallback callback, String callingPackage); @nullable ICancellationSignal getCandidateCredentials(in GetCredentialRequest request, in IGetCandidateCredentialsCallback callback, in IAutoFillManagerClient clientCallback, String callingPackage); @nullable ICancellationSignal clearCredentialState(in ClearCredentialStateRequest request, in IClearCredentialStateCallback callback, String callingPackage); Loading
core/java/android/service/autofill/AutofillService.java +27 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.view.ViewStructure; import android.view.autofill.AutofillId; import android.view.autofill.AutofillManager; import android.view.autofill.AutofillValue; import android.view.autofill.IAutoFillManagerClient; import com.android.internal.os.IResultReceiver; Loading Loading @@ -621,6 +622,23 @@ public abstract class AutofillService extends Service { new FillCallback(callback, request.getId()))); } @Override public void onFillCredentialRequest(FillRequest request, IFillCallback callback, IAutoFillManagerClient autofillClientCallback) { ICancellationSignal transport = CancellationSignal.createTransport(); try { callback.onCancellable(transport); } catch (RemoteException e) { e.rethrowFromSystemServer(); } mHandler.sendMessage(obtainMessage( AutofillService::onFillCredentialRequest, AutofillService.this, request, CancellationSignal.fromTransport(transport), new FillCallback(callback, request.getId()), autofillClientCallback)); } @Override public void onSaveRequest(SaveRequest request, ISaveCallback callback) { mHandler.sendMessage(obtainMessage( Loading Loading @@ -682,6 +700,15 @@ public abstract class AutofillService extends Service { public abstract void onFillRequest(@NonNull FillRequest request, @NonNull CancellationSignal cancellationSignal, @NonNull FillCallback callback); /** * Variant of onFillRequest for internal credential manager proxy autofill service only. * * @hide */ public void onFillCredentialRequest(@NonNull FillRequest request, @NonNull CancellationSignal cancellationSignal, @NonNull FillCallback callback, IAutoFillManagerClient autofillClientCallback) {} /** * Called when the user requests the service to save the contents of a screen. * Loading
core/java/android/service/autofill/IAutoFillService.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.service.autofill.FillRequest; import android.service.autofill.IFillCallback; import android.service.autofill.ISaveCallback; import android.service.autofill.SaveRequest; import android.view.autofill.IAutoFillManagerClient; import com.android.internal.os.IResultReceiver; /** Loading @@ -30,6 +31,8 @@ import com.android.internal.os.IResultReceiver; oneway interface IAutoFillService { void onConnectedStateChanged(boolean connected); void onFillRequest(in FillRequest request, in IFillCallback callback); void onFillCredentialRequest(in FillRequest request, in IFillCallback callback, in IAutoFillManagerClient client); void onSaveRequest(in SaveRequest request, in ISaveCallback callback); void onSavedPasswordCountRequest(in IResultReceiver receiver); }