Merge "Expand transcription view when call log item clicked" into lmp-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index fa13adf..05cd5b5 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -40,6 +40,7 @@
     <uses-permission android:name="android.permission.USE_CREDENTIALS" />
     <uses-permission android:name="android.permission.VIBRATE" />
     <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
+    <uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE" />
     <uses-permission android:name="com.android.voicemail.permission.ADD_VOICEMAIL" />
     <uses-permission android:name="com.android.voicemail.permission.WRITE_VOICEMAIL" />
     <uses-permission android:name="com.android.voicemail.permission.READ_VOICEMAIL" />
@@ -294,7 +295,8 @@
         </receiver>
 
         <service android:name="com.android.incallui.InCallServiceImpl"
-                 android:process="com.android.incallui">
+                 android:process="com.android.incallui"
+                 android:permission="android.permission.BIND_INCALL_SERVICE" >
             <intent-filter>
                 <action android:name="android.telecomm.InCallService"/>
             </intent-filter>
diff --git a/res/drawable/floating_action_button.xml b/res/drawable/floating_action_button.xml
index 347e9d4..cbbfb85 100644
--- a/res/drawable/floating_action_button.xml
+++ b/res/drawable/floating_action_button.xml
@@ -16,6 +16,6 @@
 -->
 
 <ripple xmlns:android="http://schemas.android.com/apk/res/android"
-    android:color="@color/dialer_accent_color">
+    android:color="@color/floating_action_button_touch_tint">
     <item android:drawable="@drawable/fab_blue" />
 </ripple>
diff --git a/res/layout/call_log_list_item.xml b/res/layout/call_log_list_item.xml
index feb6466..7645736 100644
--- a/res/layout/call_log_list_item.xml
+++ b/res/layout/call_log_list_item.xml
@@ -138,6 +138,7 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_gravity="center_vertical"
+                android:layout_marginEnd="@dimen/call_log_icon_margin"
                 android:src="@drawable/ic_card_phone"
                 android:tint="@color/recent_call_log_item_phone_icon_tint"
                 android:alpha="0.3"
diff --git a/res/layout/phone_disambig_item.xml b/res/layout/phone_disambig_item.xml
index a097ce7..27bbda1 100755
--- a/res/layout/phone_disambig_item.xml
+++ b/res/layout/phone_disambig_item.xml
@@ -14,7 +14,8 @@
      limitations under the License.
 -->
 
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<view class="com.android.contacts.common.widget.ActivityTouchLinearLayout"
+    xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="vertical"
@@ -39,4 +40,4 @@
         android:textAppearance="?android:attr/textAppearanceSmall"
         android:textDirection="ltr" />
 
-</LinearLayout>
+</view>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 448d1e6..a3fd3f9 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -19,7 +19,6 @@
     <color name="dialtacts_primary_text_color">#333</color>
     <!-- Secondary text color in the Dialer -->
     <color name="dialtacts_secondary_text_color">#737373</color>
-    <color name="dialer_accent_color">#eeff41</color>
     <color name="dialer_red_highlight_color">#ff1744</color>
     <color name="dialer_green_highlight_color">#00c853</color>
 
@@ -100,7 +99,8 @@
     <!-- Color for icons in the actionbar -->
     <color name="actionbar_icon_color">#ffffff</color>
 
-    <color name="dialer_dialpad_touch_tint">#331dc7db</color>
+    <color name="dialer_dialpad_touch_tint">#330288d1</color>
 
+    <color name="floating_action_button_touch_tint">#80ffffff</color>
 
 </resources>
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 12c52da..36f7b8d 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -102,7 +102,6 @@
  * The dialer tab's title is 'phone', a more common name (see strings.xml).
  */
 public class DialtactsActivity extends TransactionSafeActivity implements View.OnClickListener,
-        View.OnTouchListener,
         DialpadFragment.OnDialpadQueryChangedListener,
         OnListFragmentScrolledListener,
         DialpadFragment.HostInterface,
@@ -230,10 +229,6 @@
     private String mActionMenuDialpadButtonStr;
     private ImageButton mFloatingActionButton;
     private FloatingActionButtonController mFloatingActionButtonController;
-    /**
-     * Additional offset for FAB to be lowered when dialpad is open.
-     */
-    private int mFloatingActionButtonDialpadMarginBottomOffset;
 
     private int mActionBarHeight;
 
@@ -342,6 +337,15 @@
     };
 
     @Override
+    public boolean dispatchTouchEvent(MotionEvent ev) {
+        if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+            TouchPointManager.getInstance().setPoint((int) ev.getRawX(), (int) ev.getRawY());
+        }
+        return super.dispatchTouchEvent(ev);
+
+    }
+
+    @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         mFirstLaunch = true;
@@ -390,11 +394,8 @@
         int floatingActionButtonWidth = resources.getDimensionPixelSize(
                 R.dimen.floating_action_button_width);
         mFloatingActionButton.setOnClickListener(this);
