Dialer: restyle favorite contacts view
Change-Id: I4d4a2920e747130c7236cab2f2bb454a0e9b5079
diff --git a/java/com/android/dialer/app/list/PhoneFavoriteListView.java b/java/com/android/dialer/app/list/PhoneFavoriteListView.java
index ff867f9..732a7f9 100644
--- a/java/com/android/dialer/app/list/PhoneFavoriteListView.java
+++ b/java/com/android/dialer/app/list/PhoneFavoriteListView.java
@@ -21,6 +21,7 @@
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Bitmap;
+import android.graphics.Canvas;
import android.os.Handler;
import android.util.AttributeSet;
import android.view.DragEvent;
@@ -244,6 +245,9 @@
dragShadowOverlay.setX(dragShadowLeft);
dragShadowOverlay.setY(dragShadowTop);
+
+ dragShadowOverlay.setClipToOutline(true);
+ dragShadowOverlay.setOutlineProvider(tileView.getOutlineProvider());
}
@Override
@@ -276,22 +280,11 @@
public void onDroppedOnRemove() {}
private Bitmap createDraggedChildBitmap(View view) {
- view.setDrawingCacheEnabled(true);
- final Bitmap cache = view.getDrawingCache();
-
- Bitmap bitmap = null;
- if (cache != null) {
- try {
- bitmap = cache.copy(Bitmap.Config.ARGB_8888, false);
- } catch (final OutOfMemoryError e) {
- LogUtil.w(LOG_TAG, "Failed to copy bitmap from Drawing cache", e);
- bitmap = null;
- }
- }
-
- view.destroyDrawingCache();
- view.setDrawingCacheEnabled(false);
-
+ Bitmap bitmap = Bitmap.createBitmap(
+ view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888
+ );
+ Canvas canvas = new Canvas(bitmap);
+ view.draw(canvas);
return bitmap;
}
diff --git a/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java b/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java
index 8fe67f4..9ddcb19 100644
--- a/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java
+++ b/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java
@@ -17,11 +17,14 @@
package com.android.dialer.app.list;
import android.content.Context;
+import android.graphics.Outline;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.QuickContact;
import android.util.AttributeSet;
import android.view.View;
+import android.view.ViewOutlineProvider;
import android.widget.ImageButton;
+import android.widget.ImageView;
import android.widget.TextView;
import com.android.contacts.common.list.ContactEntry;
import com.android.dialer.app.R;
@@ -37,6 +40,19 @@
private ImageButton secondaryButton;
private ContactEntry contactEntry;
+ private PhoneFavoriteSquareTileViewOutline mOutlineProvider;
+
+ private static class PhoneFavoriteSquareTileViewOutline extends ViewOutlineProvider {
+ public int mRadius;
+
+ public PhoneFavoriteSquareTileViewOutline(int radius) {
+ mRadius = radius;
+ }
+ @Override
+ public void getOutline(View view, Outline outline) {
+ outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), mRadius);
+ }
+ }
public PhoneFavoriteSquareTileView(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -54,6 +70,15 @@
TextView phoneTypeView = findViewById(R.id.contact_tile_phone_type);
phoneTypeView.setElegantTextHeight(false);
secondaryButton = findViewById(R.id.contact_tile_secondary_button);
+
+ mOutlineProvider = new PhoneFavoriteSquareTileViewOutline(
+ getContext().getResources().getDimensionPixelSize(R.dimen.contact_tile_edge_radius));
+ ImageView photo = (ImageView) findViewById(R.id.contact_tile_image);
+ photo.setClipToOutline(true);
+ photo.setOutlineProvider(mOutlineProvider);
+
+ shadowOverlay.setClipToOutline(true);
+ shadowOverlay.setOutlineProvider(mOutlineProvider);
}
@Override
@@ -110,4 +135,8 @@
public ContactEntry getContactEntry() {
return contactEntry;
}
+
+ public ViewOutlineProvider getOutlineProvider() {
+ return mOutlineProvider;
+ }
}
diff --git a/java/com/android/dialer/app/list/PhoneFavoriteTileView.java b/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
index 7f0a6bc..c4528dd 100644
--- a/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
+++ b/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
@@ -61,7 +61,7 @@
// don't crash with an NPE if the drag shadow is released in their bounds
private static final ClipData EMPTY_CLIP_DATA = ClipData.newPlainText("", "");
/** View that contains the transparent shadow that is overlaid on top of the contact image. */
- private View shadowOverlay;
+ protected View shadowOverlay;
/** Users' most frequent phone number. */
private String phoneNumberString;
diff --git a/java/com/android/dialer/app/res/layout/phone_favorite_tile_view.xml b/java/com/android/dialer/app/res/layout/phone_favorite_tile_view.xml
index df7ce5c..74d8702 100644
--- a/java/com/android/dialer/app/res/layout/phone_favorite_tile_view.xml
+++ b/java/com/android/dialer/app/res/layout/phone_favorite_tile_view.xml
@@ -16,9 +16,7 @@
<view
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/contact_tile"
- class="com.android.dialer.app.list.PhoneFavoriteSquareTileView"
- android:paddingBottom="@dimen/contact_tile_divider_width"
- android:paddingEnd="@dimen/contact_tile_divider_width">
+ class="com.android.dialer.app.list.PhoneFavoriteSquareTileView">
<RelativeLayout
android:id="@+id/contact_favorite_card"
@@ -27,7 +25,7 @@
android:focusable="true"
android:nextFocusRight="@+id/contact_tile_secondary_button">
- <com.android.contacts.common.widget.LayoutSuppressingImageView
+ <ImageView
android:id="@+id/contact_tile_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -72,7 +70,7 @@
android:fadingEdge="horizontal"
android:fadingEdgeLength="3dip"
android:fontFamily="sans-serif-medium"
- android:singleLine="true"
+ android:maxLines="2"
android:textAlignment="viewStart"
android:textColor="?colorTextOnUnthemedDarkBackground"
android:textSize="15sp"/>
@@ -96,7 +94,8 @@
android:singleLine="true"
android:textAlignment="viewStart"
android:textColor="?colorTextOnUnthemedDarkBackground"
- android:textSize="11sp"/>
+ android:textSize="11sp"
+ android:visibility="gone"/>
</LinearLayout>
<View
diff --git a/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml b/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml
index 3fa3be2..b216103 100644
--- a/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml
+++ b/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml
@@ -24,10 +24,8 @@
android:id="@+id/contact_tile_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:layout_alignParentLeft="true"
- android:layout_alignParentTop="true"
- android:paddingStart="@dimen/favorites_row_start_padding"
- android:paddingEnd="@dimen/favorites_row_end_padding">
+ android:layout_marginStart="@dimen/favorites_row_side_margin"
+ android:layout_marginEnd="@dimen/favorites_row_side_margin">
<com.android.dialer.app.list.PhoneFavoriteListView
android:id="@+id/contact_tile_list"
android:layout_width="match_parent"
@@ -38,7 +36,9 @@
android:divider="@null"
android:fadingEdge="none"
android:nestedScrollingEnabled="true"
- android:numColumns="@integer/contact_tile_column_count_in_favorites"/>
+ android:numColumns="@integer/contact_tile_column_count_in_favorites"
+ android:horizontalSpacing="@dimen/contact_tile_divider_width"
+ android:verticalSpacing="@dimen/contact_tile_divider_width" />
</FrameLayout>
<com.android.dialer.widget.EmptyContentView
diff --git a/java/com/android/dialer/app/res/values/dimens.xml b/java/com/android/dialer/app/res/values/dimens.xml
index fdbcac9..000455d 100644
--- a/java/com/android/dialer/app/res/values/dimens.xml
+++ b/java/com/android/dialer/app/res/values/dimens.xml
@@ -41,16 +41,14 @@
<dimen name="contact_photo_size">48dp</dimen>
<!-- Dimensions for speed dial tiles -->
- <dimen name="contact_tile_divider_width">1dp</dimen>
+ <dimen name="contact_tile_divider_width">8dp</dimen>
<dimen name="contact_tile_info_button_height_and_width">36dp</dimen>
- <item name="contact_tile_height_to_width_ratio" type="dimen">76%</item>
+ <item name="contact_tile_height_to_width_ratio" type="dimen">85%</item>
<dimen name="contact_tile_text_side_padding">12dp</dimen>
<dimen name="contact_tile_text_bottom_padding">9dp</dimen>
<dimen name="favorites_row_top_padding">1dp</dimen>
- <dimen name="favorites_row_start_padding">1dp</dimen>
-
- <!-- Padding from the last contact tile will provide the end padding. -->
- <dimen name="favorites_row_end_padding">0dp</dimen>
+ <dimen name="favorites_row_side_margin">8dp</dimen>
+ <dimen name="contact_tile_edge_radius">12dp</dimen>
<!-- Size of the star icon on the favorites tile. -->
<dimen name="favorites_star_icon_size">12dp</dimen>
diff --git a/java/com/android/dialer/main/impl/toolbar/res/layout/toolbar_layout.xml b/java/com/android/dialer/main/impl/toolbar/res/layout/toolbar_layout.xml
index fb85d50..c92d05e 100644
--- a/java/com/android/dialer/main/impl/toolbar/res/layout/toolbar_layout.xml
+++ b/java/com/android/dialer/main/impl/toolbar/res/layout/toolbar_layout.xml
@@ -107,7 +107,7 @@
android:id="@+id/remove_view_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="?android:attr/colorPrimary"
+ android:background="@drawable/search_bar_background_rounded_corners"
android:gravity="center"
android:orientation="horizontal"
android:visibility="gone">
@@ -119,14 +119,15 @@
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:src="@drawable/quantum_ic_close_vd_theme_24"
- android:tint="?colorIconOnUnthemedDarkBackground"/>
+ android:tint="?android:attr/colorPrimary"/>
<TextView
android:id="@+id/remove_view_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/main_remove_contact"
- android:textColor="?colorTextOnUnthemedDarkBackground"
+ android:textColor="?android:attr/colorPrimary"
+ android:layout_marginStart="8dp"
android:textSize="16sp"/>
</LinearLayout>
</com.android.dialer.app.list.RemoveView>
diff --git a/java/com/android/dialer/theme/common/res/values-v31/styles.xml b/java/com/android/dialer/theme/common/res/values-v31/styles.xml
index 0739744..6e311b9 100644
--- a/java/com/android/dialer/theme/common/res/values-v31/styles.xml
+++ b/java/com/android/dialer/theme/common/res/values-v31/styles.xml
@@ -28,4 +28,4 @@
<item name="cardElevation">0dp</item>
</style>
-</resources>
\ No newline at end of file
+</resources>