Merge "Add equality method for PhoneAccount." into pi-dev
This commit is contained in:
@@ -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
|
||||
@@ -348,6 +349,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}.
|
||||
*/
|
||||
@@ -1010,4 +1038,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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user