Keep actions on new call log entries consistent with those in the old call log.
Bug: 110412130
Test: NewCallLogViewHolderTest, NewCallLogIntegrationTest
PiperOrigin-RevId: 201543827
Change-Id: I301aaf686b729086776ab3bcc677bacd2450fea0
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
index 812e7b9..a6e3c99 100644
--- a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
+++ b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
@@ -63,7 +63,7 @@
private final ImageView wifiIcon;
private final ImageView assistedDialIcon;
private final TextView phoneAccountView;
- private final ImageView menuButton;
+ private final ImageView callButton;
private final View callLogEntryRootView;
private final Clock clock;
@@ -91,7 +91,7 @@
wifiIcon = view.findViewById(R.id.wifi_icon);
assistedDialIcon = view.findViewById(R.id.assisted_dial_icon);
phoneAccountView = view.findViewById(R.id.phone_account);
- menuButton = view.findViewById(R.id.menu_button);
+ callButton = view.findViewById(R.id.call_button);
this.clock = clock;
this.realtimeRowProcessor = realtimeRowProcessor;
@@ -139,8 +139,9 @@
setFeatureIcons(row);
setCallTypeIcon(row);
setPhoneAccounts(row);
- setOnClickListenerForRow(row);
- setOnClickListenerForMenuButon(row);
+ setCallButon(row);
+
+ itemView.setOnClickListener(NewCallLogMenu.createOnClickListener(activity, row));
}
private void configA11yForRow(CoalescedRow row) {
@@ -286,21 +287,29 @@
phoneAccountView.setVisibility(View.VISIBLE);
}
- private void setOnClickListenerForRow(CoalescedRow row) {
+ private void setCallButon(CoalescedRow row) {
if (!PhoneNumberHelper.canPlaceCallsTo(
row.getNumber().getNormalizedNumber(), row.getNumberPresentation())) {
- itemView.setOnClickListener(null);
+ callButton.setVisibility(View.GONE);
return;
}
- itemView.setOnClickListener(view -> CallLogRowActions.startCallForRow(activity, row));
- }
- private void setOnClickListenerForMenuButon(CoalescedRow row) {
- menuButton.setOnClickListener(NewCallLogMenu.createOnClickListener(activity, row));
- menuButton.setContentDescription(
- TextUtils.expandTemplate(
- activity.getResources().getText(R.string.a11y_new_call_log_entry_expand_menu),
- CallLogEntryText.buildPrimaryText(activity, row)));
+ callButton.setVisibility(View.VISIBLE);
+ if ((row.getFeatures() & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO) {
+ callButton.setImageResource(R.drawable.quantum_ic_videocam_vd_theme_24);
+ callButton.setContentDescription(
+ TextUtils.expandTemplate(
+ activity.getResources().getText(R.string.a11y_new_call_log_entry_video_call),
+ CallLogEntryText.buildPrimaryText(activity, row)));
+ } else {
+ callButton.setImageResource(R.drawable.quantum_ic_call_vd_theme_24);
+ callButton.setContentDescription(
+ TextUtils.expandTemplate(
+ activity.getResources().getText(R.string.a11y_new_call_log_entry_voice_call),
+ CallLogEntryText.buildPrimaryText(activity, row)));
+ }
+
+ callButton.setOnClickListener(view -> CallLogRowActions.startCallForRow(activity, row));
}
private class RealtimeRowFutureCallback implements FutureCallback<CoalescedRow> {
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 5ce87ce..dba859f 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
@@ -18,9 +18,11 @@
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/new_call_log_entry_root"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:minHeight="72dp">
+ android:minHeight="72dp"
+ android:background="?android:attr/selectableItemBackground">
<com.android.dialer.widget.ContactPhotoView
android:id="@+id/contact_photo_view"
@@ -40,7 +42,7 @@
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toEndOf="@+id/contact_photo_view"
- android:layout_toStartOf="@+id/menu_button"
+ android:layout_toStartOf="@+id/call_button"
android:orientation="vertical"
android:importantForAccessibility="noHideDescendants">
@@ -141,18 +143,17 @@
</LinearLayout>
<!--
- The button to expand the bottom sheet for an entry.
+ The button to make a call.
Its content description is set in Java code.
-->
<ImageView
- android:id="@+id/menu_button"
+ android:id="@+id/call_button"
android:layout_width="56dp"
android:layout_height="72dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:scaleType="center"
- android:src="@drawable/quantum_ic_more_vert_vd_theme_24"
android:tint="?colorIcon"
tools:ignore="ContentDescription"/>
</RelativeLayout>
diff --git a/java/com/android/dialer/calllog/ui/res/values/strings.xml b/java/com/android/dialer/calllog/ui/res/values/strings.xml
index b97a106..87d6a19 100644
--- a/java/com/android/dialer/calllog/ui/res/values/strings.xml
+++ b/java/com/android/dialer/calllog/ui/res/values/strings.xml
@@ -18,19 +18,28 @@
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!--
- A string informing a11y users that activating a call log entry will place a call.
- Note: the word "call" here is a verb.
+ A string informing a11y users that activating a call log entry will expand the menu
+ (a bottom sheet) for it.
[CHAR LIMIT=NONE]
-->
- <string name="a11y_new_call_log_entry_tap_action">call</string>
+ <string name="a11y_new_call_log_entry_tap_action">expand menu</string>
<!--
- A string describing the menu button of a call log entry for a11y users.
- An example will be read as "expand call log menu for Jane Smith".
+ A string describing the call button of a call log entry for a11y users.
+ An example will be read as "call Jane Smith".
[CHAR LIMIT=NONE]
-->
- <string name="a11y_new_call_log_entry_expand_menu">
- Expand call log menu for <xliff:g example="Jane Smith" id="primaryTextForEntry">^1</xliff:g>
+ <string name="a11y_new_call_log_entry_voice_call">
+ call <xliff:g example="Jane Smith" id="primaryTextForEntry">^1</xliff:g>
+ </string>
+
+ <!--
+ A string describing the call button of a call log entry for a11y users.
+ An example will be read as "make a video call to Jane Smith".
+ [CHAR LIMIT=NONE]
+ -->
+ <string name="a11y_new_call_log_entry_video_call">
+ make a video call to <xliff:g example="Jane Smith" id="primaryTextForEntry">^1</xliff:g>
</string>
<!-- Header in call log to group calls from the current day. [CHAR LIMIT=30] -->