1 /*
2  * Copyright (C) 2013 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.contacts.common.list;
18 
19 import android.graphics.drawable.Drawable;
20 import android.net.Uri;
21 import android.provider.ContactsContract.PinnedPositions;
22 import android.text.TextUtils;
23 
24 import com.android.contacts.common.preference.ContactsPreferences;
25 
26 /**
27  * Class to hold contact information
28  */
29 public class ContactEntry {
30 
31     private static final int UNSET_DISPLAY_ORDER_PREFERENCE = -1;
32 
33     /**
34      * Primary name for a Contact
35      */
36     public String namePrimary;
37     /**
38      * Alternative name for a Contact, e.g. last name first
39      */
40     public String nameAlternative;
41     /**
42      * The user's preference on name display order, last name first or first time first.
43      * {@see ContactsPreferences}
44      */
45     public int nameDisplayOrder = UNSET_DISPLAY_ORDER_PREFERENCE;
46 
47     public String status;
48     public String phoneLabel;
49     public String phoneNumber;
50     public Uri photoUri;
51     public Uri lookupUri;
52     public String lookupKey;
53     public Drawable presenceIcon;
54     public long id;
55     public int pinned = PinnedPositions.UNPINNED;
56     public boolean isFavorite = false;
57     public boolean isDefaultNumber = false;
58 
59     public static final ContactEntry BLANK_ENTRY = new ContactEntry();
60 
getPreferredDisplayName()61     public String getPreferredDisplayName() {
62         if (nameDisplayOrder == UNSET_DISPLAY_ORDER_PREFERENCE
63                 || nameDisplayOrder == ContactsPreferences.DISPLAY_ORDER_PRIMARY
64                 || TextUtils.isEmpty(nameAlternative)) {
65             return namePrimary;
66         }
67         return nameAlternative;
68     }
69 }