diff options
author | Jordan Liu <jminjie@google.com> | 2020-04-17 11:35:13 -0700 |
---|---|---|
committer | Jordan Liu <jminjie@google.com> | 2020-04-17 19:10:59 +0000 |
commit | 00fd9fd017640430f57671cc8251ae0565c84cd7 (patch) | |
tree | 47066e7e7b1dd49278af8faea8f501d9b4ba8ba0 /telephony/java/com | |
parent | 2b40d3c462b59c18a3b62a813c26b6e483795491 (diff) |
Implement equals and hashCode
This keeps SmsHeader in sync with cellbroadcastservice.SmsHeader.
Bug: 148482334
Test: builds
Change-Id: I2a3188a603595e4c97acf6413036dcddf35c0b87
Diffstat (limited to 'telephony/java/com')
-rw-r--r-- | telephony/java/com/android/internal/telephony/SmsHeader.java | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/telephony/java/com/android/internal/telephony/SmsHeader.java b/telephony/java/com/android/internal/telephony/SmsHeader.java index ab3fdf4ebb41..2f3897b9bac2 100644 --- a/telephony/java/com/android/internal/telephony/SmsHeader.java +++ b/telephony/java/com/android/internal/telephony/SmsHeader.java @@ -23,6 +23,8 @@ import com.android.internal.util.HexDump; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Objects; /** * SMS user data header, as specified in TS 23.040 9.2.3.24. @@ -71,6 +73,25 @@ public class SmsHeader { public static final int PORT_WAP_PUSH = 2948; public static final int PORT_WAP_WSP = 9200; + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + SmsHeader smsHeader = (SmsHeader) o; + return languageTable == smsHeader.languageTable + && languageShiftTable == smsHeader.languageShiftTable + && Objects.equals(portAddrs, smsHeader.portAddrs) + && Objects.equals(concatRef, smsHeader.concatRef) + && Objects.equals(specialSmsMsgList, smsHeader.specialSmsMsgList) + && Objects.equals(miscEltList, smsHeader.miscEltList); + } + + @Override + public int hashCode() { + return Objects.hash(portAddrs, concatRef, specialSmsMsgList, miscEltList, languageTable, + languageShiftTable); + } + public static class PortAddrs { @UnsupportedAppUsage public PortAddrs() { @@ -81,6 +102,21 @@ public class SmsHeader { @UnsupportedAppUsage public int origPort; public boolean areEightBits; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PortAddrs portAddrs = (PortAddrs) o; + return destPort == portAddrs.destPort + && origPort == portAddrs.origPort + && areEightBits == portAddrs.areEightBits; + } + + @Override + public int hashCode() { + return Objects.hash(destPort, origPort, areEightBits); + } } public static class ConcatRef { @@ -95,11 +131,41 @@ public class SmsHeader { @UnsupportedAppUsage public int msgCount; public boolean isEightBits; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ConcatRef concatRef = (ConcatRef) o; + return refNumber == concatRef.refNumber + && seqNumber == concatRef.seqNumber + && msgCount == concatRef.msgCount + && isEightBits == concatRef.isEightBits; + } + + @Override + public int hashCode() { + return Objects.hash(refNumber, seqNumber, msgCount, isEightBits); + } } public static class SpecialSmsMsg { public int msgIndType; public int msgCount; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + SpecialSmsMsg that = (SpecialSmsMsg) o; + return msgIndType == that.msgIndType + && msgCount == that.msgCount; + } + + @Override + public int hashCode() { + return Objects.hash(msgIndType, msgCount); + } } /** @@ -109,6 +175,22 @@ public class SmsHeader { public static class MiscElt { public int id; public byte[] data; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + MiscElt miscElt = (MiscElt) o; + return id == miscElt.id + && Arrays.equals(data, miscElt.data); + } + + @Override + public int hashCode() { + int result = Objects.hash(id); + result = 31 * result + Arrays.hashCode(data); + return result; + } } @UnsupportedAppUsage |