-        mFloatingActionButton.setOnTouchListener(this);
         mFloatingActionButtonController = new FloatingActionButtonController(this,
-                floatingActionButtonContainer);
-        mFloatingActionButtonDialpadMarginBottomOffset = resources.getDimensionPixelOffset(
-                R.dimen.floating_action_button_dialpad_margin_bottom_offset);
+                floatingActionButtonContainer, mFloatingActionButton);
 
         ImageButton optionsMenuButton =
                 (ImageButton) searchEditTextLayout.findViewById(R.id.dialtacts_options_menu_button);
@@ -467,8 +468,6 @@
                 if (!mIsDialpadShown) {
                     maybeExitSearchUi();
                 }
-
-                recordTouchEvent(v, event);
                 return false;
             }
         });
@@ -570,18 +569,6 @@
     }
 
     @Override
-    public boolean onTouch(View view, MotionEvent event) {
-        recordTouchEvent(view, event);
-        return false;
-    }
-
-    private void recordTouchEvent(View view, MotionEvent event) {
-        if (event.getAction() == MotionEvent.ACTION_DOWN) {
-            TouchPointManager.getInstance().setPoint((int) event.getRawX(), (int) event.getRawY());
-        }
-    }
-
-    @Override
     public boolean onMenuItemClick(MenuItem item) {
         switch (item.getItemId()) {
             case R.id.menu_history:
@@ -1207,9 +1194,6 @@
                 align = FloatingActionButtonController.ALIGN_END;
             }
         }
-        mFloatingActionButtonController.align(align,
-                0 /* offsetX */,
-                mIsDialpadShown ? mFloatingActionButtonDialpadMarginBottomOffset : 0 /* offsetY */,
-                animate);
+        mFloatingActionButtonController.align(align, 0 /* offsetX */, 0 /* offsetY */, animate);
     }
 }
diff --git a/src/com/android/dialer/PhoneCallDetailsHelper.java b/src/com/android/dialer/PhoneCallDetailsHelper.java
index be5ee72..5e960f9 100644
--- a/src/com/android/dialer/PhoneCallDetailsHelper.java
+++ b/src/com/android/dialer/PhoneCallDetailsHelper.java
@@ -25,6 +25,7 @@
 import android.view.View;
 import android.widget.TextView;
 
+import com.android.contacts.common.CallUtil;
 import com.android.contacts.common.testing.NeededForTesting;
 import com.android.contacts.common.util.PhoneNumberHelper;
 import com.android.dialer.calllog.CallTypeHelper;
@@ -32,7 +33,6 @@
 import com.android.dialer.calllog.PhoneNumberDisplayHelper;
 import com.android.dialer.calllog.PhoneNumberUtilsWrapper;
 import com.android.dialer.util.DialerUtils;
-
 import com.google.common.collect.Lists;
 
 import java.util.ArrayList;
@@ -86,7 +86,7 @@
         // Show the video icon if the call had video enabled.
         views.callTypeIcons.setShowVideo(
                 (details.features & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO
-                        && DialerUtils.isVideoEnabled());
+                        && CallUtil.isVideoEnabled());
         views.callTypeIcons.requestLayout();
         views.callTypeIcons.setVisibility(View.VISIBLE);
 
diff --git a/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java b/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java
index 7a8b922..3c07955 100644
--- a/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java
+++ b/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java
@@ -26,6 +26,7 @@
 import android.widget.BaseAdapter;
 import android.widget.TextView;
 
+import com.android.contacts.common.CallUtil;
 import com.android.dialer.PhoneCallDetails;
 import com.android.dialer.R;
 import com.android.dialer.util.DialerUtils;
@@ -123,7 +124,7 @@
 
         int callType = details.callTypes[0];
         boolean isVideoCall = (details.features & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO
-                && DialerUtils.isVideoEnabled();
+                && CallUtil.isVideoEnabled();
 
         callTypeIconView.clear();
         callTypeIconView.add(callType);
diff --git a/src/com/android/dialer/calllog/CallLogActivity.java b/src/com/android/dialer/calllog/CallLogActivity.java
index 0054ac0..2a47271 100644
--- a/src/com/android/dialer/calllog/CallLogActivity.java
+++ b/src/com/android/dialer/calllog/CallLogActivity.java
@@ -29,7 +29,9 @@
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
+import android.view.MotionEvent;
 
+import com.android.contacts.common.interactions.TouchPointManager;
 import com.android.contacts.common.list.ViewPagerTabs;
 import com.android.dialer.DialtactsActivity;
 import com.android.dialer.R;
@@ -104,6 +106,14 @@
     }
 
     @Override
+    public boolean dispatchTouchEvent(MotionEvent ev) {
+        if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+            TouchPointManager.getInstance().setPoint((int) ev.getRawX(), (int) ev.getRawY());
+        }
+        return super.dispatchTouchEvent(ev);
+    }
+
+    @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
diff --git a/src/com/android/dialer/calllog/CallLogListItemHelper.java b/src/com/android/dialer/calllog/CallLogListItemHelper.java
index 78a0105..23b70d9 100644
--- a/src/com/android/dialer/calllog/CallLogListItemHelper.java
+++ b/src/com/android/dialer/calllog/CallLogListItemHelper.java
@@ -20,10 +20,10 @@
 import android.provider.CallLog.Calls;
 import android.text.TextUtils;
 
