Merge "Revise remove view target positioning." into lmp-preview-dev
diff --git a/res/layout/phone_favorite_tile_view.xml b/res/layout/phone_favorite_tile_view.xml
index 1e6b999..d34dc7a 100644
--- a/res/layout/phone_favorite_tile_view.xml
+++ b/res/layout/phone_favorite_tile_view.xml
@@ -17,7 +17,8 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/contact_tile"
     class="com.android.dialer.list.PhoneFavoriteSquareTileView"
-    android:paddingEnd="@dimen/contact_tile_divider_width">
+    android:paddingEnd="@dimen/contact_tile_divider_width"
+    android:paddingBottom="@dimen/contact_tile_divider_width">
 
     <RelativeLayout
         android:id="@+id/contact_favorite_card"
@@ -50,8 +51,6 @@
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:paddingLeft="@dimen/contact_tile_text_side_padding"
-            android:paddingRight="@dimen/contact_tile_text_side_padding"
             android:paddingStart="@dimen/contact_tile_text_side_padding"
             android:paddingEnd="@dimen/contact_tile_text_side_padding"
             android:paddingBottom="@dimen/contact_tile_text_bottom_padding"
diff --git a/res/values/colors.xml b/res/values/colors.xml
index e4df4d0..9264e30 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -40,7 +40,7 @@
     <color name="item_selected">#660099cc</color>
 
     <!-- Background color of new dialer activity -->
-    <color name="background_dialer_light">#fbfbfb</color>
+    <color name="background_dialer_light">#f6f6f6</color>
     <!-- Background color of dialer list items (contacts, call log entries) -->
     <color name="background_dialer_list_items">@color/background_dialer_light</color>
 
@@ -80,6 +80,7 @@
     <!-- Color of the bottom border below the contacts grid on the main dialer screen. -->
     <color name="contacts_grid_bottom_border_color">#16000000</color>
 
+    <color name="call_log_expanded_background_color">#ffffff</color>
     <!-- Color of actions in expanded call log entries.  This text color represents actions such
          as call back, play voicemail, etc. -->
     <color name="call_log_action_text">#1dc7db</color>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 4db5ae4..53292e1 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -51,7 +51,7 @@
     <item name="contact_tile_height_to_width_ratio" type="dimen">76%</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_top_padding">2dp</dimen>
     <dimen name="favorites_row_bottom_padding">0dp</dimen>
     <dimen name="favorites_row_start_padding">1dp</dimen>
 
@@ -111,7 +111,7 @@
     <dimen name="search_box_right_padding">8dp</dimen>
     <!-- Padding around the icon in the search box. -->
     <dimen name="search_box_icon_margin">4dp</dimen>
-    <dimen name="search_box_search_icon_padding">4dp</dimen>
+    <dimen name="search_box_search_icon_padding">2dp</dimen>
     <dimen name="search_box_collapsed_text_margin_left">24dp</dimen>
     <dimen name="search_box_expanded_text_margin_left">26dp</dimen>
     <!-- Size of the icon (voice search, close search) in the search box. -->
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 96ebe90..00c7616 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -16,7 +16,7 @@
   -->
 <resources>
     <style name="DialtactsTheme"
-           parent="android:Theme.Quantum.Light">
+           parent="android:Theme.Material.Light">
         <item name="android:textColorPrimary">@color/dialtacts_primary_text_color</item>
         <item name="android:textColorSecondary">@color/dialtacts_secondary_text_color</item>
         <item name="android:windowActionBarOverlay">true</item>
@@ -77,13 +77,13 @@
 
     <!-- Action bar overflow menu icon. -->
     <style name="DialtactsActionBarOverflow"
-           parent="@android:style/Widget.Quantum.Light.ActionButton.Overflow">
+           parent="@android:style/Widget.Material.Light.ActionButton.Overflow">
         <item name="android:src">@drawable/ic_menu_overflow_lt</item>
     </style>
 
     <!-- Action bar overflow menu icon.  White with no shadow. -->
     <style name="DialtactsActionBarOverflowWhite"
-           parent="@android:style/Widget.Quantum.Light.ActionButton.Overflow">
+           parent="@android:style/Widget.Material.Light.ActionButton.Overflow">
         <item name="android:src">@drawable/overflow_menu</item>
     </style>
 
@@ -117,7 +117,7 @@
         <item name="android:actionOverflowButtonStyle">@style/DialtactsActionBarOverflowWhite</item>
     </style>
 
-    <style name="DialtactsActionBarStyle" parent="android:Widget.Quantum.ActionBar">
+    <style name="DialtactsActionBarStyle" parent="android:Widget.Material.ActionBar">
         <item name="android:background">@color/actionbar_background_color</item>
         <item name="android:titleTextStyle">@style/DialtactsActionBarTitleText</item>
         <item name="android:height">@dimen/action_bar_height</item>
@@ -132,20 +132,19 @@
 
     <!-- Text in the action bar at the top of the screen -->
     <style name="DialtactsActionBarTitleText"
-           parent="@android:style/TextAppearance.Quantum.Widget.ActionBar.Title">
+           parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title">
         <item name="android:textColor">@color/actionbar_text_color</item>
     </style>
 
     <!-- Text style for tabs. -->
     <style name="DialtactsActionBarTabTextStyle"
-           parent="android:style/Widget.Quantum.Light.ActionBar.TabText">
+           parent="android:style/Widget.Material.Light.ActionBar.TabText">
         <item name="android:textColor">@color/tab_text_color</item>
         <item name="android:textSize">@dimen/tab_text_size</item>
-        <item name="android:fontFamily">@string/tab_font_family</item>
-        <item name="android:textStyle">bold</item>
+        <item name="android:fontFamily">"sans-serif-medium"</item>
     </style>
 
