diff options
Diffstat (limited to 'java/com/android/dialer/widget')
-rw-r--r-- | java/com/android/dialer/widget/ContactPhotoView.java | 16 | ||||
-rw-r--r-- | java/com/android/dialer/widget/res/layout/contact_photo_view.xml | 35 |
2 files changed, 43 insertions, 8 deletions
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 |