Add hashCode() methods to ContextHub classes
Bug: 340880058
Change-Id: I2b598630919b13ba64c190568fac381ee843efa9
Flag: android.chre.flags.fix_api_check
Test: Presubmits
diff --git a/core/java/android/hardware/location/ContextHubInfo.java b/core/java/android/hardware/location/ContextHubInfo.java
index 5012a79..7353d76 100644
--- a/core/java/android/hardware/location/ContextHubInfo.java
+++ b/core/java/android/hardware/location/ContextHubInfo.java
@@ -26,6 +26,7 @@
import android.util.proto.ProtoOutputStream;
import java.util.Arrays;
+import java.util.Objects;
/**
* @hide
@@ -370,6 +371,20 @@
return isEqual;
}
+ @Override
+ public int hashCode() {
+ if (!Flags.fixApiCheck()) {
+ return super.hashCode();
+ }
+
+ return Objects.hash(mId, mName, mVendor, mToolchain, mToolchainVersion,
+ getStaticSwVersion(), mChrePlatformId, mPeakMips,
+ mStoppedPowerDrawMw, mSleepPowerDrawMw, mPeakPowerDrawMw,
+ mMaxPacketLengthBytes, mSupportsReliableMessages,
+ Arrays.hashCode(mSupportedSensors),
+ Arrays.hashCode(mMemoryRegions));
+ }
+
private ContextHubInfo(Parcel in) {
mId = in.readInt();
mName = in.readString();
diff --git a/core/java/android/hardware/location/ContextHubIntentEvent.java b/core/java/android/hardware/location/ContextHubIntentEvent.java
index 06c5334..002c683 100644
--- a/core/java/android/hardware/location/ContextHubIntentEvent.java
+++ b/core/java/android/hardware/location/ContextHubIntentEvent.java
@@ -19,6 +19,7 @@
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.app.PendingIntent;
+import android.chre.flags.Flags;
import android.content.Intent;
import java.util.Objects;
@@ -275,6 +276,16 @@
return isEqual;
}
+ @Override
+ public int hashCode() {
+ if (!Flags.fixApiCheck()) {
+ return super.hashCode();
+ }
+
+ return Objects.hash(mEventType, mContextHubInfo, mNanoAppId,
+ mNanoAppMessage, mNanoAppAbortCode, mClientAuthorizationState);
+ }
+
private static void hasExtraOrThrow(Intent intent, String extra) {
if (!intent.hasExtra(extra)) {
throw new IllegalArgumentException("Intent did not have extra: " + extra);
diff --git a/core/java/android/hardware/location/MemoryRegion.java b/core/java/android/hardware/location/MemoryRegion.java
index c033228..d95894f 100644
--- a/core/java/android/hardware/location/MemoryRegion.java
+++ b/core/java/android/hardware/location/MemoryRegion.java
@@ -19,9 +19,12 @@
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
+import android.chre.flags.Flags;
import android.os.Parcel;
import android.os.Parcelable;
+import java.util.Objects;
+
/**
* @hide
*/
@@ -128,6 +131,16 @@
}
@Override
+ public int hashCode() {
+ if (!Flags.fixApiCheck()) {
+ return super.hashCode();
+ }
+
+ return Objects.hash(mSizeBytes, mSizeBytesFree, mIsReadable,
+ mIsWritable, mIsExecutable);
+ }
+
+ @Override
public int describeContents() {
return 0;
}
diff --git a/core/java/android/hardware/location/NanoAppMessage.java b/core/java/android/hardware/location/NanoAppMessage.java
index 905caf0..85a5d45 100644
--- a/core/java/android/hardware/location/NanoAppMessage.java
+++ b/core/java/android/hardware/location/NanoAppMessage.java
@@ -26,6 +26,7 @@
import libcore.util.HexEncoding;
import java.util.Arrays;
+import java.util.Objects;
/**
* A class describing messages send to or from nanoapps through the Context Hub Service.
@@ -273,4 +274,15 @@
return isEqual;
}
+
+ @Override
+ public int hashCode() {
+ if (!Flags.fixApiCheck()) {
+ return super.hashCode();
+ }
+
+ return Objects.hash(mNanoAppId, mMessageType, mIsBroadcasted,
+ Arrays.hashCode(mMessageBody), mIsReliable,
+ mMessageSequenceNumber);
+ }
}