Add work description into call state in InCallUI
Only description of incoming call and call ended are affected
BUG=26082618
Change-Id: Ic511aac339b02db4453e695bfc92ccad47a97c83
diff --git a/InCallUI/res/values/strings.xml b/InCallUI/res/values/strings.xml
index 41b2852..df588d5 100644
--- a/InCallUI/res/values/strings.xml
+++ b/InCallUI/res/values/strings.xml
@@ -95,6 +95,8 @@
<string name="card_title_conf_call">Conference call</string>
<!-- In-call screen: status label for an incoming call [CHAR LIMIT=25] -->
<string name="card_title_incoming_call">Incoming call</string>
+ <!-- In-call screen: status label for an incoming work call [CHAR LIMIT=25] -->
+ <string name="card_title_incoming_work_call">Incoming work call</string>
<!-- In-call screen: status label displayed briefly after a call ends [CHAR LIMIT=25] -->
<string name="card_title_call_ended">Call ended</string>
<!-- In-call screen: status label for call that's on hold [CHAR LIMIT=25] -->
diff --git a/InCallUI/src/com/android/incallui/CallCardFragment.java b/InCallUI/src/com/android/incallui/CallCardFragment.java
index efd4818..1a9f283 100644
--- a/InCallUI/src/com/android/incallui/CallCardFragment.java
+++ b/InCallUI/src/com/android/incallui/CallCardFragment.java
@@ -714,11 +714,12 @@
Drawable callStateIcon,
String gatewayNumber,
boolean isWifi,
- boolean isConference) {
+ boolean isConference,
+ boolean isWorkCall) {
boolean isGatewayCall = !TextUtils.isEmpty(gatewayNumber);
CallStateLabel callStateLabel = getCallStateLabelFromState(state, videoState,
sessionModificationState, disconnectCause, connectionLabel, isGatewayCall, isWifi,
- isConference);
+ isConference, isWorkCall);
Log.v(this, "setCallState " + callStateLabel.getCallStateLabel());
Log.v(this, "AutoDismiss " + callStateLabel.isAutoDismissing());
@@ -1010,7 +1011,7 @@
*/
private CallStateLabel getCallStateLabelFromState(int state, int videoState,
int sessionModificationState, DisconnectCause disconnectCause, String label,
- boolean isGatewayCall, boolean isWifi, boolean isConference) {
+ boolean isGatewayCall, boolean isWifi, boolean isConference, boolean isWorkCall) {
final Context context = getView().getContext();
CharSequence callStateLabel = null; // Label to display as part of the call banner
@@ -1068,7 +1069,9 @@
} else if (VideoUtils.isVideoCall(videoState)) {
callStateLabel = context.getString(R.string.notification_incoming_video_call);
} else {
- callStateLabel = context.getString(R.string.card_title_incoming_call);
+ callStateLabel =
+ context.getString(isWorkCall ? R.string.card_title_incoming_work_call
+ : R.string.card_title_incoming_call);
}
break;
case Call.State.DISCONNECTING:
diff --git a/InCallUI/src/com/android/incallui/CallCardPresenter.java b/InCallUI/src/com/android/incallui/CallCardPresenter.java
index fed229d..f54c633 100644
--- a/InCallUI/src/com/android/incallui/CallCardPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallCardPresenter.java
@@ -318,7 +318,8 @@
null,
null,
false /* isWifi */,
- false /* isConference */);
+ false /* isConference */,
+ false /* isWorkCall */);
getUi().showHdAudioIndicator(false);
}
@@ -410,6 +411,9 @@
private void updatePrimaryCallState() {
if (getUi() != null && mPrimary != null) {
+ boolean isWorkCall = mPrimary.hasProperty(PROPERTY_WORK_CALL)
+ || (mPrimaryContactInfo == null ? false
+ : mPrimaryContactInfo.userType == ContactsUtils.USER_TYPE_WORK);
getUi().setCallState(
mPrimary.getState(),
mPrimary.getVideoState(),
@@ -419,7 +423,8 @@
getCallStateIcon(),
getGatewayNumber(),
mPrimary.hasProperty(Details.PROPERTY_WIFI),
- mPrimary.isConferenceCall());
+ mPrimary.isConferenceCall(),
+ isWorkCall);
maybeShowHdAudioIcon();
setCallbackNumber();
@@ -1108,7 +1113,7 @@
void setCallState(int state, int videoState, int sessionModificationState,
DisconnectCause disconnectCause, String connectionLabel,
Drawable connectionIcon, String gatewayNumber, boolean isWifi,
- boolean isConference);
+ boolean isConference, boolean isWorkCall);
void setPrimaryCallElapsedTime(boolean show, long duration);
void setPrimaryName(String name, boolean nameIsNumber);
void setPrimaryImage(Drawable image, boolean isVisible);