Move DirectoryCompat from "contacts/common" to "dialer/common/cp2".

Bug: 73887387
Test: Existing tests
PiperOrigin-RevId: 187225355
Change-Id: I65de553078e147a46d933daf34dfd912fc8aa74c
diff --git a/java/com/android/contacts/common/ContactsUtils.java b/java/com/android/contacts/common/ContactsUtils.java
index bc0e423..bca8b62 100644
--- a/java/com/android/contacts/common/ContactsUtils.java
+++ b/java/com/android/contacts/common/ContactsUtils.java
@@ -18,7 +18,7 @@
 
 import android.provider.ContactsContract.Contacts;
 import android.support.annotation.IntDef;
-import com.android.contacts.common.compat.DirectoryCompat;
+import com.android.dialer.common.cp2.DirectoryCompat;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
diff --git a/java/com/android/contacts/common/list/ContactEntryListAdapter.java b/java/com/android/contacts/common/list/ContactEntryListAdapter.java
index 117825d..413a1de 100644
--- a/java/com/android/contacts/common/list/ContactEntryListAdapter.java
+++ b/java/com/android/contacts/common/list/ContactEntryListAdapter.java
@@ -34,9 +34,9 @@
 import android.widget.TextView;
 import com.android.contacts.common.ContactsUtils;
 import com.android.contacts.common.R;
-import com.android.contacts.common.compat.DirectoryCompat;
 import com.android.contacts.common.util.SearchUtil;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.cp2.DirectoryCompat;
 import com.android.dialer.compat.CompatUtils;
 import com.android.dialer.configprovider.ConfigProviderBindings;
 import com.android.dialer.contactphoto.ContactPhotoManager;
diff --git a/java/com/android/contacts/common/list/DirectoryListLoader.java b/java/com/android/contacts/common/list/DirectoryListLoader.java
index be62cc7..ce78d2c 100644
--- a/java/com/android/contacts/common/list/DirectoryListLoader.java
+++ b/java/com/android/contacts/common/list/DirectoryListLoader.java
@@ -26,8 +26,8 @@
 import android.provider.ContactsContract.Directory;
 import android.text.TextUtils;
 import com.android.contacts.common.R;
-import com.android.contacts.common.compat.DirectoryCompat;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.cp2.DirectoryCompat;
 import com.android.dialer.util.PermissionsUtil;
 
 /** A specialized loader for the list of directories, see {@link Directory}. */
diff --git a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
index 58628d2..3c45abf 100644
--- a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
+++ b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
@@ -34,13 +34,13 @@
 import com.android.contacts.common.ContactsUtils;
 import com.android.contacts.common.R;
 import com.android.contacts.common.compat.CallableCompat;
-import com.android.contacts.common.compat.DirectoryCompat;
 import com.android.contacts.common.compat.PhoneCompat;
 import com.android.contacts.common.extensions.PhoneDirectoryExtenderAccessor;
 import com.android.contacts.common.list.ContactListItemView.CallToAction;
 import com.android.contacts.common.preference.ContactsPreferences;
 import com.android.contacts.common.util.Constants;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.cp2.DirectoryCompat;
 import com.android.dialer.compat.CompatUtils;
 import com.android.dialer.configprovider.ConfigProviderBindings;
 import com.android.dialer.contactphoto.ContactPhotoManager.DefaultImageRequest;
diff --git a/java/com/android/dialer/app/list/RegularSearchListAdapter.java b/java/com/android/dialer/app/list/RegularSearchListAdapter.java
index aee68ae..c92f48c 100644
--- a/java/com/android/dialer/app/list/RegularSearchListAdapter.java
+++ b/java/com/android/dialer/app/list/RegularSearchListAdapter.java
@@ -20,8 +20,8 @@
 import android.net.Uri;
 import android.text.TextUtils;
 import com.android.contacts.common.ContactsUtils;
-import com.android.contacts.common.compat.DirectoryCompat;
 import com.android.contacts.common.list.DirectoryPartition;
