diff options
| -rw-r--r-- | core/api/current.txt | 1 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/Call.java | 29 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/ParcelableCall.java | 26 |
3 files changed, 49 insertions, 7 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index b4116cf69959..1660880673c0 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -40523,6 +40523,7 @@ package android.telecom { method public int getCallerNumberVerificationStatus(); method public final long getConnectTimeMillis(); method @Nullable public String getContactDisplayName(); + method @Nullable public android.net.Uri getContactPhotoUri(); method public long getCreationTimeMillis(); method public android.telecom.DisconnectCause getDisconnectCause(); method public android.os.Bundle getExtras(); diff --git a/telecomm/java/android/telecom/Call.java b/telecomm/java/android/telecom/Call.java index 5cef2cb0a161..bbdc8907275e 100644 --- a/telecomm/java/android/telecom/Call.java +++ b/telecomm/java/android/telecom/Call.java @@ -738,6 +738,7 @@ public final class Call { private final String mContactDisplayName; private final @CallDirection int mCallDirection; private final @Connection.VerificationStatus int mCallerNumberVerificationStatus; + private final Uri mContactPhotoUri; /** * Whether the supplied capabilities supports the specified capability. @@ -945,6 +946,17 @@ public final class Call { } /** + * @return The contact photo URI which corresponds to + * {@link android.provider.ContactsContract.PhoneLookup#PHOTO_URI}, or {@code null} if the + * lookup is not yet complete, if there's no contacts entry for the caller, + * or if the {@link InCallService} does not hold the + * {@link android.Manifest.permission#READ_CONTACTS} permission. + */ + public @Nullable Uri getContactPhotoUri() { + return mContactPhotoUri; + } + + /** * The display name for the caller. * <p> * This is the name as reported by the {@link ConnectionService} associated with this call. @@ -1143,7 +1155,8 @@ public final class Call { Objects.equals(mContactDisplayName, d.mContactDisplayName) && Objects.equals(mCallDirection, d.mCallDirection) && Objects.equals(mCallerNumberVerificationStatus, - d.mCallerNumberVerificationStatus); + d.mCallerNumberVerificationStatus) && + Objects.equals(mContactPhotoUri, d.mContactPhotoUri); } return false; } @@ -1168,7 +1181,8 @@ public final class Call { mCreationTimeMillis, mContactDisplayName, mCallDirection, - mCallerNumberVerificationStatus); + mCallerNumberVerificationStatus, + mContactPhotoUri); } /** {@hide} */ @@ -1192,7 +1206,8 @@ public final class Call { long creationTimeMillis, String contactDisplayName, int callDirection, - int callerNumberVerificationStatus) { + int callerNumberVerificationStatus, + Uri contactPhotoUri) { mState = state; mTelecomCallId = telecomCallId; mHandle = handle; @@ -1213,6 +1228,7 @@ public final class Call { mContactDisplayName = contactDisplayName; mCallDirection = callDirection; mCallerNumberVerificationStatus = callerNumberVerificationStatus; + mContactPhotoUri = contactPhotoUri; } /** {@hide} */ @@ -1237,7 +1253,9 @@ public final class Call { parcelableCall.getCreationTimeMillis(), parcelableCall.getContactDisplayName(), parcelableCall.getCallDirection(), - parcelableCall.getCallerNumberVerificationStatus()); + parcelableCall.getCallerNumberVerificationStatus(), + parcelableCall.getContactPhotoUri() + ); } @Override @@ -2644,7 +2662,8 @@ public final class Call { mDetails.getCreationTimeMillis(), mDetails.getContactDisplayName(), mDetails.getCallDirection(), - mDetails.getCallerNumberVerificationStatus() + mDetails.getCallerNumberVerificationStatus(), + mDetails.getContactPhotoUri() ); fireDetailsChanged(mDetails); } diff --git a/telecomm/java/android/telecom/ParcelableCall.java b/telecomm/java/android/telecom/ParcelableCall.java index f412a1825e2a..6a1318982e77 100644 --- a/telecomm/java/android/telecom/ParcelableCall.java +++ b/telecomm/java/android/telecom/ParcelableCall.java @@ -69,6 +69,7 @@ public final class ParcelableCall implements Parcelable { private int mCallerNumberVerificationStatus; private String mContactDisplayName; private String mActiveChildCallId; + private Uri mContactPhotoUri; public ParcelableCallBuilder setId(String id) { mId = id; @@ -224,6 +225,11 @@ public final class ParcelableCall implements Parcelable { return this; } + public ParcelableCallBuilder setContactPhotoUri(Uri contactPhotoUri) { + mContactPhotoUri = contactPhotoUri; + return this; + } + public ParcelableCall createParcelableCall() { return new ParcelableCall( mId, @@ -255,7 +261,8 @@ public final class ParcelableCall implements Parcelable { mCallDirection, mCallerNumberVerificationStatus, mContactDisplayName, - mActiveChildCallId); + mActiveChildCallId, + mContactPhotoUri); } public static ParcelableCallBuilder fromParcelableCall(ParcelableCall parcelableCall) { @@ -292,6 +299,7 @@ public final class ParcelableCall implements Parcelable { parcelableCall.mCallerNumberVerificationStatus; newBuilder.mContactDisplayName = parcelableCall.mContactDisplayName; newBuilder.mActiveChildCallId = parcelableCall.mActiveChildCallId; + newBuilder.mContactPhotoUri = parcelableCall.mContactPhotoUri; return newBuilder; } } @@ -327,6 +335,7 @@ public final class ParcelableCall implements Parcelable { private final int mCallerNumberVerificationStatus; private final String mContactDisplayName; private final String mActiveChildCallId; // Only valid for CDMA conferences + private final Uri mContactPhotoUri; public ParcelableCall( String id, @@ -358,7 +367,8 @@ public final class ParcelableCall implements Parcelable { int callDirection, int callerNumberVerificationStatus, String contactDisplayName, - String activeChildCallId + String activeChildCallId, + Uri contactPhotoUri ) { mId = id; mState = state; @@ -390,6 +400,7 @@ public final class ParcelableCall implements Parcelable { mCallerNumberVerificationStatus = callerNumberVerificationStatus; mContactDisplayName = contactDisplayName; mActiveChildCallId = activeChildCallId; + mContactPhotoUri = contactPhotoUri; } /** The unique ID of the call. */ @@ -607,6 +618,14 @@ public final class ParcelableCall implements Parcelable { } /** + * @return the caller photo URI. + */ + public @Nullable Uri getContactPhotoUri() { + return mContactPhotoUri; + } + + + /** * @return On a CDMA conference with two participants, returns the ID of the child call that's * currently active. */ @@ -655,6 +674,7 @@ public final class ParcelableCall implements Parcelable { int callerNumberVerificationStatus = source.readInt(); String contactDisplayName = source.readString(); String activeChildCallId = source.readString(); + Uri contactPhotoUri = source.readParcelable(classLoader, Uri.class); return new ParcelableCallBuilder() .setId(id) .setState(state) @@ -686,6 +706,7 @@ public final class ParcelableCall implements Parcelable { .setCallerNumberVerificationStatus(callerNumberVerificationStatus) .setContactDisplayName(contactDisplayName) .setActiveChildCallId(activeChildCallId) + .setContactPhotoUri(contactPhotoUri) .createParcelableCall(); } @@ -735,6 +756,7 @@ public final class ParcelableCall implements Parcelable { destination.writeInt(mCallerNumberVerificationStatus); destination.writeString(mContactDisplayName); destination.writeString(mActiveChildCallId); + destination.writeParcelable(mContactPhotoUri, 0); } @Override |