Merge "Clear/restore calling app identity prior to ui launch." into udc-dev am: 89b4148cb8
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22144642 Change-Id: Ia9fd333c958f5faa1040c4485373636a1807abb8 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -27,6 +27,7 @@ import android.credentials.GetCredentialResponse;
|
|||||||
import android.credentials.IGetCredentialCallback;
|
import android.credentials.IGetCredentialCallback;
|
||||||
import android.credentials.ui.ProviderData;
|
import android.credentials.ui.ProviderData;
|
||||||
import android.credentials.ui.RequestInfo;
|
import android.credentials.ui.RequestInfo;
|
||||||
|
import android.os.Binder;
|
||||||
import android.os.CancellationSignal;
|
import android.os.CancellationSignal;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.service.credentials.CallingAppInfo;
|
import android.service.credentials.CallingAppInfo;
|
||||||
@@ -84,11 +85,12 @@ public class GetRequestSession extends RequestSession<GetCredentialRequest,
|
|||||||
protected void launchUiWithProviderData(ArrayList<ProviderData> providerDataList) {
|
protected void launchUiWithProviderData(ArrayList<ProviderData> providerDataList) {
|
||||||
mChosenProviderFinalPhaseMetric.setUiCallStartTimeNanoseconds(System.nanoTime());
|
mChosenProviderFinalPhaseMetric.setUiCallStartTimeNanoseconds(System.nanoTime());
|
||||||
try {
|
try {
|
||||||
mClientCallback.onPendingIntent(mCredentialManagerUi.createPendingIntent(
|
Binder.withCleanCallingIdentity(() ->
|
||||||
|
mClientCallback.onPendingIntent(mCredentialManagerUi.createPendingIntent(
|
||||||
RequestInfo.newGetRequestInfo(
|
RequestInfo.newGetRequestInfo(
|
||||||
mRequestId, mClientRequest, mClientAppInfo.getPackageName()),
|
mRequestId, mClientRequest, mClientAppInfo.getPackageName()),
|
||||||
providerDataList));
|
providerDataList)));
|
||||||
} catch (RemoteException e) {
|
} catch (RuntimeException e) {
|
||||||
mChosenProviderFinalPhaseMetric.setUiReturned(false);
|
mChosenProviderFinalPhaseMetric.setUiReturned(false);
|
||||||
respondToClientWithErrorAndFinish(
|
respondToClientWithErrorAndFinish(
|
||||||
GetCredentialException.TYPE_UNKNOWN, "Unable to instantiate selector");
|
GetCredentialException.TYPE_UNKNOWN, "Unable to instantiate selector");
|
||||||
|
|||||||
Reference in New Issue
Block a user