• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2012 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.model.dataitem;
18 
19 import android.content.ContentValues;
20 import android.content.Context;
21 import android.provider.ContactsContract;
22 import android.provider.ContactsContract.CommonDataKinds.Phone;
23 
24 import com.android.contacts.compat.PhoneNumberUtilsCompat;
25 
26 /**
27  * Represents a phone data item, wrapping the columns in
28  * {@link ContactsContract.CommonDataKinds.Phone}.
29  */
30 public class PhoneDataItem extends DataItem {
31 
32     public static final String KEY_FORMATTED_PHONE_NUMBER = "formattedPhoneNumber";
33 
PhoneDataItem(ContentValues values)34     /* package */ PhoneDataItem(ContentValues values) {
35         super(values);
36     }
37 
getNumber()38     public String getNumber() {
39         return getContentValues().getAsString(Phone.NUMBER);
40     }
41 
42     /**
43      * Returns the normalized phone number in E164 format.
44      */
getNormalizedNumber()45     public String getNormalizedNumber() {
46         return getContentValues().getAsString(Phone.NORMALIZED_NUMBER);
47     }
48 
getFormattedPhoneNumber()49     public String getFormattedPhoneNumber() {
50         return getContentValues().getAsString(KEY_FORMATTED_PHONE_NUMBER);
51     }
52 
getLabel()53     public String getLabel() {
54         return getContentValues().getAsString(Phone.LABEL);
55     }
56 
computeFormattedPhoneNumber(String defaultCountryIso)57     public void computeFormattedPhoneNumber(String defaultCountryIso) {
58         final String phoneNumber = getNumber();
59         if (phoneNumber != null) {
60             final String formattedPhoneNumber = PhoneNumberUtilsCompat.formatNumber(phoneNumber,
61                     getNormalizedNumber(), defaultCountryIso);
62             getContentValues().put(KEY_FORMATTED_PHONE_NUMBER, formattedPhoneNumber);
63         }
64     }
65 
66     /**
67      * Returns the formatted phone number (if already computed using {@link
68      * #computeFormattedPhoneNumber}). Otherwise this method returns the unformatted phone number.
69      */
70     @Override
buildDataStringForDisplay(Context context, DataKind kind)71     public String buildDataStringForDisplay(Context context, DataKind kind) {
72         final String formatted = getFormattedPhoneNumber();
73         if (formatted != null) {
74             return formatted;
75         } else {
76             return getNumber();
77         }
78     }
79 }
80