diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2018-05-16 18:40:37 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-05-16 18:40:37 +0000 |
commit | 284a54619df7e887396c1754f5d0cc63fde92480 (patch) | |
tree | 5793cf6b46840e93e40b586b8adb4dc01ab8767d /java | |
parent | 06b52c2f746699ebc0ac21bc52855526c8761607 (diff) | |
parent | 51789e7254fde5685c1a833172283d0dd74d7b33 (diff) |
Merge "Improve ContactPhotoView"
Diffstat (limited to 'java')
5 files changed, 53 insertions, 19 deletions
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 ad6589990..7bd7f4f78 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 @@ -26,14 +26,14 @@ android:id="@+id/contact_photo_view" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginStart="10dp" - android:layout_marginEnd="10dp" + android:layout_marginStart="8dp" + android:layout_marginEnd="8dp" android:layout_centerVertical="true"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="14dp" + android:layout_centerVertical="true" android:layout_toEndOf="@+id/contact_photo_view" android:layout_toStartOf="@+id/menu_button" android:orientation="vertical"> diff --git a/java/com/android/dialer/historyitemactions/res/layout/contact_layout.xml b/java/com/android/dialer/historyitemactions/res/layout/contact_layout.xml index 0790cf470..89cb91435 100644 --- a/java/com/android/dialer/historyitemactions/res/layout/contact_layout.xml +++ b/java/com/android/dialer/historyitemactions/res/layout/contact_layout.xml @@ -20,8 +20,8 @@ android:layout_height="match_parent" android:paddingTop="12dp" android:paddingBottom="12dp" - android:paddingStart="10dp" - android:paddingEnd="10dp" + android:paddingStart="8dp" + android:paddingEnd="8dp" android:gravity="center_vertical" android:orientation="horizontal" android:background="#FFFFFF"> @@ -30,8 +30,7 @@ android:id="@+id/contact_photo_view" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginEnd="10dp" - android:minHeight="@dimen/contact_actions_image_size"/> + android:layout_marginEnd="8dp"/> <LinearLayout android:layout_width="wrap_content" diff --git a/java/com/android/dialer/speeddial/res/layout/suggestion_row_layout.xml b/java/com/android/dialer/speeddial/res/layout/suggestion_row_layout.xml index 868606065..f072c69e2 100644 --- a/java/com/android/dialer/speeddial/res/layout/suggestion_row_layout.xml +++ b/java/com/android/dialer/speeddial/res/layout/suggestion_row_layout.xml @@ -23,10 +23,10 @@ <com.android.dialer.widget.ContactPhotoView android:id="@+id/avatar" - android:layout_width="48dp" - android:layout_height="48dp" + android:layout_width="wrap_content" + android:layout_height="wrap_content" android:layout_centerVertical="true" - android:layout_marginStart="16dp"/> + android:layout_marginStart="12dp"/> <LinearLayout android:orientation="vertical" @@ -35,7 +35,7 @@ android:layout_centerVertical="true" android:layout_toEndOf="@+id/avatar" android:layout_toStartOf="@+id/overflow" - android:layout_marginStart="8dp"> + android:layout_marginStart="4dp"> <TextView android:id="@+id/name" diff --git a/java/com/android/dialer/widget/ContactPhotoView.java b/java/com/android/dialer/widget/ContactPhotoView.java index a84111f95..c0c9be7a4 100644 --- a/java/com/android/dialer/widget/ContactPhotoView.java +++ b/java/com/android/dialer/widget/ContactPhotoView.java @@ -21,6 +21,7 @@ import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; +import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.QuickContactBadge; @@ -69,6 +70,21 @@ public final class ContactPhotoView extends FrameLayout { hideBadge(); // Hide badges by default. } + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + + // We require both the height and the width to be WRAP_CONTENT to prevent users of + // this widget from clipping the view (by setting a size that is too small) or altering the + // relative position of the contact photo and its badge (by setting a size that is too large). + ViewGroup.LayoutParams layoutParams = Assert.isNotNull(getLayoutParams()); + Assert.checkState( + layoutParams.height == LayoutParams.WRAP_CONTENT, + "The layout height must be WRAP_CONTENT!"); + Assert.checkState( + layoutParams.width == LayoutParams.WRAP_CONTENT, "The layout width must be WRAP_CONTENT!"); + } + private void inflateLayout() { LayoutInflater inflater = Assert.isNotNull(getContext().getSystemService(LayoutInflater.class)); inflater.inflate(R.layout.contact_photo_view, /* root = */ this); 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 a825ce38b..0a8b80e02 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 @@ -17,36 +17,53 @@ <!-- A FrameLayout for displaying a contact photo and its optional badge --> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="52dp" - android:layout_height="44dp" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="56dp" + android:layout_height="48dp" android:layout_gravity="center" android:focusable="false"> <QuickContactBadge android:id="@+id/quick_contact_photo" - android:layout_width="40dp" - android:layout_height="40dp" + android:layout_width="48dp" + android:layout_height="48dp" android:layout_gravity="center" + android:padding="4dp" android:focusable="true"/> + <!-- + A container layout that contains a background and badges + (video call badge, RTT call badge, etc) + + The container and its children are too small to meet the accessibility requirement that the + touchable area of focusable items should be at least 48dp x 48dp. We have to set all of them + to be not focusable. + --> <FrameLayout android:id="@+id/contact_badge_container" android:layout_width="22dp" android:layout_height="22dp" - android:layout_gravity="bottom|end"> + android:layout_gravity="bottom|end" + android:layout_marginEnd="2dp" + android:layout_marginBottom="2dp" + android:focusable="false"> <ImageView android:id="@+id/contact_badge_background" android:layout_width="match_parent" android:layout_height="match_parent" - android:src="@drawable/contact_photo_badge_background"/> + android:src="@drawable/contact_photo_badge_background" + android:focusable="false" + tools:ignore="ContentDescription"/> <ImageView android:id="@+id/video_call_badge" android:layout_width="13dp" android:layout_height="13dp" android:layout_gravity="center" - android:src="@drawable/quantum_ic_videocam_vd_white_24"/> + android:src="@drawable/quantum_ic_videocam_vd_white_24" + android:focusable="false" + tools:ignore="ContentDescription"/> <ImageView android:id="@+id/rtt_call_badge" @@ -54,6 +71,8 @@ android:layout_height="13dp" android:layout_gravity="center" android:tint="@android:color/white" - android:src="@drawable/quantum_ic_rtt_vd_theme_24"/> + android:src="@drawable/quantum_ic_rtt_vd_theme_24" + android:focusable="false" + tools:ignore="ContentDescription"/> </FrameLayout> </FrameLayout>
\ No newline at end of file |