Loading api/system-current.txt +7 −0 Original line number Diff line number Diff line Loading @@ -7235,6 +7235,13 @@ package android.telephony { field @NonNull public static final android.os.Parcelable.Creator<android.telephony.CallQuality> CREATOR; } public class CallerInfo { method @Nullable public android.net.Uri getContactDisplayPhotoUri(); method public long getContactId(); method @Nullable public String getName(); method @Nullable public String getPhoneNumber(); } public class CarrierConfigManager { method @NonNull public static android.os.PersistableBundle getDefaultConfig(); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void overrideConfig(int, @Nullable android.os.PersistableBundle); Loading config/dirty-image-objects +1 −1 Original line number Diff line number Diff line Loading @@ -255,7 +255,7 @@ com.android.internal.os.SomeArgs com.android.internal.policy.DecorView com.android.internal.statusbar.IStatusBarService com.android.internal.telephony.AppSmsManager com.android.internal.telephony.CallerInfoAsyncQuery$OnQueryCompleteListener android.telephony.CallerInfoAsyncQuery$OnQueryCompleteListener com.android.internal.telephony.CarrierActionAgent com.android.internal.telephony.cat.CatService com.android.internal.telephony.cat.IconLoader Loading config/preloaded-classes +1 −1 Original line number Diff line number Diff line Loading @@ -4698,7 +4698,7 @@ com.android.internal.telephony.CallManager$CallManagerHandler com.android.internal.telephony.CallManager com.android.internal.telephony.CallStateException com.android.internal.telephony.CallTracker com.android.internal.telephony.CallerInfoAsyncQuery$OnQueryCompleteListener android.telephony.CallerInfoAsyncQuery$OnQueryCompleteListener com.android.internal.telephony.CarrierActionAgent$1 com.android.internal.telephony.CarrierActionAgent com.android.internal.telephony.CarrierAppUtils Loading core/java/android/provider/CallLog.java +9 −9 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ import android.telephony.PhoneNumberUtils; import android.text.TextUtils; import android.util.Log; import com.android.internal.telephony.CallerInfo; import android.telephony.CallerInfo; import com.android.internal.telephony.PhoneConstants; import java.util.List; Loading Loading @@ -728,10 +728,11 @@ public class CallLog { String accountAddress = getLogAccountAddress(context, accountHandle); int numberPresentation = getLogNumberPresentation(number, presentation); String name = (ci != null) ? ci.getName() : ""; if (numberPresentation != PRESENTATION_ALLOWED) { number = ""; if (ci != null) { ci.name = ""; name = ""; } } Loading Loading @@ -760,9 +761,7 @@ public class CallLog { values.put(PHONE_ACCOUNT_ID, accountId); values.put(PHONE_ACCOUNT_ADDRESS, accountAddress); values.put(NEW, Integer.valueOf(1)); if ((ci != null) && (ci.name != null)) { values.put(CACHED_NAME, ci.name); } values.put(CACHED_NAME, name); values.put(ADD_FOR_ALL_USERS, addForAllUsers ? 1 : 0); if (callType == MISSED_TYPE) { Loading @@ -773,7 +772,7 @@ public class CallLog { values.put(CALL_SCREENING_APP_NAME, charSequenceToString(callScreeningAppName)); values.put(CALL_SCREENING_COMPONENT_NAME, callScreeningComponentName); if ((ci != null) && (ci.contactIdOrZero > 0)) { if ((ci != null) && (ci.getContactId() > 0)) { // Update usage information for the number associated with the contact ID. // We need to use both the number and the ID for obtaining a data ID since other // contacts may have the same number. Loading @@ -787,17 +786,18 @@ public class CallLog { cursor = resolver.query(Phone.CONTENT_URI, new String[] { Phone._ID }, Phone.CONTACT_ID + " =? AND " + Phone.NORMALIZED_NUMBER + " =?", new String[] { String.valueOf(ci.contactIdOrZero), new String[] { String.valueOf(ci.getContactId()), normalizedPhoneNumber}, null); } else { final String phoneNumber = ci.phoneNumber != null ? ci.phoneNumber : number; final String phoneNumber = ci.getPhoneNumber() != null ? ci.getPhoneNumber() : number; cursor = resolver.query( Uri.withAppendedPath(Callable.CONTENT_FILTER_URI, Uri.encode(phoneNumber)), new String[] { Phone._ID }, Phone.CONTACT_ID + " =?", new String[] { String.valueOf(ci.contactIdOrZero) }, new String[] { String.valueOf(ci.getContactId()) }, null); } Loading telephony/java/com/android/internal/telephony/CallerInfo.java→telephony/java/android/telephony/CallerInfo.java +106 −18 Original line number Diff line number Diff line Loading @@ -14,8 +14,10 @@ * limitations under the License. */ package com.android.internal.telephony; package android.telephony; import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.content.ContentResolver; Loading @@ -31,10 +33,6 @@ import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.PhoneLookup; import android.provider.ContactsContract.RawContacts; import android.telephony.PhoneNumberUtils; import android.telephony.Rlog; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.Log; Loading @@ -43,6 +41,7 @@ import com.android.i18n.phonenumbers.PhoneNumberUtil; import com.android.i18n.phonenumbers.Phonenumber.PhoneNumber; import com.android.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder; import com.android.internal.annotations.VisibleForTesting; import java.util.Locale; Loading @@ -51,11 +50,14 @@ import java.util.Locale; * * {@hide} */ @SystemApi public class CallerInfo { private static final String TAG = "CallerInfo"; private static final boolean VDBG = Rlog.isLoggable(TAG, Log.VERBOSE); /** @hide */ public static final long USER_TYPE_CURRENT = 0; /** @hide */ public static final long USER_TYPE_WORK = 1; /** Loading Loading @@ -85,49 +87,61 @@ public class CallerInfo { * field here, NOT name. We're NOT always guaranteed to have a name * for a connection, but the number should be displayable. */ @UnsupportedAppUsage public String name; @UnsupportedAppUsage public String phoneNumber; private String name; private String phoneNumber; /** @hide */ public String normalizedNumber; /** @hide */ public String geoDescription; /** @hide */ public String cnapName; /** @hide */ public int numberPresentation; /** @hide */ public int namePresentation; /** @hide */ public boolean contactExists; /** @hide */ public String phoneLabel; /* Split up the phoneLabel into number type and label name */ /** * Split up the phoneLabel into number type and label name. * @hide */ @UnsupportedAppUsage public int numberType; /** @hide */ @UnsupportedAppUsage public String numberLabel; /** @hide */ public int photoResource; // Contact ID, which will be 0 if a contact comes from the corp CP2. @UnsupportedAppUsage public long contactIdOrZero; private long contactIdOrZero; /** @hide */ public boolean needUpdate; /** @hide */ public Uri contactRefUri; /** @hide */ public String lookupKey; /** @hide */ public ComponentName preferredPhoneAccountComponent; /** @hide */ public String preferredPhoneAccountId; /** @hide */ public long userType; /** * Contact display photo URI. If a contact has no display photo but a thumbnail, it'll be * the thumbnail URI instead. */ public Uri contactDisplayPhotoUri; private Uri contactDisplayPhotoUri; // fields to hold individual contact preference data, // including the send to voicemail flag and the ringtone // uri reference. /** @hide */ public Uri contactRingtoneUri; /** @hide */ public boolean shouldSendToVoicemail; /** Loading @@ -141,6 +155,8 @@ public class CallerInfo { * * The {@link #isCachedPhotoCurrent} flag indicates if the image * data needs to be reloaded. * * @hide */ public Drawable cachedPhoto; /** Loading @@ -153,18 +169,23 @@ public class CallerInfo { * * The {@link #isCachedPhotoCurrent} flag indicates if the image * data needs to be reloaded. * * @hide */ public Bitmap cachedPhotoIcon; /** * Boolean which indicates if {@link #cachedPhoto} and * {@link #cachedPhotoIcon} is fresh enough. If it is false, * those images aren't pointing to valid objects. * * @hide */ public boolean isCachedPhotoCurrent; private boolean mIsEmergency; private boolean mIsVoiceMail; /** @hide */ @UnsupportedAppUsage public CallerInfo() { // TODO: Move all the basic initialization here? Loading @@ -180,6 +201,8 @@ public class CallerInfo { * @param cursor the first object in the cursor is used to build the CallerInfo object. * @return the CallerInfo which contains the caller id for the given * number. The returned CallerInfo is null if no number is supplied. * * @hide */ public static CallerInfo getCallerInfo(Context context, Uri contactRef, Cursor cursor) { CallerInfo info = new CallerInfo(); Loading Loading @@ -321,6 +344,8 @@ public class CallerInfo { * @param contactRef the URI used to lookup caller id * @return the CallerInfo which contains the caller id for the given * number. The returned CallerInfo is null if no number is supplied. * * @hide */ @UnsupportedAppUsage public static CallerInfo getCallerInfo(Context context, Uri contactRef) { Loading @@ -346,6 +371,8 @@ public class CallerInfo { * number. The returned CallerInfo is null if no number is supplied. If * a matching number is not found, then a generic caller info is returned, * with all relevant fields empty or null. * * @hide */ @UnsupportedAppUsage public static CallerInfo getCallerInfo(Context context, String number) { Loading @@ -365,6 +392,8 @@ public class CallerInfo { * number. The returned CallerInfo is null if no number is supplied. If * a matching number is not found, then a generic caller info is returned, * with all relevant fields empty or null. * * @hide */ @UnsupportedAppUsage public static CallerInfo getCallerInfo(Context context, String number, int subId) { Loading Loading @@ -397,6 +426,59 @@ public class CallerInfo { return info; } /** * @return Name assocaited with this caller. */ @Nullable public String getName() { return name; } /** * Set caller Info Name. * @param name caller Info Name * * @hide */ public void setName(@Nullable String name) { this.name = name; } /** * @return Phone number assocaited with this caller. */ @Nullable public String getPhoneNumber() { return phoneNumber; } /** @hide */ public void setPhoneNumber(String number) { phoneNumber = number; } /** * @return Contact ID, which will be 0 if a contact comes from the corp Contacts Provider. */ public long getContactId() { return contactIdOrZero; } /** * @return Contact display photo URI. If a contact has no display photo but a thumbnail, * it'll the thumbnail URI instead. */ @Nullable public Uri getContactDisplayPhotoUri() { return contactDisplayPhotoUri; } /** @hide */ @VisibleForTesting public void SetContactDisplayPhotoUri(Uri photoUri) { contactDisplayPhotoUri = photoUri; } /** * Performs another lookup if previous lookup fails and it's a SIP call * and the peer's username is all numeric. Look up the username as it Loading Loading @@ -425,6 +507,7 @@ public class CallerInfo { /** * @return true if the caller info is an emergency number. * @hide */ public boolean isEmergencyNumber() { return mIsEmergency; Loading @@ -432,6 +515,7 @@ public class CallerInfo { /** * @return true if the caller info is a voicemail number. * @hide */ public boolean isVoiceMailNumber() { return mIsVoiceMail; Loading Loading @@ -591,6 +675,7 @@ public class CallerInfo { * @param context the context used to look up the current locale / country * @param fallbackNumber if this CallerInfo's phoneNumber field is empty, * this specifies a fallback number to use instead. * @hide */ public void updateGeoDescription(Context context, String fallbackNumber) { String number = TextUtils.isEmpty(phoneNumber) ? fallbackNumber : phoneNumber; Loading @@ -600,6 +685,8 @@ public class CallerInfo { /** * @return a geographical description string for the specified number. * @see com.android.i18n.phonenumbers.PhoneNumberOfflineGeocoder * * @hide */ public static String getGeoDescription(Context context, String number) { if (VDBG) Rlog.v(TAG, "getGeoDescription('" + number + "')..."); Loading Loading @@ -657,6 +744,7 @@ public class CallerInfo { return countryIso; } /** @hide */ protected static String getCurrentCountryIso(Context context) { return getCurrentCountryIso(context, Locale.getDefault()); } Loading Loading
api/system-current.txt +7 −0 Original line number Diff line number Diff line Loading @@ -7235,6 +7235,13 @@ package android.telephony { field @NonNull public static final android.os.Parcelable.Creator<android.telephony.CallQuality> CREATOR; } public class CallerInfo { method @Nullable public android.net.Uri getContactDisplayPhotoUri(); method public long getContactId(); method @Nullable public String getName(); method @Nullable public String getPhoneNumber(); } public class CarrierConfigManager { method @NonNull public static android.os.PersistableBundle getDefaultConfig(); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void overrideConfig(int, @Nullable android.os.PersistableBundle); Loading
config/dirty-image-objects +1 −1 Original line number Diff line number Diff line Loading @@ -255,7 +255,7 @@ com.android.internal.os.SomeArgs com.android.internal.policy.DecorView com.android.internal.statusbar.IStatusBarService com.android.internal.telephony.AppSmsManager com.android.internal.telephony.CallerInfoAsyncQuery$OnQueryCompleteListener android.telephony.CallerInfoAsyncQuery$OnQueryCompleteListener com.android.internal.telephony.CarrierActionAgent com.android.internal.telephony.cat.CatService com.android.internal.telephony.cat.IconLoader Loading
config/preloaded-classes +1 −1 Original line number Diff line number Diff line Loading @@ -4698,7 +4698,7 @@ com.android.internal.telephony.CallManager$CallManagerHandler com.android.internal.telephony.CallManager com.android.internal.telephony.CallStateException com.android.internal.telephony.CallTracker com.android.internal.telephony.CallerInfoAsyncQuery$OnQueryCompleteListener android.telephony.CallerInfoAsyncQuery$OnQueryCompleteListener com.android.internal.telephony.CarrierActionAgent$1 com.android.internal.telephony.CarrierActionAgent com.android.internal.telephony.CarrierAppUtils Loading
core/java/android/provider/CallLog.java +9 −9 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ import android.telephony.PhoneNumberUtils; import android.text.TextUtils; import android.util.Log; import com.android.internal.telephony.CallerInfo; import android.telephony.CallerInfo; import com.android.internal.telephony.PhoneConstants; import java.util.List; Loading Loading @@ -728,10 +728,11 @@ public class CallLog { String accountAddress = getLogAccountAddress(context, accountHandle); int numberPresentation = getLogNumberPresentation(number, presentation); String name = (ci != null) ? ci.getName() : ""; if (numberPresentation != PRESENTATION_ALLOWED) { number = ""; if (ci != null) { ci.name = ""; name = ""; } } Loading Loading @@ -760,9 +761,7 @@ public class CallLog { values.put(PHONE_ACCOUNT_ID, accountId); values.put(PHONE_ACCOUNT_ADDRESS, accountAddress); values.put(NEW, Integer.valueOf(1)); if ((ci != null) && (ci.name != null)) { values.put(CACHED_NAME, ci.name); } values.put(CACHED_NAME, name); values.put(ADD_FOR_ALL_USERS, addForAllUsers ? 1 : 0); if (callType == MISSED_TYPE) { Loading @@ -773,7 +772,7 @@ public class CallLog { values.put(CALL_SCREENING_APP_NAME, charSequenceToString(callScreeningAppName)); values.put(CALL_SCREENING_COMPONENT_NAME, callScreeningComponentName); if ((ci != null) && (ci.contactIdOrZero > 0)) { if ((ci != null) && (ci.getContactId() > 0)) { // Update usage information for the number associated with the contact ID. // We need to use both the number and the ID for obtaining a data ID since other // contacts may have the same number. Loading @@ -787,17 +786,18 @@ public class CallLog { cursor = resolver.query(Phone.CONTENT_URI, new String[] { Phone._ID }, Phone.CONTACT_ID + " =? AND " + Phone.NORMALIZED_NUMBER + " =?", new String[] { String.valueOf(ci.contactIdOrZero), new String[] { String.valueOf(ci.getContactId()), normalizedPhoneNumber}, null); } else { final String phoneNumber = ci.phoneNumber != null ? ci.phoneNumber : number; final String phoneNumber = ci.getPhoneNumber() != null ? ci.getPhoneNumber() : number; cursor = resolver.query( Uri.withAppendedPath(Callable.CONTENT_FILTER_URI, Uri.encode(phoneNumber)), new String[] { Phone._ID }, Phone.CONTACT_ID + " =?", new String[] { String.valueOf(ci.contactIdOrZero) }, new String[] { String.valueOf(ci.getContactId()) }, null); } Loading
telephony/java/com/android/internal/telephony/CallerInfo.java→telephony/java/android/telephony/CallerInfo.java +106 −18 Original line number Diff line number Diff line Loading @@ -14,8 +14,10 @@ * limitations under the License. */ package com.android.internal.telephony; package android.telephony; import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.content.ContentResolver; Loading @@ -31,10 +33,6 @@ import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.PhoneLookup; import android.provider.ContactsContract.RawContacts; import android.telephony.PhoneNumberUtils; import android.telephony.Rlog; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.Log; Loading @@ -43,6 +41,7 @@ import com.android.i18n.phonenumbers.PhoneNumberUtil; import com.android.i18n.phonenumbers.Phonenumber.PhoneNumber; import com.android.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder; import com.android.internal.annotations.VisibleForTesting; import java.util.Locale; Loading @@ -51,11 +50,14 @@ import java.util.Locale; * * {@hide} */ @SystemApi public class CallerInfo { private static final String TAG = "CallerInfo"; private static final boolean VDBG = Rlog.isLoggable(TAG, Log.VERBOSE); /** @hide */ public static final long USER_TYPE_CURRENT = 0; /** @hide */ public static final long USER_TYPE_WORK = 1; /** Loading Loading @@ -85,49 +87,61 @@ public class CallerInfo { * field here, NOT name. We're NOT always guaranteed to have a name * for a connection, but the number should be displayable. */ @UnsupportedAppUsage public String name; @UnsupportedAppUsage public String phoneNumber; private String name; private String phoneNumber; /** @hide */ public String normalizedNumber; /** @hide */ public String geoDescription; /** @hide */ public String cnapName; /** @hide */ public int numberPresentation; /** @hide */ public int namePresentation; /** @hide */ public boolean contactExists; /** @hide */ public String phoneLabel; /* Split up the phoneLabel into number type and label name */ /** * Split up the phoneLabel into number type and label name. * @hide */ @UnsupportedAppUsage public int numberType; /** @hide */ @UnsupportedAppUsage public String numberLabel; /** @hide */ public int photoResource; // Contact ID, which will be 0 if a contact comes from the corp CP2. @UnsupportedAppUsage public long contactIdOrZero; private long contactIdOrZero; /** @hide */ public boolean needUpdate; /** @hide */ public Uri contactRefUri; /** @hide */ public String lookupKey; /** @hide */ public ComponentName preferredPhoneAccountComponent; /** @hide */ public String preferredPhoneAccountId; /** @hide */ public long userType; /** * Contact display photo URI. If a contact has no display photo but a thumbnail, it'll be * the thumbnail URI instead. */ public Uri contactDisplayPhotoUri; private Uri contactDisplayPhotoUri; // fields to hold individual contact preference data, // including the send to voicemail flag and the ringtone // uri reference. /** @hide */ public Uri contactRingtoneUri; /** @hide */ public boolean shouldSendToVoicemail; /** Loading @@ -141,6 +155,8 @@ public class CallerInfo { * * The {@link #isCachedPhotoCurrent} flag indicates if the image * data needs to be reloaded. * * @hide */ public Drawable cachedPhoto; /** Loading @@ -153,18 +169,23 @@ public class CallerInfo { * * The {@link #isCachedPhotoCurrent} flag indicates if the image * data needs to be reloaded. * * @hide */ public Bitmap cachedPhotoIcon; /** * Boolean which indicates if {@link #cachedPhoto} and * {@link #cachedPhotoIcon} is fresh enough. If it is false, * those images aren't pointing to valid objects. * * @hide */ public boolean isCachedPhotoCurrent; private boolean mIsEmergency; private boolean mIsVoiceMail; /** @hide */ @UnsupportedAppUsage public CallerInfo() { // TODO: Move all the basic initialization here? Loading @@ -180,6 +201,8 @@ public class CallerInfo { * @param cursor the first object in the cursor is used to build the CallerInfo object. * @return the CallerInfo which contains the caller id for the given * number. The returned CallerInfo is null if no number is supplied. * * @hide */ public static CallerInfo getCallerInfo(Context context, Uri contactRef, Cursor cursor) { CallerInfo info = new CallerInfo(); Loading Loading @@ -321,6 +344,8 @@ public class CallerInfo { * @param contactRef the URI used to lookup caller id * @return the CallerInfo which contains the caller id for the given * number. The returned CallerInfo is null if no number is supplied. * * @hide */ @UnsupportedAppUsage public static CallerInfo getCallerInfo(Context context, Uri contactRef) { Loading @@ -346,6 +371,8 @@ public class CallerInfo { * number. The returned CallerInfo is null if no number is supplied. If * a matching number is not found, then a generic caller info is returned, * with all relevant fields empty or null. * * @hide */ @UnsupportedAppUsage public static CallerInfo getCallerInfo(Context context, String number) { Loading @@ -365,6 +392,8 @@ public class CallerInfo { * number. The returned CallerInfo is null if no number is supplied. If * a matching number is not found, then a generic caller info is returned, * with all relevant fields empty or null. * * @hide */ @UnsupportedAppUsage public static CallerInfo getCallerInfo(Context context, String number, int subId) { Loading Loading @@ -397,6 +426,59 @@ public class CallerInfo { return info; } /** * @return Name assocaited with this caller. */ @Nullable public String getName() { return name; } /** * Set caller Info Name. * @param name caller Info Name * * @hide */ public void setName(@Nullable String name) { this.name = name; } /** * @return Phone number assocaited with this caller. */ @Nullable public String getPhoneNumber() { return phoneNumber; } /** @hide */ public void setPhoneNumber(String number) { phoneNumber = number; } /** * @return Contact ID, which will be 0 if a contact comes from the corp Contacts Provider. */ public long getContactId() { return contactIdOrZero; } /** * @return Contact display photo URI. If a contact has no display photo but a thumbnail, * it'll the thumbnail URI instead. */ @Nullable public Uri getContactDisplayPhotoUri() { return contactDisplayPhotoUri; } /** @hide */ @VisibleForTesting public void SetContactDisplayPhotoUri(Uri photoUri) { contactDisplayPhotoUri = photoUri; } /** * Performs another lookup if previous lookup fails and it's a SIP call * and the peer's username is all numeric. Look up the username as it Loading Loading @@ -425,6 +507,7 @@ public class CallerInfo { /** * @return true if the caller info is an emergency number. * @hide */ public boolean isEmergencyNumber() { return mIsEmergency; Loading @@ -432,6 +515,7 @@ public class CallerInfo { /** * @return true if the caller info is a voicemail number. * @hide */ public boolean isVoiceMailNumber() { return mIsVoiceMail; Loading Loading @@ -591,6 +675,7 @@ public class CallerInfo { * @param context the context used to look up the current locale / country * @param fallbackNumber if this CallerInfo's phoneNumber field is empty, * this specifies a fallback number to use instead. * @hide */ public void updateGeoDescription(Context context, String fallbackNumber) { String number = TextUtils.isEmpty(phoneNumber) ? fallbackNumber : phoneNumber; Loading @@ -600,6 +685,8 @@ public class CallerInfo { /** * @return a geographical description string for the specified number. * @see com.android.i18n.phonenumbers.PhoneNumberOfflineGeocoder * * @hide */ public static String getGeoDescription(Context context, String number) { if (VDBG) Rlog.v(TAG, "getGeoDescription('" + number + "')..."); Loading Loading @@ -657,6 +744,7 @@ public class CallerInfo { return countryIso; } /** @hide */ protected static String getCurrentCountryIso(Context context) { return getCurrentCountryIso(context, Locale.getDefault()); } Loading