-    <style name="ListViewStyle" parent="@android:style/Widget.Quantum.Light.ListView">
+    <style name="ListViewStyle" parent="@android:style/Widget.Material.Light.ListView">
         <item name="android:overScrollMode">always</item>
     </style>
 
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index 924a17f..4ef1977 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -254,6 +254,10 @@
     private ImageView mBadgeImageView;
     private TextView mBadgeText;
 
+    private int mCallLogBackgroundColor;
+    private int mExpandedBackgroundColor;
+    private float mExpandedTranslationZ;
+
     /** Listener for the primary or secondary actions in the list.
      *  Primary opens the call details.
      *  Secondary calls or plays.
@@ -355,6 +359,9 @@
 
         Resources resources = mContext.getResources();
         CallTypeHelper callTypeHelper = new CallTypeHelper(resources);
+        mCallLogBackgroundColor = resources.getColor(R.color.background_dialer_list_items);
+        mExpandedBackgroundColor = resources.getColor(R.color.call_log_expanded_background_color);
+        mExpandedTranslationZ = resources.getDimension(R.dimen.call_log_expanded_translation_z);
 
         mContactPhotoManager = ContactPhotoManager.getInstance(mContext);
         mPhoneNumberHelper = new PhoneNumberDisplayHelper(resources);
@@ -862,10 +869,8 @@
 
             views.actionsView.setVisibility(View.VISIBLE);
             views.actionsView.setAlpha(1.0f);
-            views.callLogEntryView.setBackgroundColor(
-                    callLogItem.getResources().getColor(R.color.background_dialer_light));
-            callLogItem.setTranslationZ(callLogItem.getResources().getDimension(
-                    R.dimen.call_log_expanded_translation_z));
+            views.callLogEntryView.setBackgroundColor(mExpandedBackgroundColor);
+            callLogItem.setTranslationZ(mExpandedTranslationZ);
 
             // Attempt to give accessibility focus to one of the action buttons.
             // This ensures that a user realizes the expansion occurred.
@@ -882,8 +887,7 @@
                 views.actionsView.setVisibility(View.GONE);
             }
 
-            views.callLogEntryView.setBackgroundColor(
-                    callLogItem.getResources().getColor(R.color.background_dialer_list_items));
+            views.callLogEntryView.setBackgroundColor(mCallLogBackgroundColor);
             callLogItem.setTranslationZ(0);
         }
     }
diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index 3eedcda..134c2a7 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -174,7 +174,7 @@
     /** Remembers if we need to clear digits field when the screen is completely gone. */
     private boolean mClearDigitsOnStop;
 
-    private View mOverflowMenuButton;
+    private PopupMenu mOverflowPopupMenu;
     private View mDelete;
     private ToneGenerator mToneGenerator;
     private final Object mToneGeneratorLock = new Object();
@@ -310,10 +310,6 @@
         if (isDigitsEmpty()) {
             mDigitsFilledByIntent = false;
             mDigits.setCursorVisible(false);
-            // Set to INVISIBLE instead of GONE so that text (eg. "Type number to add") is centered.
-            mOverflowMenuButton.setVisibility(View.INVISIBLE);
-        } else if (mDialpadView.canDigitsBeEdited()){
-            mOverflowMenuButton.setVisibility(View.VISIBLE);
         }
 
         if (mDialpadQueryListener != null) {
@@ -392,9 +388,6 @@
         mDialpadChooser = (ListView) fragmentView.findViewById(R.id.dialpadChooser);
         mDialpadChooser.setOnItemClickListener(this);
 
-        mOverflowMenuButton = mDialpadView.getOverflowMenuButton();
-        mOverflowMenuButton.setOnClickListener(this);
-
         return fragmentView;
     }
 
@@ -657,8 +650,10 @@
 
         mSmsPackageComponentName = DialerUtils.getSmsComponent(activity);
 
-        final PopupMenu overflowMenu = buildOptionsMenu(mOverflowMenuButton);
-        mOverflowMenuButton.setOnTouchListener(overflowMenu.getDragToOpenListener());
+        View overflowMenuButton = mDialpadView.getOverflowMenuButton();
+        mOverflowPopupMenu = buildOptionsMenu(overflowMenuButton);
+        overflowMenuButton.setOnTouchListener(mOverflowPopupMenu.getDragToOpenListener());
+        overflowMenuButton.setOnClickListener(this);
     }
 
     @Override
@@ -851,11 +846,22 @@
      * @param invoker the View that invoked the options menu, to act as an anchor location.
      */
     private PopupMenu buildOptionsMenu(View invoker) {
-        final PopupMenu popupMenu = new PopupMenu(getActivity(), invoker);
+        final PopupMenu popupMenu = new PopupMenu(getActivity(), invoker) {
+            @Override
+            public void show() {
+                final Menu menu = getMenu();
+                final MenuItem sendMessage = menu.findItem(R.id.menu_send_message);
+                sendMessage.setVisible(mSmsPackageComponentName != null);
+
+                boolean enable = !isDigitsEmpty();
+                for (int i = 0; i < menu.size(); i++) {
+                    menu.getItem(i).setEnabled(enable);
+                }
+
+                super.show();
+            }
+        };
         popupMenu.inflate(R.menu.dialpad_options);
-        final Menu menu = popupMenu.getMenu();
-        final MenuItem sendMessage = menu.findItem(R.id.menu_send_message);
-        sendMessage.setVisible(mSmsPackageComponentName != null);
         popupMenu.setOnMenuItemClickListener(this);
         return popupMenu;
     }
@@ -883,7 +889,7 @@
                 return;
             }
             case R.id.dialpad_overflow: {
-                buildOptionsMenu(view).show();
+                mOverflowPopupMenu.show();
                 break;
             }
             default: {