diff options
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"/> |