diff options
Diffstat (limited to 'InCallUI/src/com/android/incallui/StatusBarNotifier.java')
-rw-r--r-- | InCallUI/src/com/android/incallui/StatusBarNotifier.java | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/InCallUI/src/com/android/incallui/StatusBarNotifier.java b/InCallUI/src/com/android/incallui/StatusBarNotifier.java index 8df4520bf..e583434da 100644 --- a/InCallUI/src/com/android/incallui/StatusBarNotifier.java +++ b/InCallUI/src/com/android/incallui/StatusBarNotifier.java @@ -40,6 +40,8 @@ import com.android.incallui.InCallPresenter.InCallState; import com.google.common.base.Preconditions; +import java.util.Objects; + /** * This class adds Notifications to the status bar for the in-call experience. */ @@ -60,7 +62,7 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener, private int mCurrentNotification = NOTIFICATION_NONE; private int mCallState = Call.State.INVALID; private int mSavedIcon = 0; - private int mSavedContent = 0; + private String mSavedContent = null; private Bitmap mSavedLargeIcon; private String mSavedContentTitle; private String mCallId = null; @@ -206,7 +208,7 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener, // Check if data has changed; if nothing is different, don't issue another notification. final int iconResId = getIconToDisplay(call); Bitmap largeIcon = getLargeIconToDisplay(contactInfo, call); - final int contentResId = getContentString(call); + final String content = getContentString(call); final String contentTitle = getContentTitle(contactInfo, call); final int notificationType; @@ -218,7 +220,7 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener, notificationType = NOTIFICATION_IN_CALL; } - if (!checkForChangeAndSaveData(iconResId, contentResId, largeIcon, contentTitle, state, + if (!checkForChangeAndSaveData(iconResId, content, largeIcon, contentTitle, state, notificationType)) { return; } @@ -244,7 +246,7 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener, } // Set the content - builder.setContentText(mContext.getString(contentResId)); + builder.setContentText(content); builder.setSmallIcon(iconResId); builder.setContentTitle(contentTitle); builder.setLargeIcon(largeIcon); @@ -306,7 +308,7 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener, * are already displaying. If the data is exactly the same, we return false so that * we do not issue a new notification for the exact same data. */ - private boolean checkForChangeAndSaveData(int icon, int content, Bitmap largeIcon, + private boolean checkForChangeAndSaveData(int icon, String content, Bitmap largeIcon, String contentTitle, int state, int notificationType) { // The two are different: @@ -317,7 +319,7 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener, (contentTitle == null && mSavedContentTitle != null); // any change means we are definitely updating - boolean retval = (mSavedIcon != icon) || (mSavedContent != content) || + boolean retval = (mSavedIcon != icon) || !Objects.equals(mSavedContent, content) || (mCallState != state) || (mSavedLargeIcon != largeIcon) || contentTitleChanged; @@ -419,13 +421,20 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener, /** * Returns the message to use with the notification. */ - private int getContentString(Call call) { + private String getContentString(Call call) { + boolean isIncomingOrWaiting = call.getState() == Call.State.INCOMING || + call.getState() == Call.State.CALL_WAITING; + + if (isIncomingOrWaiting && !TextUtils.isEmpty(call.getCallSubject())) { + return call.getCallSubject(); + } + int resId = R.string.notification_ongoing_call; if (call.hasProperty(Details.PROPERTY_WIFI)) { resId = R.string.notification_ongoing_call_wifi; } - if (call.getState() == Call.State.INCOMING || call.getState() == Call.State.CALL_WAITING) { + if (isIncomingOrWaiting) { if (call.hasProperty(Details.PROPERTY_WIFI)) { resId = R.string.notification_incoming_call_wifi; } else { @@ -440,7 +449,7 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener, resId = R.string.notification_requesting_video_call; } - return resId; + return mContext.getString(resId); } /** @@ -637,4 +646,9 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener, updateNotification(mInCallState, CallList.getInstance()); } } + + @Override + public void onLastForwardedNumberChange() { + // no-op + } } |