Loading core/java/android/content/rollback/PackageRollbackInfo.java +10 −13 Original line number Diff line number Diff line Loading @@ -23,10 +23,10 @@ import android.content.pm.PackageManager; import android.content.pm.VersionedPackage; import android.os.Parcel; import android.os.Parcelable; import android.util.IntArray; import android.util.SparseLongArray; import java.util.ArrayList; import java.util.List; /** * Information about a rollback available for a particular package. Loading Loading @@ -62,7 +62,7 @@ public final class PackageRollbackInfo implements Parcelable { * with credentials yet. */ // NOTE: Not a part of the Parcelable representation of this object. private final IntArray mPendingBackups; private final List<Integer> mPendingBackups; /** * The list of users for which we need to restore userdata for this package. This field is Loading @@ -85,7 +85,7 @@ public final class PackageRollbackInfo implements Parcelable { * The list of users for which snapshots have been saved. */ // NOTE: Not a part of the Parcelable representation of this object. private final IntArray mSnapshottedUsers; private final List<Integer> mSnapshottedUsers; /** * A mapping between user and an inode of theirs CE data snapshot. Loading Loading @@ -128,7 +128,7 @@ public final class PackageRollbackInfo implements Parcelable { } /** @hide */ public IntArray getPendingBackups() { public List<Integer> getPendingBackups() { return mPendingBackups; } Loading Loading @@ -168,7 +168,7 @@ public final class PackageRollbackInfo implements Parcelable { } /** @hide */ public IntArray getSnapshottedUsers() { public List<Integer> getSnapshottedUsers() { return mSnapshottedUsers; } Loading @@ -184,10 +184,7 @@ public final class PackageRollbackInfo implements Parcelable { /** @hide */ public void removePendingBackup(int userId) { int idx = mPendingBackups.indexOf(userId); if (idx != -1) { mPendingBackups.remove(idx); } mPendingBackups.remove((Integer) userId); } /** @hide */ Loading @@ -198,8 +195,8 @@ public final class PackageRollbackInfo implements Parcelable { /** @hide */ public PackageRollbackInfo(VersionedPackage packageRolledBackFrom, VersionedPackage packageRolledBackTo, @NonNull IntArray pendingBackups, @NonNull ArrayList<RestoreInfo> pendingRestores, boolean isApex, boolean isApkInApex, @NonNull IntArray snapshottedUsers, @NonNull List<Integer> pendingBackups, @NonNull ArrayList<RestoreInfo> pendingRestores, boolean isApex, boolean isApkInApex, @NonNull List<Integer> snapshottedUsers, @NonNull SparseLongArray ceSnapshotInodes) { this(packageRolledBackFrom, packageRolledBackTo, pendingBackups, pendingRestores, isApex, isApkInApex, snapshottedUsers, ceSnapshotInodes, Loading @@ -209,8 +206,8 @@ public final class PackageRollbackInfo implements Parcelable { /** @hide */ public PackageRollbackInfo(VersionedPackage packageRolledBackFrom, VersionedPackage packageRolledBackTo, @NonNull IntArray pendingBackups, @NonNull ArrayList<RestoreInfo> pendingRestores, boolean isApex, boolean isApkInApex, @NonNull IntArray snapshottedUsers, @NonNull List<Integer> pendingBackups, @NonNull ArrayList<RestoreInfo> pendingRestores, boolean isApex, boolean isApkInApex, @NonNull List<Integer> snapshottedUsers, @NonNull SparseLongArray ceSnapshotInodes, @PackageManager.RollbackDataPolicy int rollbackDataPolicy) { this.mVersionRolledBackFrom = packageRolledBackFrom; Loading services/core/java/com/android/server/rollback/AppDataRollbackHelper.java +2 −3 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import android.content.pm.PackageManager; import android.content.rollback.PackageRollbackInfo; import android.content.rollback.PackageRollbackInfo.RestoreInfo; import android.os.storage.StorageManager; import android.util.IntArray; import android.util.Slog; import android.util.SparseLongArray; Loading Loading @@ -95,7 +94,7 @@ public class AppDataRollbackHelper { int userId, int appId, String seInfo) { int storageFlags = Installer.FLAG_STORAGE_DE; final IntArray pendingBackups = packageRollbackInfo.getPendingBackups(); final List<Integer> pendingBackups = packageRollbackInfo.getPendingBackups(); final List<RestoreInfo> pendingRestores = packageRollbackInfo.getPendingRestores(); boolean changedRollback = false; Loading Loading @@ -243,7 +242,7 @@ public class AppDataRollbackHelper { for (PackageRollbackInfo info : rollback.info.getPackages()) { boolean hasPendingBackup = false; boolean hasPendingRestore = false; final IntArray pendingBackupUsers = info.getPendingBackups(); final List<Integer> pendingBackupUsers = info.getPendingBackups(); if (pendingBackupUsers != null) { if (pendingBackupUsers.indexOf(userId) != -1) { hasPendingBackup = true; Loading services/core/java/com/android/server/rollback/Rollback.java +12 −7 Original line number Diff line number Diff line Loading @@ -37,7 +37,6 @@ import android.os.ParcelFileDescriptor; import android.os.UserHandle; import android.os.UserManager; import android.text.TextUtils; import android.util.IntArray; import android.util.Slog; import android.util.SparseLongArray; Loading Loading @@ -349,8 +348,8 @@ class Rollback { PackageRollbackInfo packageRollbackInfo = new PackageRollbackInfo( new VersionedPackage(packageName, newVersion), new VersionedPackage(packageName, installedVersion), new IntArray() /* pendingBackups */, new ArrayList<>() /* pendingRestores */, isApex, false /* isApkInApex */, new IntArray(), new ArrayList<>() /* pendingBackups */, new ArrayList<>() /* pendingRestores */, isApex, false /* isApkInApex */, new ArrayList<>(), new SparseLongArray() /* ceSnapshotInodes */, rollbackDataPolicy); synchronized (mLock) { Loading @@ -375,8 +374,8 @@ class Rollback { PackageRollbackInfo packageRollbackInfo = new PackageRollbackInfo( new VersionedPackage(packageName, 0 /* newVersion */), new VersionedPackage(packageName, installedVersion), new IntArray() /* pendingBackups */, new ArrayList<>() /* pendingRestores */, false /* isApex */, true /* isApkInApex */, new IntArray(), new ArrayList<>() /* pendingBackups */, new ArrayList<>() /* pendingRestores */, false /* isApex */, true /* isApkInApex */, new ArrayList<>(), new SparseLongArray() /* ceSnapshotInodes */, rollbackDataPolicy); synchronized (mLock) { info.getPackages().add(packageRollbackInfo); Loading @@ -384,6 +383,12 @@ class Rollback { return true; } private static void addAll(List<Integer> list, int[] arr) { for (int i = 0; i < arr.length; ++i) { list.add(arr[i]); } } /** * Snapshots user data for the provided package and user ids. Does nothing if this rollback is * not in the ENABLING state. Loading @@ -399,7 +404,7 @@ class Rollback { if (pkgRollbackInfo.getRollbackDataPolicy() == PackageManager.RollbackDataPolicy.RESTORE) { dataHelper.snapshotAppData(info.getRollbackId(), pkgRollbackInfo, userIds); pkgRollbackInfo.getSnapshottedUsers().addAll(IntArray.wrap(userIds)); addAll(pkgRollbackInfo.getSnapshottedUsers(), userIds); RollbackStore.saveRollback(this); } break; Loading Loading @@ -644,7 +649,7 @@ class Rollback { if (pkgInfo.isApex()) { containsApex = true; } else { IntArray snapshottedUsers = pkgInfo.getSnapshottedUsers(); List<Integer> snapshottedUsers = pkgInfo.getSnapshottedUsers(); for (int i = 0; i < snapshottedUsers.size(); i++) { // Destroy app data snapshot. int userId = snapshottedUsers.get(i); Loading services/core/java/com/android/server/rollback/RollbackStore.java +16 −21 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ import android.content.pm.VersionedPackage; import android.content.rollback.PackageRollbackInfo; import android.content.rollback.PackageRollbackInfo.RestoreInfo; import android.content.rollback.RollbackInfo; import android.util.IntArray; import android.util.Slog; import android.util.SparseLongArray; Loading Loading @@ -97,29 +96,25 @@ class RollbackStore { } /** * Converts an {@code JSONArray} of integers to an {@code IntArray}. * Converts a {@code JSONArray} of integers to a {@code List<Integer>}. */ private static @NonNull IntArray convertToIntArray(@NonNull JSONArray jsonArray) private static @NonNull List<Integer> toIntList(@NonNull JSONArray jsonArray) throws JSONException { if (jsonArray.length() == 0) { return new IntArray(); final List<Integer> ret = new ArrayList<>(); for (int i = 0; i < jsonArray.length(); ++i) { ret.add(jsonArray.getInt(i)); } final int[] ret = new int[jsonArray.length()]; for (int i = 0; i < ret.length; ++i) { ret[i] = jsonArray.getInt(i); } return IntArray.wrap(ret); return ret; } /** * Converts an {@code IntArray} into an {@code JSONArray} of integers. * Converts a {@code List<Integer>} into a {@code JSONArray} of integers. */ private static @NonNull JSONArray convertToJsonArray(@NonNull IntArray intArray) { private static @NonNull JSONArray fromIntList(@NonNull List<Integer> list) { JSONArray jsonArray = new JSONArray(); for (int i = 0; i < intArray.size(); ++i) { jsonArray.put(intArray.get(i)); for (int i = 0; i < list.size(); ++i) { jsonArray.put(list.get(i)); } return jsonArray; Loading Loading @@ -337,17 +332,17 @@ class RollbackStore { json.put("versionRolledBackFrom", toJson(info.getVersionRolledBackFrom())); json.put("versionRolledBackTo", toJson(info.getVersionRolledBackTo())); IntArray pendingBackups = info.getPendingBackups(); List<Integer> pendingBackups = info.getPendingBackups(); List<RestoreInfo> pendingRestores = info.getPendingRestores(); IntArray snapshottedUsers = info.getSnapshottedUsers(); json.put("pendingBackups", convertToJsonArray(pendingBackups)); List<Integer> snapshottedUsers = info.getSnapshottedUsers(); json.put("pendingBackups", fromIntList(pendingBackups)); json.put("pendingRestores", convertToJsonArray(pendingRestores)); json.put("isApex", info.isApex()); json.put("isApkInApex", info.isApkInApex()); // Field is named 'installedUsers' for legacy reasons. json.put("installedUsers", convertToJsonArray(snapshottedUsers)); json.put("installedUsers", fromIntList(snapshottedUsers)); json.put("ceSnapshotInodes", ceSnapshotInodesToJson(info.getCeSnapshotInodes())); json.put("rollbackDataPolicy", info.getRollbackDataPolicy()); Loading @@ -362,7 +357,7 @@ class RollbackStore { VersionedPackage versionRolledBackTo = versionedPackageFromJson( json.getJSONObject("versionRolledBackTo")); final IntArray pendingBackups = convertToIntArray( final List<Integer> pendingBackups = toIntList( json.getJSONArray("pendingBackups")); final ArrayList<RestoreInfo> pendingRestores = convertToRestoreInfoArray( json.getJSONArray("pendingRestores")); Loading @@ -371,7 +366,7 @@ class RollbackStore { final boolean isApkInApex = json.getBoolean("isApkInApex"); // Field is named 'installedUsers' for legacy reasons. final IntArray snapshottedUsers = convertToIntArray(json.getJSONArray("installedUsers")); final List<Integer> snapshottedUsers = toIntList(json.getJSONArray("installedUsers")); final SparseLongArray ceSnapshotInodes = ceSnapshotInodesFromJson( json.getJSONArray("ceSnapshotInodes")); Loading services/tests/servicestests/src/com/android/server/rollback/AppDataRollbackHelperTest.java +15 −7 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import static org.mockito.MockitoAnnotations.initMocks; import android.content.pm.VersionedPackage; import android.content.rollback.PackageRollbackInfo; import android.content.rollback.PackageRollbackInfo.RestoreInfo; import android.util.IntArray; import android.util.SparseLongArray; import com.android.server.pm.ApexManager; Loading @@ -48,6 +47,7 @@ import org.mockito.Mockito; import java.io.File; import java.util.ArrayList; import java.util.List; @RunWith(JUnit4.class) public class AppDataRollbackHelperTest { Loading @@ -71,8 +71,8 @@ public class AppDataRollbackHelperTest { helper.snapshotAppData(5, info, new int[]{10, 11}); assertEquals(2, info.getPendingBackups().size()); assertEquals(10, info.getPendingBackups().get(0)); assertEquals(11, info.getPendingBackups().get(1)); assertEquals(10, (int) info.getPendingBackups().get(0)); assertEquals(11, (int) info.getPendingBackups().get(1)); assertEquals(0, info.getCeSnapshotInodes().size()); Loading @@ -91,7 +91,7 @@ public class AppDataRollbackHelperTest { PackageRollbackInfo info2 = createPackageRollbackInfo("com.foo.bar"); helper.snapshotAppData(7, info2, new int[]{10, 11}); assertEquals(1, info2.getPendingBackups().size()); assertEquals(11, info2.getPendingBackups().get(0)); assertEquals(11, (int) info2.getPendingBackups().get(0)); assertEquals(1, info2.getCeSnapshotInodes().size()); assertEquals(239L, info2.getCeSnapshotInodes().get(10)); Loading @@ -105,11 +105,19 @@ public class AppDataRollbackHelperTest { inOrder.verifyNoMoreInteractions(); } private static List<Integer> toList(int[] arr) { List<Integer> ret = new ArrayList<>(); for (int i = 0; i < arr.length; ++i) { ret.add(arr[i]); } return ret; } private static PackageRollbackInfo createPackageRollbackInfo(String packageName, final int[] installedUsers) { return new PackageRollbackInfo( new VersionedPackage(packageName, 2), new VersionedPackage(packageName, 1), new IntArray(), new ArrayList<>(), false, false, IntArray.wrap(installedUsers), new ArrayList<>(), new ArrayList<>(), false, false, toList(installedUsers), new SparseLongArray()); } Loading @@ -128,7 +136,7 @@ public class AppDataRollbackHelperTest { AppDataRollbackHelper helper = spy(new AppDataRollbackHelper(installer, mApexManager)); PackageRollbackInfo info = createPackageRollbackInfo("com.foo"); IntArray pendingBackups = info.getPendingBackups(); List<Integer> pendingBackups = info.getPendingBackups(); pendingBackups.add(10); pendingBackups.add(11); Loading @@ -144,7 +152,7 @@ public class AppDataRollbackHelperTest { inOrder.verifyNoMoreInteractions(); assertEquals(1, pendingBackups.size()); assertEquals(11, pendingBackups.get(0)); assertEquals(11, (int) pendingBackups.get(0)); } @Test Loading Loading
core/java/android/content/rollback/PackageRollbackInfo.java +10 −13 Original line number Diff line number Diff line Loading @@ -23,10 +23,10 @@ import android.content.pm.PackageManager; import android.content.pm.VersionedPackage; import android.os.Parcel; import android.os.Parcelable; import android.util.IntArray; import android.util.SparseLongArray; import java.util.ArrayList; import java.util.List; /** * Information about a rollback available for a particular package. Loading Loading @@ -62,7 +62,7 @@ public final class PackageRollbackInfo implements Parcelable { * with credentials yet. */ // NOTE: Not a part of the Parcelable representation of this object. private final IntArray mPendingBackups; private final List<Integer> mPendingBackups; /** * The list of users for which we need to restore userdata for this package. This field is Loading @@ -85,7 +85,7 @@ public final class PackageRollbackInfo implements Parcelable { * The list of users for which snapshots have been saved. */ // NOTE: Not a part of the Parcelable representation of this object. private final IntArray mSnapshottedUsers; private final List<Integer> mSnapshottedUsers; /** * A mapping between user and an inode of theirs CE data snapshot. Loading Loading @@ -128,7 +128,7 @@ public final class PackageRollbackInfo implements Parcelable { } /** @hide */ public IntArray getPendingBackups() { public List<Integer> getPendingBackups() { return mPendingBackups; } Loading Loading @@ -168,7 +168,7 @@ public final class PackageRollbackInfo implements Parcelable { } /** @hide */ public IntArray getSnapshottedUsers() { public List<Integer> getSnapshottedUsers() { return mSnapshottedUsers; } Loading @@ -184,10 +184,7 @@ public final class PackageRollbackInfo implements Parcelable { /** @hide */ public void removePendingBackup(int userId) { int idx = mPendingBackups.indexOf(userId); if (idx != -1) { mPendingBackups.remove(idx); } mPendingBackups.remove((Integer) userId); } /** @hide */ Loading @@ -198,8 +195,8 @@ public final class PackageRollbackInfo implements Parcelable { /** @hide */ public PackageRollbackInfo(VersionedPackage packageRolledBackFrom, VersionedPackage packageRolledBackTo, @NonNull IntArray pendingBackups, @NonNull ArrayList<RestoreInfo> pendingRestores, boolean isApex, boolean isApkInApex, @NonNull IntArray snapshottedUsers, @NonNull List<Integer> pendingBackups, @NonNull ArrayList<RestoreInfo> pendingRestores, boolean isApex, boolean isApkInApex, @NonNull List<Integer> snapshottedUsers, @NonNull SparseLongArray ceSnapshotInodes) { this(packageRolledBackFrom, packageRolledBackTo, pendingBackups, pendingRestores, isApex, isApkInApex, snapshottedUsers, ceSnapshotInodes, Loading @@ -209,8 +206,8 @@ public final class PackageRollbackInfo implements Parcelable { /** @hide */ public PackageRollbackInfo(VersionedPackage packageRolledBackFrom, VersionedPackage packageRolledBackTo, @NonNull IntArray pendingBackups, @NonNull ArrayList<RestoreInfo> pendingRestores, boolean isApex, boolean isApkInApex, @NonNull IntArray snapshottedUsers, @NonNull List<Integer> pendingBackups, @NonNull ArrayList<RestoreInfo> pendingRestores, boolean isApex, boolean isApkInApex, @NonNull List<Integer> snapshottedUsers, @NonNull SparseLongArray ceSnapshotInodes, @PackageManager.RollbackDataPolicy int rollbackDataPolicy) { this.mVersionRolledBackFrom = packageRolledBackFrom; Loading
services/core/java/com/android/server/rollback/AppDataRollbackHelper.java +2 −3 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import android.content.pm.PackageManager; import android.content.rollback.PackageRollbackInfo; import android.content.rollback.PackageRollbackInfo.RestoreInfo; import android.os.storage.StorageManager; import android.util.IntArray; import android.util.Slog; import android.util.SparseLongArray; Loading Loading @@ -95,7 +94,7 @@ public class AppDataRollbackHelper { int userId, int appId, String seInfo) { int storageFlags = Installer.FLAG_STORAGE_DE; final IntArray pendingBackups = packageRollbackInfo.getPendingBackups(); final List<Integer> pendingBackups = packageRollbackInfo.getPendingBackups(); final List<RestoreInfo> pendingRestores = packageRollbackInfo.getPendingRestores(); boolean changedRollback = false; Loading Loading @@ -243,7 +242,7 @@ public class AppDataRollbackHelper { for (PackageRollbackInfo info : rollback.info.getPackages()) { boolean hasPendingBackup = false; boolean hasPendingRestore = false; final IntArray pendingBackupUsers = info.getPendingBackups(); final List<Integer> pendingBackupUsers = info.getPendingBackups(); if (pendingBackupUsers != null) { if (pendingBackupUsers.indexOf(userId) != -1) { hasPendingBackup = true; Loading
services/core/java/com/android/server/rollback/Rollback.java +12 −7 Original line number Diff line number Diff line Loading @@ -37,7 +37,6 @@ import android.os.ParcelFileDescriptor; import android.os.UserHandle; import android.os.UserManager; import android.text.TextUtils; import android.util.IntArray; import android.util.Slog; import android.util.SparseLongArray; Loading Loading @@ -349,8 +348,8 @@ class Rollback { PackageRollbackInfo packageRollbackInfo = new PackageRollbackInfo( new VersionedPackage(packageName, newVersion), new VersionedPackage(packageName, installedVersion), new IntArray() /* pendingBackups */, new ArrayList<>() /* pendingRestores */, isApex, false /* isApkInApex */, new IntArray(), new ArrayList<>() /* pendingBackups */, new ArrayList<>() /* pendingRestores */, isApex, false /* isApkInApex */, new ArrayList<>(), new SparseLongArray() /* ceSnapshotInodes */, rollbackDataPolicy); synchronized (mLock) { Loading @@ -375,8 +374,8 @@ class Rollback { PackageRollbackInfo packageRollbackInfo = new PackageRollbackInfo( new VersionedPackage(packageName, 0 /* newVersion */), new VersionedPackage(packageName, installedVersion), new IntArray() /* pendingBackups */, new ArrayList<>() /* pendingRestores */, false /* isApex */, true /* isApkInApex */, new IntArray(), new ArrayList<>() /* pendingBackups */, new ArrayList<>() /* pendingRestores */, false /* isApex */, true /* isApkInApex */, new ArrayList<>(), new SparseLongArray() /* ceSnapshotInodes */, rollbackDataPolicy); synchronized (mLock) { info.getPackages().add(packageRollbackInfo); Loading @@ -384,6 +383,12 @@ class Rollback { return true; } private static void addAll(List<Integer> list, int[] arr) { for (int i = 0; i < arr.length; ++i) { list.add(arr[i]); } } /** * Snapshots user data for the provided package and user ids. Does nothing if this rollback is * not in the ENABLING state. Loading @@ -399,7 +404,7 @@ class Rollback { if (pkgRollbackInfo.getRollbackDataPolicy() == PackageManager.RollbackDataPolicy.RESTORE) { dataHelper.snapshotAppData(info.getRollbackId(), pkgRollbackInfo, userIds); pkgRollbackInfo.getSnapshottedUsers().addAll(IntArray.wrap(userIds)); addAll(pkgRollbackInfo.getSnapshottedUsers(), userIds); RollbackStore.saveRollback(this); } break; Loading Loading @@ -644,7 +649,7 @@ class Rollback { if (pkgInfo.isApex()) { containsApex = true; } else { IntArray snapshottedUsers = pkgInfo.getSnapshottedUsers(); List<Integer> snapshottedUsers = pkgInfo.getSnapshottedUsers(); for (int i = 0; i < snapshottedUsers.size(); i++) { // Destroy app data snapshot. int userId = snapshottedUsers.get(i); Loading
services/core/java/com/android/server/rollback/RollbackStore.java +16 −21 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ import android.content.pm.VersionedPackage; import android.content.rollback.PackageRollbackInfo; import android.content.rollback.PackageRollbackInfo.RestoreInfo; import android.content.rollback.RollbackInfo; import android.util.IntArray; import android.util.Slog; import android.util.SparseLongArray; Loading Loading @@ -97,29 +96,25 @@ class RollbackStore { } /** * Converts an {@code JSONArray} of integers to an {@code IntArray}. * Converts a {@code JSONArray} of integers to a {@code List<Integer>}. */ private static @NonNull IntArray convertToIntArray(@NonNull JSONArray jsonArray) private static @NonNull List<Integer> toIntList(@NonNull JSONArray jsonArray) throws JSONException { if (jsonArray.length() == 0) { return new IntArray(); final List<Integer> ret = new ArrayList<>(); for (int i = 0; i < jsonArray.length(); ++i) { ret.add(jsonArray.getInt(i)); } final int[] ret = new int[jsonArray.length()]; for (int i = 0; i < ret.length; ++i) { ret[i] = jsonArray.getInt(i); } return IntArray.wrap(ret); return ret; } /** * Converts an {@code IntArray} into an {@code JSONArray} of integers. * Converts a {@code List<Integer>} into a {@code JSONArray} of integers. */ private static @NonNull JSONArray convertToJsonArray(@NonNull IntArray intArray) { private static @NonNull JSONArray fromIntList(@NonNull List<Integer> list) { JSONArray jsonArray = new JSONArray(); for (int i = 0; i < intArray.size(); ++i) { jsonArray.put(intArray.get(i)); for (int i = 0; i < list.size(); ++i) { jsonArray.put(list.get(i)); } return jsonArray; Loading Loading @@ -337,17 +332,17 @@ class RollbackStore { json.put("versionRolledBackFrom", toJson(info.getVersionRolledBackFrom())); json.put("versionRolledBackTo", toJson(info.getVersionRolledBackTo())); IntArray pendingBackups = info.getPendingBackups(); List<Integer> pendingBackups = info.getPendingBackups(); List<RestoreInfo> pendingRestores = info.getPendingRestores(); IntArray snapshottedUsers = info.getSnapshottedUsers(); json.put("pendingBackups", convertToJsonArray(pendingBackups)); List<Integer> snapshottedUsers = info.getSnapshottedUsers(); json.put("pendingBackups", fromIntList(pendingBackups)); json.put("pendingRestores", convertToJsonArray(pendingRestores)); json.put("isApex", info.isApex()); json.put("isApkInApex", info.isApkInApex()); // Field is named 'installedUsers' for legacy reasons. json.put("installedUsers", convertToJsonArray(snapshottedUsers)); json.put("installedUsers", fromIntList(snapshottedUsers)); json.put("ceSnapshotInodes", ceSnapshotInodesToJson(info.getCeSnapshotInodes())); json.put("rollbackDataPolicy", info.getRollbackDataPolicy()); Loading @@ -362,7 +357,7 @@ class RollbackStore { VersionedPackage versionRolledBackTo = versionedPackageFromJson( json.getJSONObject("versionRolledBackTo")); final IntArray pendingBackups = convertToIntArray( final List<Integer> pendingBackups = toIntList( json.getJSONArray("pendingBackups")); final ArrayList<RestoreInfo> pendingRestores = convertToRestoreInfoArray( json.getJSONArray("pendingRestores")); Loading @@ -371,7 +366,7 @@ class RollbackStore { final boolean isApkInApex = json.getBoolean("isApkInApex"); // Field is named 'installedUsers' for legacy reasons. final IntArray snapshottedUsers = convertToIntArray(json.getJSONArray("installedUsers")); final List<Integer> snapshottedUsers = toIntList(json.getJSONArray("installedUsers")); final SparseLongArray ceSnapshotInodes = ceSnapshotInodesFromJson( json.getJSONArray("ceSnapshotInodes")); Loading
services/tests/servicestests/src/com/android/server/rollback/AppDataRollbackHelperTest.java +15 −7 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import static org.mockito.MockitoAnnotations.initMocks; import android.content.pm.VersionedPackage; import android.content.rollback.PackageRollbackInfo; import android.content.rollback.PackageRollbackInfo.RestoreInfo; import android.util.IntArray; import android.util.SparseLongArray; import com.android.server.pm.ApexManager; Loading @@ -48,6 +47,7 @@ import org.mockito.Mockito; import java.io.File; import java.util.ArrayList; import java.util.List; @RunWith(JUnit4.class) public class AppDataRollbackHelperTest { Loading @@ -71,8 +71,8 @@ public class AppDataRollbackHelperTest { helper.snapshotAppData(5, info, new int[]{10, 11}); assertEquals(2, info.getPendingBackups().size()); assertEquals(10, info.getPendingBackups().get(0)); assertEquals(11, info.getPendingBackups().get(1)); assertEquals(10, (int) info.getPendingBackups().get(0)); assertEquals(11, (int) info.getPendingBackups().get(1)); assertEquals(0, info.getCeSnapshotInodes().size()); Loading @@ -91,7 +91,7 @@ public class AppDataRollbackHelperTest { PackageRollbackInfo info2 = createPackageRollbackInfo("com.foo.bar"); helper.snapshotAppData(7, info2, new int[]{10, 11}); assertEquals(1, info2.getPendingBackups().size()); assertEquals(11, info2.getPendingBackups().get(0)); assertEquals(11, (int) info2.getPendingBackups().get(0)); assertEquals(1, info2.getCeSnapshotInodes().size()); assertEquals(239L, info2.getCeSnapshotInodes().get(10)); Loading @@ -105,11 +105,19 @@ public class AppDataRollbackHelperTest { inOrder.verifyNoMoreInteractions(); } private static List<Integer> toList(int[] arr) { List<Integer> ret = new ArrayList<>(); for (int i = 0; i < arr.length; ++i) { ret.add(arr[i]); } return ret; } private static PackageRollbackInfo createPackageRollbackInfo(String packageName, final int[] installedUsers) { return new PackageRollbackInfo( new VersionedPackage(packageName, 2), new VersionedPackage(packageName, 1), new IntArray(), new ArrayList<>(), false, false, IntArray.wrap(installedUsers), new ArrayList<>(), new ArrayList<>(), false, false, toList(installedUsers), new SparseLongArray()); } Loading @@ -128,7 +136,7 @@ public class AppDataRollbackHelperTest { AppDataRollbackHelper helper = spy(new AppDataRollbackHelper(installer, mApexManager)); PackageRollbackInfo info = createPackageRollbackInfo("com.foo"); IntArray pendingBackups = info.getPendingBackups(); List<Integer> pendingBackups = info.getPendingBackups(); pendingBackups.add(10); pendingBackups.add(11); Loading @@ -144,7 +152,7 @@ public class AppDataRollbackHelperTest { inOrder.verifyNoMoreInteractions(); assertEquals(1, pendingBackups.size()); assertEquals(11, pendingBackups.get(0)); assertEquals(11, (int) pendingBackups.get(0)); } @Test Loading