Merge "Make AOSP dialer resizeable in multi-window mode."
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 50ce7de..7d7092d 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -316,6 +316,8 @@
                  android:permission="android.permission.BIND_INCALL_SERVICE"
                  android:encryptionAware="true" >
             <meta-data android:name="android.telecom.IN_CALL_SERVICE_UI" android:value="true" />
+            <meta-data android:name="android.telecom.IN_CALL_SERVICE_RINGING"
+                android:value="false"/>
             <intent-filter>
                 <action android:name="android.telecom.InCallService"/>
             </intent-filter>
diff --git a/src/com/android/dialer/calllog/ContactInfo.java b/src/com/android/dialer/calllog/ContactInfo.java
index 1020d10..40d963e 100644
--- a/src/com/android/dialer/calllog/ContactInfo.java
+++ b/src/com/android/dialer/calllog/ContactInfo.java
@@ -93,6 +93,7 @@
                 .add("type", type).add("label", label)
                 .add("number", number).add("formattedNumber",formattedNumber)
                 .add("normalizedNumber", normalizedNumber).add("photoId", photoId)
-                .add("photoUri", photoUri).add("objectId", objectId).toString();
+                .add("photoUri", photoUri).add("objectId", objectId)
+                .add("userType",userType).toString();
     }
 }
diff --git a/src/com/android/dialer/list/RegularSearchListAdapter.java b/src/com/android/dialer/list/RegularSearchListAdapter.java
index 4d8bb6d..afc621c 100644
--- a/src/com/android/dialer/list/RegularSearchListAdapter.java
+++ b/src/com/android/dialer/list/RegularSearchListAdapter.java
@@ -50,6 +50,7 @@
             final DirectoryPartition partition =
                 (DirectoryPartition) getPartition(getPartitionForPosition(position));
             final long directoryId = partition.getDirectoryId();
+            final boolean isExtendedDirectory = isExtendedDirectory(directoryId);
 
             info.name = item.getString(PhoneQuery.DISPLAY_NAME);
             info.type = item.getInt(PhoneQuery.PHONE_TYPE);
@@ -57,13 +58,22 @@
             info.number = item.getString(PhoneQuery.PHONE_NUMBER);
             final String photoUriStr = item.getString(PhoneQuery.PHOTO_URI);
             info.photoUri = photoUriStr == null ? null : Uri.parse(photoUriStr);
-            info.userType = DirectoryCompat.isEnterpriseDirectoryId(directoryId)
-                    ? ContactsUtils.USER_TYPE_WORK : ContactsUtils.USER_TYPE_CURRENT;
+            /*
+             * An extended directory is custom directory in the app, but not a directory provided by
+             * framework. So it can't be USER_TYPE_WORK.
+             *
+             * When a search result is selected, RegularSearchFragment calls getContactInfo and
+             * cache the resulting @{link ContactInfo} into local db. Set usertype to USER_TYPE_WORK
+             * only if it's NOT extended directory id and is enterprise directory.
+             */
+            info.userType = !isExtendedDirectory
+                    && DirectoryCompat.isEnterpriseDirectoryId(directoryId)
+                            ? ContactsUtils.USER_TYPE_WORK : ContactsUtils.USER_TYPE_CURRENT;
 
             cacheInfo.setLookupKey(item.getString(PhoneQuery.LOOKUP_KEY));
 
             final String sourceName = partition.getLabel();
-            if (isExtendedDirectory(directoryId)) {
+            if (isExtendedDirectory) {
                 cacheInfo.setExtendedSource(sourceName, directoryId);
             } else {
                 cacheInfo.setDirectorySource(sourceName, directoryId);