Skip to content
Snippets Groups Projects
Commit 6af1516b authored by Tyler Gunn's avatar Tyler Gunn Committed by Gerrit Code Review
Browse files

Merge "Add equality method for PhoneAccount."

parents 80f3ddca 3b34781f
No related branches found
No related tags found
No related merge requests found
......@@ -28,6 +28,7 @@ import java.lang.String;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
/**
* Represents a distinct method to place or receive a phone call. Apps which can place calls and
......@@ -360,6 +361,33 @@ public final class PhoneAccount implements Parcelable {
private boolean mIsEnabled;
private String mGroupId;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
PhoneAccount that = (PhoneAccount) o;
return mCapabilities == that.mCapabilities &&
mHighlightColor == that.mHighlightColor &&
mSupportedAudioRoutes == that.mSupportedAudioRoutes &&
mIsEnabled == that.mIsEnabled &&
Objects.equals(mAccountHandle, that.mAccountHandle) &&
Objects.equals(mAddress, that.mAddress) &&
Objects.equals(mSubscriptionAddress, that.mSubscriptionAddress) &&
Objects.equals(mLabel, that.mLabel) &&
Objects.equals(mShortDescription, that.mShortDescription) &&
Objects.equals(mSupportedUriSchemes, that.mSupportedUriSchemes) &&
areBundlesEqual(mExtras, that.mExtras) &&
Objects.equals(mGroupId, that.mGroupId);
}
@Override
public int hashCode() {
return Objects.hash(mAccountHandle, mAddress, mSubscriptionAddress, mCapabilities,
mHighlightColor, mLabel, mShortDescription, mSupportedUriSchemes,
mSupportedAudioRoutes,
mExtras, mIsEnabled, mGroupId);
}
/**
* Helper class for creating a {@link PhoneAccount}.
*/
......@@ -1022,4 +1050,31 @@ public final class PhoneAccount implements Parcelable {
return sb.toString();
}
/**
* Determines if two {@link Bundle}s are equal.
* @param extras First {@link Bundle} to check.
* @param newExtras {@link Bundle} to compare against.
* @return {@code true} if the {@link Bundle}s are equal, {@code false} otherwise.
*/
private static boolean areBundlesEqual(Bundle extras, Bundle newExtras) {
if (extras == null || newExtras == null) {
return extras == newExtras;
}
if (extras.size() != newExtras.size()) {
return false;
}
for(String key : extras.keySet()) {
if (key != null) {
final Object value = extras.get(key);
final Object newValue = newExtras.get(key);
if (!Objects.equals(value, newValue)) {
return false;
}
}
}
return true;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment