diff --git a/Android.bp b/Android.bp
index de90412..36923ab 100644
--- a/Android.bp
+++ b/Android.bp
@@ -25,6 +25,7 @@
 
     srcs: [
         "src/**/*.java",
+        "src/**/*.kt",
         "src-bind/**/*.java",
     ],
 
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 0bd96cd..66d5767 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -20,14 +20,15 @@
           android:versionName="1.7.34">
 
     <uses-sdk
-        android:minSdkVersion="33"
-        android:targetSdkVersion="33"/>
+        android:minSdkVersion="34"
+        android:targetSdkVersion="34"/>
 
     <original-package android:name="com.android.contacts"/>
 
     <!-- Contacts permission listed first because order determines
          order that permissions are requested with some OEMs -->
     <uses-permission android:name="android.permission.READ_CONTACTS"/>
+    <uses-permission android:name="android.permission.READ_CALL_LOG"/>
     <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
     <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
     <uses-permission android:name="android.permission.GET_ACCOUNTS_PRIVILEGED"/>
@@ -56,6 +57,8 @@
     <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
     <uses-permission android:name="android.permission.HIDE_OVERLAY_WINDOWS" />
     <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
+    <!-- Required in U to run Service.startForeground() under DATA_SYNC type -->
+    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC"/>
 
     <uses-feature
         android:name="android.hardware.telephony"
@@ -630,6 +633,17 @@
             android:name="android.nfc.disable_beam_default"
             android:value="true"/>
 
+        <provider
+            android:name="com.android.contacts.sdn.SdnProvider"
+            android:authorities="@string/contacts_sdn_provider_authority"
+            android:enabled="true"
+            android:exported="true"
+            android:readPermission="android.permission.BIND_DIRECTORY_SEARCH">
+            <meta-data
+                android:name="android.content.ContactDirectory"
+                android:value="true" />
+        </provider>
+
     </application>
 
     <!-- Allows the contacts app to see the activities and services needed
diff --git a/lint-baseline.xml b/lint-baseline.xml
deleted file mode 100644
index 659b24d..0000000
--- a/lint-baseline.xml
+++ /dev/null
@@ -1,664 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.1.0-dev" type="baseline" client="" dependencies="true" name="" variant="all" version="7.1.0-dev">
-
-    <issue
-        id="NewApi"
-        message="Call requires API level S (current min is 21): `android.provider.ContactsContract.SimContacts#getSimAccounts`"
-        errorLine1="                        ContactsContract.SimContacts.getSimAccounts(mContext.getContentResolver());"
-        errorLine2="                                                     ~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/model/AccountTypeManager.java"
-            line="541"
-            column="54"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level S (current min is 21): `android.provider.ContactsContract.SimAccount#getAccountName`"
-        errorLine1="                    simAccountWithDataSets.add(new AccountWithDataSet(simAccount.getAccountName(),"
-        errorLine2="                                                                                 ~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/model/AccountTypeManager.java"
-            line="543"
-            column="82"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level S (current min is 21): `android.provider.ContactsContract.SimAccount#getAccountType`"
-        errorLine1="                            simAccount.getAccountType(), null));"
-        errorLine2="                                       ~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/model/AccountTypeManager.java"
-            line="544"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Cast from `PhoneAccountHandle` to `Parcelable` requires API level 23 (current min is 21)"
-        errorLine1="        arguments.putParcelable(ARG_PHONE_ACCOUNT_HANDLE, phoneAccountHandle);"
-        errorLine2="                                                          ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/dialog/CallSubjectDialog.java"
-            line="249"
-            column="59"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Cast from `PhoneAccountHandle` to `Parcelable` requires API level 23 (current min is 21)"
-        errorLine1="            intent.putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle);"
-        errorLine2="                                                                       ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/CallUtil.java"
-            line="87"
-            column="72"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telecom.TelecomManager#getCallCapablePhoneAccounts`"
-        errorLine1="            List&lt;PhoneAccountHandle> accountHandles = telecommMgr.getCallCapablePhoneAccounts();"
-        errorLine2="                                                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/CallUtil.java"
-            line="164"
-            column="67"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telecom.TelecomManager#getPhoneAccount`"
-        errorLine1="                PhoneAccount account = telecommMgr.getPhoneAccount(accountHandle);"
-        errorLine2="                                                   ~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/CallUtil.java"
-            line="166"
-            column="52"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telecom.PhoneAccount#hasCapabilities`"
-        errorLine1="                    if (account.hasCapabilities(PhoneAccount.CAPABILITY_VIDEO_CALLING)) {"
-        errorLine2="                                ~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/CallUtil.java"
-            line="168"
-            column="33"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telecom.PhoneAccount#hasCapabilities`"
-        errorLine1="                        if (account.hasCapabilities(PhoneAccountSdkCompat"
-        errorLine2="                                    ~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/CallUtil.java"
-            line="175"
-            column="37"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telecom.TelecomManager#getCallCapablePhoneAccounts`"
-        errorLine1="            List&lt;PhoneAccountHandle> accountHandles = telecommMgr.getCallCapablePhoneAccounts();"
-        errorLine2="                                                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/CallUtil.java"
-            line="211"
-            column="67"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telecom.TelecomManager#getPhoneAccount`"
-        errorLine1="                PhoneAccount account = telecommMgr.getPhoneAccount(accountHandle);"
-        errorLine2="                                                   ~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/CallUtil.java"
-            line="213"
-            column="52"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telecom.PhoneAccount#hasCapabilities`"
-        errorLine1="                if (account != null &amp;&amp; account.hasCapabilities(PhoneAccount.CAPABILITY_CALL_SUBJECT)) {"
-        errorLine2="                                               ~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/CallUtil.java"
-            line="214"
-            column="48"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.content.ContentProviderOperation#isInsert`"
-        errorLine1="            return cpoWrapper.getOperation().isInsert();"
-        errorLine2="                                             ~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/CompatUtils.java"
-            line="48"
-            column="46"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.content.ContentProviderOperation#isUpdate`"
-        errorLine1="            return cpoWrapper.getOperation().isUpdate();"
-        errorLine2="                                             ~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/CompatUtils.java"
-            line="58"
-            column="46"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.content.ContentProviderOperation#isDelete`"
-        errorLine1="            return cpoWrapper.getOperation().isDelete();"
-        errorLine2="                                             ~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/CompatUtils.java"
-            line="68"
-            column="46"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.content.ContentProviderOperation#isAssertQuery`"
-        errorLine1="            return cpoWrapper.getOperation().isAssertQuery();"
-        errorLine2="                                             ~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/CompatUtils.java"
-            line="77"
-            column="46"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 24 (current min is 21): `new android.icu.text.MessageFormat`"
-        errorLine1="                MessageFormat msgFormat = new MessageFormat("
-        errorLine2="                                          ~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/interactions/ContactDeletionInteraction.java"
-            line="360"
-            column="43"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.widget.QuickContactBadge#setPrioritizedMimeType`"
-        errorLine1="            quickContact.setPrioritizedMimeType(Phone.CONTENT_ITEM_TYPE);"
-        errorLine2="                         ~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/list/ContactEntryListAdapter.java"
-            line="721"
-            column="26"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 24 (current min is 21): `new android.icu.text.MessageFormat`"
-        errorLine1="            MessageFormat msgFormat = new MessageFormat("
-        errorLine2="                                      ~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java"
-            line="1221"
-            column="39"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 24 (current min is 21): `new android.icu.text.MessageFormat`"
-        errorLine1="            MessageFormat msgFormat = new MessageFormat("
-        errorLine2="                                      ~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/list/DefaultContactBrowseListFragment.java"
-            line="1129"
-            column="39"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level S (current min is 21): `android.provider.ContactsContract.SimContacts#getSimAccounts`"
-        errorLine1="                    ContactsContract.SimContacts.getSimAccounts("
-        errorLine2="                                                 ~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/util/DeviceLocalAccountTypeFactory.java"
-            line="74"
-            column="50"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level S (current min is 21): `android.provider.ContactsContract.SimAccount#getAccountType`"
-        errorLine1="                        simAccount.getAccountType())) {"
-        errorLine2="                                   ~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/util/DeviceLocalAccountTypeFactory.java"
-            line="77"
-            column="36"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Field requires API level 24 (current min is 21): `android.provider.ContactsContract.Directory#ENTERPRISE_CONTENT_URI`"
-        errorLine1="    public static final Uri ENTERPRISE_CONTENT_URI = Directory.ENTERPRISE_CONTENT_URI;"
-        errorLine2="                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/DirectorySdkCompat.java"
-            line="26"
-            column="54"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 24 (current min is 21): `new android.icu.text.MessageFormat`"
-        errorLine1="                MessageFormat msgFormat = new MessageFormat("
-        errorLine2="                                          ~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/preference/DisplayOptionsPreferenceFragment.java"
-            line="436"
-            column="43"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 28 (current min is 21): `android.content.pm.PackageInfo#getLongVersionCode`"
-        errorLine1="                sCachedVersionCode = Long.toString(info.getLongVersionCode());"
-        errorLine2="                                                        ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/util/HelpUtils.java"
-            line="125"
-            column="57"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 24 (current min is 21): `new android.icu.text.MessageFormat`"
-        errorLine1="                    MessageFormat msgFormat = new MessageFormat("
-        errorLine2="                                              ~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/interactions/ImportDialogFragment.java"
-            line="178"
-            column="47"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 24 (current min is 21): `new android.icu.text.MessageFormat`"
-        errorLine1="                    MessageFormat msgFormat = new MessageFormat("
-        errorLine2="                                              ~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/interactions/ImportDialogFragment.java"
-            line="187"
-            column="47"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 26 (current min is 21): `android.graphics.drawable.AdaptiveIconDrawable#getExtraInsetFraction`"
-        errorLine1="        return 1 / (1 + (2 * AdaptiveIconDrawable.getExtraInsetFraction()));"
-        errorLine2="                                                  ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/lettertiles/LetterTileDrawable.java"
-            line="293"
-            column="51"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 24 (current min is 21): `new android.icu.text.MessageFormat`"
-        errorLine1="            MessageFormat msgFormat = new MessageFormat("
-        errorLine2="                                      ~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/list/MultiSelectContactsListFragment.java"
-            line="357"
-            column="39"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 24 (current min is 21): `new android.icu.text.MessageFormat`"
-        errorLine1="            MessageFormat msgFormat = new MessageFormat("
-        errorLine2="                                      ~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/list/MultiSelectContactsListFragment.java"
-            line="362"
-            column="39"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telecom.PhoneAccount#getIcon`"
-        errorLine1="            return phoneAccount.getIcon();"
-        errorLine2="                                ~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/PhoneAccountCompat.java"
-            line="45"
-            column="33"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.graphics.drawable.Icon#loadDrawable`"
-        errorLine1="        return accountIcon.loadDrawable(context);"
-        errorLine2="                           ~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/PhoneAccountCompat.java"
-            line="84"
-            column="28"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Class requires API level 23 (current min is 21): `android.telecom.PhoneAccount`"
-        errorLine1="            return (Drawable) PhoneAccount.class.getMethod(&quot;createIconDrawable&quot;, Context.class)"
-        errorLine2="                              ~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/PhoneAccountCompat.java"
-            line="91"
-            column="31"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telephony.PhoneNumberUtils#createTtsSpannable`"
-        errorLine1="            return PhoneNumberUtils.createTtsSpannable(phoneNumber);"
-        errorLine2="                                    ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/PhoneNumberUtilsCompat.java"
-            line="85"
-            column="37"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telephony.PhoneNumberUtils#createTtsSpan`"
-        errorLine1="            return PhoneNumberUtils.createTtsSpan(phoneNumber);"
-        errorLine2="                                    ~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/PhoneNumberUtilsCompat.java"
-            line="93"
-            column="37"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telephony.PhoneNumberUtils#addTtsSpan`"
-        errorLine1="            PhoneNumberUtils.addTtsSpan(s, start, endExclusive);"
-        errorLine2="                             ~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/PhoneNumberUtilsCompat.java"
-            line="118"
-            column="30"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Field requires API level 23 (current min is 21): `android.provider.ContactsContract.ProviderStatus#CONTENT_URI`"
-        errorLine1="                .registerContentObserver(ProviderStatus.CONTENT_URI, false, this);"
-        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/list/ProviderStatusWatcher.java"
-            line="132"
-            column="42"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Field requires API level 23 (current min is 21): `android.provider.ContactsContract.ProviderStatus#CONTENT_URI`"
-        errorLine1="                Cursor cursor = mContext.getContentResolver().query(ProviderStatus.CONTENT_URI,"
-        errorLine2="                                                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/list/ProviderStatusWatcher.java"
-            line="219"
-            column="69"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Field requires API level 23 (current min is 21): `android.provider.ContactsContract.ProviderStatus#CONTENT_URI`"
-        errorLine1="        if (!ProviderStatus.CONTENT_URI.equals(uri)) return;"
-        errorLine2="             ~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/list/ProviderStatusWatcher.java"
-            line="270"
-            column="14"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 22 (current min is 21): `android.app.Activity#getReferrer`"
-        errorLine1="        if (mReferrer == null &amp;&amp; CompatUtils.isLollipopMr1Compatible() &amp;&amp; getReferrer() != null) {"
-        errorLine2="                                                                          ~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/quickcontact/QuickContactActivity.java"
-            line="654"
-            column="75"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 22 (current min is 21): `android.app.Activity#getReferrer`"
-        errorLine1="            mReferrer = getReferrer().getAuthority();"
-        errorLine2="                        ~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/quickcontact/QuickContactActivity.java"
-            line="655"
-            column="25"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 24 (current min is 21): `new android.icu.text.MessageFormat`"
-        errorLine1="        MessageFormat msgFormat = new MessageFormat("
-        errorLine2="                                  ~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/quickcontact/QuickContactActivity.java"
-            line="2226"
-            column="35"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Class requires API level 23 (current min is 21): `android.telecom.PhoneAccountHandle`"
-        errorLine1="                        (PhoneAccountHandle) resultData.getParcelable("
-        errorLine2="                         ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java"
-            line="130"
-            column="26"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Cast from `PhoneAccountHandle` to `Parcelable` requires API level 23 (current min is 21)"
-        errorLine1="                        selectedAccountHandle);"
-        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java"
-            line="171"
-            column="25"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telecom.TelecomManager#getPhoneAccount`"
-        errorLine1="            PhoneAccount account = mTelecomManager.getPhoneAccount(accountHandle);"
-        errorLine2="                                                   ~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java"
-            line="247"
-            column="52"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telecom.PhoneAccount#getLabel`"
-        errorLine1="            holder.labelTextView.setText(account.getLabel());"
-        errorLine2="                                                 ~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java"
-            line="251"
-            column="50"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telecom.PhoneAccount#getAddress`"
-        errorLine1="            if (account.getAddress() == null ||"
-        errorLine2="                        ~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java"
-            line="252"
-            column="25"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telecom.PhoneAccount#getAddress`"
-        errorLine1="                    TextUtils.isEmpty(account.getAddress().getSchemeSpecificPart())) {"
-        errorLine2="                                              ~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java"
-            line="253"
-            column="47"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telecom.PhoneAccount#getAddress`"
-        errorLine1="                                account.getAddress().getSchemeSpecificPart()));"
-        errorLine2="                                        ~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java"
-            line="259"
-            column="41"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 30 (current min is 21): `android.telephony.TelephonyManager#getSubscriptionId`"
-        errorLine1="            return new SimCard(telephony.getSimSerialNumber(), telephony.getSubscriptionId(),"
-        errorLine2="                                                                         ~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/model/SimCard.java"
-            line="244"
-            column="74"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level S (current min is 21): `android.provider.SimPhonebookContract.SimRecords#getContentUri`"
-        errorLine1="                SimRecords.getContentUri("
-        errorLine2="                           ~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/database/SimContactDaoImpl.java"
-            line="130"
-            column="28"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 26 (current min is 21): `android.content.ContentResolver#query`"
-        errorLine1="            final Cursor cursor = mResolver.query(uri,"
-        errorLine2="                                            ~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/database/SimContactDaoImpl.java"
-            line="265"
-            column="45"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telecom.TelecomManager#placeCall`"
-        errorLine1="            telecomManager.placeCall(intent.getData(), intent.getExtras());"
-        errorLine2="                           ~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/telecom/TelecomManagerCompat.java"
-            line="43"
-            column="28"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 22 (current min is 21): `android.telephony.TelephonyManager#isVoiceCapable`"
-        errorLine1="            return telephonyManager.isVoiceCapable();"
-        errorLine2="                                    ~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/TelephonyManagerCompat.java"
-            line="49"
-            column="37"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telephony.TelephonyManager#getPhoneCount`"
-        errorLine1="            return telephonyManager.getPhoneCount();"
-        errorLine2="                                    ~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/TelephonyManagerCompat.java"
-            line="71"
-            column="37"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telephony.TelephonyManager#getDeviceId`"
-        errorLine1="            return telephonyManager.getDeviceId(slotId);"
-        errorLine2="                                    ~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/TelephonyManagerCompat.java"
-            line="93"
-            column="37"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telephony.TelephonyManager#isTtyModeSupported`"
-        errorLine1="            return telephonyManager.isTtyModeSupported();"
-        errorLine2="                                    ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/TelephonyManagerCompat.java"
-            line="111"
-            column="37"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.telephony.TelephonyManager#isHearingAidCompatibilitySupported`"
-        errorLine1="            return telephonyManager.isHearingAidCompatibilitySupported();"
-        errorLine2="                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/TelephonyManagerCompat.java"
-            line="131"
-            column="37"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="Call requires API level 23 (current min is 21): `android.provider.Telephony.Threads#getOrCreateThreadId`"
-        errorLine1="            return Telephony.Threads.getOrCreateThreadId(context, recipient);"
-        errorLine2="                                     ~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/src/com/android/contacts/compat/TelephonyThreadsCompat.java"
-            line="51"
-            column="38"/>
-    </issue>
-
-    <issue
-        id="NewApi"
-        message="`android:contentInsetStartWithNavigation` requires API level 24 (current min is 21)"
-        errorLine1="        &lt;item name=&quot;android:contentInsetStartWithNavigation&quot;>72dp&lt;/item>"
-        errorLine2="              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="packages/apps/Contacts/res/values/styles.xml"
-            line="215"
-            column="15"/>
-    </issue>
-
-</issues>
diff --git a/res/layout/contact_editor_fields.xml b/res/layout/contact_editor_fields.xml
index b9bda16..dd4e499 100644
--- a/res/layout/contact_editor_fields.xml
+++ b/res/layout/contact_editor_fields.xml
@@ -48,4 +48,29 @@
 
     </LinearLayout>
 
+    <LinearLayout
+        android:id="@+id/legacy_fields_container"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="8dp"
+        android:orientation="vertical"
+        android:visibility="gone">
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textAllCaps="true"
+            android:layout_marginStart="16dp"
+            android:textAppearance="?attr/textAppearanceOverline"
+            android:singleLine="true"
+            android:layout_marginBottom="24dp"
+            android:textSize="11sp"
+            android:text="@string/editor_uneditable_section_title" />
+
+        <LinearLayout
+            android:id="@+id/legacy_section_views"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical" />
+    </LinearLayout>
+
 </merge>
\ No newline at end of file
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 1642b82..ae0b789 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Kennisgewings"</string>
     <string name="yes_button" msgid="1120514817091581293">"Ja"</string>
     <string name="no_button" msgid="8965841385742548947">"Nee"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Diensverskafferdiensnommers"</string>
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 03a8fab..ddf5208 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"ማሳወቂያዎች"</string>
     <string name="yes_button" msgid="1120514817091581293">"አዎ"</string>
     <string name="no_button" msgid="8965841385742548947">"አይ"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"የአገልግሎት አቅራቢ አገልግሎት ቁጥሮች"</string>
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 0e830e9..c5d57d4 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"الإشعارات"</string>
     <string name="yes_button" msgid="1120514817091581293">"نعم"</string>
     <string name="no_button" msgid="8965841385742548947">"لا"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"أرقام خدمات مشغّلي شبكة الجوّال"</string>
 </resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 18c1684..0c5ccfe 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"জাননীসমূহ"</string>
     <string name="yes_button" msgid="1120514817091581293">"হয়"</string>
     <string name="no_button" msgid="8965841385742548947">"নহয়"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"বাহকৰ সেৱাৰ নম্বৰ"</string>
 </resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index fc47eb1..f56c54a 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Bildirişlər"</string>
     <string name="yes_button" msgid="1120514817091581293">"Hə"</string>
     <string name="no_button" msgid="8965841385742548947">"Yox"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Operatorun xidmət nömrələri"</string>
 </resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index a976a43..bb23865 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Obaveštenja"</string>
     <string name="yes_button" msgid="1120514817091581293">"Da"</string>
     <string name="no_button" msgid="8965841385742548947">"Ne"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Uslužni brojevi mobilnog operatera"</string>
 </resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index fdf5078..5aaf751 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Апавяшчэнні"</string>
     <string name="yes_button" msgid="1120514817091581293">"Так"</string>
     <string name="no_button" msgid="8965841385742548947">"Не"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Сэрвісныя нумары аператара"</string>
 </resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 157236e..1ca635b 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Известия"</string>
     <string name="yes_button" msgid="1120514817091581293">"Да"</string>
     <string name="no_button" msgid="8965841385742548947">"Не"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Номера за обслужване от оператора"</string>
 </resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 9e2c696..e974eae 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"বিজ্ঞপ্তি"</string>
     <string name="yes_button" msgid="1120514817091581293">"হ্যাঁ"</string>
     <string name="no_button" msgid="8965841385742548947">"না"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"পরিষেবা প্রদানকারীর অপারেটরের নম্বর"</string>
 </resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 937dac0..f9f4af6 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Obavještenja"</string>
     <string name="yes_button" msgid="1120514817091581293">"Da"</string>
     <string name="no_button" msgid="8965841385742548947">"Ne"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Uslužni brojevi mobilnog operatera"</string>
 </resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index a301de0..8536460 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Notificacions"</string>
     <string name="yes_button" msgid="1120514817091581293">"Sí"</string>
     <string name="no_button" msgid="8965841385742548947">"No"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Números de servei de l\'operador"</string>
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index f59107f..6d2480e 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Oznámení"</string>
     <string name="yes_button" msgid="1120514817091581293">"Ano"</string>
     <string name="no_button" msgid="8965841385742548947">"Ne"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Čísla služeb operátorů"</string>
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 07cdcf9..853780f 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Notifikationer"</string>
     <string name="yes_button" msgid="1120514817091581293">"Ja"</string>
     <string name="no_button" msgid="8965841385742548947">"Nej"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Mobilselskabs servicenumre"</string>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 99820d1..f65caad 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Benachrichtigungen"</string>
     <string name="yes_button" msgid="1120514817091581293">"Ja"</string>
     <string name="no_button" msgid="8965841385742548947">"Nein"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Servicenummern des Mobilfunkanbieters"</string>
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index bc1826c..f4c70d9 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Ειδοποιήσεις"</string>
     <string name="yes_button" msgid="1120514817091581293">"Ναι"</string>
     <string name="no_button" msgid="8965841385742548947">"Όχι"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Αριθμοί εταιρείας κινητής τηλεφωνίας"</string>
 </resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 26c26f4..53ba496 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Notifications"</string>
     <string name="yes_button" msgid="1120514817091581293">"Yes"</string>
     <string name="no_button" msgid="8965841385742548947">"No"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Operator service numbers"</string>
 </resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 7a2e95e..579ad61 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Notifications"</string>
     <string name="yes_button" msgid="1120514817091581293">"Yes"</string>
     <string name="no_button" msgid="8965841385742548947">"No"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Carrier service numbers"</string>
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 26c26f4..53ba496 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Notifications"</string>
     <string name="yes_button" msgid="1120514817091581293">"Yes"</string>
     <string name="no_button" msgid="8965841385742548947">"No"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Operator service numbers"</string>
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 26c26f4..53ba496 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Notifications"</string>
     <string name="yes_button" msgid="1120514817091581293">"Yes"</string>
     <string name="no_button" msgid="8965841385742548947">"No"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Operator service numbers"</string>
 </resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index b5dc952..b87d768 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‎‎‎‎‏‎‏‏‏‏‎‎‎‎‏‏‎‏‏‏‏‏‏‎‎‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎‏‏‎‎‎‎‏‏‎‏‏‎‏‎‎Notifications‎‏‎‎‏‎"</string>
     <string name="yes_button" msgid="1120514817091581293">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‎‎‏‏‏‏‏‎‎‎‏‏‎‎‏‏‎‏‏‏‏‎‎‏‎‎‏‎‏‎‎‎‎‏‎‏‏‎‎‏‎‎‏‏‏‎‎‎‏‏‎‏‎‏‎‏‏‎‏‏‎‏‎Yes‎‏‎‎‏‎"</string>
     <string name="no_button" msgid="8965841385742548947">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‏‎‏‎‎‎‏‎‎‎‏‎‎‏‏‏‏‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎No‎‏‎‎‏‎"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‎‎‎‏‏‏‎‎‎‏‏‏‏‎‎‏‎‏‎‎‏‏‎‏‏‎‏‏‏‎‎‏‎‏‏‎‎‎‎‏‏‏‏‏‎‏‏‎Carrier service numbers‎‏‎‎‏‎"</string>
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 5135ef4..11bbacd 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Notificaciones."</string>
     <string name="yes_button" msgid="1120514817091581293">"Sí"</string>
     <string name="no_button" msgid="8965841385742548947">"No"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Números de servicio del operador"</string>
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 8f316e8..b79c848 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Notificaciones"</string>
     <string name="yes_button" msgid="1120514817091581293">"Sí"</string>
     <string name="no_button" msgid="8965841385742548947">"No"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Números de servicios del operador"</string>
 </resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 0f52a23..e770e49 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Märguanded"</string>
     <string name="yes_button" msgid="1120514817091581293">"Jah"</string>
     <string name="no_button" msgid="8965841385742548947">"Ei"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Operaatori klienditeeninduse numbrid"</string>
 </resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 85aadbf..df7f2f5 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Jakinarazpenak"</string>
     <string name="yes_button" msgid="1120514817091581293">"Bai"</string>
     <string name="no_button" msgid="8965841385742548947">"Ez"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Operadorearen zerbitzu-zenbakiak"</string>
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 0dd668d..55fd8a8 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"اعلان‌ها"</string>
     <string name="yes_button" msgid="1120514817091581293">"بله"</string>
     <string name="no_button" msgid="8965841385742548947">"نه"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"شماره‌های سرویس شرکت مخابراتی"</string>
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 7f24eb3..d3176e6 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Ilmoitukset"</string>
     <string name="yes_button" msgid="1120514817091581293">"Kyllä"</string>
     <string name="no_button" msgid="8965841385742548947">"Ei"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Operaattorin palvelunumerot"</string>
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 021f981..e051d63 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Avis"</string>
     <string name="yes_button" msgid="1120514817091581293">"Oui"</string>
     <string name="no_button" msgid="8965841385742548947">"Non"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Numéros de service du fournisseur"</string>
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 83cd256..b893399 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Notifications"</string>
     <string name="yes_button" msgid="1120514817091581293">"Oui"</string>
     <string name="no_button" msgid="8965841385742548947">"Non"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Numéros de service de l\'opérateur"</string>
 </resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index f1d8c95..2188631 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Notificacións"</string>
     <string name="yes_button" msgid="1120514817091581293">"Si"</string>
     <string name="no_button" msgid="8965841385742548947">"Non"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Números de servizo do operador"</string>
 </resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index b56493c..52e02b6 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"સૂચનાઓ"</string>
     <string name="yes_button" msgid="1120514817091581293">"હા"</string>
     <string name="no_button" msgid="8965841385742548947">"ના"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"મોબાઇલ ઑપરેટરના ફોન નંબર"</string>
 </resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 268493f..e705659 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"सूचनाएं"</string>
     <string name="yes_button" msgid="1120514817091581293">"हां"</string>
     <string name="no_button" msgid="8965841385742548947">"नहीं"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"मोबाइल और इंटरनेट सेवा वाली कंपनी के नंबर"</string>
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 6557812..aa85f37 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Obavijesti"</string>
     <string name="yes_button" msgid="1120514817091581293">"Da"</string>
     <string name="no_button" msgid="8965841385742548947">"Ne"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Servisni brojevi operatera"</string>
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 3d562b7..75d0cc7 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Értesítések"</string>
     <string name="yes_button" msgid="1120514817091581293">"Igen"</string>
     <string name="no_button" msgid="8965841385742548947">"Nem"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Szolgáltatói számok"</string>
 </resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 9762b8c..2c80970 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Ծանուցումներ"</string>
     <string name="yes_button" msgid="1120514817091581293">"Այո"</string>
     <string name="no_button" msgid="8965841385742548947">"Ոչ"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Օպերատորի ծառայության հեռախոսահամարներ"</string>
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 731f79a..aeaa7a1 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Notifikasi"</string>
     <string name="yes_button" msgid="1120514817091581293">"Ya"</string>
     <string name="no_button" msgid="8965841385742548947">"Tidak"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Nomor layanan operator"</string>
 </resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 87cb54e..73a167c 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Tilkynningar"</string>
     <string name="yes_button" msgid="1120514817091581293">"Já"</string>
     <string name="no_button" msgid="8965841385742548947">"Nei"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Þjónustunúmer símafyrirtækis"</string>
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 7517bda..d6a94a4 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Notifiche"</string>
     <string name="yes_button" msgid="1120514817091581293">"Sì"</string>
     <string name="no_button" msgid="8965841385742548947">"No"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Numeri di servizio degli operatori"</string>
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index cdefb2e..b1d0300 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"הודעות"</string>
     <string name="yes_button" msgid="1120514817091581293">"כן"</string>
     <string name="no_button" msgid="8965841385742548947">"לא"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"מספרי השירות של ספק הסלולר"</string>
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 7d7cac5..a5d50d2 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"通知"</string>
     <string name="yes_button" msgid="1120514817091581293">"はい"</string>
     <string name="no_button" msgid="8965841385742548947">"いいえ"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"携帯通信会社のサービス番号"</string>
 </resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 2a2152e..d6a3fcb 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"შეტყობინებები"</string>
     <string name="yes_button" msgid="1120514817091581293">"დიახ"</string>
     <string name="no_button" msgid="8965841385742548947">"არა"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"ოპერატორის სერვისის ნომრები"</string>
 </resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 4563946..4ef74c7 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Хабарландырулар"</string>
     <string name="yes_button" msgid="1120514817091581293">"Иә"</string>
     <string name="no_button" msgid="8965841385742548947">"Жоқ"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Оператордың қызмет көрсету нөмірлері"</string>
 </resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index b788464..9543cdb 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"ការ​ជូនដំណឹង"</string>
     <string name="yes_button" msgid="1120514817091581293">"បាទ/ចាស"</string>
     <string name="no_button" msgid="8965841385742548947">"ទេ"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"លេខ​ក្រុមហ៊ុន​សេវា​ទូរសព្ទ"</string>
 </resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 15af10c..1bfb772 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"ಅಧಿಸೂಚನೆಗಳು"</string>
     <string name="yes_button" msgid="1120514817091581293">"ಹೌದು"</string>
     <string name="no_button" msgid="8965841385742548947">"ಇಲ್ಲ"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"ವಾಹಕ ಸೇವೆಗಳ ಸಂಖ್ಯೆಗಳು"</string>
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 5554707..0cc708f 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"알림"</string>
     <string name="yes_button" msgid="1120514817091581293">"예"</string>
     <string name="no_button" msgid="8965841385742548947">"아니요"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"이동통신사 서비스 전화번호"</string>
 </resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 990f24e..bb9aacf 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Билдирмелер"</string>
     <string name="yes_button" msgid="1120514817091581293">"Ооба"</string>
     <string name="no_button" msgid="8965841385742548947">"Жок"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Оператордун кызмат номерлери"</string>
 </resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 3af69d8..4e67e81 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"ການແຈ້ງເຕືອນ"</string>
     <string name="yes_button" msgid="1120514817091581293">"ແມ່ນ"</string>
     <string name="no_button" msgid="8965841385742548947">"ບໍ່"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"ໝາຍເລກບໍລິການຂອງຜູ້ໃຫ້ບໍລິການ"</string>
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index ab8972e..2913fbc 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Pranešimai"</string>
     <string name="yes_button" msgid="1120514817091581293">"Taip"</string>
     <string name="no_button" msgid="8965841385742548947">"Ne"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Operatoriaus paslaugų numeriai"</string>
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index f7406b4..dcad525 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Paziņojumi"</string>
     <string name="yes_button" msgid="1120514817091581293">"Jā"</string>
     <string name="no_button" msgid="8965841385742548947">"Nē"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Operatora dienesta tālruņa numuri"</string>
 </resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 1124e11..ee154db 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Известувања"</string>
     <string name="yes_button" msgid="1120514817091581293">"Да"</string>
     <string name="no_button" msgid="8965841385742548947">"Не"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Броеви за услуги на операторот"</string>
 </resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 02e4bc6..dff410a 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"അറിയിപ്പുകൾ"</string>
     <string name="yes_button" msgid="1120514817091581293">"അതെ"</string>
     <string name="no_button" msgid="8965841385742548947">"ഇല്ല"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Carrier Service നമ്പറുകൾ"</string>
 </resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 6de8f8a..d8b5f47 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Мэдэгдэл"</string>
     <string name="yes_button" msgid="1120514817091581293">"Тийм"</string>
     <string name="no_button" msgid="8965841385742548947">"Үгүй"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Оператор компанийн үйлчилгээний дугаар"</string>
 </resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index ac65941..3f34d92 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"सूचना"</string>
     <string name="yes_button" msgid="1120514817091581293">"होय"</string>
     <string name="no_button" msgid="8965841385742548947">"नाही"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"वाहक सेवा नंबर"</string>
 </resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 876ca57..569615c 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Pemberitahuan"</string>
     <string name="yes_button" msgid="1120514817091581293">"Ya"</string>
     <string name="no_button" msgid="8965841385742548947">"Tidak"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Nombor perkhidmatan operator"</string>
 </resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index b8dfd3a..cfee366 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"အကြောင်းကြားချက်များ"</string>
     <string name="yes_button" msgid="1120514817091581293">"Yes"</string>
     <string name="no_button" msgid="8965841385742548947">"No"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"မိုဘိုင်းဖုန်းကုမ္ပဏီနံပါတ်များ"</string>
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 017fbf6..6ea2fea 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Varsler"</string>
     <string name="yes_button" msgid="1120514817091581293">"Ja"</string>
     <string name="no_button" msgid="8965841385742548947">"Nei"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Operatørtjenestenumre"</string>
 </resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index ba033aa..caed805 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"सूचनाहरू"</string>
     <string name="yes_button" msgid="1120514817091581293">"हुन्छ"</string>
     <string name="no_button" msgid="8965841385742548947">"हुँदैन"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"मोबाइल सेवा प्रदायकका सर्भिस नम्बरहरू"</string>
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index d19567a..c703deb 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Meldingen"</string>
     <string name="yes_button" msgid="1120514817091581293">"Ja"</string>
     <string name="no_button" msgid="8965841385742548947">"Nee"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Providerservicenummers"</string>
 </resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index dd2e50e..06abdbc 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"ବିଜ୍ଞପ୍ତି"</string>
     <string name="yes_button" msgid="1120514817091581293">"ହଁ"</string>
     <string name="no_button" msgid="8965841385742548947">"ନାହିଁ"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"କ୍ୟାରିଅର୍ ସେବା ନମ୍ବର"</string>
 </resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 790bec6..7a73e5e 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"ਸੂਚਨਾਵਾਂ"</string>
     <string name="yes_button" msgid="1120514817091581293">"ਹਾਂ"</string>
     <string name="no_button" msgid="8965841385742548947">"ਨਹੀਂ"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"ਕੈਰੀਅਰ ਸੇਵਾ ਨੰਬਰ"</string>
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index b179715..92e3c11 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Powiadomienia"</string>
     <string name="yes_button" msgid="1120514817091581293">"Tak"</string>
     <string name="no_button" msgid="8965841385742548947">"Nie"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Numery obsługi klienta u operatora"</string>
 </resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index a39207b..046d238 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Notificações"</string>
     <string name="yes_button" msgid="1120514817091581293">"Sim"</string>
     <string name="no_button" msgid="8965841385742548947">"Não"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Números de serviço da operadora"</string>
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 2fb9814..5d52e4b 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Notificações"</string>
     <string name="yes_button" msgid="1120514817091581293">"Sim"</string>
     <string name="no_button" msgid="8965841385742548947">"Não"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Números de serviço do operador"</string>
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index a39207b..046d238 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Notificações"</string>
     <string name="yes_button" msgid="1120514817091581293">"Sim"</string>
     <string name="no_button" msgid="8965841385742548947">"Não"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Números de serviço da operadora"</string>
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 3f29e11..5f80c46 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Notificări"</string>
     <string name="yes_button" msgid="1120514817091581293">"Da"</string>
     <string name="no_button" msgid="8965841385742548947">"Nu"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Numere pentru servicii ale operatorului"</string>
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index ccfdcd3..ddd7c72 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Уведомления"</string>
     <string name="yes_button" msgid="1120514817091581293">"Да"</string>
     <string name="no_button" msgid="8965841385742548947">"Нет"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Сервисные номера оператора"</string>
 </resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index af04fa2..c578fd4 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"දැනුම් දීම්"</string>
     <string name="yes_button" msgid="1120514817091581293">"ඔව්"</string>
     <string name="no_button" msgid="8965841385742548947">"නැත"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"වාහක සේවා අංක"</string>
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 8ec5369..be5af84 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Upozornenia"</string>
     <string name="yes_button" msgid="1120514817091581293">"Áno"</string>
     <string name="no_button" msgid="8965841385742548947">"Nie"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Služobné čísla operátorov"</string>
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 1c5c3d3..399bce5 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Obvestila"</string>
     <string name="yes_button" msgid="1120514817091581293">"Da"</string>
     <string name="no_button" msgid="8965841385742548947">"Ne"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Operaterjeve številke za storitve"</string>
 </resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 039dfa5..989fca1 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Njoftime"</string>
     <string name="yes_button" msgid="1120514817091581293">"Po"</string>
     <string name="no_button" msgid="8965841385742548947">"Jo"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Numrat e shërbimit të operatorit celular"</string>
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index f1558ac..7b1e0c7 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Обавештења"</string>
     <string name="yes_button" msgid="1120514817091581293">"Да"</string>
     <string name="no_button" msgid="8965841385742548947">"Не"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Услужни бројеви мобилног оператера"</string>
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 057492c..9499a95 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Meddelanden"</string>
     <string name="yes_button" msgid="1120514817091581293">"Ja"</string>
     <string name="no_button" msgid="8965841385742548947">"Nej"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Operatörens tjänstenummer"</string>
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 5b04626..3155c91 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Arifa"</string>
     <string name="yes_button" msgid="1120514817091581293">"Ndiyo"</string>
     <string name="no_button" msgid="8965841385742548947">"La"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Nambari za mtoa huduma"</string>
 </resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index ae2829a..0f81b40 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"அறிவிப்புகள்"</string>
     <string name="yes_button" msgid="1120514817091581293">"ஆம்"</string>
     <string name="no_button" msgid="8965841385742548947">"இல்லை"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"மொபைல் நிறுவனத்தின் சேவை எண்கள்"</string>
 </resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index a65218d..057f809 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"నోటిఫికేషన్‌లు"</string>
     <string name="yes_button" msgid="1120514817091581293">"అవును"</string>
     <string name="no_button" msgid="8965841385742548947">"కాదు"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"క్యారియర్ సర్వీస్ నంబర్‌లు"</string>
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 4b6dbfa..455831d 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"การแจ้งเตือน"</string>
     <string name="yes_button" msgid="1120514817091581293">"ใช่"</string>
     <string name="no_button" msgid="8965841385742548947">"ไม่"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"หมายเลขบริการของผู้ให้บริการ"</string>
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index d2e4531..9b67c94 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Mga Notification"</string>
     <string name="yes_button" msgid="1120514817091581293">"Oo"</string>
     <string name="no_button" msgid="8965841385742548947">"Hindi"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Mga numero ng serbisyo ng carrier"</string>
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 3f74c89..98a87be 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Bildirimler"</string>
     <string name="yes_button" msgid="1120514817091581293">"Evet"</string>
     <string name="no_button" msgid="8965841385742548947">"Hayır"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Operatör hizmet numaraları"</string>
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 43a099a..38aa8b7 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Сповіщення"</string>
     <string name="yes_button" msgid="1120514817091581293">"Так"</string>
     <string name="no_button" msgid="8965841385742548947">"Ні"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Сервісні номери оператора"</string>
 </resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 3ba641b..3262dc4 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"اطلاعات"</string>
     <string name="yes_button" msgid="1120514817091581293">"ہاں"</string>
     <string name="no_button" msgid="8965841385742548947">"نہیں"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"کیرئیر سروس نمبرز"</string>
 </resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 4cfcc20..9ebea94 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Bildirishnomalar"</string>
     <string name="yes_button" msgid="1120514817091581293">"Ha"</string>
     <string name="no_button" msgid="8965841385742548947">"Yo‘q"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Operator xizmat raqamlari"</string>
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 7c1c724..3ffa0d8 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Thông báo"</string>
     <string name="yes_button" msgid="1120514817091581293">"Có"</string>
     <string name="no_button" msgid="8965841385742548947">"Không"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Số dịch vụ của nhà mạng"</string>
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 55c18be..cd687b9 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"通知"</string>
     <string name="yes_button" msgid="1120514817091581293">"是"</string>
     <string name="no_button" msgid="8965841385742548947">"否"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"运营商服务号码"</string>
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index b0d1a20..bdb619c 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"通知"</string>
     <string name="yes_button" msgid="1120514817091581293">"是"</string>
     <string name="no_button" msgid="8965841385742548947">"否"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"流動網絡供應商服務電話號碼"</string>
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 80b8941..7ce4c85 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"通知"</string>
     <string name="yes_button" msgid="1120514817091581293">"是"</string>
     <string name="no_button" msgid="8965841385742548947">"否"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"電信業者服務電話號碼"</string>
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index e578e4b..fa5d2ed 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -492,4 +492,5 @@
     <string name="contacts_default_notification_channel" msgid="5116916969874075866">"Izaziso"</string>
     <string name="yes_button" msgid="1120514817091581293">"Yebo"</string>
     <string name="no_button" msgid="8965841385742548947">"Cha"</string>
+    <string name="sdn_contacts_directory_search_label" msgid="9146122809408008443">"Izinombolo zesevisi zenkampani yenethiwekhi"</string>
 </resources>
diff --git a/res/values/donottranslate_config.xml b/res/values/donottranslate_config.xml
index 2dd0e73..c4c0152 100644
--- a/res/values/donottranslate_config.xml
+++ b/res/values/donottranslate_config.xml
@@ -28,6 +28,10 @@
 
     <!-- File Authority for AOSP Contacts files -->
     <string name="contacts_file_provider_authority">com.android.contacts.files</string>
+
+    <!-- SDN Authority for carrier SDN -->
+    <string name="contacts_sdn_provider_authority">com.android.contacts.sdn</string>
+
     <!-- Flag indicating whether Contacts app is allowed to import contacts -->
     <bool name="config_allow_import_from_vcf_file">true</bool>
 
diff --git a/res/values/ids.xml b/res/values/ids.xml
index a4b8b4b..f22eaba 100644
--- a/res/values/ids.xml
+++ b/res/values/ids.xml
@@ -44,6 +44,9 @@
     <!-- An ID to be used for contents of a custom dialog so that its state be preserved -->
     <item type="id" name="custom_dialog_content" />
 
+    <!-- An ID to be used for tagging text for copy in legacy fields. -->
+    <item name="text_to_copy" type="id"/>
+
     <!-- Menu group ID for settings and help & feedback  -->
     <item type="id" name="nav_misc" />
 
diff --git a/res/values/strings.xml b/res/values/strings.xml
index d87be0b..fc24b10 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -425,6 +425,9 @@
     <!-- The button to add an label field to a contact in the Raw Contact Editor [CHAR LIMIT=15] -->
     <string name="group_edit_field_hint_text">Label</string>
 
+    <!-- Editor section title to show below shown editor fields are not editable. Users are only allowed to delete them. [CHAR LIMIT=NONE] -->
+    <string name="editor_uneditable_section_title">Can’t update this info</string>
+
     <!-- Content description for a cancel button. [CHAR LIMIT=NONE] -->
     <string name="cancel_button_content_description">Cancel</string>
 
@@ -1549,4 +1552,7 @@
     <!-- Text of Negative Button in dialog -->
     <string name="no_button">No</string>
 
+    <!-- The label to display as a section header in the contact list for an SDN directory [CHAR LIMIT=40] -->
+    <string name="sdn_contacts_directory_search_label">Carrier service numbers</string>
+
 </resources>
\ No newline at end of file
diff --git a/src/com/android/contacts/activities/RequestPermissionsActivity.java b/src/com/android/contacts/activities/RequestPermissionsActivity.java
index ebcd9b3..7994e98 100644
--- a/src/com/android/contacts/activities/RequestPermissionsActivity.java
+++ b/src/com/android/contacts/activities/RequestPermissionsActivity.java
@@ -70,6 +70,7 @@
                 permissions.add(permission.CALL_PHONE);
                 permissions.add(permission.READ_PHONE_NUMBERS);
                 permissions.add(permission.READ_PHONE_STATE);
+                permissions.add(permission.READ_CALL_LOG);
             }
             sRequiredPermissions = permissions.toArray(new String[0]);
         }
diff --git a/src/com/android/contacts/editor/Editor.java b/src/com/android/contacts/editor/Editor.java
index c02816a..6ab06bd 100644
--- a/src/com/android/contacts/editor/Editor.java
+++ b/src/com/android/contacts/editor/Editor.java
@@ -114,4 +114,10 @@
      */
     public void editNewlyAddedField();
 
+    /**
+     * Marks the Editor field as a legacy field. Legacy fields are deprecated MIME types
+     * which are not fully supported in the editor.
+     * Adding or editing legacy field are not supported.
+     */
+    void setLegacyField(boolean isLegacyField);
 }
diff --git a/src/com/android/contacts/editor/EditorUiUtils.java b/src/com/android/contacts/editor/EditorUiUtils.java
index 35f107e..3dac5bb 100644
--- a/src/com/android/contacts/editor/EditorUiUtils.java
+++ b/src/com/android/contacts/editor/EditorUiUtils.java
@@ -57,6 +57,7 @@
 import com.android.contacts.util.MaterialColorMapUtils.MaterialPalette;
 import com.android.contacts.widget.QuickContactImageView;
 
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Maps;
 
 import java.io.FileNotFoundException;
@@ -95,6 +96,9 @@
         mimetypeLayoutMap.put(Event.CONTENT_ITEM_TYPE, R.layout.event_field_editor_view);
     }
 
+    public static final ImmutableList<String> LEGACY_MIME_TYPE =
+        ImmutableList.of(Im.CONTENT_ITEM_TYPE, SipAddress.CONTENT_ITEM_TYPE);
+
     /**
      * Fetches a layout for a given mimetype.
      *
diff --git a/src/com/android/contacts/editor/KindSectionView.java b/src/com/android/contacts/editor/KindSectionView.java
index 5d49064..28eeaf2 100644
--- a/src/com/android/contacts/editor/KindSectionView.java
+++ b/src/com/android/contacts/editor/KindSectionView.java
@@ -48,6 +48,13 @@
  */
 public class KindSectionView extends LinearLayout {
 
+    /** Callbacks for hosts of {@link KindSectionView}s. */
+    public interface Listener {
+
+        /** Invoked when all fields in a legacy {@link KindSectionView} are removed. */
+        void onEmptyLegacyKindSectionView();
+    }
+
     /**
      * Marks a name as super primary when it is changed.
      *
@@ -58,21 +65,21 @@
 
         private final ValuesDelta mValuesDelta;
         private final long mRawContactId;
-        private final RawContactEditorView.Listener mListener;
+        private final RawContactEditorView.Listener mEditorViewListener;
 
         public StructuredNameEditorListener(ValuesDelta valuesDelta, long rawContactId,
-                RawContactEditorView.Listener listener) {
+            RawContactEditorView.Listener editorViewListener) {
             mValuesDelta = valuesDelta;
             mRawContactId = rawContactId;
-            mListener = listener;
+            mEditorViewListener = editorViewListener;
         }
 
         @Override
         public void onRequest(int request) {
             if (request == Editor.EditorListener.FIELD_CHANGED) {
                 mValuesDelta.setSuperPrimary(true);
-                if (mListener != null) {
-                    mListener.onNameFieldChanged(mRawContactId, mValuesDelta);
+                if (mEditorViewListener != null) {
+                    mEditorViewListener.onNameFieldChanged(mRawContactId, mValuesDelta);
                 }
             } else if (request == Editor.EditorListener.FIELD_TURNED_EMPTY) {
                 mValuesDelta.setSuperPrimary(false);
@@ -119,6 +126,11 @@
 
         @Override
         public void onDeleteRequested(Editor editor) {
+            if (mIsLegacyField && mEditors.getChildCount() == 1) {
+                editor.deleteEditor();
+                mListener.onEmptyLegacyKindSectionView();
+                return;
+            }
             if (mShowOneEmptyEditor && mEditors.getChildCount() == 1) {
                 // If there is only 1 editor in the section, then don't allow the user to
                 // delete it.  Just clear the fields in the editor.
@@ -152,11 +164,13 @@
 
     private KindSectionData mKindSectionData;
     private ViewIdGenerator mViewIdGenerator;
-    private RawContactEditorView.Listener mListener;
+    private RawContactEditorView.Listener mEditorViewListener;
+    private Listener mListener;
 
     private boolean mIsUserProfile;
     private boolean mShowOneEmptyEditor = false;
     private boolean mHideIfEmpty = true;
+    private boolean mIsLegacyField = false;
 
     private LayoutInflater mLayoutInflater;
     private ViewGroup mEditors;
@@ -227,6 +241,13 @@
     }
 
     /**
+     * When {@code isLegacyField} is true, prevent users from editing the field.
+     */
+    void setLegacyField(boolean isLegacyField) {
+        this.mIsLegacyField = isLegacyField;
+    }
+
+    /**
      * Whether this is a name kind section view and all name fields (structured, phonetic,
      * and nicknames) are empty.
      */
@@ -277,10 +298,14 @@
      * Empty name editors are never added and at least one structured name editor is always
      * displayed, even if it is empty.
      */
-    public void setState(KindSectionData kindSectionData,
-            ViewIdGenerator viewIdGenerator, RawContactEditorView.Listener listener) {
+    public void setState(
+        KindSectionData kindSectionData,
+        ViewIdGenerator viewIdGenerator,
+        RawContactEditorView.Listener editorViewListener,
+        Listener listener) {
         mKindSectionData = kindSectionData;
         mViewIdGenerator = viewIdGenerator;
+        mEditorViewListener = editorViewListener;
         mListener = listener;
 
         // Set the icon using the DataKind
@@ -292,6 +317,9 @@
                 mIcon.setContentDescription(dataKind.titleRes == -1 || dataKind.titleRes == 0
                         ? "" : getResources().getString(dataKind.titleRes));
             }
+            if (mIsLegacyField) {
+                mIcon.setEnabled(false);
+            }
         }
 
         rebuildFromState();
@@ -359,7 +387,7 @@
         if (!mIsUserProfile) {
             // Don't set super primary for the me contact
             nameView.setEditorListener(new StructuredNameEditorListener(
-                    nameValuesDelta, rawContactDelta.getRawContactId(), mListener));
+                    nameValuesDelta, rawContactDelta.getRawContactId(), mEditorViewListener));
         }
         nameView.setDeletable(false);
         nameView.setValues(accountType.getKindForMimetype(DataKind.PSEUDO_MIME_TYPE_NAME),
@@ -414,6 +442,7 @@
         view.setEnabled(isEnabled());
         if (view instanceof Editor) {
             final Editor editor = (Editor) view;
+            editor.setLegacyField(mIsLegacyField);
             editor.setDeletable(true);
             editor.setEditorListener(editorListener);
             editor.setValues(dataKind, valuesDelta, rawContactDelta, !dataKind.editable,
@@ -593,4 +622,8 @@
         }
         return emptyEditors;
     }
+
+    public boolean isEditorEmpty() {
+        return mKindSectionData.getVisibleValuesDeltas().isEmpty();
+    }
 }
