Loading core/java/android/service/credentials/CredentialProviderInfoFactory.java +0 −1 Original line number Diff line number Diff line Loading @@ -54,7 +54,6 @@ import org.xmlpull.v1.XmlPullParserException; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.List; Loading services/credentials/java/com/android/server/credentials/CreateRequestSession.java +4 −2 Original line number Diff line number Diff line Loading @@ -89,14 +89,16 @@ public final class CreateRequestSession extends RequestSession<CreateCredentialR protected void launchUiWithProviderData(ArrayList<ProviderData> providerDataList) { mRequestSessionMetric.collectUiCallStartTime(System.nanoTime()); mCredentialManagerUi.setStatus(CredentialManagerUi.UiStatus.USER_INTERACTION); cancelExistingPendingIntent(); try { mClientCallback.onPendingIntent(mCredentialManagerUi.createPendingIntent( mPendingIntent = mCredentialManagerUi.createPendingIntent( RequestInfo.newCreateRequestInfo( mRequestId, mClientRequest, mClientAppInfo.getPackageName(), PermissionUtils.hasPermission(mContext, mClientAppInfo.getPackageName(), Manifest.permission.CREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERS)), providerDataList)); providerDataList); mClientCallback.onPendingIntent(mPendingIntent); } catch (RemoteException e) { mRequestSessionMetric.collectUiReturnedFinalPhase(/*uiReturned=*/ false); mCredentialManagerUi.setStatus(CredentialManagerUi.UiStatus.TERMINATED); Loading services/credentials/java/com/android/server/credentials/GetRequestSession.java +4 −2 Original line number Diff line number Diff line Loading @@ -89,11 +89,13 @@ public class GetRequestSession extends RequestSession<GetCredentialRequest, protected void launchUiWithProviderData(ArrayList<ProviderData> providerDataList) { mRequestSessionMetric.collectUiCallStartTime(System.nanoTime()); mCredentialManagerUi.setStatus(CredentialManagerUi.UiStatus.USER_INTERACTION); cancelExistingPendingIntent(); try { mClientCallback.onPendingIntent(mCredentialManagerUi.createPendingIntent( mPendingIntent = mCredentialManagerUi.createPendingIntent( RequestInfo.newGetRequestInfo( mRequestId, mClientRequest, mClientAppInfo.getPackageName()), providerDataList)); providerDataList); mClientCallback.onPendingIntent(mPendingIntent); } catch (RemoteException e) { mRequestSessionMetric.collectUiReturnedFinalPhase(/*uiReturned=*/ false); mCredentialManagerUi.setStatus(CredentialManagerUi.UiStatus.TERMINATED); Loading services/credentials/java/com/android/server/credentials/RequestSession.java +15 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.server.credentials; import android.annotation.NonNull; import android.annotation.UserIdInt; import android.app.PendingIntent; import android.content.ComponentName; import android.content.Context; import android.content.Intent; Loading Loading @@ -90,6 +91,8 @@ abstract class RequestSession<T, U, V> implements CredentialManagerUi.Credential private final Set<ComponentName> mEnabledProviders; protected PendingIntent mPendingIntent; @NonNull protected RequestSessionStatus mRequestSessionStatus = RequestSessionStatus.IN_PROGRESS; Loading Loading @@ -202,11 +205,23 @@ abstract class RequestSession<T, U, V> implements CredentialManagerUi.Credential if (propagateCancellation) { mProviders.values().forEach(ProviderSession::cancelProviderRemoteSession); } cancelExistingPendingIntent(); mRequestSessionStatus = RequestSessionStatus.COMPLETE; mProviders.clear(); clearRequestSessionLocked(); } void cancelExistingPendingIntent() { if (mPendingIntent != null) { try { mPendingIntent.cancel(); mPendingIntent = null; } catch (Exception e) { Slog.e(TAG, "Unable to cancel existing pending intent", e); } } } private void clearRequestSessionLocked() { synchronized (mLock) { mSessionCallback.onFinishRequestSession(mUserId, mRequestId); Loading Loading
core/java/android/service/credentials/CredentialProviderInfoFactory.java +0 −1 Original line number Diff line number Diff line Loading @@ -54,7 +54,6 @@ import org.xmlpull.v1.XmlPullParserException; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.List; Loading
services/credentials/java/com/android/server/credentials/CreateRequestSession.java +4 −2 Original line number Diff line number Diff line Loading @@ -89,14 +89,16 @@ public final class CreateRequestSession extends RequestSession<CreateCredentialR protected void launchUiWithProviderData(ArrayList<ProviderData> providerDataList) { mRequestSessionMetric.collectUiCallStartTime(System.nanoTime()); mCredentialManagerUi.setStatus(CredentialManagerUi.UiStatus.USER_INTERACTION); cancelExistingPendingIntent(); try { mClientCallback.onPendingIntent(mCredentialManagerUi.createPendingIntent( mPendingIntent = mCredentialManagerUi.createPendingIntent( RequestInfo.newCreateRequestInfo( mRequestId, mClientRequest, mClientAppInfo.getPackageName(), PermissionUtils.hasPermission(mContext, mClientAppInfo.getPackageName(), Manifest.permission.CREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERS)), providerDataList)); providerDataList); mClientCallback.onPendingIntent(mPendingIntent); } catch (RemoteException e) { mRequestSessionMetric.collectUiReturnedFinalPhase(/*uiReturned=*/ false); mCredentialManagerUi.setStatus(CredentialManagerUi.UiStatus.TERMINATED); Loading
services/credentials/java/com/android/server/credentials/GetRequestSession.java +4 −2 Original line number Diff line number Diff line Loading @@ -89,11 +89,13 @@ public class GetRequestSession extends RequestSession<GetCredentialRequest, protected void launchUiWithProviderData(ArrayList<ProviderData> providerDataList) { mRequestSessionMetric.collectUiCallStartTime(System.nanoTime()); mCredentialManagerUi.setStatus(CredentialManagerUi.UiStatus.USER_INTERACTION); cancelExistingPendingIntent(); try { mClientCallback.onPendingIntent(mCredentialManagerUi.createPendingIntent( mPendingIntent = mCredentialManagerUi.createPendingIntent( RequestInfo.newGetRequestInfo( mRequestId, mClientRequest, mClientAppInfo.getPackageName()), providerDataList)); providerDataList); mClientCallback.onPendingIntent(mPendingIntent); } catch (RemoteException e) { mRequestSessionMetric.collectUiReturnedFinalPhase(/*uiReturned=*/ false); mCredentialManagerUi.setStatus(CredentialManagerUi.UiStatus.TERMINATED); Loading
services/credentials/java/com/android/server/credentials/RequestSession.java +15 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.server.credentials; import android.annotation.NonNull; import android.annotation.UserIdInt; import android.app.PendingIntent; import android.content.ComponentName; import android.content.Context; import android.content.Intent; Loading Loading @@ -90,6 +91,8 @@ abstract class RequestSession<T, U, V> implements CredentialManagerUi.Credential private final Set<ComponentName> mEnabledProviders; protected PendingIntent mPendingIntent; @NonNull protected RequestSessionStatus mRequestSessionStatus = RequestSessionStatus.IN_PROGRESS; Loading Loading @@ -202,11 +205,23 @@ abstract class RequestSession<T, U, V> implements CredentialManagerUi.Credential if (propagateCancellation) { mProviders.values().forEach(ProviderSession::cancelProviderRemoteSession); } cancelExistingPendingIntent(); mRequestSessionStatus = RequestSessionStatus.COMPLETE; mProviders.clear(); clearRequestSessionLocked(); } void cancelExistingPendingIntent() { if (mPendingIntent != null) { try { mPendingIntent.cancel(); mPendingIntent = null; } catch (Exception e) { Slog.e(TAG, "Unable to cancel existing pending intent", e); } } } private void clearRequestSessionLocked() { synchronized (mLock) { mSessionCallback.onFinishRequestSession(mUserId, mRequestId); Loading