+import com.android.dialer.common.cp2.DirectoryCompat;
 import com.android.dialer.phonenumbercache.CachedNumberLookupService;
 import com.android.dialer.phonenumbercache.CachedNumberLookupService.CachedContactInfo;
 import com.android.dialer.phonenumbercache.ContactInfo;
diff --git a/java/com/android/contacts/common/compat/DirectoryCompat.java b/java/com/android/dialer/common/cp2/DirectoryCompat.java
similarity index 90%
rename from java/com/android/contacts/common/compat/DirectoryCompat.java
rename to java/com/android/dialer/common/cp2/DirectoryCompat.java
index e670876..3e33394 100644
--- a/java/com/android/contacts/common/compat/DirectoryCompat.java
+++ b/java/com/android/dialer/common/cp2/DirectoryCompat.java
@@ -14,13 +14,14 @@
  * limitations under the License.
  */
 
-package com.android.contacts.common.compat;
+package com.android.dialer.common.cp2;
 
 import android.net.Uri;
 import android.os.Build.VERSION;
 import android.os.Build.VERSION_CODES;
 import android.provider.ContactsContract.Directory;
 
+/** Compatibility utility for {@link Directory}. */
 public class DirectoryCompat {
 
   public static Uri getContentUri() {
@@ -42,7 +43,7 @@
     if (VERSION.SDK_INT >= VERSION_CODES.N) {
       return Directory.isRemoteDirectoryId(directoryId);
     }
-    return !(directoryId == Directory.DEFAULT || directoryId == Directory.LOCAL_INVISIBLE);
+    return directoryId != Directory.DEFAULT && directoryId != Directory.LOCAL_INVISIBLE;
   }
 
   public static boolean isEnterpriseDirectoryId(long directoryId) {
diff --git a/java/com/android/dialer/phonelookup/cp2/Cp2ExtendedDirectoryPhoneLookup.java b/java/com/android/dialer/phonelookup/cp2/Cp2ExtendedDirectoryPhoneLookup.java
index df164bd..519ec5f 100644
--- a/java/com/android/dialer/phonelookup/cp2/Cp2ExtendedDirectoryPhoneLookup.java
+++ b/java/com/android/dialer/phonelookup/cp2/Cp2ExtendedDirectoryPhoneLookup.java
@@ -22,12 +22,12 @@
 import android.os.Build.VERSION;
 import android.os.Build.VERSION_CODES;
 import android.provider.ContactsContract;
-import android.provider.ContactsContract.Directory;
 import android.support.annotation.VisibleForTesting;
 import com.android.dialer.DialerPhoneNumber;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.Annotations.BackgroundExecutor;
 import com.android.dialer.common.concurrent.Annotations.LightweightExecutor;
+import com.android.dialer.common.cp2.DirectoryCompat;
 import com.android.dialer.inject.ApplicationContext;
 import com.android.dialer.phonelookup.PhoneLookup;
 import com.android.dialer.phonelookup.PhoneLookupInfo;
@@ -80,7 +80,7 @@
               appContext
                   .getContentResolver()
                   .query(
-                      getContentUriForDirectoryIds(),
+                      DirectoryCompat.getContentUri(),
                       /* projection = */ new String[] {ContactsContract.Directory._ID},
                       /* selection = */ null,
                       /* selectionArgs = */ null,
@@ -177,13 +177,6 @@
   }
 
   @VisibleForTesting
-  static Uri getContentUriForDirectoryIds() {
-    return VERSION.SDK_INT >= VERSION_CODES.N
-        ? ContactsContract.Directory.ENTERPRISE_CONTENT_URI
-        : ContactsContract.Directory.CONTENT_URI;
-  }
-
-  @VisibleForTesting
   static Uri getContentUriForContacts(String number, long directoryId) {
     Uri baseUri =
         VERSION.SDK_INT >= VERSION_CODES.N
@@ -204,13 +197,8 @@
   }
 
   private static boolean isExtendedDirectory(long directoryId) {
-    // TODO(a bug): Moving the logic to utility shared with the search fragment.
-    return VERSION.SDK_INT >= VERSION_CODES.N
-        ? Directory.isRemoteDirectoryId(directoryId)
-            || Directory.isEnterpriseDirectoryId(directoryId)
-        : (directoryId != Directory.DEFAULT
-            && directoryId != Directory.LOCAL_INVISIBLE
-            && directoryId != Directory.ENTERPRISE_LOCAL_INVISIBLE);
+    return DirectoryCompat.isRemoteDirectoryId(directoryId)
+        || DirectoryCompat.isEnterpriseDirectoryId(directoryId);
   }
 
   @Override
diff --git a/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java b/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
index e99533a..f094be8 100644
--- a/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
+++ b/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
@@ -35,10 +35,10 @@
 import android.text.TextUtils;
 import com.android.contacts.common.ContactsUtils;
 import com.android.contacts.common.ContactsUtils.UserType;
-import com.android.contacts.common.compat.DirectoryCompat;
 import com.android.contacts.common.util.Constants;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.cp2.DirectoryCompat;
 import com.android.dialer.logging.ContactSource;
 import com.android.dialer.oem.CequintCallerIdManager;
 import com.android.dialer.oem.CequintCallerIdManager.CequintCallerIdContact;
diff --git a/java/com/android/dialer/searchfragment/directories/DirectoryContactViewHolder.java b/java/com/android/dialer/searchfragment/directories/DirectoryContactViewHolder.java
index fc5bce1..aef1e9e 100644
--- a/java/com/android/dialer/searchfragment/directories/DirectoryContactViewHolder.java
+++ b/java/com/android/dialer/searchfragment/directories/DirectoryContactViewHolder.java
@@ -29,9 +29,9 @@
 import android.widget.ImageView;
 import android.widget.QuickContactBadge;
 import android.widget.TextView;
-import com.android.contacts.common.compat.DirectoryCompat;
 import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.callintent.CallIntentBuilder;
+import com.android.dialer.common.cp2.DirectoryCompat;
 import com.android.dialer.contactphoto.ContactPhotoManager;
 import com.android.dialer.lettertile.LetterTileDrawable;
 import com.android.dialer.precall.PreCall;
@@ -73,14 +73,11 @@
     String secondaryInfo =
         TextUtils.isEmpty(label)
             ? number
-            : context.getString(
-                com.android.contacts.common.R.string.call_subject_type_and_number, label, number);
+            : context.getString(R.string.call_subject_type_and_number, label, number);
 
     nameView.setText(QueryBoldingUtil.getNameWithQueryBolded(query, name, context));
     numberView.setText(QueryBoldingUtil.getNameWithQueryBolded(query, secondaryInfo, context));
     workBadge.setVisibility(
-        // TODO(a bug): Consider moving DirectoryCompat out of "contacts/common" and share it
-        // with PhoneLookups.
         DirectoryCompat.isOnlyEnterpriseDirectoryId(cursor.getDirectoryId())
             ? View.VISIBLE
             : View.GONE);
diff --git a/java/com/android/dialer/searchfragment/directories/DirectoryContactsCursor.java b/java/com/android/dialer/searchfragment/directories/DirectoryContactsCursor.java
index 8f9ab0e..0c1ad83 100644
--- a/java/com/android/dialer/searchfragment/directories/DirectoryContactsCursor.java
+++ b/java/com/android/dialer/searchfragment/directories/DirectoryContactsCursor.java
@@ -22,8 +22,8 @@
 import android.database.MergeCursor;
 import android.support.annotation.Nullable;
 import android.support.annotation.VisibleForTesting;
-import com.android.contacts.common.compat.DirectoryCompat;
 import com.android.dialer.common.Assert;
+import com.android.dialer.common.cp2.DirectoryCompat;
 import com.android.dialer.searchfragment.common.SearchCursor;
 import com.android.dialer.searchfragment.directories.DirectoriesCursorLoader.Directory;
 import java.util.ArrayList;
@@ -101,8 +101,6 @@
 
   private static MatrixCursor createHeaderCursor(Context context, String name, long id) {
     MatrixCursor headerCursor = new MatrixCursor(PROJECTION, 1);
-    // TODO(a bug): Consider moving DirectoryCompat out of "contacts/common" and share it
-    // with PhoneLookups.
     if (DirectoryCompat.isOnlyEnterpriseDirectoryId(id)) {
       headerCursor.addRow(
           new Object[] {context.getString(R.string.directory_search_label_work), id});
diff --git a/java/com/android/dialer/searchfragment/directories/DirectoryContactsCursorLoader.java b/java/com/android/dialer/searchfragment/directories/DirectoryContactsCursorLoader.java
index a948785..d719cb9 100644
--- a/java/com/android/dialer/searchfragment/directories/DirectoryContactsCursorLoader.java
+++ b/java/com/android/dialer/searchfragment/directories/DirectoryContactsCursorLoader.java
@@ -27,7 +27,7 @@
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.support.annotation.NonNull;
 import android.support.annotation.VisibleForTesting;
-import com.android.contacts.common.compat.DirectoryCompat;
+import com.android.dialer.common.cp2.DirectoryCompat;
 import com.android.dialer.searchfragment.common.Projections;
 import com.android.dialer.searchfragment.directories.DirectoriesCursorLoader.Directory;
 import java.util.ArrayList;
@@ -71,8 +71,6 @@
     for (int i = 0; i < directories.size(); i++) {
       Directory directory = directories.get(i);
 
-      // TODO(a bug): Consider moving DirectoryCompat out of "contacts/common" and share it
-      // with PhoneLookups.
       if (!DirectoryCompat.isRemoteDirectoryId(directory.getId())
           && !DirectoryCompat.isEnterpriseDirectoryId(directory.getId())) {
         cursors[i] = null;
diff --git a/java/com/android/dialer/searchfragment/directories/res/values/strings.xml b/java/com/android/dialer/searchfragment/directories/res/values/strings.xml
index beabba1..097f353 100644
--- a/java/com/android/dialer/searchfragment/directories/res/values/strings.xml
+++ b/java/com/android/dialer/searchfragment/directories/res/values/strings.xml
@@ -17,4 +17,10 @@
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
   <!-- Label for a list of contacts stored in a seperate directory [CHAR LIMIT=30]-->
   <string name="directory">Directory <xliff:g example="google.com" id="email">%1$s</xliff:g></string>
+
+  <!-- String used to build a phone number type and phone number string.
+     Example: Mobile 650-555-1212  -->
+  <string name="call_subject_type_and_number">
+    <xliff:g example="Mobile" id="type">%1$s</xliff:g> <xliff:g example="(650) 555-1212" id="number">%2$s</xliff:g>
+  </string>
 </resources>
\ No newline at end of file
diff --git a/java/com/android/incallui/CallerInfoAsyncQuery.java b/java/com/android/incallui/CallerInfoAsyncQuery.java
index 52ca8ca..3358952 100644
--- a/java/com/android/incallui/CallerInfoAsyncQuery.java
+++ b/java/com/android/incallui/CallerInfoAsyncQuery.java
@@ -37,7 +37,7 @@
 import android.support.annotation.WorkerThread;
 import android.telephony.PhoneNumberUtils;
 import android.text.TextUtils;
-import com.android.contacts.common.compat.DirectoryCompat;
+import com.android.dialer.common.cp2.DirectoryCompat;
 import com.android.dialer.phonenumbercache.CachedNumberLookupService;
 import com.android.dialer.phonenumbercache.CachedNumberLookupService.CachedContactInfo;
 import com.android.dialer.phonenumbercache.ContactInfoHelper;