diff --git a/src/com/android/contacts/editor/LabeledEditorView.java b/src/com/android/contacts/editor/LabeledEditorView.java
index df4c5f9..3df3222 100644
--- a/src/com/android/contacts/editor/LabeledEditorView.java
+++ b/src/com/android/contacts/editor/LabeledEditorView.java
@@ -81,6 +81,8 @@
     private boolean mIsDeletable = true;
     private boolean mIsAttachedToWindow;
 
+    protected boolean mIsLegacyField;
+
     private EditType mType;
 
     private ViewIdGenerator mViewIdGenerator;
@@ -264,8 +266,8 @@
     @Override
     public void setEnabled(boolean enabled) {
         super.setEnabled(enabled);
-        mLabel.setEnabled(!mReadOnly && enabled);
-        mDelete.setEnabled(!mReadOnly && enabled);
+        mLabel.setEnabled(!mReadOnly && enabled && !mIsLegacyField);
+        mDelete.setEnabled((!mReadOnly && enabled) || mIsLegacyField);
     }
 
     public Spinner getLabel() {
@@ -342,6 +344,10 @@
         return "";
     }
 
+    public void setLegacyField(boolean mIsLegacyField) {
+        this.mIsLegacyField = mIsLegacyField;
+    }
+
     protected void saveValue(String column, String value) {
         mEntry.put(column, value);
     }
diff --git a/src/com/android/contacts/editor/RawContactEditorView.java b/src/com/android/contacts/editor/RawContactEditorView.java
index 19da5bc..755800a 100644
--- a/src/com/android/contacts/editor/RawContactEditorView.java
+++ b/src/com/android/contacts/editor/RawContactEditorView.java
@@ -50,6 +50,7 @@
 import android.widget.ListPopupWindow;
 import android.widget.TextView;
 
+import com.android.contacts.editor.KindSectionView;
 import com.android.contacts.GeoUtil;
 import com.android.contacts.R;
 import com.android.contacts.compat.PhoneNumberUtilsCompat;
@@ -80,7 +81,8 @@
 /**
  * View to display information from multiple {@link RawContactDelta}s grouped together.
  */
-public class RawContactEditorView extends LinearLayout implements View.OnClickListener {
+public class RawContactEditorView extends LinearLayout implements View.OnClickListener,
+    KindSectionView.Listener {
 
     static final String TAG = "RawContactEditorView";
 
@@ -218,6 +220,8 @@
 
     private PhotoEditorView mPhotoView;
     private ViewGroup mKindSectionViews;
+    private LinearLayout mLegacySectionLinearLayout;
+    private ViewGroup mLegacyKindSectionViews;
     private Map<String, KindSectionView> mKindSectionViewMap = new HashMap<>();
     private View mMoreFields;
 
@@ -259,6 +263,8 @@
 
         mPhotoView = (PhotoEditorView) findViewById(R.id.photo_editor);
         mKindSectionViews = (LinearLayout) findViewById(R.id.kind_section_views);
+        mLegacySectionLinearLayout = (LinearLayout) findViewById(R.id.legacy_fields_container);
+        mLegacyKindSectionViews = (LinearLayout) findViewById(R.id.legacy_section_views);
         mMoreFields = findViewById(R.id.more_fields);
         mMoreFields.setOnClickListener(this);
     }
@@ -277,6 +283,10 @@
         for (int i = 0; i < childCount; i++) {
             mKindSectionViews.getChildAt(i).setEnabled(enabled);
         }
+        final int legacyChildCount = mLegacyKindSectionViews.getChildCount();
+        for (int i = 0; i < legacyChildCount; i++) {
+            mLegacyKindSectionViews.getChildAt(i).setEnabled(false);
+        }
     }
 
     @Override
@@ -447,6 +457,8 @@
 
         mKindSectionViewMap.clear();
         mKindSectionViews.removeAllViews();
+        mLegacySectionLinearLayout.setVisibility(View.GONE);
+        mLegacyKindSectionViews.removeAllViews();
         mMoreFields.setVisibility(View.VISIBLE);
 
         mMaterialPalette = materialPalette;
@@ -531,7 +543,7 @@
         addKindSectionViews();
 
         mMoreFields.setVisibility(hasMoreFields() ? View.VISIBLE : View.GONE);
-
+        addLegacyKindSectionViews();
         if (mIsExpanded) showAllFields();
     }
 
@@ -874,6 +886,9 @@
         int i = -1;
 
         for (String mimeType : mSortedMimetypes) {
+            if(EditorUiUtils.LEGACY_MIME_TYPE.contains(mimeType)) {
+                continue;
+            }
             i++;
             // Ignore mime types that we've already handled
             if (Photo.CONTENT_ITEM_TYPE.equals(mimeType)) {
@@ -910,7 +925,7 @@
         // they will be the only types you add new values to initially for new contacts
         kindSectionView.setShowOneEmptyEditor(true);
 
-        kindSectionView.setState(kindSectionData, mViewIdGenerator, mListener);
+        kindSectionView.setState(kindSectionData, mViewIdGenerator, mListener, this);
 
         return kindSectionView;
     }
@@ -938,6 +953,55 @@
         return false;
     }
 
