diff --git a/core/java/android/credentials/ui/CreateCredentialProviderData.java b/core/java/android/credentials/ui/CreateCredentialProviderData.java index 629d578c73583..2508d8eb20abb 100644 --- a/core/java/android/credentials/ui/CreateCredentialProviderData.java +++ b/core/java/android/credentials/ui/CreateCredentialProviderData.java @@ -19,7 +19,6 @@ package android.credentials.ui; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.TestApi; -import android.content.pm.ParceledListSlice; import android.os.Parcel; import android.os.Parcelable; @@ -36,7 +35,7 @@ import java.util.List; @TestApi public final class CreateCredentialProviderData extends ProviderData implements Parcelable { @NonNull - private final ParceledListSlice mSaveEntries; + private final List mSaveEntries; @Nullable private final Entry mRemoteEntry; @@ -44,13 +43,13 @@ public final class CreateCredentialProviderData extends ProviderData implements @NonNull String providerFlattenedComponentName, @NonNull List saveEntries, @Nullable Entry remoteEntry) { super(providerFlattenedComponentName); - mSaveEntries = new ParceledListSlice<>(saveEntries); + mSaveEntries = new ArrayList<>(saveEntries); mRemoteEntry = remoteEntry; } @NonNull public List getSaveEntries() { - return mSaveEntries.getList(); + return mSaveEntries; } @Nullable @@ -61,7 +60,9 @@ public final class CreateCredentialProviderData extends ProviderData implements private CreateCredentialProviderData(@NonNull Parcel in) { super(in); - mSaveEntries = in.readParcelable(null, android.content.pm.ParceledListSlice.class); + List credentialEntries = new ArrayList<>(); + in.readTypedList(credentialEntries, Entry.CREATOR); + mSaveEntries = credentialEntries; AnnotationValidations.validate(NonNull.class, null, mSaveEntries); Entry remoteEntry = in.readTypedObject(Entry.CREATOR); @@ -71,7 +72,7 @@ public final class CreateCredentialProviderData extends ProviderData implements @Override public void writeToParcel(@NonNull Parcel dest, int flags) { super.writeToParcel(dest, flags); - dest.writeParcelable(mSaveEntries, flags); + dest.writeTypedList(mSaveEntries); dest.writeTypedObject(mRemoteEntry, flags); } diff --git a/core/java/android/credentials/ui/GetCredentialProviderData.java b/core/java/android/credentials/ui/GetCredentialProviderData.java index 773dee97f7fe1..181475c7ce5af 100644 --- a/core/java/android/credentials/ui/GetCredentialProviderData.java +++ b/core/java/android/credentials/ui/GetCredentialProviderData.java @@ -19,7 +19,6 @@ package android.credentials.ui; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.TestApi; -import android.content.pm.ParceledListSlice; import android.os.Parcel; import android.os.Parcelable; @@ -36,11 +35,11 @@ import java.util.List; @TestApi public final class GetCredentialProviderData extends ProviderData implements Parcelable { @NonNull - private final ParceledListSlice mCredentialEntries; + private final List mCredentialEntries; @NonNull - private final ParceledListSlice mActionChips; + private final List mActionChips; @NonNull - private final ParceledListSlice mAuthenticationEntries; + private final List mAuthenticationEntries; @Nullable private final Entry mRemoteEntry; @@ -50,25 +49,25 @@ public final class GetCredentialProviderData extends ProviderData implements Par @NonNull List authenticationEntries, @Nullable Entry remoteEntry) { super(providerFlattenedComponentName); - mCredentialEntries = new ParceledListSlice<>(credentialEntries); - mActionChips = new ParceledListSlice<>(actionChips); - mAuthenticationEntries = new ParceledListSlice<>(authenticationEntries); + mCredentialEntries = new ArrayList<>(credentialEntries); + mActionChips = new ArrayList<>(actionChips); + mAuthenticationEntries = new ArrayList<>(authenticationEntries); mRemoteEntry = remoteEntry; } @NonNull public List getCredentialEntries() { - return mCredentialEntries.getList(); + return mCredentialEntries; } @NonNull public List getActionChips() { - return mActionChips.getList(); + return mActionChips; } @NonNull public List getAuthenticationEntries() { - return mAuthenticationEntries.getList(); + return mAuthenticationEntries; } @Nullable @@ -78,16 +77,20 @@ public final class GetCredentialProviderData extends ProviderData implements Par private GetCredentialProviderData(@NonNull Parcel in) { super(in); - mCredentialEntries = in.readParcelable(null, - android.content.pm.ParceledListSlice.class); + + List credentialEntries = new ArrayList<>(); + in.readTypedList(credentialEntries, Entry.CREATOR); + mCredentialEntries = credentialEntries; AnnotationValidations.validate(NonNull.class, null, mCredentialEntries); - mActionChips = in.readParcelable(null, - android.content.pm.ParceledListSlice.class); + List actionChips = new ArrayList<>(); + in.readTypedList(actionChips, Entry.CREATOR); + mActionChips = actionChips; AnnotationValidations.validate(NonNull.class, null, mActionChips); - mAuthenticationEntries = in.readParcelable(null, - android.content.pm.ParceledListSlice.class); + List authenticationEntries = new ArrayList<>(); + in.readTypedList(authenticationEntries, AuthenticationEntry.CREATOR); + mAuthenticationEntries = authenticationEntries; AnnotationValidations.validate(NonNull.class, null, mAuthenticationEntries); Entry remoteEntry = in.readTypedObject(Entry.CREATOR); @@ -97,9 +100,9 @@ public final class GetCredentialProviderData extends ProviderData implements Par @Override public void writeToParcel(@NonNull Parcel dest, int flags) { super.writeToParcel(dest, flags); - dest.writeParcelable(mCredentialEntries, flags); - dest.writeParcelable(mActionChips, flags); - dest.writeParcelable(mAuthenticationEntries, flags); + dest.writeTypedList(mCredentialEntries); + dest.writeTypedList(mActionChips); + dest.writeTypedList(mAuthenticationEntries); dest.writeTypedObject(mRemoteEntry, flags); } diff --git a/services/credentials/java/com/android/server/credentials/CredentialManagerUi.java b/services/credentials/java/com/android/server/credentials/CredentialManagerUi.java index b3812c9138de5..25561ed25f209 100644 --- a/services/credentials/java/com/android/server/credentials/CredentialManagerUi.java +++ b/services/credentials/java/com/android/server/credentials/CredentialManagerUi.java @@ -33,6 +33,7 @@ import android.os.IBinder; import android.os.Looper; import android.os.ResultReceiver; import android.service.credentials.CredentialProviderInfoFactory; +import android.util.Log; import android.util.Slog; import java.util.ArrayList; @@ -71,6 +72,8 @@ public class CredentialManagerUi { }; private void handleUiResult(int resultCode, Bundle resultData) { + Log.i("reemademo", "handleUiResult with resultCOde: " + resultCode); + switch (resultCode) { case UserSelectionDialogResult.RESULT_CODE_DIALOG_COMPLETE_WITH_SELECTION: mStatus = UiStatus.IN_PROGRESS; @@ -83,10 +86,14 @@ public class CredentialManagerUi { } break; case UserSelectionDialogResult.RESULT_CODE_DIALOG_USER_CANCELED: + Log.i("reemademo", "RESULT_CODE_DIALOG_USER_CANCELED"); + mStatus = UiStatus.TERMINATED; mCallbacks.onUiCancellation(/* isUserCancellation= */ true); break; case UserSelectionDialogResult.RESULT_CODE_CANCELED_AND_LAUNCHED_SETTINGS: + Log.i("reemademo", "RESULT_CODE_CANCELED_AND_LAUNCHED_SETTINGS"); + mStatus = UiStatus.TERMINATED; mCallbacks.onUiCancellation(/* isUserCancellation= */ false); break; @@ -95,7 +102,7 @@ public class CredentialManagerUi { mCallbacks.onUiSelectorInvocationFailure(); break; default: - Slog.i(TAG, "Unknown error code returned from the UI"); + Log.i("reemademo", "Unknown error code returned from the UI"); mStatus = UiStatus.IN_PROGRESS; mCallbacks.onUiSelectorInvocationFailure(); break;