summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlinyuh <linyuh@google.com>2018-03-28 09:33:56 -0700
committerCopybara-Service <copybara-piper@google.com>2018-03-28 10:42:30 -0700
commiteef33d9bf793a3bfb5394aba05b3f799cd26d28a (patch)
tree6a8f8c9fd26c5128404dd06ec0c952ef9ce7190f
parentf17830ac721ab233e3bbb331ea91741614641009 (diff)
Badge contact photos in the new call log for video calls.
Bug: 70988682 Test: NewCallLogViewHolderTest PiperOrigin-RevId: 190783830 Change-Id: Ib0b1ec23b7c278b83516019924b6c68ff12adaf9
-rw-r--r--assets/quantum/res/drawable/quantum_ic_videocam_vd_white_24.xml24
-rw-r--r--java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java17
-rw-r--r--java/com/android/dialer/calllog/ui/res/drawable/contact_photo_badge_background.xml23
-rw-r--r--java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml51
4 files changed, 101 insertions, 14 deletions
diff --git a/assets/quantum/res/drawable/quantum_ic_videocam_vd_white_24.xml b/assets/quantum/res/drawable/quantum_ic_videocam_vd_white_24.xml
new file mode 100644
index 000000000..27420cadf
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_videocam_vd_white_24.xml
@@ -0,0 +1,24 @@
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M17,10.5V7c0,-0.55 -0.45,-1 -1,-1H4c-0.55,0 -1,0.45 -1,1v10c0,0.55 0.45,1 1,1h12c0.55,0 1,-0.45 1,-1v-3.5l4,4v-11l-4,4z"/>
+</vector>
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
index 713ca4405..aa71ec4e1 100644
--- a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
+++ b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
@@ -24,6 +24,7 @@ import android.support.annotation.DrawableRes;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.View;
+import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.QuickContactBadge;
import android.widget.TextView;
@@ -50,7 +51,8 @@ final class NewCallLogViewHolder extends RecyclerView.ViewHolder {
private final TextView primaryTextView;
private final TextView callCountTextView;
private final TextView secondaryTextView;
- private final QuickContactBadge quickContactBadge;
+ private final QuickContactBadge contactPhoto;
+ private final FrameLayout contactBadgeContainer;
private final ImageView callTypeIcon;
private final ImageView hdIcon;
private final ImageView wifiIcon;
@@ -76,7 +78,8 @@ final class NewCallLogViewHolder extends RecyclerView.ViewHolder {
primaryTextView = view.findViewById(R.id.primary_text);
callCountTextView = view.findViewById(R.id.call_count);
secondaryTextView = view.findViewById(R.id.secondary_text);
- quickContactBadge = view.findViewById(R.id.quick_contact_photo);
+ contactPhoto = view.findViewById(R.id.quick_contact_photo);
+ contactBadgeContainer = view.findViewById(R.id.contact_badge_container);
callTypeIcon = view.findViewById(R.id.call_type_icon);
hdIcon = view.findViewById(R.id.hd_icon);
wifiIcon = view.findViewById(R.id.wifi_icon);
@@ -152,11 +155,19 @@ final class NewCallLogViewHolder extends RecyclerView.ViewHolder {
private void setPhoto(CoalescedRow row) {
glidePhotoManager.loadQuickContactBadge(
- quickContactBadge,
+ contactPhoto,
NumberAttributesConverter.toPhotoInfoBuilder(row.getNumberAttributes())
.setFormattedNumber(row.getFormattedNumber())
.setIsVoicemail(row.getIsVoicemailCall())
.build());
+
+ contactBadgeContainer.setVisibility(
+ shouldShowVideoCallIcon(row) ? View.VISIBLE : View.INVISIBLE);
+ }
+
+ private static boolean shouldShowVideoCallIcon(CoalescedRow row) {
+ return (row.getFeatures() & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO
+ && !row.getNumberAttributes().getIsSpam();
}
private void setFeatureIcons(CoalescedRow row) {
diff --git a/java/com/android/dialer/calllog/ui/res/drawable/contact_photo_badge_background.xml b/java/com/android/dialer/calllog/ui/res/drawable/contact_photo_badge_background.xml
new file mode 100644
index 000000000..4dcc7057e
--- /dev/null
+++ b/java/com/android/dialer/calllog/ui/res/drawable/contact_photo_badge_background.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<shape
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="oval">
+
+ <solid android:color="@color/dialer_theme_color"/>
+ <stroke android:color="@color/background_dialer_white" android:width="2dp"/>
+</shape> \ No newline at end of file
diff --git a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml
index 093f866fc..22854311d 100644
--- a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml
+++ b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml
@@ -21,14 +21,43 @@
android:layout_height="wrap_content"
android:minHeight="72dp">
- <QuickContactBadge
- android:id="@+id/quick_contact_photo"
- android:layout_width="40dp"
- android:layout_height="40dp"
- android:layout_marginStart="16dp"
- android:layout_marginEnd="16dp"
- android:layout_centerVertical="true"
- android:focusable="true"/>
+ <!-- Contact photo (including the optional video icon) -->
+ <FrameLayout
+ android:id="@+id/contact_photo_container"
+ android:layout_width="52dp"
+ android:layout_height="44dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
+ android:layout_centerVertical="true"
+ android:focusable="false">
+
+ <QuickContactBadge
+ android:id="@+id/quick_contact_photo"
+ android:layout_width="40dp"
+ android:layout_height="40dp"
+ android:layout_gravity="center"
+ android:focusable="true"/>
+
+ <FrameLayout
+ android:id="@+id/contact_badge_container"
+ android:layout_width="22dp"
+ android:layout_height="22dp"
+ android:layout_gravity="bottom|end">
+
+ <ImageView
+ android:id="@+id/contact_badge_background"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:src="@drawable/contact_photo_badge_background"/>
+
+ <ImageView
+ android:id="@+id/video_call_icon"
+ android:layout_width="13dp"
+ android:layout_height="13dp"
+ android:layout_gravity="center"
+ android:src="@drawable/quantum_ic_videocam_vd_white_24"/>
+ </FrameLayout>
+ </FrameLayout>
<!-- The frame layout is necessary to avoid clipping the icons and ellipsize the text when the
content is too wide to fit.
@@ -37,7 +66,7 @@
android:id="@+id/primary_row"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_toEndOf="@+id/quick_contact_photo"
+ android:layout_toEndOf="@+id/contact_photo_container"
android:layout_toStartOf="@+id/menu_button">
<LinearLayout
@@ -98,7 +127,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/primary_row"
- android:layout_toEndOf="@+id/quick_contact_photo"
+ android:layout_toEndOf="@+id/contact_photo_container"
android:orientation="horizontal">
<ImageView
@@ -124,7 +153,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/secondary_row"
- android:layout_toEndOf="@+id/quick_contact_photo"
+ android:layout_toEndOf="@+id/contact_photo_container"
android:ellipsize="end"
android:singleLine="true"
android:visibility="gone"/>