Merge "Continue populating legacy data structures." into sc-dev

This commit is contained in:
Jeff Sharkey
2021-03-31 19:35:27 +00:00
committed by Android (Google) Code Review

View File

@@ -227,6 +227,14 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable {
@NonNull
@DataClass.ParcelWith(ForInternedStringList.class)
protected List<String> adoptPermissions = emptyList();
/**
* @deprecated consider migrating to {@link #getUsesPermissions} which has
* more parsed details, such as flags
*/
@NonNull
@Deprecated
@DataClass.ParcelWith(ForInternedStringList.class)
protected List<String> requestedPermissions = emptyList();
@NonNull
private List<ParsedUsesPermission> usesPermissions = emptyList();
@@ -701,6 +709,11 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable {
@Override
public ParsingPackageImpl addUsesPermission(ParsedUsesPermission permission) {
this.usesPermissions = CollectionUtils.add(this.usesPermissions, permission);
// Continue populating legacy data structures to avoid performance
// issues until all that code can be migrated
this.requestedPermissions = CollectionUtils.add(this.requestedPermissions, permission.name);
return this;
}
@@ -1142,6 +1155,7 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable {
dest.writeByteArray(this.restrictUpdateHash);
dest.writeStringList(this.originalPackages);
sForInternedStringList.parcel(this.adoptPermissions, dest, flags);
sForInternedStringList.parcel(this.requestedPermissions, dest, flags);
dest.writeTypedList(this.usesPermissions);
sForInternedStringList.parcel(this.implicitPermissions, dest, flags);
sForStringSet.parcel(this.upgradeKeySets, dest, flags);
@@ -1264,6 +1278,7 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable {
this.restrictUpdateHash = in.createByteArray();
this.originalPackages = in.createStringArrayList();
this.adoptPermissions = sForInternedStringList.unparcel(in);
this.requestedPermissions = sForInternedStringList.unparcel(in);
this.usesPermissions = in.createTypedArrayList(ParsedUsesPermission.CREATOR);
this.implicitPermissions = sForInternedStringList.unparcel(in);
this.upgradeKeySets = sForStringSet.unparcel(in);
@@ -1558,15 +1573,14 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable {
return adoptPermissions;
}
/**
* @deprecated consider migrating to {@link #getUsesPermissions} which has
* more parsed details, such as flags
*/
@NonNull
@Override
@Deprecated
public List<String> getRequestedPermissions() {
final List<ParsedUsesPermission> usesPermissions = getUsesPermissions();
final int size = usesPermissions.size();
final List<String> requestedPermissions = new ArrayList<>(size);
for (int i = 0; i < size; i++) {
requestedPermissions.add(usesPermissions.get(i).name);
}
return requestedPermissions;
}