diff --git a/res/layout/keyguard_preview.xml b/res/layout/keyguard_preview.xml
index 0a55268..16243eb 100644
--- a/res/layout/keyguard_preview.xml
+++ b/res/layout/keyguard_preview.xml
@@ -24,10 +24,6 @@
         android:background="@color/dialer_theme_color_dark" />
     <View
         android:layout_width="match_parent"
-        android:layout_height="@dimen/actionbar_and_tab_height"
-        android:background="@color/dialer_theme_color" />
-    <View
-        android:layout_width="match_parent"
         android:layout_weight="1"
         android:layout_height="0dp"
         android:background="#ffffff" />
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 74a5231..1fe8aec 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -123,6 +123,7 @@
         <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>
+        <item name="android:elevation">@dimen/action_bar_elevation</item>
         <!-- Empty icon -->
         <item name="android:icon">@android:color/transparent</item>
         <!-- Shift the title text to the right -->
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index b80c27b..00d5937 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -352,7 +352,6 @@
         actionBar.setCustomView(R.layout.search_edittext);
         actionBar.setDisplayShowCustomEnabled(true);
         actionBar.setBackgroundDrawable(null);
-        actionBar.setElevation(resources.getDimensionPixelSize(R.dimen.action_bar_elevation));
 
         mActionBarController = new ActionBarController(this,
                 (SearchEditTextLayout) actionBar.getCustomView());
@@ -622,7 +621,11 @@
         ft.show(mDialpadFragment);
         ft.commit();
 
-        mFloatingActionButtonController.scaleOut();
+        if (animate) {
+            mFloatingActionButtonController.scaleOut();
+        } else {
+            mFloatingActionButtonController.setVisible(false);
+        }
         mActionBarController.onDialpadUp();
 
         if (!isInSearchUi()) {
diff --git a/src/com/android/dialer/PhoneCallDetails.java b/src/com/android/dialer/PhoneCallDetails.java
index f6f9eda..ba049a2 100644
--- a/src/com/android/dialer/PhoneCallDetails.java
+++ b/src/com/android/dialer/PhoneCallDetails.java
@@ -96,8 +96,7 @@
             CharSequence formattedNumber, String countryIso, String geocode,
             int[] callTypes, long date, long duration) {
         this (number, numberPresentation, formattedNumber, countryIso, geocode,
-        callTypes, date, duration, "", 0, "", null, null, 0, null, null, Calls.FEATURES_NONE,
-        null, null);
+        callTypes, date, duration, "", 0, "", null, null, 0, null, null, 0, null, null);
     }
 
     /** Create the details for a call with a number not associated with a contact. */
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index 23d053d..921a1c4 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -1190,7 +1190,7 @@
      * @return The features.
      */
     private int getCallFeatures(Cursor cursor, int count) {
-        int features = Calls.FEATURES_NONE;
+        int features = 0;
         int position = cursor.getPosition();
         for (int index = 0; index < count; ++index) {
             features |= cursor.getInt(CallLogQuery.FEATURES);
diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index 169b9f3..ee1d634 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -1608,8 +1608,8 @@
         if (!hidden) {
             if (mAnimate) {
                 dialpadView.animateShow();
-                mFloatingActionButtonController.scaleIn(mDialpadSlideInDuration);
             }
+            mFloatingActionButtonController.scaleIn(mAnimate ? mDialpadSlideInDuration : 0);
             activity.onDialpadShown();
             mDigits.requestFocus();
         }
diff --git a/src/com/android/dialer/list/PhoneFavoriteListView.java b/src/com/android/dialer/list/PhoneFavoriteListView.java
index 4ecc1cd..667681e 100644
--- a/src/com/android/dialer/list/PhoneFavoriteListView.java
+++ b/src/com/android/dialer/list/PhoneFavoriteListView.java
@@ -149,6 +149,11 @@
         final int eY = (int) event.getY();
         switch (action) {
             case DragEvent.ACTION_DRAG_STARTED: {
+                if (PhoneFavoriteTileView.EMPTY_CLIP_DATA != event.getClipData()) {
+                    // Ignore any drag events that were not propagated by long pressing
+                    // on a {@link PhoneFavoriteTileView}
+                    return false;
+                }
                 if (!mDragDropController.handleDragStarted(eX, eY)) {
                     return false;
                 }
diff --git a/src/com/android/dialer/list/PhoneFavoriteTileView.java b/src/com/android/dialer/list/PhoneFavoriteTileView.java
index 208e350..2aedd94 100644
--- a/src/com/android/dialer/list/PhoneFavoriteTileView.java
+++ b/src/com/android/dialer/list/PhoneFavoriteTileView.java
@@ -56,7 +56,7 @@
 
     // Dummy clip data object that is attached to drag shadows so that text views
     // don't crash with an NPE if the drag shadow is released in their bounds
-    private static final ClipData EMPTY_CLIP_DATA = ClipData.newPlainText("", "");
+    static final ClipData EMPTY_CLIP_DATA = ClipData.newPlainText("", "");
 
     public PhoneFavoriteTileView(Context context, AttributeSet attrs) {
         super(context, attrs);
diff --git a/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java b/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java
index 0190e49..bc7c033 100644
--- a/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java
+++ b/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java
@@ -171,7 +171,7 @@
      * Tests a case where the video call feature is not present.
      */
     public void testSetPhoneCallDetails_NoVideo() {
-        setPhoneCallDetailsWithFeatures(Calls.FEATURES_NONE);
+        setPhoneCallDetailsWithFeatures(0);
         assertIsVideoCall(false);
     }
 
@@ -311,8 +311,8 @@
         mHelper.setPhoneCallDetails(mViews,
                 new PhoneCallDetails(number, presentation, formattedNumber,
                         TEST_COUNTRY_ISO, TEST_GEOCODE,
-                        new int[]{ Calls.VOICEMAIL_TYPE }, TEST_DATE, TEST_DURATION, null, null,
-                        Calls.FEATURES_NONE, null, null)
+                        new int[]{ Calls.VOICEMAIL_TYPE }, TEST_DATE, TEST_DURATION, null, null, 0,
+                        null, null)
         );
     }
 
@@ -322,8 +322,8 @@
         mHelper.setPhoneCallDetails(mViews,
                 new PhoneCallDetails(number, Calls.PRESENTATION_ALLOWED,
                         formattedNumber, TEST_COUNTRY_ISO, geocodedLocation,
-                        new int[]{ Calls.VOICEMAIL_TYPE }, TEST_DATE, TEST_DURATION, null, null,
-                        Calls.FEATURES_NONE, null, null)
+                        new int[]{ Calls.VOICEMAIL_TYPE }, TEST_DATE, TEST_DURATION, null, null, 0,
+                        null, null)
         );
     }
 
@@ -361,8 +361,8 @@
         mHelper.setCallDetailsHeader(mNameView,
                 new PhoneCallDetails(number, presentation,
                         TEST_FORMATTED_NUMBER, TEST_COUNTRY_ISO, TEST_GEOCODE,
-                        new int[]{ Calls.INCOMING_TYPE }, TEST_DATE, TEST_DURATION, null, null,
-                        Calls.FEATURES_NONE, null, null));
+                        new int[]{ Calls.INCOMING_TYPE }, TEST_DATE, TEST_DURATION, null, null, 0,
+                        null, null));
     }
 
     private void setCallDetailsHeader(String name) {
@@ -370,6 +370,6 @@
                 new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
                         TEST_FORMATTED_NUMBER, TEST_COUNTRY_ISO, TEST_GEOCODE,
                         new int[]{ Calls.INCOMING_TYPE }, TEST_DATE, TEST_DURATION,
-                        name, 0, "", null, null, 0, null, null, Calls.FEATURES_NONE, null, null));
+                        name, 0, "", null, null, 0, null, null, 0, null, null));
     }
 }
