Merge "Pixel Perfect Favorites in Phone."
diff --git a/res/layout/contact_tile_frequent.xml b/res/layout/contact_tile_frequent.xml
index fc9c04c..14cb04e 100644
--- a/res/layout/contact_tile_frequent.xml
+++ b/res/layout/contact_tile_frequent.xml
@@ -52,7 +52,7 @@
android:id="@+id/contact_tile_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textSize="12sp"
+ android:textSize="14sp"
android:ellipsize="end"
android:singleLine="true"
android:textColor="#cccccc"
diff --git a/res/layout/contact_tile_frequent_phone.xml b/res/layout/contact_tile_frequent_phone.xml
index e0ea0fb..50c1fc2 100644
--- a/res/layout/contact_tile_frequent_phone.xml
+++ b/res/layout/contact_tile_frequent_phone.xml
@@ -47,11 +47,11 @@
android:id="@+id/contact_tile_phone_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textSize="12sp"
+ android:textSize="14sp"
android:ellipsize="end"
android:singleLine="true"
- android:textColor="#cccccc"
- android:layout_marginLeft="12dip"
+ android:textColor="@color/dialtacts_secondary_text_color"
+ android:layout_marginLeft="8dip"
android:layout_toRightOf="@id/contact_tile_quick"
android:layout_below="@id/contact_tile_name" />
@@ -59,14 +59,30 @@
android:id="@+id/contact_tile_phone_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textSize="12sp"
+ android:textSize="14sp"
android:ellipsize="end"
android:singleLine="true"
- android:textColor="#cccccc"
+ android:textAllCaps="true"
+ android:textColor="@color/dialtacts_secondary_text_color"
android:layout_marginLeft="12dip"
android:layout_alignParentRight="true"
android:layout_alignTop="@id/contact_tile_phone_number" />
+ <View
+ android:id="@+id/contact_tile_horizontal_divider"
+ android:layout_width="match_parent"
+ android:layout_height="1dip"
+ android:background="?android:attr/listDivider"
+ android:layout_alignParentBottom="true" />
+
+ <View
+ android:id="@+id/contact_tile_horizontal_picture_divider"
+ android:layout_width="64dip"
+ android:layout_height="1dip"
+ android:background="@android:color/black"
+ android:layout_alignParentBottom="true"
+ android:layout_alignParentLeft="true" />
+
</RelativeLayout>
</view>
diff --git a/res/layout/contact_tile_starred.xml b/res/layout/contact_tile_starred.xml
index d667a34..3b74946 100644
--- a/res/layout/contact_tile_starred.xml
+++ b/res/layout/contact_tile_starred.xml
@@ -61,7 +61,7 @@
android:layout_marginLeft="4dip"
style="@style/ContactTileStatusText" />
- <ImageButton
+ <ImageButton
android:id="@+id/contact_tile_push_state"
android:layout_width="match_parent"
android:layout_height="match_parent"
diff --git a/res/layout/contact_tile_starred_secondary_target.xml b/res/layout/contact_tile_starred_secondary_target.xml
index 887fa5d..3558166 100644
--- a/res/layout/contact_tile_starred_secondary_target.xml
+++ b/res/layout/contact_tile_starred_secondary_target.xml
@@ -61,14 +61,14 @@
</FrameLayout>
<View
- android:id="@+id/vertical_divider"
+ android:id="@+id/secondary_vertical_divider"
android:layout_width="1dip"
- android:layout_height="24dip"
+ android:layout_height="32dip"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
- android:layout_marginBottom="12dip"
android:layout_marginRight="44dip"
- android:background="?android:attr/dividerVertical" />
+ android:layout_marginBottom="8dip"
+ android:background="@drawable/ic_divider_dashed_holo_dark" />
<ImageButton
android:id="@+id/contact_tile_push_state"
@@ -78,14 +78,28 @@
<ImageButton
android:id="@+id/contact_tile_secondary_button"
- android:src="@drawable/ic_tab_unselected_contacts"
+ android:src="@drawable/ic_contacts_holo_dark"
android:background="?android:attr/selectableItemBackground"
android:layout_height="@dimen/contact_tile_shadowbox_height"
- android:layout_width="32dip"
+ android:layout_width="48dip"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
- android:layout_marginLeft="8dip"
- android:layout_marginRight="8dip" />
+ android:paddingRight="8dip"
+ android:paddingLeft="8dip" />
+
+ <View
+ android:id="@+id/contact_tile_vertical_divider"
+ android:layout_height="match_parent"
+ android:layout_width="2dip"
+ android:background="@color/phone_contact_tile_divider_color"
+ android:layout_alignParentRight="true" />
+
+ <View
+ android:id="@+id/contact_tile_horizontal_divider"
+ android:layout_width="match_parent"
+ android:layout_height="2dip"
+ android:background="@color/phone_contact_tile_divider_color"
+ android:layout_alignParentBottom="true" />
</RelativeLayout>
diff --git a/res/layout/list_separator.xml b/res/layout/list_separator.xml
index af83584..7d57ef7 100644
--- a/res/layout/list_separator.xml
+++ b/res/layout/list_separator.xml
@@ -15,8 +15,30 @@
-->
<!-- Layout used for list separators. -->
-<TextView xmlns:android="http://schemas.android.com/apk/res/android"
- style="?android:attr/listSeparatorTextViewStyle"
- android:gravity="left|center_vertical"
- android:id="@+id/header_text"
-/>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="wrap_content"
+ android:orientation="vertical"
+ android:layout_height="32dip"
+ android:divider="?android:attr/dividerVertical"
+ android:paddingLeft="16dip"
+ android:paddingRight="16dip">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingTop="8dip"
+ android:paddingLeft="8dip"
+ android:textStyle="bold"
+ android:textAllCaps="true"
+ android:singleLine="true"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="@color/people_app_theme_color"
+ android:gravity="left|center_vertical"
+ android:id="@+id/header_text" />
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="1dip"
+ android:background="@color/people_app_theme_color" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 0005484..6e6cadb 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -95,4 +95,8 @@
<!-- Color of the text for buttons in the action bar -->
<color name="action_bar_button_text_color">#FFFFFF</color>
+
+ <!-- Color of the vertical and horizontal dividers for starred contacts in the Phone app -->
+ <color name="phone_contact_tile_divider_color">#D8000000</color>
+
</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index c21e8ac..a137361 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -285,8 +285,6 @@
<style name="ContactTileStarred">
<item name="android:focusable">true</item>
- <item name="android:padding">1px</item>
- <item name="android:background">@drawable/list_selector</item>
</style>
<style name="ContactTileStarredName">
diff --git a/src/com/android/contacts/list/ContactTileAdapter.java b/src/com/android/contacts/list/ContactTileAdapter.java
index 0d4eb8c..cc0a184 100644
--- a/src/com/android/contacts/list/ContactTileAdapter.java
+++ b/src/com/android/contacts/list/ContactTileAdapter.java
@@ -341,6 +341,7 @@
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int itemViewType = getItemViewType(position);
+
if (itemViewType == ViewTypes.DIVIDER) {
// Checking For Divider First so not to cast convertView
return convertView == null ? getDivider() : convertView;
@@ -353,7 +354,7 @@
// Creating new row if needed
contactTileRowView = new ContactTileRow(mContext, itemViewType);
}
- contactTileRowView.configureRow(contactList);
+ contactTileRowView.configureRow(contactList, position == getCount() - 1);
return contactTileRowView;
}
@@ -455,21 +456,21 @@
/**
* Configures the row to add {@link ContactEntry}s information to the views
*/
- public void configureRow(ArrayList<ContactEntry> list) {
+ public void configureRow(ArrayList<ContactEntry> list, boolean isLastRow) {
int columnCount = mItemViewType == ViewTypes.FREQUENT ? 1 : mColumnCount;
// Adding tiles to row and filling in contact information
for (int columnCounter = 0; columnCounter < columnCount; columnCounter++) {
ContactEntry entry =
columnCounter < list.size() ? list.get(columnCounter) : null;
- addTileFromEntry(entry, columnCounter);
+ addTileFromEntry(entry, columnCounter, isLastRow);
}
}
- private void addTileFromEntry(ContactEntry entry, int tileIndex) {
+ private void addTileFromEntry(ContactEntry entry, int childIndex, boolean isLastRow) {
final ContactTileView contactTile;
- if (getChildCount() <= tileIndex) {
+ if (getChildCount() <= childIndex) {
contactTile = (ContactTileView) inflate(mContext, mLayoutResId, null);
contactTile.setLayoutParams(new LinearLayout.LayoutParams(0,
LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f));
@@ -477,10 +478,15 @@
contactTile.setListener(mContactTileListener);
addView(contactTile);
} else {
- contactTile = (ContactTileView) getChildAt(tileIndex);
+ contactTile = (ContactTileView) getChildAt(childIndex);
}
contactTile.setClickable(entry != null);
contactTile.loadFromContact(entry);
+
+ contactTile.setVerticalDividerVisibility(
+ childIndex >= mColumnCount - 1 ? View.GONE : View.VISIBLE);
+ contactTile.setHorizontalDividerVisibility(
+ isLastRow ? View.GONE : View.VISIBLE);
}
}
diff --git a/src/com/android/contacts/list/ContactTileView.java b/src/com/android/contacts/list/ContactTileView.java
index 4dfa876..ef9c2fb 100644
--- a/src/com/android/contacts/list/ContactTileView.java
+++ b/src/com/android/contacts/list/ContactTileView.java
@@ -49,6 +49,8 @@
private ContactPhotoManager mPhotoManager = null;
private ImageButton mPushState;
private Listener mListener;
+ private View mVerticalDivider;
+ private View mHorizontalDivider;
public ContactTileView(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -66,6 +68,8 @@
mPhoneLabel = (TextView) findViewById(R.id.contact_tile_phone_type);
mPhoneNumber = (TextView) findViewById(R.id.contact_tile_phone_number);
mPushState = (ImageButton) findViewById(R.id.contact_tile_push_state);
+ mVerticalDivider = findViewById(R.id.contact_tile_vertical_divider);
+ mHorizontalDivider = findViewById(R.id.contact_tile_horizontal_divider);
OnClickListener listener = new OnClickListener() {
@Override
@@ -148,6 +152,14 @@
}
}
+ public void setVerticalDividerVisibility(int visibility) {
+ if (mVerticalDivider != null) mVerticalDivider.setVisibility(visibility);
+ }
+
+ public void setHorizontalDividerVisibility(int visibility) {
+ if (mHorizontalDivider != null) mHorizontalDivider.setVisibility(visibility);
+ }
+
public void setListener(Listener listener) {
mListener = listener;
}