+    private void addLegacyKindSectionViews() {
+        boolean hasLegacyData = false;
+        for (String mimeType : EditorUiUtils.LEGACY_MIME_TYPE) {
+
+            KindSectionData kindSectionData = mKindSectionDataMap.get(mimeType);
+            if (kindSectionData != null && !kindSectionData.getVisibleValuesDeltas().isEmpty()) {
+                hasLegacyData = true;
+                KindSectionView kindSectionView =
+                    inflateLegacyKindSectionView(mKindSectionViews, kindSectionData);
+                mLegacyKindSectionViews.addView(kindSectionView);
+
+                // Keep a pointer to the KindSectionView for each mimeType
+                mKindSectionViewMap.put(mimeType, kindSectionView);
+            }
+        }
+
+        if (hasLegacyData) {
+            mLegacySectionLinearLayout.setVisibility(View.VISIBLE);
+        }
+    }
+
+    private KindSectionView inflateLegacyKindSectionView(
+        ViewGroup viewGroup, KindSectionData kindSectionData) {
+        KindSectionView kindSectionView =
+            (KindSectionView)
+                mLayoutInflater.inflate(
+                    R.layout.item_kind_section, viewGroup, /* attachToRoot =*/ false);
+        kindSectionView.setLegacyField(true);
+
+        kindSectionView.setState(kindSectionData, mViewIdGenerator, mListener, this);
+
+        return kindSectionView;
+    }
+
+    @Override
+    public void onEmptyLegacyKindSectionView() {
+        for (int i = mLegacyKindSectionViews.getChildCount() - 1; i >= 0; i--) {
+            View childView = mLegacyKindSectionViews.getChildAt(i);
+            if (childView instanceof KindSectionView
+                && ((KindSectionView) childView).isEditorEmpty()) {
+                mLegacyKindSectionViews.removeViewAt(i);
+            }
+        }
+
+        if (mLegacyKindSectionViews.getChildCount() == 0) {
+            mLegacySectionLinearLayout.setVisibility(View.GONE);
+        }
+    }
+
     private static void wlog(String message) {
         if (Log.isLoggable(TAG, Log.WARN)) {
             Log.w(TAG, message);
diff --git a/src/com/android/contacts/editor/TextFieldsEditorView.java b/src/com/android/contacts/editor/TextFieldsEditorView.java
index 28fe87f..d7f9545 100644
--- a/src/com/android/contacts/editor/TextFieldsEditorView.java
+++ b/src/com/android/contacts/editor/TextFieldsEditorView.java
@@ -22,6 +22,8 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Im;
+import android.provider.ContactsContract.CommonDataKinds.SipAddress;
 import android.provider.ContactsContract.CommonDataKinds.StructuredName;
 import android.text.Editable;
 import android.text.InputType;
@@ -49,6 +51,7 @@
 import com.android.contacts.model.account.AccountType.EditField;
 import com.android.contacts.model.dataitem.DataKind;
 import com.android.contacts.util.PhoneNumberFormatter;
+import com.android.contacts.ClipboardUtils;
 
 /**
  * Simple editor that handles labels and any {@link EditField} defined for the
@@ -57,7 +60,6 @@
  */
 public class TextFieldsEditorView extends LabeledEditorView {
     private static final String TAG = TextFieldsEditorView.class.getSimpleName();
-
     private EditText[] mFieldEditTexts = null;
     private ViewGroup mFields = null;
     protected View mExpansionViewContainer;
@@ -75,6 +77,12 @@
     private String mFixedDisplayName = "";
     private boolean needInputInitialize;
 
+    private final OnLongClickListener mOnLongClickListener =
+        v -> {
+            ClipboardUtils.copyText(
+                getContext(), /* label= */ null, (CharSequence) v.getTag(R.id.text_to_copy), true);
+            return true;
+        };
 
     public TextFieldsEditorView(Context context) {
         super(context);
@@ -164,7 +172,15 @@
 
         if (mFieldEditTexts != null) {
             for (int index = 0; index < mFieldEditTexts.length; index++) {
-                mFieldEditTexts[index].setEnabled(!isReadOnly() && enabled);
+                mFieldEditTexts[index].setEnabled(!isReadOnly() && enabled && !mIsLegacyField);
+                if (mIsLegacyField) {
+                    mFieldEditTexts[index].setFocusable(false);
+                    mFieldEditTexts[index].setClickable(false);
+                    mFieldEditTexts[index].setLongClickable(false);
+                }
+            }
+            if (mIsLegacyField && mFieldEditTexts.length > 0) {
+                setOnLongClickListenerOnContainer();
             }
         }
         if (mExpansionView != null) {
@@ -172,6 +188,18 @@
         }
     }
 
+    /**
+     * Attaches OnLongClickLister to fields LinearLayout that allow user copy the EditText text on
+     * long press.
+     */
+    private void setOnLongClickListenerOnContainer() {
+      mFields.setFocusable(true);
+      mFields.setLongClickable(true);
+      // Current legacy mimetypes support exactly 1 field
+      mFields.setTag(R.id.text_to_copy, mFieldEditTexts[0].getText().toString());
+      mFields.setOnLongClickListener(mOnLongClickListener);
+    }
+
     private OnFocusChangeListener mTextFocusChangeListener = new OnFocusChangeListener() {
         @Override
         public void onFocusChange(View v, boolean hasFocus) {
diff --git a/src/com/android/contacts/sdn/SdnProvider.kt b/src/com/android/contacts/sdn/SdnProvider.kt
new file mode 100644
index 0000000..4dd3578
--- /dev/null
+++ b/src/com/android/contacts/sdn/SdnProvider.kt
@@ -0,0 +1,296 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.contacts.sdn
+
+import android.content.ContentProvider
+import android.content.ContentValues
+import android.content.Context.TELECOM_SERVICE
+import android.content.UriMatcher
+import android.database.Cursor
+import android.database.MatrixCursor
+import android.net.Uri
+import android.provider.ContactsContract
+import android.provider.ContactsContract.CommonDataKinds.Phone
+import android.provider.ContactsContract.CommonDataKinds.StructuredName
+import android.provider.ContactsContract.Contacts
+import android.provider.ContactsContract.Data
+import android.provider.ContactsContract.Directory
+import android.provider.ContactsContract.RawContacts
+import android.telecom.TelecomManager
+import android.util.Log
+import com.android.contacts.R
+
+/** Provides a way to show SDN data in search suggestions and caller id lookup. */
+class SdnProvider : ContentProvider() {
+
+  private lateinit var sdnRepository: SdnRepository
+  private lateinit var uriMatcher: UriMatcher
+
+  override fun onCreate(): Boolean {
+    Log.i(TAG, "onCreate")
+    val sdnProviderAuthority = requireContext().getString(R.string.contacts_sdn_provider_authority)
+
+    uriMatcher =
+      UriMatcher(UriMatcher.NO_MATCH).apply {
+        addURI(sdnProviderAuthority, "directories", DIRECTORIES)
+        addURI(sdnProviderAuthority, "contacts/filter/*", FILTER)
+        addURI(sdnProviderAuthority, "data/phones/filter/*", FILTER)
+        addURI(sdnProviderAuthority, "contacts/lookup/*/entities", CONTACT_LOOKUP)
+        addURI(
+          sdnProviderAuthority,
+          "contacts/lookup/*/#/entities",
+          CONTACT_LOOKUP_WITH_CONTACT_ID,
+        )
+        addURI(sdnProviderAuthority, "phone_lookup/*", PHONE_LOOKUP)
+      }
+    sdnRepository = SdnRepository(requireContext())
+    return true
+  }
+
+  override fun query(
+    uri: Uri,
+    projection: Array<out String>?,
+    selection: String?,
+    selectionArgs: Array<out String>?,
+    sortOrder: String?,
+  ): Cursor? {
+    if (projection == null) return null
+
+    val match = uriMatcher.match(uri)
+
+    if (match == DIRECTORIES) {
+      return handleDirectories(projection)
+    }
+
+    if (
+      !isCallerAllowed(uri.getQueryParameter(Directory.CALLER_PACKAGE_PARAM_KEY)) ||
+      !sdnRepository.isSdnPresent()
+    ) {
+      return null
+    }
+
+    val accountName = uri.getQueryParameter(RawContacts.ACCOUNT_NAME)
+    val accountType = uri.getQueryParameter(RawContacts.ACCOUNT_TYPE)
+    if (ACCOUNT_NAME != accountName || ACCOUNT_TYPE != accountType) {
+      Log.e(TAG, "Received an invalid account")
+      return null
+    }
+
+    return when (match) {
+      FILTER -> handleFilter(projection, uri)
+      CONTACT_LOOKUP -> handleLookup(projection, uri.pathSegments[2])
+      CONTACT_LOOKUP_WITH_CONTACT_ID ->
+        handleLookup(projection, uri.pathSegments[2], uri.pathSegments[3])
+      PHONE_LOOKUP -> handlePhoneLookup(projection, uri.pathSegments[1])
+      else -> null
+    }
+  }
+
+  override fun getType(uri: Uri) = Contacts.CONTENT_ITEM_TYPE
+
+  override fun insert(uri: Uri, values: ContentValues?): Uri? {
+    throw UnsupportedOperationException("Insert is not supported.")
+  }
+
+  override fun delete(uri: Uri, selection: String?, selectionArgs: Array<out String>?): Int {
+    throw UnsupportedOperationException("Delete is not supported.")
+  }
+
+  override fun update(
+    uri: Uri,
+    values: ContentValues?,
+    selection: String?,
+    selectionArgs: Array<out String>?,
+  ): Int {
+    throw UnsupportedOperationException("Update is not supported.")
+  }
+
+  private fun handleDirectories(projection: Array<out String>): Cursor {
+    // logger.atInfo().log("Creating directory cursor")
+
+    return MatrixCursor(projection).apply {
+      addRow(
+        projection.map { column ->
+          when (column) {
+            Directory.ACCOUNT_NAME -> ACCOUNT_NAME
+            Directory.ACCOUNT_TYPE -> ACCOUNT_TYPE
+            Directory.DISPLAY_NAME -> ACCOUNT_NAME
+            Directory.TYPE_RESOURCE_ID -> R.string.sdn_contacts_directory_search_label
+            Directory.EXPORT_SUPPORT -> Directory.EXPORT_SUPPORT_NONE
+            Directory.SHORTCUT_SUPPORT -> Directory.SHORTCUT_SUPPORT_NONE
+            Directory.PHOTO_SUPPORT -> Directory.PHOTO_SUPPORT_THUMBNAIL_ONLY
+            else -> null
+          }
+        },
+      )
+    }
+  }
+
+  private fun handleFilter(projection: Array<out String>, uri: Uri): Cursor? {
+    val filter = uri.lastPathSegment ?: return null
+    val cursor = MatrixCursor(projection)
+
+    val results =
+      sdnRepository.fetchSdn().filter {
+        it.serviceName.contains(filter, ignoreCase = true) || it.serviceNumber.contains(filter)
+      }
+
+    if (results.isEmpty()) return cursor
+
+    val maxResult = getQueryLimit(uri)
+
+    results.take(maxResult).forEachIndexed { index, data ->
+      cursor.addRow(
+        projection.map { column ->
+          when (column) {
+            Contacts._ID -> index
+            Contacts.DISPLAY_NAME -> data.serviceName
+            Data.DATA1 -> data.serviceNumber
+            Contacts.LOOKUP_KEY -> data.lookupKey()
+            else -> null
+          }
+        },
+      )
+    }
+
+    return cursor
+  }
+
+  private fun handleLookup(
+    projection: Array<out String>,
+    lookupKey: String?,
+    contactIdFromUri: String? = "1",
+  ): Cursor? {
+    if (lookupKey.isNullOrEmpty()) {
+      Log.i(TAG, "handleLookup did not receive a lookup key")
+      return null
+    }
+
+    val cursor = MatrixCursor(projection)
+    val contactId =
+      try {
+        contactIdFromUri?.toLong() ?: 1L
+      } catch (_: NumberFormatException) {
+        1L
+      }
+
+    val result = sdnRepository.fetchSdn().find { it.lookupKey() == lookupKey } ?: return cursor
+
+    // Adding first row for name
+    cursor.addRow(
+      projection.map { column ->
+        when (column) {
+          Contacts.Entity.CONTACT_ID -> contactId
+          Contacts.Entity.RAW_CONTACT_ID -> contactId
+          Contacts.Entity.DATA_ID -> 1
+          Data.MIMETYPE -> StructuredName.CONTENT_ITEM_TYPE
+          StructuredName.DISPLAY_NAME -> result.serviceName
+          StructuredName.GIVEN_NAME -> result.serviceName
+          Contacts.DISPLAY_NAME -> result.serviceName
+          Contacts.DISPLAY_NAME_ALTERNATIVE -> result.serviceName
+          RawContacts.ACCOUNT_NAME -> ACCOUNT_NAME
+          RawContacts.ACCOUNT_TYPE -> ACCOUNT_TYPE
+          RawContacts.RAW_CONTACT_IS_READ_ONLY -> 1
+          Contacts.LOOKUP_KEY -> result.lookupKey()
+          else -> null
+        }
+      }
+    )
+
+    // Adding second row for number
+    cursor.addRow(
+      projection.map { column ->
+        when (column) {
+          Contacts.Entity.CONTACT_ID -> contactId
+          Contacts.Entity.RAW_CONTACT_ID -> contactId
+          Contacts.Entity.DATA_ID -> 2
+          Data.MIMETYPE -> Phone.CONTENT_ITEM_TYPE
+          Phone.NUMBER -> result.serviceNumber
+          Data.IS_PRIMARY -> 1
+          Phone.TYPE -> Phone.TYPE_MAIN
+          else -> null
+        }
+      }
+    )
+
+    return cursor
+  }
+
+  private fun handlePhoneLookup(
+    projection: Array<out String>,
+    phoneNumber: String?,
+  ): Cursor? {
+    if (phoneNumber.isNullOrEmpty()) {
+      Log.i(TAG, "handlePhoneLookup did not receive a phoneNumber")
+      return null
+    }
+
+    val cursor = MatrixCursor(projection)
+
+    val result = sdnRepository.fetchSdn().find { it.serviceNumber == phoneNumber } ?: return cursor
+
+    cursor.addRow(
+      projection.map { column ->
+        when (column) {
+          Contacts.DISPLAY_NAME -> result.serviceName
+          Phone.NUMBER -> result.serviceNumber
+          else -> null
+        }
+      },
+    )
+
+    return cursor
+  }
+
+  private fun isCallerAllowed(callingPackage: String?): Boolean {
+    if (callingPackage.isNullOrEmpty()) {
+      Log.i(TAG, "Calling package is null or empty.")
+      return false
+    }
+
+    if (callingPackage == requireContext().packageName) {
+      return true
+    }
+
+    // Check if the calling package is default dialer app or not
+    val context = context ?: return false
+    val tm = context.getSystemService(TELECOM_SERVICE) as TelecomManager
+    return tm.defaultDialerPackage == callingPackage
+  }
+
+  private fun getQueryLimit(uri: Uri): Int {
+    return try {
+      uri.getQueryParameter(ContactsContract.LIMIT_PARAM_KEY)?.toInt() ?: DEFAULT_MAX_RESULTS
+    } catch (e: NumberFormatException) {
+      DEFAULT_MAX_RESULTS
+    }
+  }
+
+  companion object {
+    private val TAG = SdnProvider::class.java.simpleName
+
+    private const val DIRECTORIES = 0
+    private const val FILTER = 1
+    private const val CONTACT_LOOKUP = 2
+    private const val CONTACT_LOOKUP_WITH_CONTACT_ID = 3
+    private const val PHONE_LOOKUP = 4
+
+    private const val ACCOUNT_NAME = "Carrier service numbers"
+    private const val ACCOUNT_TYPE = "com.android.contacts.sdn"
+
+    private const val DEFAULT_MAX_RESULTS = 20
+  }
+}
diff --git a/src/com/android/contacts/sdn/SdnRepository.kt b/src/com/android/contacts/sdn/SdnRepository.kt
new file mode 100644
index 0000000..0759127
--- /dev/null
+++ b/src/com/android/contacts/sdn/SdnRepository.kt
@@ -0,0 +1,121 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.contacts.sdn
+
+import android.Manifest.permission
+import android.annotation.SuppressLint
+import android.content.Context
+import android.content.pm.PackageManager
+import android.telephony.CarrierConfigManager
+import android.telephony.SubscriptionManager
+import android.util.Log
+import com.android.contacts.model.SimCard
+import com.android.contacts.util.PermissionsUtil
+import com.android.contacts.util.PhoneNumberHelper
+
+/** Repository to fetch Sdn data from [CarrierConfigManager]. */
+class SdnRepository constructor(private val context: Context) {
+
+  fun isSdnPresent(): Boolean {
+    if (
+      !hasTelephony() ||
+      !PermissionsUtil.hasPermission(context, permission.READ_PHONE_STATE) ||
+      !PermissionsUtil.hasPermission(context, permission.READ_PHONE_NUMBERS) ||
+      !PermissionsUtil.hasPermission(context, permission.READ_CALL_LOG)
+    ) {
+      return false
+    }
+
+    val simCardList = getSimCardInformation()
+
+    for (simCard in simCardList) {
+      if (fetchSdnFromCarrierConfig(simCard).isNotEmpty()) {
+        Log.i(TAG, "Found SDN list from CarrierConfig")
+        return true
+      }
+    }
+    return false
+  }
+
+  fun fetchSdn(): List<Sdn> {
+    val simCardList = getSimCardInformation()
+
+    return simCardList
+      .flatMap { fetchSdnFromCarrierConfig(it) }
+      .distinct()
+      .sortedBy { it.serviceName }
+  }
+
+  // Permission check isn't recognized by the linter.
+  @SuppressLint("MissingPermission")
+  fun getSimCardInformation(): List<SimCard> {
+    val subscriptionManager = context.getSystemService(SubscriptionManager::class.java)
+    return subscriptionManager?.activeSubscriptionInfoList?.filterNotNull()?.mapNotNull {
+      if (it.subscriptionId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+        null
+      } else {
+        SimCard.create(it)
+      }
+    }
+      ?: emptyList()
+  }
+
+  @Suppress("Deprecation", "MissingPermission")
+  private fun fetchSdnFromCarrierConfig(simCard: SimCard): List<Sdn> {
+    val carrierConfigManager = context.getSystemService(CarrierConfigManager::class.java)
+    val carrierConfig =
+      carrierConfigManager?.getConfigForSubId(simCard.subscriptionId) ?: return emptyList()
+    val nameList: List<String> =
+      carrierConfig
+        .getStringArray(CarrierConfigManager.KEY_CARRIER_SERVICE_NAME_STRING_ARRAY)
+        ?.map { it?.trim() ?: "" }
+        ?: return emptyList()
+    val numberList: List<String> =
+      carrierConfig
+        .getStringArray(CarrierConfigManager.KEY_CARRIER_SERVICE_NUMBER_STRING_ARRAY)
+        ?.map { it?.trim() ?: "" }
+        ?: return emptyList()
+    if (nameList.isEmpty() || nameList.size != numberList.size) return emptyList()
+
+    val sdnList = mutableListOf<Sdn>()
+    nameList.zip(numberList).forEach { (sdnServiceName, sdnNumber) ->
+      if (sdnServiceName.isNotBlank() && PhoneNumberHelper.isDialablePhoneNumber(sdnNumber)) {
+        sdnList.add(Sdn(sdnServiceName, sdnNumber))
+      }
+    }
+    return sdnList
+  }
+
+  private fun hasTelephony(): Boolean {
+    return context.packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)
+  }
+
+  companion object {
+    private val TAG = SdnRepository::class.java.simpleName
+  }
+}
+
+/** Hold the Service dialing number information to be displayed in SdnActivity. */
+data class Sdn(
+  val serviceName: String,
+  val serviceNumber: String,
+) {
+
+  /** Generate lookup key that will help identify SDN when Opening QuickContact. */
+  fun lookupKey(): String {
+    return "non-sim-sdn-" + hashCode()
+  }
+}
diff --git a/src/com/android/contacts/util/PhoneNumberHelper.java b/src/com/android/contacts/util/PhoneNumberHelper.java
index eb070b2..2f1a5b0 100644
--- a/src/com/android/contacts/util/PhoneNumberHelper.java
+++ b/src/com/android/contacts/util/PhoneNumberHelper.java
@@ -16,6 +16,7 @@
 package com.android.contacts.util;
 
 import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
 import android.util.Log;
 
 /**
@@ -95,4 +96,24 @@
         }
         return number.substring(0, delimiterIndex);
     }
+
+    /** Returns true if the given string is dialable by the user from Phone/Dialer app. */
+    public static boolean isDialablePhoneNumber(String str) {
+        if (TextUtils.isEmpty(str)) {
+            return false;
+        }
+
+        for (int i = 0, count = str.length(); i < count; i++) {
+            if (!(PhoneNumberUtils.isDialable(str.charAt(i))
+                || str.charAt(i) == ' '
+                || str.charAt(i) == '-'
+                || str.charAt(i) == '('
+                || str.charAt(i) == ')'
+                || str.charAt(i) == '.'
+                || str.charAt(i) == '/')) {
+                return false;
+            }
+        }
+        return true;
+    }
 }
diff --git a/src/com/android/contacts/vcard/ExportProcessor.java b/src/com/android/contacts/vcard/ExportProcessor.java
index 0b96ea1..fd5134c 100755
--- a/src/com/android/contacts/vcard/ExportProcessor.java
+++ b/src/com/android/contacts/vcard/ExportProcessor.java
@@ -81,6 +81,12 @@
         mExportRequest = exportRequest;
         mJobId = jobId;
         mCallingActivity = callingActivity;
+        try {
+            mResolver.takePersistableUriPermission(exportRequest.destUri,
+                    Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
+        } catch (SecurityException e) {
+            Log.w(LOG_TAG, "SecurityException error", e);
+        }
     }
 
     @Override
diff --git a/src/com/android/contacts/vcard/NotificationImportExportListener.java b/src/com/android/contacts/vcard/NotificationImportExportListener.java
index 3b4dc5e..cc60668 100755
--- a/src/com/android/contacts/vcard/NotificationImportExportListener.java
+++ b/src/com/android/contacts/vcard/NotificationImportExportListener.java
@@ -112,6 +112,7 @@
         final String description = mContext.getString(R.string.importing_vcard_description,
                 entry.getDisplayName());
 
+        ContactsNotificationChannelsUtil.createDefaultChannel(mContext);
         return constructProgressNotification(mContext.getApplicationContext(),
                 VCardService.TYPE_IMPORT, description, tickerText, jobId, request.displayName,
                 totalCount, currentCount);
diff --git a/tests/Android.bp b/tests/Android.bp
index 647fee7..2912673 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -29,7 +29,7 @@
         "androidx.test.ext.junit",
         "hamcrest-library",
         "mockito-target-minus-junit4",
-        "ub-uiautomator",
+        "androidx.test.uiautomator_uiautomator",
     ],
 
     libs: [
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index f22f92c..9ccfa3f 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -20,6 +20,7 @@
     <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29" />
 
     <uses-permission android:name="android.permission.READ_CONTACTS" />
+    <uses-permission android:name="android.permission.READ_CALL_LOG"/>
     <uses-permission android:name="android.permission.WRITE_CONTACTS" />
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />
 
diff --git a/tests/src/com/android/contacts/NoPermissionsLaunchSmokeTest.java b/tests/src/com/android/contacts/NoPermissionsLaunchSmokeTest.java
index fac9c85..59f8147 100644
--- a/tests/src/com/android/contacts/NoPermissionsLaunchSmokeTest.java
+++ b/tests/src/com/android/contacts/NoPermissionsLaunchSmokeTest.java
@@ -8,15 +8,15 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
 
 import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.Suppress;
 import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObject2;
+import androidx.test.uiautomator.Until;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -54,6 +54,7 @@
         assumeTrue(!hasPermission(mTargetContext, Manifest.permission.GET_ACCOUNTS));
         assumeTrue(!hasPermission(mTargetContext, Manifest.permission.READ_PHONE_STATE));
         assumeTrue(!hasPermission(mTargetContext, Manifest.permission.CALL_PHONE));
+        assumeTrue(!hasPermission(mTargetContext, Manifest.permission.READ_CALL_LOG));
 
         // remove state that might exist outside of the app
         // (e.g. launcher shortcuts and scheduled jobs)
@@ -72,14 +73,20 @@
 
         device.waitForIdle();
 
-        device.wait(Until.hasObject(By.textStartsWith("Allow Contacts")), TIMEOUT);
+        final PackageManager packageManager = mTargetContext.getPackageManager();
+        if (packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
+            device.wait(Until.hasObject(By.textEndsWith("your phone call logs?")), TIMEOUT);
+            final UiObject2 grantCallLogPermissionButton = device.findObject(By.text("ALLOW"));
+            grantCallLogPermissionButton.click();
+        }
+
+        device.wait(Until.hasObject(By.textEndsWith("access your contacts?")), TIMEOUT);
         final UiObject2 grantContactsPermissionButton = device.findObject(By.text("ALLOW"));
 
         grantContactsPermissionButton.click();
 
         device.wait(Until.hasObject(By.textEndsWith("make and manage phone calls?")), TIMEOUT);
 
-        final PackageManager packageManager = mTargetContext.getPackageManager();
         if (!packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
             device.waitForIdle();
             return;
diff --git a/tests/src/com/android/contacts/activities/SimImportActivityTest.java b/tests/src/com/android/contacts/activities/SimImportActivityTest.java
index 250ce4b..9e2f73b 100644
--- a/tests/src/com/android/contacts/activities/SimImportActivityTest.java
+++ b/tests/src/com/android/contacts/activities/SimImportActivityTest.java
@@ -42,9 +42,6 @@
 import android.provider.ContactsContract.Data;
 import android.provider.SimPhonebookContract;
 import android.provider.SimPhonebookContract.SimRecords;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.Until;
 import android.telephony.TelephonyManager;
 import android.test.mock.MockContentResolver;
 
@@ -53,6 +50,9 @@
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.Until;
 
 import com.android.contacts.SimImportService;
 import com.android.contacts.database.SimContactDao;