diff --git a/tests/src/com/android/dialer/calllog/CallLogQueryTestUtils.java b/tests/src/com/android/dialer/calllog/CallLogQueryTestUtils.java
index 2f7d212..9d34bbf 100644
--- a/tests/src/com/android/dialer/calllog/CallLogQueryTestUtils.java
+++ b/tests/src/com/android/dialer/calllog/CallLogQueryTestUtils.java
@@ -29,8 +29,7 @@
     public static Object[] createTestValues() {
         Object[] values = new Object[]{
                 0L, "", 0L, 0L, Calls.INCOMING_TYPE, "", "", "", null, 0, null, null, null, null,
-                0L, null, 0, Calls.PRESENTATION_ALLOWED, null, null, Calls.FEATURES_NONE, null,
-                null
+                0L, null, 0, Calls.PRESENTATION_ALLOWED, null, null, 0, null, null
         };
         assertEquals(CallLogQuery._PROJECTION.length, values.length);
         return values;
diff --git a/tests/src/com/android/dialer/tests/calllog/FillCallLogTestActivity.java b/tests/src/com/android/dialer/tests/calllog/FillCallLogTestActivity.java
index 81a4249..c6c969f 100644
--- a/tests/src/com/android/dialer/tests/calllog/FillCallLogTestActivity.java
+++ b/tests/src/com/android/dialer/tests/calllog/FillCallLogTestActivity.java
@@ -490,7 +490,7 @@
         Calendar dateTime = Calendar.getInstance();
         dateTime.set(mCallDateYear, mCallDateMonth, mCallDateDay, mCallTimeHour, mCallTimeMinute);
 
-        int features = mCallTypeVideo.isChecked() ? Calls.FEATURES_VIDEO : Calls.FEATURES_NONE;
+        int features = mCallTypeVideo.isChecked() ? Calls.FEATURES_VIDEO : 0;
         Long dataUsage = null;
         if (mCallTypeVideo.isChecked()) {
             // Some random data usage up to 50MB.
