diff options
| author | 2020-01-03 14:18:03 +0000 | |
|---|---|---|
| committer | 2020-01-03 14:18:03 +0000 | |
| commit | d02b11f663967456b981d45d42680a99eafdbe36 (patch) | |
| tree | 09ebbb4b23ed640160015bcfc19675e49e37c849 | |
| parent | 19135aed4600bdac41789874e2de7262a3e90e1a (diff) | |
| parent | 41c017e09cb8514f633d94f5f3be7cd66761aa19 (diff) | |
Merge changes Id7ba8465,I769e7261,Ib1fac7e0
* changes:
Simplify a logging message (3/n)
Use PackageRollbackInfo#getVersionRolledBackFrom to simplify code (2/n)
Implement VersionedPackage#equals (1/n)
| -rw-r--r-- | core/java/android/content/pm/VersionedPackage.java | 14 | ||||
| -rw-r--r-- | services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java | 29 |
2 files changed, 18 insertions, 25 deletions
diff --git a/core/java/android/content/pm/VersionedPackage.java b/core/java/android/content/pm/VersionedPackage.java index 3e22eb21d369..21df7ecef015 100644 --- a/core/java/android/content/pm/VersionedPackage.java +++ b/core/java/android/content/pm/VersionedPackage.java @@ -96,6 +96,20 @@ public final class VersionedPackage implements Parcelable { } @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; } diff --git a/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java b/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java index bb095841bbaa..162a69546318 100644 --- a/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java +++ b/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java @@ -120,9 +120,7 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve RollbackInfo rollback = getAvailableRollback(failedPackage); if (rollback == null) { - Slog.w(TAG, "Expected rollback but no valid rollback found for package: [ " - + failedPackage.getPackageName() + "] with versionCode: [" - + failedPackage.getVersionCode() + "]"); + Slog.w(TAG, "Expected rollback but no valid rollback found for " + failedPackage); return false; } rollbackPackage(rollback, failedPackage, rollbackReason); @@ -212,11 +210,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; } } @@ -361,15 +355,6 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve } } - private VersionedPackage getVersionedPackage(String packageName) { - try { - return new VersionedPackage(packageName, mContext.getPackageManager().getPackageInfo( - packageName, 0 /* flags */).getLongVersionCode()); - } catch (PackageManager.NameNotFoundException e) { - return null; - } - } - /** * Rolls back the session that owns {@code failedPackage} * @@ -432,14 +417,8 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve List<RollbackInfo> rollbacks = rollbackManager.getAvailableRollbacks(); for (RollbackInfo rollback : rollbacks) { - String samplePackageName = rollback.getPackages().get(0).getPackageName(); - VersionedPackage sampleVersionedPackage = getVersionedPackage(samplePackageName); - if (sampleVersionedPackage == null) { - Slog.e(TAG, "Failed to rollback " + samplePackageName); - continue; - } - rollbackPackage(rollback, sampleVersionedPackage, - PackageWatchdog.FAILURE_REASON_NATIVE_CRASH); + VersionedPackage sample = rollback.getPackages().get(0).getVersionRolledBackFrom(); + rollbackPackage(rollback, sample, PackageWatchdog.FAILURE_REASON_NATIVE_CRASH); } } |