summaryrefslogtreecommitdiffstats
path: root/java/com/android/contacts/common/compat/ContactsCompat.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/contacts/common/compat/ContactsCompat.java')
-rw-r--r--java/com/android/contacts/common/compat/ContactsCompat.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/java/com/android/contacts/common/compat/ContactsCompat.java b/java/com/android/contacts/common/compat/ContactsCompat.java
index e0c9b7e53..39d0b55d3 100644
--- a/java/com/android/contacts/common/compat/ContactsCompat.java
+++ b/java/com/android/contacts/common/compat/ContactsCompat.java
@@ -21,6 +21,7 @@ import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import android.provider.ContactsContract;
import android.provider.ContactsContract.Contacts;
+import com.android.dialer.compat.CompatUtils;
/** Compatibility class for {@link ContactsContract.Contacts} */
public class ContactsCompat {
@@ -28,6 +29,8 @@ public class ContactsCompat {
// TODO: Use N APIs
private static final Uri ENTERPRISE_CONTENT_FILTER_URI =
Uri.withAppendedPath(Contacts.CONTENT_URI, "filter_enterprise");
+ // Copied from ContactsContract.Contacts#ENTERPRISE_CONTACT_ID_BASE, which is hidden.
+ private static final long ENTERPRISE_CONTACT_ID_BASE = 1000000000;
/** Not instantiable. */
private ContactsCompat() {}
@@ -38,4 +41,17 @@ public class ContactsCompat {
}
return Contacts.CONTENT_FILTER_URI;
}
+
+ /**
+ * Return {@code true} if a contact ID is from the contacts provider on the enterprise profile.
+ */
+ public static boolean isEnterpriseContactId(long contactId) {
+ if (CompatUtils.isLollipopCompatible()) {
+ return Contacts.isEnterpriseContactId(contactId);
+ } else {
+ // copied from ContactsContract.Contacts.isEnterpriseContactId
+ return (contactId >= ENTERPRISE_CONTACT_ID_BASE)
+ && (contactId < ContactsContract.Profile.MIN_ID);
+ }
+ }
}