Merge "Use ParceledListSlice for get & create responses" into udc-dev

This commit is contained in:
TreeHugger Robot
2023-04-11 01:59:59 +00:00
committed by Android (Google) Code Review
4 changed files with 69 additions and 66 deletions

View File

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

View File

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

View File

@@ -20,6 +20,7 @@ import android.Manifest;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.content.pm.ParceledListSlice;
import android.os.Parcel;
import android.os.Parcelable;
@@ -33,7 +34,7 @@ import java.util.Objects;
* Response to a {@link BeginCreateCredentialRequest}.
*/
public final class BeginCreateCredentialResponse implements Parcelable {
private final @NonNull List<CreateEntry> mCreateEntries;
private final @NonNull ParceledListSlice<CreateEntry> mCreateEntries;
private final @Nullable RemoteEntry mRemoteCreateEntry;
/**
@@ -41,19 +42,19 @@ public final class BeginCreateCredentialResponse implements Parcelable {
* to return.
*/
public BeginCreateCredentialResponse() {
this(/*createEntries=*/new ArrayList<>(), /*remoteCreateEntry=*/null);
this(/*createEntries=*/new ParceledListSlice<>(new ArrayList<>()),
/*remoteCreateEntry=*/null);
}
private BeginCreateCredentialResponse(@NonNull Parcel in) {
List<CreateEntry> createEntries = new ArrayList<>();
in.readTypedList(createEntries, CreateEntry.CREATOR);
mCreateEntries = createEntries;
mCreateEntries = in.readParcelable(
null, android.content.pm.ParceledListSlice.class);
mRemoteCreateEntry = in.readTypedObject(RemoteEntry.CREATOR);
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeTypedList(mCreateEntries);
dest.writeParcelable(mCreateEntries, flags);
dest.writeTypedObject(mRemoteCreateEntry, flags);
}
@@ -76,7 +77,7 @@ public final class BeginCreateCredentialResponse implements Parcelable {
};
/* package-private */ BeginCreateCredentialResponse(
@NonNull List<CreateEntry> createEntries,
@NonNull ParceledListSlice<CreateEntry> createEntries,
@Nullable RemoteEntry remoteCreateEntry) {
this.mCreateEntries = createEntries;
com.android.internal.util.AnnotationValidations.validate(
@@ -86,7 +87,7 @@ public final class BeginCreateCredentialResponse implements Parcelable {
/** Returns the list of create entries to be displayed on the UI. */
public @NonNull List<CreateEntry> getCreateEntries() {
return mCreateEntries;
return mCreateEntries.getList();
}
/** Returns the remote create entry to be displayed on the UI. */
@@ -159,7 +160,9 @@ public final class BeginCreateCredentialResponse implements Parcelable {
* Builds a new instance of {@link BeginCreateCredentialResponse}.
*/
public @NonNull BeginCreateCredentialResponse build() {
return new BeginCreateCredentialResponse(mCreateEntries, mRemoteCreateEntry);
return new BeginCreateCredentialResponse(
new ParceledListSlice<>(mCreateEntries),
mRemoteCreateEntry);
}
}
}

View File

@@ -20,6 +20,7 @@ import android.Manifest;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.content.pm.ParceledListSlice;
import android.os.Parcel;
import android.os.Parcelable;
@@ -35,13 +36,13 @@ import java.util.Objects;
*/
public final class BeginGetCredentialResponse implements Parcelable {
/** List of credential entries to be displayed on the UI. */
private final @NonNull List<CredentialEntry> mCredentialEntries;
private final @NonNull ParceledListSlice<CredentialEntry> mCredentialEntries;
/** List of authentication entries to be displayed on the UI. */
private final @NonNull List<Action> mAuthenticationEntries;
private final @NonNull ParceledListSlice<Action> mAuthenticationEntries;
/** List of provider actions to be displayed on the UI. */
private final @NonNull List<Action> mActions;
private final @NonNull ParceledListSlice<Action> mActions;
/** Remote credential entry to get the response from a different device. */
private final @Nullable RemoteEntry mRemoteCredentialEntry;
@@ -51,31 +52,30 @@ public final class BeginGetCredentialResponse implements Parcelable {
* or {@link Action} to return.
*/
public BeginGetCredentialResponse() {
this(/*credentialEntries=*/new ArrayList<>(),
/*authenticationActions=*/new ArrayList<>(),
/*actions=*/new ArrayList<>(),
this(/*credentialEntries=*/new ParceledListSlice<>(new ArrayList<>()),
/*authenticationEntries=*/new ParceledListSlice<>(new ArrayList<>()),
/*actions=*/new ParceledListSlice<>(new ArrayList<>()),
/*remoteCredentialEntry=*/null);
}
private BeginGetCredentialResponse(@NonNull List<CredentialEntry> credentialEntries,
@NonNull List<Action> authenticationEntries, @NonNull List<Action> actions,
private BeginGetCredentialResponse(
@NonNull ParceledListSlice<CredentialEntry> credentialEntries,
@NonNull ParceledListSlice<Action> authenticationEntries,
@NonNull ParceledListSlice<Action> actions,
@Nullable RemoteEntry remoteCredentialEntry) {
mCredentialEntries = new ArrayList<>(credentialEntries);
mAuthenticationEntries = new ArrayList<>(authenticationEntries);
mActions = new ArrayList<>(actions);
mCredentialEntries = credentialEntries;
mAuthenticationEntries = authenticationEntries;
mActions = actions;
mRemoteCredentialEntry = remoteCredentialEntry;
}
private BeginGetCredentialResponse(@NonNull Parcel in) {
List<CredentialEntry> credentialEntries = new ArrayList<>();
in.readTypedList(credentialEntries, CredentialEntry.CREATOR);
mCredentialEntries = credentialEntries;
List<Action> authenticationEntries = new ArrayList<>();
in.readTypedList(authenticationEntries, Action.CREATOR);
mAuthenticationEntries = authenticationEntries;
List<Action> actions = new ArrayList<>();
in.readTypedList(actions, Action.CREATOR);
mActions = actions;
mCredentialEntries = in.readParcelable(
null, android.content.pm.ParceledListSlice.class);
mAuthenticationEntries = in.readParcelable(
null, android.content.pm.ParceledListSlice.class);
mActions = in.readParcelable(
null, android.content.pm.ParceledListSlice.class);
mRemoteCredentialEntry = in.readTypedObject(RemoteEntry.CREATOR);
}
@@ -99,9 +99,9 @@ public final class BeginGetCredentialResponse implements Parcelable {
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeTypedList(mCredentialEntries, flags);
dest.writeTypedList(mAuthenticationEntries, flags);
dest.writeTypedList(mActions, flags);
dest.writeParcelable(mCredentialEntries, flags);
dest.writeParcelable(mAuthenticationEntries, flags);
dest.writeParcelable(mActions, flags);
dest.writeTypedObject(mRemoteCredentialEntry, flags);
}
@@ -109,21 +109,22 @@ public final class BeginGetCredentialResponse implements Parcelable {
* Returns the list of credential entries to be displayed on the UI.
*/
public @NonNull List<CredentialEntry> getCredentialEntries() {
return mCredentialEntries;
return mCredentialEntries.getList();
}
/**
* Returns the list of authentication entries to be displayed on the UI.
*/
public @NonNull List<Action> getAuthenticationActions() {
return mAuthenticationEntries;
return mAuthenticationEntries.getList();
}
/**
* Returns the list of actions to be displayed on the UI.
*/
public @NonNull List<Action> getActions() {
return mActions;
return mActions.getList();
}
/**
@@ -268,8 +269,11 @@ public final class BeginGetCredentialResponse implements Parcelable {
* Builds a {@link BeginGetCredentialResponse} instance.
*/
public @NonNull BeginGetCredentialResponse build() {
return new BeginGetCredentialResponse(mCredentialEntries, mAuthenticationEntries,
mActions, mRemoteCredentialEntry);
return new BeginGetCredentialResponse(
new ParceledListSlice<>(mCredentialEntries),
new ParceledListSlice<>(mAuthenticationEntries),
new ParceledListSlice<>(mActions),
mRemoteCredentialEntry);
}
}
}