summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/widget
diff options
context:
space:
mode:
authorlinyuh <linyuh@google.com>2018-05-16 10:09:53 -0700
committerCopybara-Service <copybara-piper@google.com>2018-05-16 10:10:52 -0700
commit51789e7254fde5685c1a833172283d0dd74d7b33 (patch)
tree5793cf6b46840e93e40b586b8adb4dc01ab8767d /java/com/android/dialer/widget
parent06b52c2f746699ebc0ac21bc52855526c8761607 (diff)
Improve ContactPhotoView
Bug: 70989658 Test: NewCallLogIntegrationTest + Manual PiperOrigin-RevId: 196845473 Change-Id: Ic0cbcf668ea1921c88fb6b080308884fa1113e61
Diffstat (limited to 'java/com/android/dialer/widget')
-rw-r--r--java/com/android/dialer/widget/ContactPhotoView.java16
-rw-r--r--java/com/android/dialer/widget/res/layout/contact_photo_view.xml35
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