Redlines for call history screen, as well as most recent call log

* Add and change background and layout for CallLogListItem
* Create wrapper view for most recent call log item
* Change actionbar background in Call History activity
* Hide phone number in call log items
* Add tab indicator drawables

Change-Id: Ic86c3fac857971aba58ba3ac1d79ddebaf663da6
diff --git a/src/com/android/dialer/PhoneCallDetailsHelper.java b/src/com/android/dialer/PhoneCallDetailsHelper.java
index 37394c3..0da0d0c 100644
--- a/src/com/android/dialer/PhoneCallDetailsHelper.java
+++ b/src/com/android/dialer/PhoneCallDetailsHelper.java
@@ -115,19 +115,25 @@
             } else {
                 numberText = details.geocode;
             }
-            labelText = null;
+            labelText = numberText;
             // We have a real phone number as "nameView" so make it always LTR
             views.nameView.setTextDirection(View.TEXT_DIRECTION_LTR);
         } else {
             nameText = details.name;
             numberText = displayNumber;
-            labelText = numberFormattedLabel;
+            labelText = TextUtils.isEmpty(numberFormattedLabel) ? numberText :
+                    numberFormattedLabel;
             // We have a real phone number as "numberView" so make it always LTR
-            views.numberView.setTextDirection(View.TEXT_DIRECTION_LTR);
+            if (views.numberView != null) {
+                views.numberView.setTextDirection(View.TEXT_DIRECTION_LTR);
+            }
         }
 
         views.nameView.setText(nameText);
-        views.numberView.setText(numberText);
+        if (views.numberView != null) {
+            views.numberView.setText(numberText);
+        }
+
         views.labelView.setText(labelText);
         views.labelView.setVisibility(TextUtils.isEmpty(labelText) ? View.GONE : View.VISIBLE);
     }
diff --git a/src/com/android/dialer/list/NewPhoneFavoriteMergedAdapter.java b/src/com/android/dialer/list/NewPhoneFavoriteMergedAdapter.java
index fff5c9f..742892b 100644
--- a/src/com/android/dialer/list/NewPhoneFavoriteMergedAdapter.java
+++ b/src/com/android/dialer/list/NewPhoneFavoriteMergedAdapter.java
@@ -23,6 +23,7 @@
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
 import android.widget.FrameLayout;
+import android.widget.LinearLayout;
 import android.widget.SectionIndexer;
 
 import com.android.contacts.common.list.ContactEntryListAdapter;
@@ -60,6 +61,9 @@
 
     private final int mItemPaddingLeft;
     private final int mItemPaddingRight;
+    private final int mCallLogPadding;
+
+    private final Context mContext;
 
     private final DataSetObserver mObserver;
 
@@ -70,8 +74,10 @@
             NewCallLogAdapter callLogAdapter,
             View loadingView) {
         final Resources resources = context.getResources();
+        mContext = context;
         mItemPaddingLeft = resources.getDimensionPixelSize(R.dimen.detail_item_side_margin);
         mItemPaddingRight = resources.getDimensionPixelSize(R.dimen.list_visible_scrollbar_padding);
+        mCallLogPadding = resources.getDimensionPixelSize(R.dimen.recent_call_log_item_padding);
         mContactTileAdapter = contactTileAdapter;
         mContactEntryListAdapter = contactEntryListAdapter;
         mCallLogAdapter = callLogAdapter;
@@ -237,8 +243,32 @@
         // TODO krelease: Handle the new callLogAdapterCount and position offsets properly
         if (callLogAdapterCount > 0) {
             if (position == 0) {
-                final View view = mCallLogAdapter.getView(position, convertView, parent);
-                return view;
+                final FrameLayout wrapper;
+                if (convertView == null) {
+                    wrapper = new FrameLayout(mContext);
+                } else {
+                    wrapper = (FrameLayout) convertView;
+                }
+
+                // Special case wrapper view for the most recent call log item. This allows
+                // us to create a card-like effect for the more recent call log item in
+                // the PhoneFavoriteMergedAdapter, but keep the original look of the item in
+                // the CallLogAdapter.
+                final View view = mCallLogAdapter.getView(position, convertView == null ?
+                        null : wrapper.getChildAt(0), parent);
+                wrapper.removeAllViews();
+                view.setBackgroundResource(R.drawable.dialer_recent_card_bg);
+
+                final FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
+                        FrameLayout.LayoutParams.WRAP_CONTENT,
+                        FrameLayout.LayoutParams.WRAP_CONTENT);
+
+                params.setMarginsRelative(mCallLogPadding, mCallLogPadding, mCallLogPadding,
+                        mCallLogPadding);
+                view.setLayoutParams(params);
+                wrapper.addView(view);
+
+                return wrapper;
             }
             position -= callLogAdapterCount;
         }