Override StatusHints.equals

Bug: 16979621
Change-Id: I858a4718a8815be18214400d3bc1d9054b99434e
diff --git a/telecomm/java/android/telecomm/StatusHints.java b/telecomm/java/android/telecomm/StatusHints.java
index 50f525a..496a38c 100644
--- a/telecomm/java/android/telecomm/StatusHints.java
+++ b/telecomm/java/android/telecomm/StatusHints.java
@@ -27,6 +27,7 @@
 import android.util.DisplayMetrics;
 
 import java.util.MissingResourceException;
+import java.util.Objects;
 
 /**
  * Contains status label and icon displayed in the in-call UI.
@@ -127,4 +128,22 @@
             return null;
         }
     }
+
+    @Override
+    public boolean equals(Object other) {
+        if (other != null && other instanceof StatusHints) {
+            StatusHints otherHints = (StatusHints) other;
+            return Objects.equals(otherHints.getComponentName(), getComponentName()) &&
+                    Objects.equals(otherHints.getLabel(), getLabel()) &&
+                    otherHints.getIconId() == getIconId() &&
+                    Objects.equals(otherHints.getExtras(), getExtras());
+        }
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hashCode(mComponentName) + Objects.hashCode(mLabel) + mIconId +
+                Objects.hashCode(mExtras);
+    }
 }