diff options
Diffstat (limited to 'java/com/android/incallui/StatusBarNotifier.java')
-rw-r--r-- | java/com/android/incallui/StatusBarNotifier.java | 55 |
1 files changed, 27 insertions, 28 deletions
diff --git a/java/com/android/incallui/StatusBarNotifier.java b/java/com/android/incallui/StatusBarNotifier.java index 165b30b52..229f08c8e 100644 --- a/java/com/android/incallui/StatusBarNotifier.java +++ b/java/com/android/incallui/StatusBarNotifier.java @@ -62,11 +62,11 @@ import android.text.style.ForegroundColorSpan; import com.android.contacts.common.ContactsUtils; import com.android.contacts.common.ContactsUtils.UserType; import com.android.contacts.common.lettertiles.LetterTileDrawable; +import com.android.contacts.common.lettertiles.LetterTileDrawable.ContactType; import com.android.contacts.common.preference.ContactsPreferences; import com.android.contacts.common.util.BitmapUtil; import com.android.contacts.common.util.ContactDisplayUtils; import com.android.dialer.common.LogUtil; -import com.android.dialer.enrichedcall.EnrichedCallComponent; import com.android.dialer.enrichedcall.EnrichedCallManager; import com.android.dialer.enrichedcall.Session; import com.android.dialer.multimedia.MultimediaData; @@ -565,8 +565,9 @@ public class StatusBarNotifier @VisibleForTesting @Nullable String getContentTitle(ContactCacheEntry contactInfo, DialerCall call) { - if (call.isConferenceCall() && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)) { - return mContext.getResources().getString(R.string.conference_call_name); + if (call.isConferenceCall()) { + return CallerInfoUtils.getConferenceString( + mContext, call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)); } String preferredName = @@ -604,20 +605,16 @@ public class StatusBarNotifier if (contactInfo.photo == null) { int width = (int) resources.getDimension(android.R.dimen.notification_large_icon_width); int height = (int) resources.getDimension(android.R.dimen.notification_large_icon_height); - int contactType = LetterTileDrawable.TYPE_DEFAULT; + @ContactType + int contactType = + LetterTileDrawable.getContactTypeFromPrimitives( + CallerInfoUtils.isVoiceMailNumber(context, call), + call.isSpam(), + contactInfo.isBusiness, + call.getNumberPresentation(), + call.isConferenceCall() && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)); LetterTileDrawable lettertile = new LetterTileDrawable(resources); - // TODO: Deduplicate across Dialer. b/36195917 - if (CallerInfoUtils.isVoiceMailNumber(context, call)) { - contactType = LetterTileDrawable.TYPE_VOICEMAIL; - } else if (contactInfo.isBusiness) { - contactType = LetterTileDrawable.TYPE_BUSINESS; - } else if (call.getNumberPresentation() == TelecomManager.PRESENTATION_RESTRICTED) { - contactType = LetterTileDrawable.TYPE_GENERIC_AVATAR; - } else if (call.isConferenceCall() - && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)) { - contactType = LetterTileDrawable.TYPE_CONFERENCE; - } lettertile.setCanonicalDialerLetterTileDetails( contactInfo.namePrimary == null ? contactInfo.number : contactInfo.namePrimary, contactInfo.lookupKey, @@ -694,20 +691,10 @@ public class StatusBarNotifier } if (isIncomingOrWaiting) { - EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager(); - Session session = null; - if (call.getNumber() != null) { - session = - manager.getSession( - call.getUniqueCallId(), - call.getNumber(), - manager.createIncomingCallComposerFilter()); - } - if (call.isSpam()) { resId = R.string.notification_incoming_spam_call; - } else if (session != null) { - resId = getECIncomingCallText(session); + } else if (shouldShowEnrichedCallNotification(call.getEnrichedCallSession())) { + resId = getECIncomingCallText(call.getEnrichedCallSession()); } else if (call.hasProperty(Details.PROPERTY_WIFI)) { resId = R.string.notification_incoming_call_wifi; } else { @@ -731,6 +718,13 @@ public class StatusBarNotifier return mContext.getString(resId); } + private boolean shouldShowEnrichedCallNotification(Session session) { + if (session == null) { + return false; + } + return session.getMultimediaData().hasData() || session.getMultimediaData().isImportant(); + } + private int getECIncomingCallText(Session session) { int resId; MultimediaData data = session.getMultimediaData(); @@ -756,8 +750,10 @@ public class StatusBarNotifier } else { resId = R.string.important_notification_incoming_call_with_photo; } - } else { + } else if (hasSubject) { resId = R.string.important_notification_incoming_call_with_message; + } else { + resId = R.string.important_notification_incoming_call; } if (mContext.getString(resId).length() > 50) { resId = R.string.important_notification_incoming_call_attachments; @@ -1005,6 +1001,9 @@ public class StatusBarNotifier @Override public void onInternationalCallOnWifi() {} + @Override + public void onEnrichedCallSessionUpdate() {} + /** * Responds to changes in the session modification state for the call by dismissing the status * bar notification as required. |