summaryrefslogtreecommitdiff
path: root/java/com/android/dialer
diff options
context:
space:
mode:
authorwangqi <wangqi@google.com>2018-04-11 12:45:07 -0700
committerCopybara-Service <copybara-piper@google.com>2018-04-11 13:51:33 -0700
commitb175d252b8801c4219343d7bff1b76ca1f2eb030 (patch)
tree4d0aa7d6f8a6ded1f9c71f2165113988c8872469 /java/com/android/dialer
parent3bb7cb67720a958cb3f1c63393accb4b1f405bbf (diff)
Add RTT badge to new call log.
Bug: 77717594 Test: ContactPhotoViewTest PiperOrigin-RevId: 192492913 Change-Id: I6db36017fde2cf9dca580d60d5c88bf2ad2dfe16
Diffstat (limited to 'java/com/android/dialer')
-rw-r--r--java/com/android/dialer/calllog/database/Coalescer.java5
-rw-r--r--java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java4
-rw-r--r--java/com/android/dialer/calllog/ui/menu/BottomSheetHeader.java4
-rw-r--r--java/com/android/dialer/calllog/ui/menu/Modules.java4
-rw-r--r--java/com/android/dialer/glidephotomanager/photo_info.proto5
-rw-r--r--java/com/android/dialer/widget/ContactPhotoView.java12
-rw-r--r--java/com/android/dialer/widget/res/layout/contact_photo_view.xml8
7 files changed, 41 insertions, 1 deletions
diff --git a/java/com/android/dialer/calllog/database/Coalescer.java b/java/com/android/dialer/calllog/database/Coalescer.java
index 6b1a9e1f5..5fdf0dfd9 100644
--- a/java/com/android/dialer/calllog/database/Coalescer.java
+++ b/java/com/android/dialer/calllog/database/Coalescer.java
@@ -203,6 +203,11 @@ public class Coalescer {
return false;
}
+ // A RTT call should not be combined with one that is not a RTT call.
+ if ((row1Features & Calls.FEATURES_RTT) != (row2Features & Calls.FEATURES_RTT)) {
+ return false;
+ }
+
return true;
}
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
index 217208d17..d1a654a09 100644
--- a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
+++ b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
@@ -21,6 +21,7 @@ import android.content.res.ColorStateList;
import android.database.Cursor;
import android.provider.CallLog.Calls;
import android.support.annotation.DrawableRes;
+import android.support.v4.os.BuildCompat;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.View;
@@ -152,6 +153,9 @@ final class NewCallLogViewHolder extends RecyclerView.ViewHolder {
NumberAttributesConverter.toPhotoInfoBuilder(row.getNumberAttributes())
.setFormattedNumber(row.getFormattedNumber())
.setIsVideo((row.getFeatures() & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO)
+ .setIsRtt(
+ BuildCompat.isAtLeastP()
+ && (row.getFeatures() & Calls.FEATURES_RTT) == Calls.FEATURES_RTT)
.setIsVoicemail(row.getIsVoicemailCall())
.build());
}
diff --git a/java/com/android/dialer/calllog/ui/menu/BottomSheetHeader.java b/java/com/android/dialer/calllog/ui/menu/BottomSheetHeader.java
index d348541d7..d87888d34 100644
--- a/java/com/android/dialer/calllog/ui/menu/BottomSheetHeader.java
+++ b/java/com/android/dialer/calllog/ui/menu/BottomSheetHeader.java
@@ -18,6 +18,7 @@ package com.android.dialer.calllog.ui.menu;
import android.content.Context;
import android.provider.CallLog.Calls;
+import android.support.v4.os.BuildCompat;
import com.android.dialer.calllog.model.CoalescedRow;
import com.android.dialer.calllogutils.CallLogEntryText;
import com.android.dialer.calllogutils.NumberAttributesConverter;
@@ -33,6 +34,9 @@ final class BottomSheetHeader {
NumberAttributesConverter.toPhotoInfoBuilder(row.getNumberAttributes())
.setFormattedNumber(row.getFormattedNumber())
.setIsVideo((row.getFeatures() & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO)
+ .setIsRtt(
+ BuildCompat.isAtLeastP()
+ && (row.getFeatures() & Calls.FEATURES_RTT) == Calls.FEATURES_RTT)
.build())
.setPrimaryText(CallLogEntryText.buildPrimaryText(context, row).toString())
.setSecondaryText(
diff --git a/java/com/android/dialer/calllog/ui/menu/Modules.java b/java/com/android/dialer/calllog/ui/menu/Modules.java
index dd0b0851e..e16de3af1 100644
--- a/java/com/android/dialer/calllog/ui/menu/Modules.java
+++ b/java/com/android/dialer/calllog/ui/menu/Modules.java
@@ -18,6 +18,7 @@ package com.android.dialer.calllog.ui.menu;
import android.content.Context;
import android.provider.CallLog.Calls;
+import android.support.v4.os.BuildCompat;
import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.text.TextUtils;
@@ -211,6 +212,9 @@ final class Modules {
return NumberAttributesConverter.toPhotoInfoBuilder(row.getNumberAttributes())
.setFormattedNumber(row.getFormattedNumber())
.setIsVideo((row.getFeatures() & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO)
+ .setIsRtt(
+ BuildCompat.isAtLeastP()
+ && (row.getFeatures() & Calls.FEATURES_RTT) == Calls.FEATURES_RTT)
.setIsVoicemail(row.getIsVoicemailCall())
.build();
}
diff --git a/java/com/android/dialer/glidephotomanager/photo_info.proto b/java/com/android/dialer/glidephotomanager/photo_info.proto
index 447cfe83f..6fa21d886 100644
--- a/java/com/android/dialer/glidephotomanager/photo_info.proto
+++ b/java/com/android/dialer/glidephotomanager/photo_info.proto
@@ -9,7 +9,7 @@ package com.android.dialer.glidephotomanager;
// Contains information associated with a number, which is used to create the
// photo.
-// Next ID: 11
+// Next ID: 12
message PhotoInfo {
// The display name of the number.
optional string name = 1;
@@ -41,4 +41,7 @@ message PhotoInfo {
// Whether the photo should be badged as video call.
optional bool is_video = 10;
+
+ // Whether the photo should be badged as RTT call.
+ optional bool is_rtt = 11;
}
diff --git a/java/com/android/dialer/widget/ContactPhotoView.java b/java/com/android/dialer/widget/ContactPhotoView.java
index 5020875dc..03d25de7d 100644
--- a/java/com/android/dialer/widget/ContactPhotoView.java
+++ b/java/com/android/dialer/widget/ContactPhotoView.java
@@ -37,6 +37,7 @@ public final class ContactPhotoView extends FrameLayout {
private final QuickContactBadge contactPhoto;
private final FrameLayout contactBadgeContainer;
private final ImageView videoCallBadge;
+ private final ImageView rttCallBadge;
private final GlidePhotoManager glidePhotoManager;
@@ -61,6 +62,7 @@ public final class ContactPhotoView extends FrameLayout {
contactPhoto = findViewById(R.id.quick_contact_photo);
contactBadgeContainer = findViewById(R.id.contact_badge_container);
videoCallBadge = findViewById(R.id.video_call_badge);
+ rttCallBadge = findViewById(R.id.rtt_call_badge);
glidePhotoManager = GlidePhotoManagerComponent.get(context).glidePhotoManager();
@@ -75,6 +77,7 @@ public final class ContactPhotoView extends FrameLayout {
private void hideBadge() {
contactBadgeContainer.setVisibility(View.INVISIBLE);
videoCallBadge.setVisibility(View.INVISIBLE);
+ rttCallBadge.setVisibility(View.INVISIBLE);
}
/** Sets the contact photo and its badge to be displayed. */
@@ -93,6 +96,15 @@ public final class ContactPhotoView extends FrameLayout {
if (photoInfo.getIsVideo()) {
contactBadgeContainer.setVisibility(View.VISIBLE);
videoCallBadge.setVisibility(View.VISIBLE);
+ // Normally a video call can't be RTT call and vice versa.
+ // (a bug): In theory a video call could be downgraded to voice and upgraded to RTT call
+ // again, this might end up a call with video and RTT features both set. Update logic here if
+ // that could happen. Also update {@link Coalescer#meetsCallFeatureCriteria}.
+ rttCallBadge.setVisibility(INVISIBLE);
+ } else if (photoInfo.getIsRtt()) {
+ contactBadgeContainer.setVisibility(View.VISIBLE);
+ videoCallBadge.setVisibility(INVISIBLE);
+ rttCallBadge.setVisibility(View.VISIBLE);
} else {
hideBadge();
}
diff --git a/java/com/android/dialer/widget/res/layout/contact_photo_view.xml b/java/com/android/dialer/widget/res/layout/contact_photo_view.xml
index 2f5cd9e3d..a825ce38b 100644
--- a/java/com/android/dialer/widget/res/layout/contact_photo_view.xml
+++ b/java/com/android/dialer/widget/res/layout/contact_photo_view.xml
@@ -47,5 +47,13 @@
android:layout_height="13dp"
android:layout_gravity="center"
android:src="@drawable/quantum_ic_videocam_vd_white_24"/>
+
+ <ImageView
+ android:id="@+id/rtt_call_badge"
+ android:layout_width="13dp"
+ android:layout_height="13dp"
+ android:layout_gravity="center"
+ android:tint="@android:color/white"
+ android:src="@drawable/quantum_ic_rtt_vd_theme_24"/>
</FrameLayout>
</FrameLayout> \ No newline at end of file