From 94b10b530c0fc297e2974e57e094c500d3ee6003 Mon Sep 17 00:00:00 2001 From: Chiao Cheng Date: Fri, 17 Aug 2012 16:59:12 -0700 Subject: Initial move of dialer features from contacts app. Bug: 6993891 Change-Id: I758ce359ca7e87a1d184303822979318be171921 --- src/com/android/dialer/calllog/ContactInfo.java | 71 +++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/com/android/dialer/calllog/ContactInfo.java (limited to 'src/com/android/dialer/calllog/ContactInfo.java') diff --git a/src/com/android/dialer/calllog/ContactInfo.java b/src/com/android/dialer/calllog/ContactInfo.java new file mode 100644 index 000000000..b48adef0f --- /dev/null +++ b/src/com/android/dialer/calllog/ContactInfo.java @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.dialer.calllog; + +import android.net.Uri; +import android.text.TextUtils; + +import com.android.contacts.util.UriUtils; + +/** + * Information for a contact as needed by the Call Log. + */ +public final class ContactInfo { + public Uri lookupUri; + public String name; + public int type; + public String label; + public String number; + public String formattedNumber; + public String normalizedNumber; + /** The photo for the contact, if available. */ + public long photoId; + /** The high-res photo for the contact, if available. */ + public Uri photoUri; + + public static ContactInfo EMPTY = new ContactInfo(); + + @Override + public int hashCode() { + // Uses only name and contactUri to determine hashcode. + // This should be sufficient to have a reasonable distribution of hash codes. + // Moreover, there should be no two people with the same lookupUri. + final int prime = 31; + int result = 1; + result = prime * result + ((lookupUri == null) ? 0 : lookupUri.hashCode()); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null) return false; + if (getClass() != obj.getClass()) return false; + ContactInfo other = (ContactInfo) obj; + if (!UriUtils.areEqual(lookupUri, other.lookupUri)) return false; + if (!TextUtils.equals(name, other.name)) return false; + if (type != other.type) return false; + if (!TextUtils.equals(label, other.label)) return false; + if (!TextUtils.equals(number, other.number)) return false; + if (!TextUtils.equals(formattedNumber, other.formattedNumber)) return false; + if (!TextUtils.equals(normalizedNumber, other.normalizedNumber)) return false; + if (photoId != other.photoId) return false; + if (!UriUtils.areEqual(photoUri, other.photoUri)) return false; + return true; + } +} -- cgit v1.2.3