Merge "Revert usage of ParceledListSlice in UI interface" into udc-dev

This commit is contained in:
Reema Bajwa
2023-05-09 19:57:23 +00:00
committed by Android (Google) Code Review
3 changed files with 37 additions and 26 deletions

View File

@@ -19,7 +19,6 @@ package android.credentials.ui;
import android.annotation.NonNull; import android.annotation.NonNull;
import android.annotation.Nullable; import android.annotation.Nullable;
import android.annotation.TestApi; import android.annotation.TestApi;
import android.content.pm.ParceledListSlice;
import android.os.Parcel; import android.os.Parcel;
import android.os.Parcelable; import android.os.Parcelable;
@@ -36,7 +35,7 @@ import java.util.List;
@TestApi @TestApi
public final class CreateCredentialProviderData extends ProviderData implements Parcelable { public final class CreateCredentialProviderData extends ProviderData implements Parcelable {
@NonNull @NonNull
private final ParceledListSlice<Entry> mSaveEntries; private final List<Entry> mSaveEntries;
@Nullable @Nullable
private final Entry mRemoteEntry; private final Entry mRemoteEntry;
@@ -44,13 +43,13 @@ public final class CreateCredentialProviderData extends ProviderData implements
@NonNull String providerFlattenedComponentName, @NonNull List<Entry> saveEntries, @NonNull String providerFlattenedComponentName, @NonNull List<Entry> saveEntries,
@Nullable Entry remoteEntry) { @Nullable Entry remoteEntry) {
super(providerFlattenedComponentName); super(providerFlattenedComponentName);
mSaveEntries = new ParceledListSlice<>(saveEntries); mSaveEntries = new ArrayList<>(saveEntries);
mRemoteEntry = remoteEntry; mRemoteEntry = remoteEntry;
} }
@NonNull @NonNull
public List<Entry> getSaveEntries() { public List<Entry> getSaveEntries() {
return mSaveEntries.getList(); return mSaveEntries;
} }
@Nullable @Nullable
@@ -61,7 +60,9 @@ public final class CreateCredentialProviderData extends ProviderData implements
private CreateCredentialProviderData(@NonNull Parcel in) { private CreateCredentialProviderData(@NonNull Parcel in) {
super(in); super(in);
mSaveEntries = in.readParcelable(null, android.content.pm.ParceledListSlice.class); List<Entry> credentialEntries = new ArrayList<>();
in.readTypedList(credentialEntries, Entry.CREATOR);
mSaveEntries = credentialEntries;
AnnotationValidations.validate(NonNull.class, null, mSaveEntries); AnnotationValidations.validate(NonNull.class, null, mSaveEntries);
Entry remoteEntry = in.readTypedObject(Entry.CREATOR); Entry remoteEntry = in.readTypedObject(Entry.CREATOR);
@@ -71,7 +72,7 @@ public final class CreateCredentialProviderData extends ProviderData implements
@Override @Override
public void writeToParcel(@NonNull Parcel dest, int flags) { public void writeToParcel(@NonNull Parcel dest, int flags) {
super.writeToParcel(dest, flags); super.writeToParcel(dest, flags);
dest.writeParcelable(mSaveEntries, flags); dest.writeTypedList(mSaveEntries);
dest.writeTypedObject(mRemoteEntry, flags); dest.writeTypedObject(mRemoteEntry, flags);
} }

View File

@@ -19,7 +19,6 @@ package android.credentials.ui;
import android.annotation.NonNull; import android.annotation.NonNull;
import android.annotation.Nullable; import android.annotation.Nullable;
import android.annotation.TestApi; import android.annotation.TestApi;
import android.content.pm.ParceledListSlice;
import android.os.Parcel; import android.os.Parcel;
import android.os.Parcelable; import android.os.Parcelable;
@@ -36,11 +35,11 @@ import java.util.List;
@TestApi @TestApi
public final class GetCredentialProviderData extends ProviderData implements Parcelable { public final class GetCredentialProviderData extends ProviderData implements Parcelable {
@NonNull @NonNull
private final ParceledListSlice<Entry> mCredentialEntries; private final List<Entry> mCredentialEntries;
@NonNull @NonNull
private final ParceledListSlice<Entry> mActionChips; private final List<Entry> mActionChips;
@NonNull @NonNull
private final ParceledListSlice<AuthenticationEntry> mAuthenticationEntries; private final List<AuthenticationEntry> mAuthenticationEntries;
@Nullable @Nullable
private final Entry mRemoteEntry; private final Entry mRemoteEntry;
@@ -50,25 +49,25 @@ public final class GetCredentialProviderData extends ProviderData implements Par
@NonNull List<AuthenticationEntry> authenticationEntries, @NonNull List<AuthenticationEntry> authenticationEntries,
@Nullable Entry remoteEntry) { @Nullable Entry remoteEntry) {
super(providerFlattenedComponentName); super(providerFlattenedComponentName);
mCredentialEntries = new ParceledListSlice<>(credentialEntries); mCredentialEntries = new ArrayList<>(credentialEntries);
mActionChips = new ParceledListSlice<>(actionChips); mActionChips = new ArrayList<>(actionChips);
mAuthenticationEntries = new ParceledListSlice<>(authenticationEntries); mAuthenticationEntries = new ArrayList<>(authenticationEntries);
mRemoteEntry = remoteEntry; mRemoteEntry = remoteEntry;
} }
@NonNull @NonNull
public List<Entry> getCredentialEntries() { public List<Entry> getCredentialEntries() {
return mCredentialEntries.getList(); return mCredentialEntries;
} }
@NonNull @NonNull
public List<Entry> getActionChips() { public List<Entry> getActionChips() {
return mActionChips.getList(); return mActionChips;
} }
@NonNull @NonNull
public List<AuthenticationEntry> getAuthenticationEntries() { public List<AuthenticationEntry> getAuthenticationEntries() {
return mAuthenticationEntries.getList(); return mAuthenticationEntries;
} }
@Nullable @Nullable
@@ -78,16 +77,20 @@ public final class GetCredentialProviderData extends ProviderData implements Par
private GetCredentialProviderData(@NonNull Parcel in) { private GetCredentialProviderData(@NonNull Parcel in) {
super(in); super(in);
mCredentialEntries = in.readParcelable(null,
android.content.pm.ParceledListSlice.class); List<Entry> credentialEntries = new ArrayList<>();
in.readTypedList(credentialEntries, Entry.CREATOR);
mCredentialEntries = credentialEntries;
AnnotationValidations.validate(NonNull.class, null, mCredentialEntries); AnnotationValidations.validate(NonNull.class, null, mCredentialEntries);
mActionChips = in.readParcelable(null, List<Entry> actionChips = new ArrayList<>();
android.content.pm.ParceledListSlice.class); in.readTypedList(actionChips, Entry.CREATOR);
mActionChips = actionChips;
AnnotationValidations.validate(NonNull.class, null, mActionChips); AnnotationValidations.validate(NonNull.class, null, mActionChips);
mAuthenticationEntries = in.readParcelable(null, List<AuthenticationEntry> authenticationEntries = new ArrayList<>();
android.content.pm.ParceledListSlice.class); in.readTypedList(authenticationEntries, AuthenticationEntry.CREATOR);
mAuthenticationEntries = authenticationEntries;
AnnotationValidations.validate(NonNull.class, null, mAuthenticationEntries); AnnotationValidations.validate(NonNull.class, null, mAuthenticationEntries);
Entry remoteEntry = in.readTypedObject(Entry.CREATOR); Entry remoteEntry = in.readTypedObject(Entry.CREATOR);
@@ -97,9 +100,9 @@ public final class GetCredentialProviderData extends ProviderData implements Par
@Override @Override
public void writeToParcel(@NonNull Parcel dest, int flags) { public void writeToParcel(@NonNull Parcel dest, int flags) {
super.writeToParcel(dest, flags); super.writeToParcel(dest, flags);
dest.writeParcelable(mCredentialEntries, flags); dest.writeTypedList(mCredentialEntries);
dest.writeParcelable(mActionChips, flags); dest.writeTypedList(mActionChips);
dest.writeParcelable(mAuthenticationEntries, flags); dest.writeTypedList(mAuthenticationEntries);
dest.writeTypedObject(mRemoteEntry, flags); dest.writeTypedObject(mRemoteEntry, flags);
} }

View File

@@ -33,6 +33,7 @@ import android.os.IBinder;
import android.os.Looper; import android.os.Looper;
import android.os.ResultReceiver; import android.os.ResultReceiver;
import android.service.credentials.CredentialProviderInfoFactory; import android.service.credentials.CredentialProviderInfoFactory;
import android.util.Log;
import android.util.Slog; import android.util.Slog;
import java.util.ArrayList; import java.util.ArrayList;
@@ -71,6 +72,8 @@ public class CredentialManagerUi {
}; };
private void handleUiResult(int resultCode, Bundle resultData) { private void handleUiResult(int resultCode, Bundle resultData) {
Log.i("reemademo", "handleUiResult with resultCOde: " + resultCode);
switch (resultCode) { switch (resultCode) {
case UserSelectionDialogResult.RESULT_CODE_DIALOG_COMPLETE_WITH_SELECTION: case UserSelectionDialogResult.RESULT_CODE_DIALOG_COMPLETE_WITH_SELECTION:
mStatus = UiStatus.IN_PROGRESS; mStatus = UiStatus.IN_PROGRESS;
@@ -83,10 +86,14 @@ public class CredentialManagerUi {
} }
break; break;
case UserSelectionDialogResult.RESULT_CODE_DIALOG_USER_CANCELED: case UserSelectionDialogResult.RESULT_CODE_DIALOG_USER_CANCELED:
Log.i("reemademo", "RESULT_CODE_DIALOG_USER_CANCELED");
mStatus = UiStatus.TERMINATED; mStatus = UiStatus.TERMINATED;
mCallbacks.onUiCancellation(/* isUserCancellation= */ true); mCallbacks.onUiCancellation(/* isUserCancellation= */ true);
break; break;
case UserSelectionDialogResult.RESULT_CODE_CANCELED_AND_LAUNCHED_SETTINGS: case UserSelectionDialogResult.RESULT_CODE_CANCELED_AND_LAUNCHED_SETTINGS:
Log.i("reemademo", "RESULT_CODE_CANCELED_AND_LAUNCHED_SETTINGS");
mStatus = UiStatus.TERMINATED; mStatus = UiStatus.TERMINATED;
mCallbacks.onUiCancellation(/* isUserCancellation= */ false); mCallbacks.onUiCancellation(/* isUserCancellation= */ false);
break; break;
@@ -95,7 +102,7 @@ public class CredentialManagerUi {
mCallbacks.onUiSelectorInvocationFailure(); mCallbacks.onUiSelectorInvocationFailure();
break; break;
default: 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; mStatus = UiStatus.IN_PROGRESS;
mCallbacks.onUiSelectorInvocationFailure(); mCallbacks.onUiSelectorInvocationFailure();
break; break;