+import com.android.contacts.common.CallUtil;
 import com.android.dialer.PhoneCallDetails;
 import com.android.dialer.PhoneCallDetailsHelper;
 import com.android.dialer.R;
-import com.android.dialer.util.DialerUtils;
 
 /**
  * Helper class to fill in the views of a call log entry.
@@ -155,7 +155,7 @@
 
         // If call had video capabilities, add the "Video Call" string.
         if ((details.features & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO &&
-                DialerUtils.isVideoEnabled()) {
+                CallUtil.isVideoEnabled()) {
             callDescription.append(mResources.getString(R.string.description_video_call));
         }
 
diff --git a/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java b/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
index 477aa86..837cfba 100644
--- a/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
+++ b/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
@@ -157,6 +157,7 @@
                 .setSmallIcon(icon)
                 .setContentTitle(title)
                 .setContentText(callers)
+                .setColor(resources.getColor(R.color.dialer_theme_color))
                 .setDefaults(callToNotify != null ? Notification.DEFAULT_ALL : 0)
                 .setDeleteIntent(createMarkNewVoicemailsAsOldIntent())
                 .setAutoCancel(true);
diff --git a/src/com/android/dialer/list/RegularSearchListAdapter.java b/src/com/android/dialer/list/RegularSearchListAdapter.java
index 8e4382c..b1223b7 100644
--- a/src/com/android/dialer/list/RegularSearchListAdapter.java
+++ b/src/com/android/dialer/list/RegularSearchListAdapter.java
@@ -21,12 +21,12 @@
 import android.provider.ContactsContract;
 import android.text.TextUtils;
 
+import com.android.contacts.common.CallUtil;
 import com.android.contacts.common.list.DirectoryPartition;
 import com.android.contacts.common.list.PhoneNumberListAdapter;
 import com.android.dialer.calllog.ContactInfo;
 import com.android.dialer.service.CachedNumberLookupService;
 import com.android.dialer.service.CachedNumberLookupService.CachedContactInfo;
-import com.android.dialer.util.DialerUtils;
 
 /**
  * List adapter to display regular search results.
@@ -75,7 +75,7 @@
         // Otherwise, it should add it to a new contact as a name.
         setShortcutEnabled(SHORTCUT_ADD_NUMBER_TO_CONTACTS, showNumberShortcuts);
         setShortcutEnabled(SHORTCUT_MAKE_VIDEO_CALL,
-                showNumberShortcuts && DialerUtils.isVideoEnabled());
+                showNumberShortcuts && CallUtil.isVideoEnabled());
         super.setQueryString(queryString);
     }
 }
diff --git a/src/com/android/dialer/list/SmartDialNumberListAdapter.java b/src/com/android/dialer/list/SmartDialNumberListAdapter.java
index 231611d..898115a 100644
--- a/src/com/android/dialer/list/SmartDialNumberListAdapter.java
+++ b/src/com/android/dialer/list/SmartDialNumberListAdapter.java
@@ -25,6 +25,7 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import com.android.contacts.common.CallUtil;
 import com.android.contacts.common.list.ContactListItemView;
 import com.android.contacts.common.list.PhoneNumberListAdapter;
 import com.android.contacts.common.list.PhoneNumberListAdapter.PhoneQuery;
@@ -32,7 +33,6 @@
 import com.android.dialer.dialpad.SmartDialNameMatcher;
 import com.android.dialer.dialpad.SmartDialPrefix;
 import com.android.dialer.dialpad.SmartDialMatchPosition;
-import com.android.dialer.util.DialerUtils;
 
 import java.util.ArrayList;
 
@@ -120,7 +120,7 @@
         final boolean showNumberShortcuts = !TextUtils.isEmpty(getFormattedQueryString());
         setShortcutEnabled(SHORTCUT_ADD_NUMBER_TO_CONTACTS, showNumberShortcuts);
         setShortcutEnabled(SHORTCUT_MAKE_VIDEO_CALL,
-                showNumberShortcuts && DialerUtils.isVideoEnabled());
+                showNumberShortcuts && CallUtil.isVideoEnabled());
         super.setQueryString(queryString);
     }
 }
diff --git a/src/com/android/dialer/util/DialerUtils.java b/src/com/android/dialer/util/DialerUtils.java
index 7f6e75b..686884a 100644
--- a/src/com/android/dialer/util/DialerUtils.java
+++ b/src/com/android/dialer/util/DialerUtils.java
@@ -183,10 +183,4 @@
             imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
         }
     }
-
-    public static boolean isVideoEnabled() {
-        // TODO: Write utility methods to check subscriptions and settings, and use it to determine
-        // whether to enable or disable video call functionality.
-        return false;
-    }
 }