Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8108251a authored by JW Wang's avatar JW Wang
Browse files

Implement VersionedPackage#equals (1/n)

So we don't need to call VersionedPackage#getPackageName and
VersionedPackage#getVersionCode to compare 2 VersionedPackages.

Note you must also override #hashCode whenever you override #equals.

Bug: 147028082
Test: atest StagedRollbackTest
Change-Id: Ib1fac7e0521e2ccde0c2bb1f3fd28c0a7cd70234
parent 3cdf7d9a
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -95,6 +95,20 @@ public final class VersionedPackage implements Parcelable {
        return "VersionedPackage[" + mPackageName + "/" + mVersionCode + "]";
    }

    @Override
    public boolean equals(Object o) {
        return o instanceof VersionedPackage
                && ((VersionedPackage) o).mPackageName.equals(mPackageName)
                && ((VersionedPackage) o).mVersionCode == mVersionCode;
    }

    @Override
    public int hashCode() {
        // Roll our own hash function without using Objects#hash which incurs the overhead
        // of autoboxing.
        return 31 * mPackageName.hashCode() + Long.hashCode(mVersionCode);
    }

    @Override
    public int describeContents() {
        return 0;
+1 −5
Original line number Diff line number Diff line
@@ -212,11 +212,7 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve
        RollbackManager rollbackManager = mContext.getSystemService(RollbackManager.class);
        for (RollbackInfo rollback : rollbackManager.getAvailableRollbacks()) {
            for (PackageRollbackInfo packageRollback : rollback.getPackages()) {
                boolean hasFailedPackage = packageRollback.getPackageName().equals(
                        failedPackage.getPackageName())
                        && packageRollback.getVersionRolledBackFrom().getVersionCode()
                        == failedPackage.getVersionCode();
                if (hasFailedPackage) {
                if (packageRollback.getVersionRolledBackFrom().equals(failedPackage)) {
                    return rollback;
                }
            }