Add equals method
This adds an equals method which will for now only be used in tests.
Test: atest BackgroundStartPrivilegesTest
Flag: EXEMPT test only
Bug: 322159724
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:f749fdc792476a52a9c07f282e27af90d21e6a4d)
Merged-In: Ia726fa205b73a693fee775e4a08950ecd4b5f882
Change-Id: Ia726fa205b73a693fee775e4a08950ecd4b5f882
diff --git a/core/java/android/app/BackgroundStartPrivileges.java b/core/java/android/app/BackgroundStartPrivileges.java
index 20278ea..adea0a8 100644
--- a/core/java/android/app/BackgroundStartPrivileges.java
+++ b/core/java/android/app/BackgroundStartPrivileges.java
@@ -23,12 +23,13 @@
import com.android.internal.util.Preconditions;
import java.util.List;
+import java.util.Objects;
/**
* Privileges granted to a Process that allows it to execute starts from the background.
* @hide
*/
-public class BackgroundStartPrivileges {
+public final class BackgroundStartPrivileges {
/** No privileges. */
public static final BackgroundStartPrivileges NONE = new BackgroundStartPrivileges(
false, false, null);
@@ -190,4 +191,22 @@
+ ", originatingToken=" + mOriginatingToken
+ ']';
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ BackgroundStartPrivileges that = (BackgroundStartPrivileges) o;
+ return mAllowsBackgroundActivityStarts == that.mAllowsBackgroundActivityStarts
+ && mAllowsBackgroundForegroundServiceStarts
+ == that.mAllowsBackgroundForegroundServiceStarts
+ && Objects.equals(mOriginatingToken, that.mOriginatingToken);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(mAllowsBackgroundActivityStarts,
+ mAllowsBackgroundForegroundServiceStarts,
+ mOriginatingToken);
+ }
}
diff --git a/core/tests/coretests/src/android/app/BackgroundStartPrivilegesTest.java b/core/tests/coretests/src/android/app/BackgroundStartPrivilegesTest.java
index cf6266c..931d646 100644
--- a/core/tests/coretests/src/android/app/BackgroundStartPrivilegesTest.java
+++ b/core/tests/coretests/src/android/app/BackgroundStartPrivilegesTest.java
@@ -119,4 +119,15 @@
Arrays.asList(BSP_ALLOW_A, BSP_ALLOW_A, BSP_ALLOW_A, BSP_ALLOW_A)))
.isEqualTo(BSP_ALLOW_A);
}
+
+ @Test
+ public void backgroundStartPrivilege_equals_works() {
+ assertThat(NONE).isEqualTo(NONE);
+ assertThat(ALLOW_BAL).isEqualTo(ALLOW_BAL);
+ assertThat(ALLOW_FGS).isEqualTo(ALLOW_FGS);
+ assertThat(BSP_ALLOW_A).isEqualTo(BSP_ALLOW_A);
+ assertThat(NONE).isNotEqualTo(ALLOW_BAL);
+ assertThat(ALLOW_FGS).isNotEqualTo(ALLOW_BAL);
+ assertThat(BSP_ALLOW_A).isNotEqualTo(BSP_ALLOW_B);
+ }
}