summaryrefslogtreecommitdiff
path: root/java/com/android/incallui/contactgrid/TopRow.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/incallui/contactgrid/TopRow.java')
-rw-r--r--java/com/android/incallui/contactgrid/TopRow.java23
1 files changed, 21 insertions, 2 deletions
diff --git a/java/com/android/incallui/contactgrid/TopRow.java b/java/com/android/incallui/contactgrid/TopRow.java
index 82a103a61..d242c3a14 100644
--- a/java/com/android/incallui/contactgrid/TopRow.java
+++ b/java/com/android/incallui/contactgrid/TopRow.java
@@ -21,8 +21,12 @@ import android.graphics.drawable.Drawable;
import android.support.annotation.Nullable;
import android.telephony.PhoneNumberUtils;
import android.text.BidiFormatter;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.Spanned;
import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
+import android.text.style.ForegroundColorSpan;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.incallui.call.state.DialerCallState;
@@ -141,8 +145,7 @@ public class TopRow {
} else if (state.isWifi() && !TextUtils.isEmpty(state.connectionLabel())) {
return state.connectionLabel();
} else if (isAccount(state)) {
- return context.getString(
- R.string.contact_grid_incoming_via_template, state.connectionLabel());
+ return getColoredConnectionLabel(context, state);
} else if (state.isWorkCall()) {
return context.getString(R.string.contact_grid_incoming_work_call);
} else {
@@ -150,6 +153,22 @@ public class TopRow {
}
}
+ private static Spannable getColoredConnectionLabel(Context context, PrimaryCallState state) {
+ Assert.isNotNull(state.connectionLabel());
+ String label =
+ context.getString(R.string.contact_grid_incoming_via_template, state.connectionLabel());
+ Spannable spannable = new SpannableString(label);
+
+ int start = label.indexOf(state.connectionLabel());
+ int end = start + state.connectionLabel().length();
+ spannable.setSpan(
+ new ForegroundColorSpan(state.primaryColor()),
+ start,
+ end,
+ Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
+ return spannable;
+ }
+
private static CharSequence getLabelForIncomingVideo(
Context context, @SessionModificationState int sessionModificationState, boolean isWifi) {
if (sessionModificationState == SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) {