diff --git a/Android.bp b/Android.bp
index 08288f8..27c5b2f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,3 +1,34 @@
+package {
+    default_applicable_licenses: ["packages_apps_Contacts_license"],
+}
+
+// Added automatically by a large-scale-change that took the approach of
+// 'apply every license found to every target'. While this makes sure we respect
+// every license restriction, it may not be entirely correct.
+//
+// e.g. GPL in an MIT project might only apply to the contrib/ directory.
+//
+// Please consider splitting the single license below into multiple licenses,
+// taking care not to lose any license_kind information, and overriding the
+// default license using the 'licenses: [...]' property on targets as needed.
+//
+// For unused files, consider creating a 'fileGroup' with "//visibility:private"
+// to attach the license to, and including a comment whether the files may be
+// used in the current project.
+// See: http://go/android-license-faq
+license {
+    name: "packages_apps_Contacts_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-Apache-2.0",
+        "SPDX-license-identifier-BSD",
+        "SPDX-license-identifier-CC-BY",
+    ],
+    license_text: [
+        "NOTICE",
+    ],
+}
+
 android_app {
     name: "Contacts",
 
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index c9dc980..a5b25de 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -16,12 +16,12 @@
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           package="com.android.contacts"
-          android:versionCode="10731"
-          android:versionName="1.7.31">
+          android:versionCode="10733"
+          android:versionName="1.7.33">
 
     <uses-sdk
         android:minSdkVersion="21"
-        android:targetSdkVersion="29"/>
+        android:targetSdkVersion="30"/>
 
     <original-package android:name="com.android.contacts"/>
 
@@ -74,6 +74,7 @@
             android:launchMode="singleTop"
             android:resizeableActivity="true"
             android:theme="@style/LaunchScreenTheme"
+            android:exported="true"
             android:visibleToInstantApps="true"
             >
             <intent-filter>
@@ -184,6 +185,7 @@
             android:theme="@style/ContactPickerTheme"
             android:uiOptions="splitActionBarWhenNarrow"
             android:windowSoftInputMode="adjustResize"
+            android:exported="true"
             android:visibleToInstantApps="true">
             <meta-data android:name="android.app.shortcuts.new_config"
                 android:value="true" />
@@ -286,6 +288,7 @@
 
         <activity
             android:name=".activities.ShowOrCreateActivity"
+            android:exported="true"
             android:theme="@android:style/Theme.Material.Light.Dialog.NoActionBar">
 
             <intent-filter>
@@ -303,6 +306,7 @@
             android:launchMode="singleTop"
             android:taskAffinity=""
             android:theme="@style/Theme.QuickContact"
+            android:exported="true"
             android:windowSoftInputMode="stateUnchanged">
 
             <intent-filter>
@@ -331,7 +335,8 @@
 
         <!-- Responsible for creating notification channels when boot is completed or when app is
         re-installed -->
-        <receiver android:name=".interactions.OnBootOrUpgradeReceiver">
+        <receiver android:name=".interactions.OnBootOrUpgradeReceiver"
+            android:exported="true">
             <intent-filter>
                 <action android:name="android.intent.action.BOOT_COMPLETED" />
                 <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
@@ -342,6 +347,7 @@
             android:name="ContactShortcut"
             android:icon="@drawable/logo_quick_contacts_color_44in48dp"
             android:label="@string/shortcutContact"
+            android:exported="true"
             android:targetActivity=".activities.ContactSelectionActivity">
 
             <intent-filter>
@@ -355,6 +361,7 @@
             android:name="alias.DialShortcut"
             android:icon="@drawable/logo_quick_contacts_dialer_color_44in48dp"
             android:label="@string/shortcutDialContact"
+            android:exported="true"
             android:targetActivity=".activities.ContactSelectionActivity">
 
             <intent-filter>
@@ -370,6 +377,7 @@
             android:name="alias.MessageShortcut"
             android:icon="@drawable/logo_quick_contacts_mail_color_44in48dp"
             android:label="@string/shortcutMessageContact"
+            android:exported="true"
             android:targetActivity=".activities.ContactSelectionActivity">
 
             <intent-filter>
@@ -389,6 +397,7 @@
         <!-- Edit or create a contact with only the most important fields displayed initially. -->
         <activity
             android:name=".activities.ContactEditorActivity"
+            android:exported="true"
             android:theme="@style/EditorActivityTheme">
 
             <intent-filter>
@@ -418,6 +427,7 @@
 
         <activity
             android:name=".activities.ContactEditorSpringBoardActivity"
+            android:exported="true"
             android:theme="@style/TransparentThemeAppCompat">
 
             <intent-filter>
@@ -430,7 +440,8 @@
             </intent-filter>
         </activity>
 
-        <activity android:name=".test.FragmentTestActivity">
+        <activity android:name=".test.FragmentTestActivity"
+            android:exported="true">
             <intent-filter>
                 <category android:name="android.intent.category.TEST"/>
             </intent-filter>
@@ -456,6 +467,7 @@
         <activity
             android:name=".activities.AttachPhotoActivity"
             android:label="@string/attach_photo_dialog_title"
+            android:exported="true"
             android:taskAffinity="">
             <intent-filter>
                 <action android:name="android.intent.action.ATTACH_DATA"/>
@@ -468,6 +480,7 @@
         <activity
             android:name=".vcard.ImportVCardActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
+            android:exported="true"
             android:theme="@style/BackgroundOnlyTheme">
             <intent-filter>
                 <action android:name="android.intent.action.VIEW"/>
@@ -483,6 +496,7 @@
         <activity
             android:name=".vcard.NfcImportVCardActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
+            android:exported="true"
             android:theme="@style/BackgroundOnlyTheme">
             <intent-filter>
                 <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
@@ -528,6 +542,7 @@
              are set lower, so that the user does not see a disambig dialog -->
         <activity
             android:name="com.android.contacts.NonPhoneActivity"
+            android:exported="true"
             android:theme="@style/NonPhoneActivityTheme">
             <intent-filter android:priority="-1">
                 <action android:name="android.intent.action.MAIN"/>
@@ -556,6 +571,7 @@
         <activity
             android:name="com.android.contacts.dialog.CallSubjectDialog"
             android:theme="@style/Theme.CallSubjectDialogTheme"
+            android:exported="true"
             android:windowSoftInputMode="stateVisible|adjustResize">
             <intent-filter>
                 <action android:name="android.intent.action.VIEW"/>
@@ -599,4 +615,95 @@
             android:value="true"/>
 
     </application>
+
+    <!-- Allows the contacts app to see the activities and services needed
+        to detect accounts and show actions in QuickContact. -->
+    <queries>
+        <!-- ContactsProvider2 -->
+        <package android:name="com.android.providers.contacts"/>
+
+        <!-- quickcontact actions and verbs -->
+        <intent>
+            <action android:name="android.intent.action.SENDTO" />
+            <data android:scheme="imto" />
+        </intent>
+        <intent>
+            <action android:name="android.intent.action.SENDTO" />
+            <data android:scheme="xmpp" />
+        </intent>
+        <intent>
+            <action android:name="android.intent.action.SENDTO" />
+            <data android:scheme="mailto" />
+        </intent>
+        <intent>
+            <action android:name="android.intent.action.SENDTO" />
+            <data android:scheme="smsto" />
+        </intent>
+        <intent>
+            <action android:name="android.intent.action.VIEW"/>
+            <data android:scheme="geo"/>
+        </intent>
+        <!-- About card -->
+        <intent>
+            <!-- View CalendarContract Uris -->
+            <action android:name="android.intent.action.VIEW"/>
+            <data android:scheme="content" android:host="com.android.calendar"/>
+        </intent>
+        <intent>
+            <action android:name="android.intent.action.VIEW"/>
+            <data android:scheme="https"/>
+        </intent>
+
+        <!-- Account loading -->
+        <intent>
+            <action android:name="android.accounts.AccountAuthenticator"/>
+        </intent>
+        <intent>
+            <action android:name="android.intent.action.VIEW" />
+            <data android:scheme="content" android:host="com.android.contacts"
+                android:mimeType="vnd.android.cursor.item/*" />
+        </intent>
+
+        <!-- calling -->
+        <package android:name="com.android.dialer"/>
+        <intent>
+            <action android:name="android.intent.action.CALL" />
+            <data android:scheme="tel" />
+        </intent>
+        <intent>
+            <action android:name="android.intent.action.DIAL" />
+            <data android:scheme="tel" />
+        </intent>
+        <intent>
+            <action android:name="android.intent.action.CALL" />
+            <data android:scheme="sip" />
+        </intent>
+        <intent>
+            <action android:name="android.intent.action.DIAL" />
+            <data android:scheme="sip" />
+        </intent>
+        <intent>
+            <action android:name="android.intent.action.CALL" />
+            <data android:scheme="voicemail" />
+        </intent>
+        <intent>
+            <action android:name="android.intent.action.DIAL" />
+            <data android:scheme="voicemail" />
+        </intent>
+
+        <!-- vcard export -->
+        <intent>
+            <action android:name="android.intent.action.CREATE_DOCUMENT" />
+            <data android:mimeType="text/x-vcard" />
+            <category android:name="android.intent.category.OPENABLE" />
+        </intent>
+
+        <!-- edit contact photo -->
+        <intent>
+            <action android:name="com.android.camera.action.CROP" />
+            <data android:mimeType="image/*" />
+        </intent>
+
+    </queries>
+
 </manifest>
diff --git a/METADATA b/METADATA
new file mode 100644
index 0000000..d97975c
--- /dev/null
+++ b/METADATA
@@ -0,0 +1,3 @@
+third_party {
+  license_type: NOTICE
+}
diff --git a/lint-baseline.xml b/lint-baseline.xml
new file mode 100644
index 0000000..764546f
--- /dev/null
+++ b/lint-baseline.xml
@@ -0,0 +1,576 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.1.0" client="cli" variant="all" version="4.1.0">
+
+    <issue
+        id="NewApi"
+        message="Call requires API level 31 (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 31 (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 31 (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 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 31 (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 31 (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): `android.provider.BlockedNumberContract#canCurrentUserBlockNumbers`"
+        errorLine1="                &amp;&amp; BlockedNumberContract.canCurrentUserBlockNumbers(getContext());"
+        errorLine2="                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="packages/apps/Contacts/src/com/android/contacts/preference/DisplayOptionsPreferenceFragment.java"
+            line="300"
+            column="42"/>
+    </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 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 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="652"
+            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="653"
+            column="25"/>
+    </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 R (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 31 (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/proguard.flags b/proguard.flags
index 782aa7e..9543f9d 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -57,7 +57,6 @@
 -keep class com.android.contacts.model.BuilderWrapper { *; }
 -keep class com.android.contacts.model.Contact { *; }
 -keep class com.android.contacts.model.ContactLoader { *; }
--keep class com.android.contacts.model.Cp2DeviceLocalAccountLocator { *; }
 -keep class com.android.contacts.model.CPOWrapper { *; }
 -keep class com.android.contacts.model.dataitem.DataItem { *; }
 -keep class com.android.contacts.model.dataitem.DataKind { *; }
diff --git a/res/layout-land/contact_editor_fragment.xml b/res/layout-land/contact_editor_fragment.xml
index 6f026aa..e68d7a3 100644
--- a/res/layout-land/contact_editor_fragment.xml
+++ b/res/layout-land/contact_editor_fragment.xml
@@ -31,7 +31,7 @@
 
         <include layout="@layout/photo_editor_view" />
 
-        <!-- Dummy view so the first input field is not initially focused. b/21644158 -->
+        <!-- Placeholder view so the first input field is not initially focused. b/21644158 -->
         <View
             android:layout_width="0dp"
             android:layout_height="0dp"
diff --git a/res/layout/contact_editor_fragment.xml b/res/layout/contact_editor_fragment.xml
index 03a84e1..694e1f6 100644
--- a/res/layout/contact_editor_fragment.xml
+++ b/res/layout/contact_editor_fragment.xml
@@ -38,7 +38,7 @@
 
             <include layout="@layout/photo_editor_view" />
 
-            <!-- Dummy view so the first input field is not initially focused. b/21644158 -->
+            <!-- Placeholder view so the first input field is not initially focused. b/21644158 -->
             <View
                 android:layout_width="0dp"
                 android:layout_height="0dp"
diff --git a/res/layout/menu_item_action_view.xml b/res/layout/menu_item_action_view.xml
index 62eb758..1f8066e 100644
--- a/res/layout/menu_item_action_view.xml
+++ b/res/layout/menu_item_action_view.xml
@@ -15,7 +15,8 @@
   limitations under the License.
   -->
 
-<!-- A dummy action view to attach extra hidden content description to menuItem for Talkback. -->
+<!-- A placeholder action view to attach extra hidden content description to
+     menuItem for Talkback. -->
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
@@ -24,4 +25,4 @@
     <View
         android:layout_width="1dp"
         android:layout_height= "1dp" />
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index af96fb9..2c30f00 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Instellings"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Instellings"</string>
     <string name="menu_help" msgid="287801702920372292">"Hulp en terugvoer"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Foonnommer"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Voeg by kontakte"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Maak toe"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Teksboodskap"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adres"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Maatskappy"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Departement"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Titel"</string>
     <string name="label_notes" msgid="7134226125644463585">"Notas"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Gepasmaak"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 9c49977..388ce56 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"ቅንብሮች"</string>
     <string name="menu_settings" msgid="3524924670246877187">"ቅንብሮች"</string>
     <string name="menu_help" msgid="287801702920372292">"እገዛ እና ግብረመልስ"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>፣ <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"ስልክ ቁጥር:"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"ወደ ዕውቂያዎች አክል"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"ዝጋ"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"የጽሑፍ መልዕክት"</string>
     <string name="postal_address" msgid="5031809899673855074">"አድራሻ"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"ኩባንያ"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"መምሪያ"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"አርዕስት"</string>
     <string name="label_notes" msgid="7134226125644463585">"ማስታወሻዎች"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"ብጁ"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 99b7a86..b7bc19a 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -180,7 +180,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"الإعدادات"</string>
     <string name="menu_settings" msgid="3524924670246877187">"الإعدادات"</string>
     <string name="menu_help" msgid="287801702920372292">"المساعدة والتعليقات"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>، <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"رقم الهاتف"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"إضافة إلى جهات الاتصال"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"إغلاق"</string>
@@ -340,6 +341,7 @@
     <string name="sms" msgid="4246338112764847384">"رسالة نصية"</string>
     <string name="postal_address" msgid="5031809899673855074">"العنوان"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"الشركة"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"القسم"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"المسمى الوظيفي"</string>
     <string name="label_notes" msgid="7134226125644463585">"ملاحظات"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"مخصص"</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 8c396f3..0ab03a3 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -164,7 +164,10 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"ছেটিংবোৰ"</string>
     <string name="menu_settings" msgid="3524924670246877187">"ছেটিংবোৰ"</string>
     <string name="menu_help" msgid="287801702920372292">"সহায় আৰু মতামত"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <!-- no translation found for organization_entry_two_field (6034934619269052455) -->
+    <skip />
+    <!-- no translation found for organization_entry_all_field (6724345890324437167) -->
+    <skip />
     <string name="non_phone_caption" msgid="7343449684187013327">"ফ\'ন নম্বৰ"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"সর্ম্পক সূচীত যোগ কৰক"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"বন্ধ কৰক"</string>
@@ -324,6 +327,7 @@
     <string name="sms" msgid="4246338112764847384">"পাঠ বাৰ্তা"</string>
     <string name="postal_address" msgid="5031809899673855074">"ঠিকনা"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"কোম্পানী"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"বিভাগ"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"শিৰোনাম"</string>
     <string name="label_notes" msgid="7134226125644463585">"টোকাবোৰ"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"নিজৰ উপযোগিতা অনুসৰি"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index b104b36..779d752 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Ayarlar"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Ayarlar"</string>
     <string name="menu_help" msgid="287801702920372292">"Kömək &amp; əks əlaqə"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Telefon nömrəsi"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Kontaktlara əlavə edin"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Qapadın"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Mətn mesajı"</string>
     <string name="postal_address" msgid="5031809899673855074">"Ünvan:"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Şirkət"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Şöbə"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Başlıq"</string>
     <string name="label_notes" msgid="7134226125644463585">"Qeydlər"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Fərdi"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 8f981d6..595bc60 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -168,7 +168,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Podešavanja"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Podešavanja"</string>
     <string name="menu_help" msgid="287801702920372292">"Pomoć i povratne informacije"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Broj telefona"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Dodaj u kontakte"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Zatvori"</string>
@@ -328,6 +329,7 @@
     <string name="sms" msgid="4246338112764847384">"Tekstualna poruka"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adresa"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Preduzeće"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Odsek"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Naslov"</string>
     <string name="label_notes" msgid="7134226125644463585">"Beleške"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Prilagođeno"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 9082031..336346b 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -172,7 +172,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Налады"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Налады"</string>
     <string name="menu_help" msgid="287801702920372292">"Даведка і водгукі"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Нумар тэлефона"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Дадаць у кантакты"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Закрыць"</string>
@@ -332,6 +333,7 @@
     <string name="sms" msgid="4246338112764847384">"Тэкставае паведамленне"</string>
     <string name="postal_address" msgid="5031809899673855074">"Адрас"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Кампанія"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Аддзел"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Пасада"</string>
     <string name="label_notes" msgid="7134226125644463585">"Нататкі"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Карыстальніцкі"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index be177bc..966b89c 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Настройки"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Настройки"</string>
     <string name="menu_help" msgid="287801702920372292">"Помощ и отзиви"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Телефонен номер"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Добавяне към контактите"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Затваряне"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Текстово съобщение"</string>
     <string name="postal_address" msgid="5031809899673855074">"Адрес"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Фирма"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Отдел"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Длъжност"</string>
     <string name="label_notes" msgid="7134226125644463585">"Бележки"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Персонализирано"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index d5365ec..16a0431 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"সেটিংস"</string>
     <string name="menu_settings" msgid="3524924670246877187">"সেটিংস"</string>
     <string name="menu_help" msgid="287801702920372292">"সহায়তা ও প্রতিক্রিয়া"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"ফোন নম্বর"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"পরিচিতিগুলিতে যোগ করুন"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"বন্ধ"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"পাঠ্য বার্তা"</string>
     <string name="postal_address" msgid="5031809899673855074">"ঠিকানা"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"কোম্পানি"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"বিভাগ"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"শীর্ষক"</string>
     <string name="label_notes" msgid="7134226125644463585">"নোটগুলি"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"কাস্টম"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index f43d7c0..fe40e4c 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -168,7 +168,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Postavke"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Postavke"</string>
     <string name="menu_help" msgid="287801702920372292">"Pomoć i povratne informacije"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Broj telefona"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Dodaj u kontakte"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Zatvori"</string>
@@ -328,6 +329,7 @@
     <string name="sms" msgid="4246338112764847384">"SMS"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adresa"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Kompanija"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Odjel"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Pozicija"</string>
     <string name="label_notes" msgid="7134226125644463585">"Bilješke"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Prilagođeno"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 3ec77e3..1bff03d 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Configuració"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Configuració"</string>
     <string name="menu_help" msgid="287801702920372292">"Ajuda i suggeriments"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Número de telèfon"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Afegeix als contactes"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Tanca"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Missatge de text"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adreça"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Empresa"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Departament"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Títol"</string>
     <string name="label_notes" msgid="7134226125644463585">"Notes"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Personalitzat"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index ddfe5b4..8f7d22d 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -172,7 +172,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Nastavení"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Nastavení"</string>
     <string name="menu_help" msgid="287801702920372292">"Nápověda a zpětná vazba"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Telefonní číslo"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Přidat do kontaktů"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Zavřít"</string>
@@ -332,6 +333,7 @@
     <string name="sms" msgid="4246338112764847384">"Textová zpráva"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adresa"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Společnost"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Oddělení"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Název"</string>
     <string name="label_notes" msgid="7134226125644463585">"Poznámky"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Vlastní"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 771e266..67384a6 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Indstillinger"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Indstillinger"</string>
     <string name="menu_help" msgid="287801702920372292">"Hjælp og feedback"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Telefonnummer"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Føj til kontakter"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Luk"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Sms"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adresse"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Virksomhed"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Afdeling"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Titel"</string>
     <string name="label_notes" msgid="7134226125644463585">"Noter"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Tilpasset"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index c2c2f58..c3c5e02 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Einstellungen"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Einstellungen"</string>
     <string name="menu_help" msgid="287801702920372292">"Hilfe &amp; Feedback"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Telefonnummer"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Zu Kontakten hinzufügen"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Schließen"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"SMS"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adresse"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Unternehmen"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Abteilung"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Titel"</string>
     <string name="label_notes" msgid="7134226125644463585">"Notizen"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Benutzerdefiniert"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 4e6d591..ea36a6d 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Ρυθμίσεις"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Ρυθμίσεις"</string>
     <string name="menu_help" msgid="287801702920372292">"Βοήθεια και σχόλια"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Αριθμός τηλεφώνου"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Προσθήκη στις επαφές"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Κλείσιμο"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Μήνυμα κειμένου"</string>
     <string name="postal_address" msgid="5031809899673855074">"Διεύθυνση"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Εταιρεία"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Τμήμα"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Τίτλος"</string>
     <string name="label_notes" msgid="7134226125644463585">"Σημειώσεις"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Προσαρμοσμένο"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index ead8268..3baa6d9 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Settings"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Settings"</string>
     <string name="menu_help" msgid="287801702920372292">"Help &amp; feedback"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Phone number"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Add to contacts"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Close"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Text message"</string>
     <string name="postal_address" msgid="5031809899673855074">"Address"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Company"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Department"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Title"</string>
     <string name="label_notes" msgid="7134226125644463585">"Notes"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Custom"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index ead8268..3baa6d9 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Settings"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Settings"</string>
     <string name="menu_help" msgid="287801702920372292">"Help &amp; feedback"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Phone number"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Add to contacts"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Close"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Text message"</string>
     <string name="postal_address" msgid="5031809899673855074">"Address"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Company"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Department"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Title"</string>
     <string name="label_notes" msgid="7134226125644463585">"Notes"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Custom"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index ead8268..3baa6d9 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Settings"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Settings"</string>
     <string name="menu_help" msgid="287801702920372292">"Help &amp; feedback"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Phone number"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Add to contacts"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Close"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Text message"</string>
     <string name="postal_address" msgid="5031809899673855074">"Address"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Company"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Department"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Title"</string>
     <string name="label_notes" msgid="7134226125644463585">"Notes"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Custom"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index ead8268..3baa6d9 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Settings"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Settings"</string>
     <string name="menu_help" msgid="287801702920372292">"Help &amp; feedback"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Phone number"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Add to contacts"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Close"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Text message"</string>
     <string name="postal_address" msgid="5031809899673855074">"Address"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Company"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Department"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Title"</string>
     <string name="label_notes" msgid="7134226125644463585">"Notes"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Custom"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 302a89a..1014707 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‏‏‎‎‏‎‎‎‏‏‏‏‎‏‎‏‏‏‎‎‎‏‏‎‏‏‎‏‏‏‏‎‎‎‎‎‏‎‏‎‏‏‎‏‎‎Settings‎‏‎‎‏‎"</string>
     <string name="menu_settings" msgid="3524924670246877187">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‏‏‎‏‎‏‏‎‎‎‎‏‏‎‎‎‏‎‎‏‏‏‏‏‏‎‎‏‏‏‎‎‎‎‏‎‎‏‏‎‏‏‏‏‎‎‎‎‎‎‎‎‎‏‏‎Settings‎‏‎‎‏‎"</string>
     <string name="menu_help" msgid="287801702920372292">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‎‏‎‎‏‎‎‏‎‎‎‎‎‎‎‏‎‎‎‏‎‎‎Help &amp; feedback‎‏‎‎‏‎"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‏‎‎‎‏‏‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‏‎‎‎‎‎‏‎‎‏‎‎‏‎‎‏‎‏‏‎‏‏‎‏‎‎‏‏‎‎‎‏‎‎‏‏‎<xliff:g id="COMPANY_0">%2$s</xliff:g>‎‏‎‎‏‏‏‎, ‎‏‎‎‏‏‎<xliff:g id="COMPANY_1">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎‎‎‎‎‎‏‏‎‎‏‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‎‎‎‏‏‏‏‎‏‎‎‏‏‏‎‎‎‎‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="FIRST">%1$s</xliff:g>‎‏‎‎‏‏‏‎ • ‎‏‎‎‏‏‎<xliff:g id="SECOND">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‎‎‎‏‏‎‏‎‏‏‎‎‏‏‏‏‎‏‎‏‏‏‎‎‏‎‏‏‏‎‏‎‎‏‎‏‎‏‎‏‏‎‎‎‏‎‏‎‏‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="COMPANY">%1$s</xliff:g>‎‏‎‎‏‏‏‎ • ‎‏‎‎‏‏‎<xliff:g id="DEPARTMENT">%2$s</xliff:g>‎‏‎‎‏‏‏‎ • ‎‏‎‎‏‏‎<xliff:g id="TITLE">%3$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‏‎‎‏‎‎‏‎‏‏‎‎‏‎‎‏‎‏‎‎‏‎‎‏‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‎‎‎‎‎‏‏‎‎‏‏‏‏‎Phone number‎‏‎‎‏‎"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‏‎‎‏‏‎‎‏‏‏‏‎‎‎‏‎‏‎‎‎‏‏‏‎‏‎‎‎‎‏‎‎‏‎‏‎‎‎‎‏‏‎‏‏‏‏‎‏‏‎‏‏‏‎Add to contacts‎‏‎‎‏‎"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‏‎‎‎‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‏‏‎‎‏‎‏‎‏‏‏‎‎‏‏‎‏‎‎‏‎‏‎‏‎‎‎Close‎‏‎‎‏‎"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‎‏‏‏‎‎‎‎‎‎‏‏‎‎‎‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‏‎‎‏‎‎‏‎‏‎‎‎‏‏‎‎‎‎Text message‎‏‎‎‏‎"</string>
     <string name="postal_address" msgid="5031809899673855074">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‏‎‏‎‎‏‎‎‏‎‏‎‎‎‏‏‏‎‎‎‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‎‏‎‏‎‎‏‎‎‎‏‏‎‎‎‏‎‎Address‎‏‎‎‏‎"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‎‎‏‏‏‏‏‎‎‏‏‎‎‎‎‏‎‏‎‎‎‏‏‎‏‎‎‏‎‎‎Company‎‏‎‎‏‎"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‏‏‎‏‎‏‏‏‏‏‏‎‎‎‏‎‎‏‎‏‎‎‎‏‎‎‏‏‏‎‏‏‎‏‏‎‏‎‏‏‏‎Department‎‏‎‎‏‎"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‎‎‏‏‏‎‏‎‏‏‏‎‏‏‎‎‎‎‎‏‎‏‏‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‏‎‏‏‎‏‎‏‎‏‎Title‎‏‎‎‏‎"</string>
     <string name="label_notes" msgid="7134226125644463585">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‎‎‎‎‎‏‏‏‎‏‏‏‎‎‏‏‎‏‏‏‎‎‏‏‎‎‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎Notes‎‏‎‎‏‎"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‎‏‏‏‏‎‏‎‏‎‏‏‏‎‏‎‏‎‎‏‏‏‏‎‎‏‎‎‏‏‏‎‏‏‏‏‎‏‎‏‏‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎Custom‎‏‎‎‏‎"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 21fc88f..6e394ef 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Configuración"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Configuración"</string>
     <string name="menu_help" msgid="287801702920372292">"Ayuda y comentarios"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Núm. de tel."</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Agregar a contactos"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Cerrar"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Mensaje de texto"</string>
     <string name="postal_address" msgid="5031809899673855074">"Dirección"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Empresa"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Departamento"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Título"</string>
     <string name="label_notes" msgid="7134226125644463585">"Notas"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Personalizado"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 9902e26..8001dc8 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Ajustes"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Ajustes"</string>
     <string name="menu_help" msgid="287801702920372292">"Ayuda y comentarios"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Número de teléfono"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Añadir a contactos"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Cerrar"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Mensaje de texto"</string>
     <string name="postal_address" msgid="5031809899673855074">"Dirección"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Empresa"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Departamento"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Cargo"</string>
     <string name="label_notes" msgid="7134226125644463585">"Notas"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Personalizado"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index baecc4b..c7174c7 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Seaded"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Seaded"</string>
     <string name="menu_help" msgid="287801702920372292">"Abi ja tagasiside"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Telefoninumber"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Lisa kontaktidesse"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Sule"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Tekstsõnum"</string>
     <string name="postal_address" msgid="5031809899673855074">"Aadress"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Ettevõte"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Osakond"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Pealkiri"</string>
     <string name="label_notes" msgid="7134226125644463585">"Märkused"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Kohandatud"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 4967f6d..a20d96e 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Ezarpenak"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Ezarpenak"</string>
     <string name="menu_help" msgid="287801702920372292">"Laguntza eta iritziak"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Telefono-zenbakia"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Gehitu kontaktuetan"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Itxi"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Testu-mezua"</string>
     <string name="postal_address" msgid="5031809899673855074">"Helbidea"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Enpresa"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Saila"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Lanpostua"</string>
     <string name="label_notes" msgid="7134226125644463585">"Oharrak"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Pertsonalizatua"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 041404e..824d903 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"تنظیمات"</string>
     <string name="menu_settings" msgid="3524924670246877187">"تنظیمات"</string>
     <string name="menu_help" msgid="287801702920372292">"راهنما و بازخورد"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>، <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="SECOND">%2$s</xliff:g> • <xliff:g id="FIRST">%1$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"شماره تلفن"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"افزودن به مخاطبین"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"بستن"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"پیام نوشتاری"</string>
     <string name="postal_address" msgid="5031809899673855074">"آدرس"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"شرکت"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"بخش"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"عنوان"</string>
     <string name="label_notes" msgid="7134226125644463585">"یادداشت‌ها"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"سفارشی"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 1d85767..92c9cb0 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Asetukset"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Asetukset"</string>
     <string name="menu_help" msgid="287801702920372292">"Ohje ja palaute"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Puhelinnumero"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Lisää yhteystietoihin"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Sulje"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Tekstiviesti"</string>
     <string name="postal_address" msgid="5031809899673855074">"Osoite"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Yritys"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Osasto"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Nimi"</string>
     <string name="label_notes" msgid="7134226125644463585">"Muistiinpanot"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Muokattu"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 1711751..e92919f 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Paramètres"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Paramètres"</string>
     <string name="menu_help" msgid="287801702920372292">"Aide et commentaires"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Numéro de téléphone"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Ajouter aux contacts"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Fermer"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Message texte"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adresse"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Entreprise"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Service"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Titre"</string>
     <string name="label_notes" msgid="7134226125644463585">"Remarques"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Personnalisé"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index f7ee599..36e6a86 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Paramètres"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Paramètres"</string>
     <string name="menu_help" msgid="287801702920372292">"Aide et commentaires"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Numéro de téléphone"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Ajouter aux contacts"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Fermer"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"SMS"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adresse"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Entreprise"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Service"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Titre"</string>
     <string name="label_notes" msgid="7134226125644463585">"Notes"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Personnalisé"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 690f2e7..dc62e2d 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Configuración"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Configuración"</string>
     <string name="menu_help" msgid="287801702920372292">"Axuda e comentarios"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Número de teléfono"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Engadir a contactos"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Pechar"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Mensaxe de texto"</string>
     <string name="postal_address" msgid="5031809899673855074">"Enderezo"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Empresa"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Departamento"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Cargo"</string>
     <string name="label_notes" msgid="7134226125644463585">"Notas"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Personalizado"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 832bf07..850ab91 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"સેટિંગ"</string>
     <string name="menu_settings" msgid="3524924670246877187">"સેટિંગ"</string>
     <string name="menu_help" msgid="287801702920372292">"સહાય અને પ્રતિસાદ"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"ફોન નંબર"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"સંપર્કોમાં ઉમેરો"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"બંધ કરો"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"ટેક્સ્ટ સંદેશ"</string>
     <string name="postal_address" msgid="5031809899673855074">"સરનામું"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"કંપની"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"વિભાગ"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"શીર્ષક"</string>
     <string name="label_notes" msgid="7134226125644463585">"નોંધ"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"કસ્ટમ"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 9d5b7dc..0a0ad87 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"सेटिंग"</string>
     <string name="menu_settings" msgid="3524924670246877187">"सेटिंग"</string>
     <string name="menu_help" msgid="287801702920372292">"सहायता और फ़ीडबैक"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"फ़ोन नंबर"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"संपर्कों में जोड़ें"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"बंद करें"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"लेख संदेश"</string>
     <string name="postal_address" msgid="5031809899673855074">"पता"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"कंपनी"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"डिपार्टमेंट"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"शीर्षक"</string>
     <string name="label_notes" msgid="7134226125644463585">"नोट"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"पसंद के मुताबिक"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 0e39456..78b88bb 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -168,7 +168,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Postavke"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Postavke"</string>
     <string name="menu_help" msgid="287801702920372292">"Pomoć i povratne informacije"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Broj telefona"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Dodaj kontaktima"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Zatvori"</string>
@@ -328,6 +329,7 @@
     <string name="sms" msgid="4246338112764847384">"Tekstualna poruka"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adresa"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Tvrtka"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Odjel"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Naslov"</string>
     <string name="label_notes" msgid="7134226125644463585">"Bilješke"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Prilagođeno"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index b948140..f5030f9 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Beállítások"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Beállítások"</string>
     <string name="menu_help" msgid="287801702920372292">"Súgó és visszajelzés"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Telefonszám"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Hozzáadása a névjegyekhez"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Bezárás"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Szöveges üzenet"</string>
     <string name="postal_address" msgid="5031809899673855074">"Cím"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Cég"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Részleg"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Beosztás"</string>
     <string name="label_notes" msgid="7134226125644463585">"Jegyzetek"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Egyéni"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index c33f758..6d45f64 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Կարգավորումներ"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Կարգավորումներ"</string>
     <string name="menu_help" msgid="287801702920372292">"Օգնություն և կարծիք"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Հեռախոսահամար"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Ավելացնել կոնտակտներում"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Փակել"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Տեքստային հաղորդագրություն"</string>
     <string name="postal_address" msgid="5031809899673855074">"Հասցե"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Ընկերություն"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Բաժին"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Պաշտոն"</string>
     <string name="label_notes" msgid="7134226125644463585">"Գրառումներ"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Հատուկ"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index fb1903a..a7e339c 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Setelan"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Setelan"</string>
     <string name="menu_help" msgid="287801702920372292">"Bantuan &amp; masukan"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Nomor telepon"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Tambahkan ke kontak"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Tutup"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Pesan teks"</string>
     <string name="postal_address" msgid="5031809899673855074">"Alamat"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Perusahaan"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Departemen"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Jabatan"</string>
     <string name="label_notes" msgid="7134226125644463585">"Catatan"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Khusus"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index d2986bd..64427df 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Stillingar"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Stillingar"</string>
     <string name="menu_help" msgid="287801702920372292">"Hjálp og ábendingar"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Símanúmer"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Bæta við tengiliði"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Loka"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Senda SMS-skilaboð"</string>
     <string name="postal_address" msgid="5031809899673855074">"Heimilisfang"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Fyrirtæki"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Deild"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Titill"</string>
     <string name="label_notes" msgid="7134226125644463585">"Glósur"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Sérsniðið"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 4396eec..037fbed 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Impostazioni"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Impostazioni"</string>
     <string name="menu_help" msgid="287801702920372292">"Guida e feedback"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Numero di telefono"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Aggiungi a contatti"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Chiudi"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Messaggio di testo"</string>
     <string name="postal_address" msgid="5031809899673855074">"Indirizzo"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Società"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Reparto"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Titolo"</string>
     <string name="label_notes" msgid="7134226125644463585">"Note"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Personalizzato"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 191024d..8c4793b 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -172,7 +172,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"הגדרות"</string>
     <string name="menu_settings" msgid="3524924670246877187">"הגדרות"</string>
     <string name="menu_help" msgid="287801702920372292">"עזרה ומשוב"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"מספר טלפון"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"הוסף לאנשי הקשר"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"סגור"</string>
@@ -332,6 +333,7 @@
     <string name="sms" msgid="4246338112764847384">"הודעת טקסט"</string>
     <string name="postal_address" msgid="5031809899673855074">"כתובת"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"חברה"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"מחלקה"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"שם"</string>
     <string name="label_notes" msgid="7134226125644463585">"הערות"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"מותאם אישית"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 7293c44..30221ef 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"設定"</string>
     <string name="menu_settings" msgid="3524924670246877187">"設定"</string>
     <string name="menu_help" msgid="287801702920372292">"ヘルプとフィードバック"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>、<xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"電話番号"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"連絡先に追加"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"閉じる"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"テキストメッセージ"</string>
     <string name="postal_address" msgid="5031809899673855074">"住所"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"会社"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"部署"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"役職"</string>
     <string name="label_notes" msgid="7134226125644463585">"メモ"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"カスタム"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index cfde2ab..a3f008e 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"პარამეტრები"</string>
     <string name="menu_settings" msgid="3524924670246877187">"პარამეტრები"</string>
     <string name="menu_help" msgid="287801702920372292">"დახმარება/უკუკავშირი"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"ტელეფონის ნომერი"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"კონტაქტებში დამატება"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"დახურვა"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"ტექსტური შეტყობინება"</string>
     <string name="postal_address" msgid="5031809899673855074">"მისამართი"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"კომპანია"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"განყოფილება"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"სათაური"</string>
     <string name="label_notes" msgid="7134226125644463585">"შენიშვნები"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"მორგებული"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 1dc5f32..4d6b1bf 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Параметрлер"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Параметрлер"</string>
     <string name="menu_help" msgid="287801702920372292">"Анықтама және пікір"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Телефон нөмірі"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Контактілерге қосу"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Жабу"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Мәтіндік хабар"</string>
     <string name="postal_address" msgid="5031809899673855074">"Мекенжай"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Компания"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Бөлім"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Атауы"</string>
     <string name="label_notes" msgid="7134226125644463585">"Ескертпелер"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Арнаулы"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index f37834a..1d875e1 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"ការ​កំណត់"</string>
     <string name="menu_settings" msgid="3524924670246877187">"ការ​កំណត់"</string>
     <string name="menu_help" msgid="287801702920372292">"ជំនួយ និង មតិស្ថាបនា"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"លេខទូរសព្ទ"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"បញ្ចូល​ទៅក្នុងទំនាក់ទំនង"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"បិទ​"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"សារ​អត្ថបទ"</string>
     <string name="postal_address" msgid="5031809899673855074">"អាសយដ្ឋាន"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"ក្រុមហ៊ុន"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"ផ្នែក"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"ចំណង​ជើង"</string>
     <string name="label_notes" msgid="7134226125644463585">"ចំណាំ"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"ផ្ទាល់ខ្លួន"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 87d629c..f867e39 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="menu_settings" msgid="3524924670246877187">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="menu_help" msgid="287801702920372292">"ಸಹಾಯ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆ"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"ಫೋನ್ ಸಂಖ್ಯೆ"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"ಸಂಪರ್ಕಗಳಿಗೆ ಸೇರಿಸು"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"ಮುಚ್ಚು"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"ಪಠ್ಯ ಸಂದೇಶ"</string>
     <string name="postal_address" msgid="5031809899673855074">"ವಿಳಾಸ"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"ಕಂಪನಿ"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"ವಿಭಾಗ"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"ಶೀರ್ಷಿಕೆ"</string>
     <string name="label_notes" msgid="7134226125644463585">"ಟಿಪ್ಪಣಿಗಳು"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"ಕಸ್ಟಮ್"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 3641817..f265a5e 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"설정"</string>
     <string name="menu_settings" msgid="3524924670246877187">"설정"</string>
     <string name="menu_help" msgid="287801702920372292">"고객센터"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"전화번호"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"주소록에 추가"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"닫기"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"문자 메시지"</string>
     <string name="postal_address" msgid="5031809899673855074">"주소"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"회사"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"부서"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"직함"</string>
     <string name="label_notes" msgid="7134226125644463585">"메모"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"맞춤"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 9f689ef..3267e04 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Жөндөөлөр"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Жөндөөлөр"</string>
     <string name="menu_help" msgid="287801702920372292">"Жардам жана пикир билдирүү"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g> , <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Телефон номери"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Байланыштарга кошуу"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Жабуу"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"SMS билдирүү жөнөтүү"</string>
     <string name="postal_address" msgid="5031809899673855074">"Почта дареги"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Компания"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Бөлүм"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Аталышы"</string>
     <string name="label_notes" msgid="7134226125644463585">"Эскертүүлөр"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Өздүк"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 27c9e53..fb89778 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"ການຕັ້ງຄ່າ"</string>
     <string name="menu_settings" msgid="3524924670246877187">"ການຕັ້ງຄ່າ"</string>
     <string name="menu_help" msgid="287801702920372292">"ຊ່ວຍ​ເຫຼືອ ແລະ ຄຳ​ຕິ​ຊົມ"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"ເບີໂທລະສັບ"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"ເພີ່ມໃສ່ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"ປິດ"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"ຂໍ້ຄວາມ"</string>
     <string name="postal_address" msgid="5031809899673855074">"ທີ່ຢູ່"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"ບໍລິສັດ"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"ພະແນກ"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"ຕຳແໜ່ງໜ້າທີ່"</string>
     <string name="label_notes" msgid="7134226125644463585">"ໝາຍເຫດ"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"ກຳນົດເອງ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 4aa209a..d1a5c15 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -172,7 +172,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Nustatymai"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Nustatymai"</string>
     <string name="menu_help" msgid="287801702920372292">"Pagalba ir atsiliepimai"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"„<xliff:g id="COMPANY_0">%2$s</xliff:g>“, „<xliff:g id="COMPANY_1">%1$s</xliff:g>“"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"„<xliff:g id="FIRST">%1$s</xliff:g>“ • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"„<xliff:g id="COMPANY">%1$s</xliff:g>“ • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Telefono numeris"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Pridėti prie kontaktų"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Uždaryti"</string>
@@ -332,6 +333,7 @@
     <string name="sms" msgid="4246338112764847384">"Teksto pranešimas"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adresas"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Įmonė"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Skyrius"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Pareigos"</string>
     <string name="label_notes" msgid="7134226125644463585">"Pastabos"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Tinkintas"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 89fdbb8..2f5e9d3 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -168,7 +168,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Iestatījumi"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Iestatījumi"</string>
     <string name="menu_help" msgid="287801702920372292">"Palīdzība un atsauksmes"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Tālruņa numurs"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Piev. kontaktpersonām"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Aizvērt"</string>
@@ -328,6 +329,7 @@
     <string name="sms" msgid="4246338112764847384">"Īsziņa"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adrese"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Uzņēmums"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Nodaļa"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Nosaukums"</string>
     <string name="label_notes" msgid="7134226125644463585">"Piezīmes"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Pielāgota"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index c082cb3..b5d0c38 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Поставки"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Поставки"</string>
     <string name="menu_help" msgid="287801702920372292">"Помош и повратни информации"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Телефонски број"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Додај во контакти"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Затвори"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"SMS-порака"</string>
     <string name="postal_address" msgid="5031809899673855074">"Адреса"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Компанија"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Оддел"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Наслов"</string>
     <string name="label_notes" msgid="7134226125644463585">"Белешки"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Приспособено"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index d448ee3..f576ef7 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"ക്രമീകരണം"</string>
     <string name="menu_settings" msgid="3524924670246877187">"ക്രമീകരണം"</string>
     <string name="menu_help" msgid="287801702920372292">"സഹായവും ഫീഡ്‌ബാക്കും"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"ഫോൺ നമ്പർ"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"കോൺടാക്റ്റുകളിൽ ചേർക്കുക"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"അടയ്‌ക്കുക"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"വാചക സന്ദേശം"</string>
     <string name="postal_address" msgid="5031809899673855074">"വിലാസം"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"കമ്പനി"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"ഡിപ്പാർട്ട്മെന്റ്"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"ശീർഷകം"</string>
     <string name="label_notes" msgid="7134226125644463585">"കുറിപ്പുകള്‍"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"ഇഷ്‌ടാനുസൃതം"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index c1fdab5..8ebb52a 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Тохиргоо"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Тохиргоо"</string>
     <string name="menu_help" msgid="287801702920372292">"Тусламж, санал хүсэлт"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Утасны дугаар"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Харилцагчдад нэмэх"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Хаах"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Мессеж"</string>
     <string name="postal_address" msgid="5031809899673855074">"Хаяг"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Компани"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Хэлтэс"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Гарчиг"</string>
     <string name="label_notes" msgid="7134226125644463585">"Тэмдэглэл"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Тусгай"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 51d59cb..0b67181 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"सेटिंग्ज"</string>
     <string name="menu_settings" msgid="3524924670246877187">"सेटिंग्ज"</string>
     <string name="menu_help" msgid="287801702920372292">"मदत आणि अभिप्राय"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"फोन नंबर"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"संपर्कांमध्ये जोडा"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"बंद करा"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"मजकूर संदेश"</string>
     <string name="postal_address" msgid="5031809899673855074">"पत्ता"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"कंपनी"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"विभाग"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"शीर्षक"</string>
     <string name="label_notes" msgid="7134226125644463585">"टिपा"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"सानुकूल"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index dffb9f4..5dd3959 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Tetapan"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Tetapan"</string>
     <string name="menu_help" msgid="287801702920372292">"Bantuan &amp; maklum balas"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Nombor telefon"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Tambah ke kenalan"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Tutup"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Mesej teks"</string>
     <string name="postal_address" msgid="5031809899673855074">"Alamat"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Syarikat"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Jabatan"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Tajuk"</string>
     <string name="label_notes" msgid="7134226125644463585">"Nota"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Tersuai"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 4061d17..4ebda20 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"ဆက်တင်များ"</string>
     <string name="menu_settings" msgid="3524924670246877187">"ဆက်တင်များ"</string>
     <string name="menu_help" msgid="287801702920372292">"အကူအညီနှင့် အကြံပြုချက်"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"ဖုန်းနံပါတ်"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"လိပ်စာများထဲသို့ ထည့်ပါ"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"ပိတ်ရန်"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"စာသားမက်ဆေ့ဂျ်"</string>
     <string name="postal_address" msgid="5031809899673855074">"လိပ်စာ"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"ကုမ္ပဏီ"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"ဌာန"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"ခေါင်းစဉ်"</string>
     <string name="label_notes" msgid="7134226125644463585">"မှတ်စုများ"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"စိတ်ကြိုက်"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 1493a1d..9cf7425 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Innstillinger"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Innstillinger"</string>
     <string name="menu_help" msgid="287801702920372292">"Hjelp og tilbakemelding"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Telefonnummer"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Legg til i kontakter"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Lukk"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Tekstmelding"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adresse"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Firma"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Avdeling"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Tittel"</string>
     <string name="label_notes" msgid="7134226125644463585">"Notater"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Spesialtilpasset"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 172a0b3..c670886 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"सेटिङहरू"</string>
     <string name="menu_settings" msgid="3524924670246877187">"सेटिङहरू"</string>
     <string name="menu_help" msgid="287801702920372292">"मद्दत &amp; प्रतिक्रिया"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g> , <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"फोन नम्बर"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"सम्पर्कहरूमा जोड्नुहोस्"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"बन्द गर्नुहोस्"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"टेक्स्ट म्यासेज"</string>
     <string name="postal_address" msgid="5031809899673855074">"ठेगाना"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"कम्पनी"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"विभाग"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"शीर्षक"</string>
     <string name="label_notes" msgid="7134226125644463585">"टिप्पणीहरू"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"आफू अनुकूल"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 2f5ed8f..f23c6e3 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Instellingen"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Instellingen"</string>
     <string name="menu_help" msgid="287801702920372292">"Hulp en feedback"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Telefoonnummer"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Toevoegen aan contacten"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Sluiten"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Sms"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adres"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Bedrijf"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Afdeling"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Titel"</string>
     <string name="label_notes" msgid="7134226125644463585">"Opmerkingen"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Aangepast"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 8650ac8..00c6202 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -164,7 +164,10 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"ସେଟିଙ୍ଗ"</string>
     <string name="menu_settings" msgid="3524924670246877187">"ସେଟିଙ୍ଗ"</string>
     <string name="menu_help" msgid="287801702920372292">"ସହାୟତା ଓ ମତାମତ"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <!-- no translation found for organization_entry_two_field (6034934619269052455) -->
+    <skip />
+    <!-- no translation found for organization_entry_all_field (6724345890324437167) -->
+    <skip />
     <string name="non_phone_caption" msgid="7343449684187013327">"ଫୋନ୍ ନମ୍ଵର୍"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"ଯୋଗାଯୋଗରେ ଯୋଡ଼ନ୍ତୁ"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"ବନ୍ଦ କରନ୍ତୁ"</string>
@@ -324,6 +327,7 @@
     <string name="sms" msgid="4246338112764847384">"SMS"</string>
     <string name="postal_address" msgid="5031809899673855074">"ଠିକଣା"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"କମ୍ପାନୀ"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"ବିଭାଗ"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"ଟାଇଟଲ୍"</string>
     <string name="label_notes" msgid="7134226125644463585">"ନୋଟ୍"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"କଷ୍ଟମ"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 008f1ef..dd24e71 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"ਸੈਟਿੰਗਾਂ"</string>
     <string name="menu_settings" msgid="3524924670246877187">"ਸੈਟਿੰਗਾਂ"</string>
     <string name="menu_help" msgid="287801702920372292">"ਸਹਾਇਤਾ ਅਤੇ ਪ੍ਰਤੀਕਰਮ"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"ਫ਼ੋਨ ਨੰਬਰ"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"ਸੰਪਰਕਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"ਬੰਦ ਕਰੋ"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"ਲਿਖਤ ਸੁਨੇਹਾ"</string>
     <string name="postal_address" msgid="5031809899673855074">"ਪਤਾ"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"ਕੰਪਨੀ"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"ਵਿਭਾਗ"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"ਸਿਰਲੇਖ"</string>
     <string name="label_notes" msgid="7134226125644463585">"ਨੋਟ-ਕਥਨ"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"ਵਿਉਂਤਬੱਧ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 9d054ef..59dfb02 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -172,7 +172,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Ustawienia"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Ustawienia"</string>
     <string name="menu_help" msgid="287801702920372292">"Pomoc i opinie"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Numer telefonu"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Dodaj do kontaktów"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Zamknij"</string>
@@ -332,6 +333,7 @@
     <string name="sms" msgid="4246338112764847384">"SMS"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adres"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Firma"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Dział"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Stanowisko"</string>
     <string name="label_notes" msgid="7134226125644463585">"Notatki"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Niestandardowe"</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 2afe197..f74079e 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Configurações"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Configurações"</string>
     <string name="menu_help" msgid="287801702920372292">"Ajuda e feedback"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Número de telefone"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Adicionar aos contatos"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Fechar"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Mensagem de texto"</string>
     <string name="postal_address" msgid="5031809899673855074">"Endereço"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Empresa"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Departamento"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Título"</string>
     <string name="label_notes" msgid="7134226125644463585">"Observações"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Personalizado"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index a1be30f..22539ba 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Definições"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Definições"</string>
     <string name="menu_help" msgid="287801702920372292">"Ajuda e comentários"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Número de telefone"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Adicionar aos contactos"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Fechar"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Mensagem de texto"</string>
     <string name="postal_address" msgid="5031809899673855074">"Endereço"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Empresa"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Departamento"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Título"</string>
     <string name="label_notes" msgid="7134226125644463585">"Notas"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Personalizado"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 2afe197..f74079e 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Configurações"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Configurações"</string>
     <string name="menu_help" msgid="287801702920372292">"Ajuda e feedback"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Número de telefone"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Adicionar aos contatos"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Fechar"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Mensagem de texto"</string>
     <string name="postal_address" msgid="5031809899673855074">"Endereço"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Empresa"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Departamento"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Título"</string>
     <string name="label_notes" msgid="7134226125644463585">"Observações"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Personalizado"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index f5dcd99..a721949 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -168,7 +168,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Setări"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Setări"</string>
     <string name="menu_help" msgid="287801702920372292">"Ajutor și feedback"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Număr de telefon"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Adăugați în agendă"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Închideți"</string>
@@ -328,6 +329,7 @@
     <string name="sms" msgid="4246338112764847384">"Mesaj text"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adresă"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Companie"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Departament"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Titlu"</string>
     <string name="label_notes" msgid="7134226125644463585">"Note"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Personalizat"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 57e6862..a795ee8 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -172,7 +172,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Настройки"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Настройки"</string>
     <string name="menu_help" msgid="287801702920372292">"Справка/отзыв"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Номер телефона"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Добавить в контакты"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Скрыть"</string>
@@ -332,6 +333,7 @@
     <string name="sms" msgid="4246338112764847384">"Текстовое сообщение"</string>
     <string name="postal_address" msgid="5031809899673855074">"Адрес"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Компания"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Отдел"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Должность"</string>
     <string name="label_notes" msgid="7134226125644463585">"Примечания"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Другое"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 57a5f4b..7e95776 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"සැකසීම්"</string>
     <string name="menu_settings" msgid="3524924670246877187">"සැකසීම්"</string>
     <string name="menu_help" msgid="287801702920372292">"උදවු සහ ප්‍රතිපෝෂණ"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"දුරකථන අංකය"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"සම්බන්ධතා වලට එක් කරන්න"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"වසන්න"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"කෙටි පණිවුඩ"</string>
     <string name="postal_address" msgid="5031809899673855074">"ලිපිනය"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"සමාගම"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"දෙපාර්තමේන්තුව"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"මාතෘකාව"</string>
     <string name="label_notes" msgid="7134226125644463585">"සටහන්"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"අභිරුචි"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 3e22d5c..3de78d4 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -172,7 +172,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Nastavenia"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Nastavenia"</string>
     <string name="menu_help" msgid="287801702920372292">"Pomocník a spätná väzba"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Telefónne číslo"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Pridať medzi kontakty"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Zavrieť"</string>
@@ -332,6 +333,7 @@
     <string name="sms" msgid="4246338112764847384">"Textová správa"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adresa"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Firma"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Oddelenie"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Titul"</string>
     <string name="label_notes" msgid="7134226125644463585">"Poznámky"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Vlastný"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 636a2b6..343053c 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -172,7 +172,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Nastavitve"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Nastavitve"</string>
     <string name="menu_help" msgid="287801702920372292">"Pomoč in povr. informacije"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Telefonska številka"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Dodaj v stike"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Zapri"</string>
@@ -332,6 +333,7 @@
     <string name="sms" msgid="4246338112764847384">"SMS"</string>
     <string name="postal_address" msgid="5031809899673855074">"Naslov"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Podjetje"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Oddelek"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Naslov"</string>
     <string name="label_notes" msgid="7134226125644463585">"Opombe"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Po meri"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index af9a6ff..cdef0ec 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Cilësimet"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Cilësimet"</string>
     <string name="menu_help" msgid="287801702920372292">"Ndihmë dhe komente"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Numri i telefonit"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Shto te kontaktet"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Mbyll"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Mesazhi me tekst"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adresa"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Kompania"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Departamenti"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Titulli"</string>
     <string name="label_notes" msgid="7134226125644463585">"Shënimet"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"E personalizuar"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 1438160..3304dca 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -168,7 +168,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Подешавања"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Подешавања"</string>
     <string name="menu_help" msgid="287801702920372292">"Помоћ и повратне информације"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Број телефона"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Додај у контакте"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Затвори"</string>
@@ -328,6 +329,7 @@
     <string name="sms" msgid="4246338112764847384">"Текстуална порука"</string>
     <string name="postal_address" msgid="5031809899673855074">"Адреса"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Предузеће"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Одсек"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Наслов"</string>
     <string name="label_notes" msgid="7134226125644463585">"Белешке"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Прилагођено"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index d54e359..1afd097 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Inställningar"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Inställningar"</string>
     <string name="menu_help" msgid="287801702920372292">"Hjälp och feedback"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Telefonnummer"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Lägg till i Kontakter"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Stäng"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Textmeddelande"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adress"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Företag"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Avdelning"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Titel"</string>
     <string name="label_notes" msgid="7134226125644463585">"Anteckningar"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Anpassat"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index b6ff4ea..02299f6 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Mipangilio"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Mipangilio"</string>
     <string name="menu_help" msgid="287801702920372292">"Usaidizi na maoni"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Nambari ya simu"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Ongeza kwa anwani"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Funga"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Ujumbe wa maandishi"</string>
     <string name="postal_address" msgid="5031809899673855074">"Anwani"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Kampuni"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Idara"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Jina la heshima"</string>
     <string name="label_notes" msgid="7134226125644463585">"Kidokezo"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Maalum"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 92f6706..c38377f 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"அமைப்பு"</string>
     <string name="menu_settings" msgid="3524924670246877187">"அமைப்பு"</string>
     <string name="menu_help" msgid="287801702920372292">"உதவி &amp; கருத்து"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"மொபைல் எண்"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"தொடர்புகளில் சேர்"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"மூடு"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"உரைச் செய்தி"</string>
     <string name="postal_address" msgid="5031809899673855074">"முகவரி"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"நிறுவனம்"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"பிரிவு"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"தலைப்பு"</string>
     <string name="label_notes" msgid="7134226125644463585">"குறிப்புகள்"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"பிரத்தியேகம்"</string>
@@ -386,7 +388,7 @@
       <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> தொடர்புகள் • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
       <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> தொடர்பு • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
     </plurals>
-    <string name="import_from_vcf_file" msgid="6776403212804361301">".vcf ஃபைல்"</string>
+    <string name="import_from_vcf_file" msgid="6776403212804361301">".vcf கோப்பு"</string>
     <string name="nothing_to_import_message" msgid="2594519620375509783">"இறக்குவதற்கு எதுவுமில்லை"</string>
     <string name="import_from_vcf_file_confirmation_message" msgid="8579284961401472204">"vCard இலிருந்து தொடர்புகளை இறக்கவா?"</string>
     <string name="cancel_import_confirmation_message" msgid="1007412828398265611">"<xliff:g id="FILENAME">%s</xliff:g> இன் இறக்குமதியை ரத்துசெய்யவா?"</string>
@@ -399,7 +401,7 @@
     <string name="missing_required_permission" msgid="1308037728470791436">"தேவைப்படும் அனுமதியை முடக்கியுள்ளீர்கள்."</string>
     <string name="fail_reason_error_occurred_during_export" msgid="6179270404825288837">"ஏற்றுமதி செய்யும்போது பிழை: \"<xliff:g id="EXACT_REASON">%s</xliff:g>\"."</string>
     <string name="fail_reason_io_error" msgid="6364839914349999408">"I/O பிழை"</string>
-    <string name="fail_reason_low_memory_during_import" msgid="4525361860523306991">"போதுமான நினைவகம் இல்லை. ஃபைல் மிகவும் பெரியதாக இருக்கலாம்."</string>
+    <string name="fail_reason_low_memory_during_import" msgid="4525361860523306991">"போதுமான நினைவகம் இல்லை. கோப்பு மிகவும் பெரியதாக இருக்கலாம்."</string>
     <string name="fail_reason_not_supported" msgid="6449916670421646290">"வடிவம் ஆதரிக்கப்படவில்லை."</string>
     <string name="exporting_vcard_finished_title" msgid="1984393609140969504">"<xliff:g id="FILENAME">%s</xliff:g> ஏற்றப்பட்டது."</string>
     <string name="exporting_vcard_finished_title_fallback" msgid="9029067439586573959">"தொடர்புகள் ஏற்றப்பட்டன."</string>
@@ -418,7 +420,7 @@
     <string name="importing_vcard_finished_title" msgid="2274644947000264322">"vCard <xliff:g id="FILENAME">%s</xliff:g> இறக்கப்பட்டது"</string>
     <string name="importing_vcard_canceled_title" msgid="8165471996631186776">"<xliff:g id="FILENAME">%s</xliff:g> ஐ இறக்குமதிசெய்வது ரத்துசெய்யப்பட்டது"</string>
     <string name="vcard_import_will_start_message" msgid="4514702035621833178">"<xliff:g id="FILENAME">%s</xliff:g> விரைவில் இறக்குமதி செய்யப்படும்."</string>
-    <string name="vcard_import_will_start_message_with_default_name" msgid="8205422202924103470">"ஃபைல் விரைவில் இறக்குமதி செய்யப்படும்."</string>
+    <string name="vcard_import_will_start_message_with_default_name" msgid="8205422202924103470">"கோப்பு விரைவில் இறக்குமதி செய்யப்படும்."</string>
     <string name="vcard_import_request_rejected_message" msgid="4754292694777189540">"vCard இன் இறக்குமதி கோரிக்கை நிராகரிக்கப்பட்டது. பிறகு முயற்சிக்கவும்."</string>
     <string name="contacts_export_will_start_message" msgid="6428126265599715944">"கூடிய விரைவில் தொடர்புகள் ஏற்றப்படும்."</string>
     <string name="vcard_export_request_rejected_message" msgid="6455336845734884740">"vCard இன் ஏற்றுமதி கோரிக்கை நிராகரிக்கப்பட்டது. பிறகு முயற்சிக்கவும்."</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 1c8214f..10255a0 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -26,7 +26,7 @@
     <string name="contactInsertOrEditActivityTitle" msgid="1788154962629911262">"పరిచయానికి జోడించండి"</string>
     <string name="contactPickerActivityTitle" msgid="1842634991247618890">"పరిచయాన్ని ఎంచుకోండి"</string>
     <string name="groupMemberPickerActivityTitle" msgid="8745419913947478380">"ఎంచుకోండి"</string>
-    <string name="header_entry_contact_list_adapter_header_title" msgid="4098233078586958762">"కొత్త పరిచయాన్ని క్రియేట్ చేయండి"</string>
+    <string name="header_entry_contact_list_adapter_header_title" msgid="4098233078586958762">"కొత్త పరిచయాన్ని సృష్టించండి"</string>
     <string name="searchHint" msgid="1487501532610025473">"పరిచయాలను వెతుకు"</string>
     <string name="menu_addStar" msgid="4903812703386825130">"ఇష్టమైనవాటికి జోడించు"</string>
     <string name="menu_removeStar" msgid="3707373931808303701">"ఇష్టమైనవాటి నుండి తీసివేయి"</string>
@@ -35,7 +35,7 @@
     <string name="menu_editContact" msgid="5039663761025630208">"సవరించు"</string>
     <string name="menu_deleteContact" msgid="15161764025276217">"తొలగించు"</string>
     <string name="menu_change_photo" msgid="4911246106907208055">"ఫోటోను మార్చు"</string>
-    <string name="menu_create_contact_shortcut" msgid="8983436328557825860">"షార్ట్‌కట్‌ను సృష్టించు"</string>
+    <string name="menu_create_contact_shortcut" msgid="8983436328557825860">"సత్వరమార్గాన్ని సృష్టించు"</string>
     <string name="menu_splitAggregate" msgid="2062290275288905833">"వేరు చేయి"</string>
     <string name="menu_editGroup" msgid="8706562583754054622">"పరిచయాలను తీసివేయి"</string>
     <string name="menu_renameGroup" msgid="2685886609399776475">"లేబుల్ పేరును మార్చు"</string>
@@ -99,10 +99,10 @@
     <string name="attach_photo_dialog_title" msgid="7948754072673745235">"పరిచయం ఫోటో"</string>
     <string name="customLabelPickerTitle" msgid="816694850254307154">"అనుకూల లేబుల్ పేరు"</string>
     <string name="removePhoto" msgid="1190099414600730001">"ఫోటోను తీసివేయి"</string>
-    <string name="noContacts" msgid="3030512741779213810">"మీ పరిచయాల లిస్ట్‌ ఖాళీగా ఉంది"</string>
+    <string name="noContacts" msgid="3030512741779213810">"మీ పరిచయాల జాబితా ఖాళీగా ఉంది"</string>
     <string name="emptyGroup" msgid="8598261660865081152">"ఈ లేబుల్‌తో పరిచయాలు ఏవీ లేవు"</string>
     <string name="emptyAccount" msgid="7450843210977018582">"ఈ ఖాతాలో పరిచయాలు ఏవీ లేవు"</string>
-    <string name="emptyMainList" msgid="3266182207039677163">"మీ పరిచయాల లిస్ట్‌ ఖాళీగా ఉంది"</string>
+    <string name="emptyMainList" msgid="3266182207039677163">"మీ పరిచయాల జాబితా ఖాళీగా ఉంది"</string>
     <string name="contactSavedNamedToast" msgid="3067050290584834386">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> సేవ్ చేయబడింది"</string>
     <string name="contactSavedToast" msgid="4370392215196995301">"పరిచయం సేవ్ చేయబడింది"</string>
     <string name="contactUnlinkedToast" msgid="6791720274141804377">"పరిచయాలు వేరు చేయబడ్డాయి"</string>
@@ -135,13 +135,13 @@
     <string name="missing_app" msgid="5674389915738964148">"ఈ చర్యను నిర్వహించడానికి యాప్‌ ఏదీ కనుగొనబడలేదు."</string>
     <string name="menu_share" msgid="6343022811796001773">"షేర్ చేయి"</string>
     <string name="menu_add_contact" msgid="5822356185421997656">"పరిచయాలకు జోడించు"</string>
-    <string name="menu_add_contacts" msgid="7114262784903366463">"జోడించండి"</string>
+    <string name="menu_add_contacts" msgid="7114262784903366463">"జోడించు"</string>
     <plurals name="title_share_via" formatted="false" msgid="3868648642107664607">
       <item quantity="other">పరిచయాలను దీని ద్వారా షేర్ చేయండి</item>
       <item quantity="one">పరిచయాన్ని దీని ద్వారా షేర్ చేయండి</item>
     </plurals>
     <string name="dialog_new_group_account" msgid="4326402875327788728">"ఖాతాను ఎంచుకోండి"</string>
-    <string name="group_name_dialog_insert_title" msgid="5495572488613178283">"లేబుల్‌ను క్రియేట్ చేయండి"</string>
+    <string name="group_name_dialog_insert_title" msgid="5495572488613178283">"లేబుల్‌ను సృష్టించండి"</string>
     <string name="group_name_dialog_update_title" msgid="3955919589366745101">"లేబుల్ పేరును మార్చండి"</string>
     <string name="group_name_dialog_hint" msgid="6023999218213062973">"లేబుల్ పేరు"</string>
     <string name="label_name_dialog_hint" msgid="7027635439255596191">"లేబుల్ పేరు"</string>
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"సెట్టింగ్‌లు"</string>
     <string name="menu_settings" msgid="3524924670246877187">"సెట్టింగ్‌లు"</string>
     <string name="menu_help" msgid="287801702920372292">"సహాయం &amp; అభిప్రాయం"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"ఫోన్ నంబర్"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"పరిచయాలకు జోడించు"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"మూసివేయి"</string>
@@ -190,11 +191,11 @@
     <string name="contact_editor_prompt_one_account" msgid="765343809177951169">"కొత్త పరిచయాలు <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>కి సేవ్ చేయబడతాయి."</string>
     <string name="contact_editor_prompt_multiple_accounts" msgid="1543322760761168351">"కొత్త పరిచయాల కోసం డిఫాల్ట్ ఖాతాను ఎంచుకోండి:"</string>
     <string name="contact_editor_title_new_contact" msgid="7534775011591770343">"కొత్త పరి. సృష్టించు"</string>
-    <string name="contact_editor_title_existing_contact" msgid="3647774955741654029">"పరిచయాన్ని ఎడిట్ చేయండి"</string>
+    <string name="contact_editor_title_existing_contact" msgid="3647774955741654029">"పరిచయాన్ని సవరించండి"</string>
     <string name="contact_editor_title_read_only_contact" msgid="5494810291515292596">"వీక్షణ మాత్రమే"</string>
     <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4478782370280424187">"సవరించాల్సిన పరిచయాన్ని ఎంచుకోండి"</string>
     <string name="contact_editor_pick_linked_contact_dialog_title" msgid="3332134735168016293">"లింక్ చేసిన పరిచయాలు"</string>
-    <string name="contact_editor_add_linked_contact" msgid="2895453741206196138">"జోడించండి"</string>
+    <string name="contact_editor_add_linked_contact" msgid="2895453741206196138">"జోడించు"</string>
     <string name="contact_editor_unlink_contacts" msgid="8399419729744305687">"అన్‌లింక్ చేయి"</string>
     <string name="add_account" msgid="3071396624500839020">"ఖాతాను జోడించు"</string>
     <string name="add_new_account" msgid="573368229646104110">"కొత్త ఖాతాను జోడించు"</string>
@@ -286,7 +287,7 @@
     <string name="sms_by_shortcut" msgid="4682340916268521006">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (మెసేజ్‌)"</string>
     <string name="description_video_call" msgid="4956825008907720371">"వీడియో కాల్ చేస్తుంది"</string>
     <string name="clearFrequentsConfirmation_title" msgid="9194415661170740437">"తరచుగా సంప్రదించినవాటిని క్లియర్ చేయాలా?"</string>
-    <string name="clearFrequentsConfirmation" msgid="2120741757522063938">"మీరు పరిచయాలు మరియు ఫోన్ అనువర్తనాల్లో తరచుగా సంప్రదించిన పరిచయాల లిస్ట్‌ను తీసివేస్తారు మరియు స్క్రాచ్ నుండి మీ అడ్రస్‌ ప్రాధాన్యతలను తెలుసుకునేలా ఇమెయిల్ యాప్‌లను నిర్బంధిస్తారు."</string>
+    <string name="clearFrequentsConfirmation" msgid="2120741757522063938">"మీరు పరిచయాలు మరియు ఫోన్ అనువర్తనాల్లో తరచుగా సంప్రదించిన పరిచయాల జాబితాను తీసివేస్తారు మరియు స్క్రాచ్ నుండి మీ చిరునామా ప్రాధాన్యతలను తెలుసుకునేలా ఇమెయిల్ యాప్‌లను నిర్బంధిస్తారు."</string>
     <string name="clearFrequentsProgress_title" msgid="8271935295080659743">"తరచుగా సంప్రదించినవాటిని క్లియర్ చేస్తోంది…"</string>
     <string name="status_available" msgid="8081626460682959098">"అందుబాటులో ఉన్నారు"</string>
     <string name="status_away" msgid="2677693194455091315">"దూరంగా ఉన్నారు"</string>
@@ -316,14 +317,15 @@
     <string name="name_phonetic_family" msgid="1690852801039809448">"ఫొనెటిక్ చివరి పేరు"</string>
     <string name="phoneLabelsGroup" msgid="2746758650001801885">"ఫోన్"</string>
     <string name="emailLabelsGroup" msgid="3360719560200449554">"ఇమెయిల్"</string>
-    <string name="postalLabelsGroup" msgid="7534317297587527570">"అడ్రస్‌"</string>
+    <string name="postalLabelsGroup" msgid="7534317297587527570">"చిరునామా"</string>
     <string name="imLabelsGroup" msgid="2113398976789806432">"IM"</string>
     <string name="organizationLabelsGroup" msgid="2342482097897299099">"సంస్థ"</string>
     <string name="relationLabelsGroup" msgid="8931615792208307291">"సంబంధం"</string>
     <string name="eventLabelsGroup" msgid="8625868552164376823">"ప్రత్యేక తేదీ"</string>
     <string name="sms" msgid="4246338112764847384">"వచన మెసేజ్‌"</string>
-    <string name="postal_address" msgid="5031809899673855074">"అడ్రస్‌"</string>
+    <string name="postal_address" msgid="5031809899673855074">"చిరునామా"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"కంపెనీ"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"విభాగం"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"శీర్షిక"</string>
     <string name="label_notes" msgid="7134226125644463585">"గమనికలు"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"అనుకూలం"</string>
@@ -341,10 +343,10 @@
     <string name="postal_region" msgid="6130239447563491435">"రాష్ట్రం"</string>
     <string name="postal_postcode" msgid="33077708757232659">"జిప్ కోడ్"</string>
     <string name="postal_country" msgid="6642804283917549861">"దేశం"</string>
-    <string name="map_home" msgid="2169053372466501148">"ఇంటి అడ్రస్‌ను చూడండి"</string>
-    <string name="map_work" msgid="8296916987749726461">"కార్యాలయ అడ్రస్‌ను చూడండి"</string>
-    <string name="map_other" msgid="4009931029322619674">"అడ్రస్‌ను చూడండి"</string>
-    <string name="map_custom" msgid="7797812861927817335">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> అడ్రస్‌ను చూడండి"</string>
+    <string name="map_home" msgid="2169053372466501148">"ఇంటి చిరునామాను చూడండి"</string>
+    <string name="map_work" msgid="8296916987749726461">"కార్యాలయ చిరునామాను చూడండి"</string>
+    <string name="map_other" msgid="4009931029322619674">"చిరునామాను చూడండి"</string>
+    <string name="map_custom" msgid="7797812861927817335">"<xliff:g id="CUSTOM_LABEL">%s</xliff:g> చిరునామాను చూడండి"</string>
     <string name="chat_aim" msgid="2044861410748519265">"AIMని ఉపయోగించి చాట్ చేయండి"</string>
     <string name="chat_msn" msgid="4733206223124506247">"Windows Liveని ఉపయోగించి చాట్ చేయండి"</string>
     <string name="chat_yahoo" msgid="3807571878191282528">"Yahooని ఉపయోగించి చాట్ చేయండి"</string>
@@ -369,10 +371,10 @@
     <string name="list_filter_single" msgid="6003845379327432129">"పరిచయం"</string>
     <string name="display_ungrouped" msgid="4823012484407759332">"అన్ని ఇతర పరిచయాలు"</string>
     <string name="display_all_contacts" msgid="1281067776483704512">"అన్ని పరిచయాలు"</string>
-    <string name="menu_sync_remove" msgid="7523335046562082188">"సింక్‌ సమూహాన్ని తీసివేయి"</string>
-    <string name="dialog_sync_add" msgid="8012361965908515959">"సింక్‌ సమూహాన్ని జోడించండి"</string>
+    <string name="menu_sync_remove" msgid="7523335046562082188">"సమకాలీకరణ సమూహాన్ని తీసివేయి"</string>
+    <string name="dialog_sync_add" msgid="8012361965908515959">"సమకాలీకరణ సమూహాన్ని జోడించండి"</string>
     <string name="display_more_groups" msgid="8398232980355188133">"మరిన్ని సమూహాలు…"</string>
-    <string name="display_warn_remove_ungrouped" msgid="522866344738506017">"సింక్‌ నుండి \"<xliff:g id="GROUP">%s</xliff:g>\"ని తీసివేయడం వలన సింక్‌ నుండి సమూహం చేయబడని పరిచయాలు కూడా తీసివేయబడతాయి."</string>
+    <string name="display_warn_remove_ungrouped" msgid="522866344738506017">"సమకాలీకరణ నుండి \"<xliff:g id="GROUP">%s</xliff:g>\"ని తీసివేయడం వలన సమకాలీకరణ నుండి సమూహం చేయబడని పరిచయాలు కూడా తీసివేయబడతాయి."</string>
     <string name="savingDisplayGroups" msgid="6779839417901711381">"ప్రదర్శన ఎంపికలను సేవ్ చేస్తోంది…"</string>
     <string name="listCustomView" msgid="5782275477737032610">"అనుకూలీకృత వీక్షణ"</string>
     <string name="dialog_new_contact_account" msgid="5652018124788855057">"దిగుమతి చేసిన పరిచయాలను దీనిలో సేవ్ చేయి:"</string>
@@ -419,9 +421,9 @@
     <string name="importing_vcard_canceled_title" msgid="8165471996631186776">"<xliff:g id="FILENAME">%s</xliff:g>ని దిగుమతి చేయడం రద్దు చేయబడింది"</string>
     <string name="vcard_import_will_start_message" msgid="4514702035621833178">"<xliff:g id="FILENAME">%s</xliff:g> కొద్దిసేపట్లో దిగుమతి చేయబడుతుంది."</string>
     <string name="vcard_import_will_start_message_with_default_name" msgid="8205422202924103470">"ఫైల్ కొద్దిసేపట్లో దిగుమతి చేయబడుతుంది."</string>
-    <string name="vcard_import_request_rejected_message" msgid="4754292694777189540">"vCard దిగుమతి రిక్వెస్ట్‌ తిరస్కరించబడింది. తర్వాత మళ్లీ ప్రయత్నించండి."</string>
+    <string name="vcard_import_request_rejected_message" msgid="4754292694777189540">"vCard దిగుమతి అభ్యర్థన తిరస్కరించబడింది. తర్వాత మళ్లీ ప్రయత్నించండి."</string>
     <string name="contacts_export_will_start_message" msgid="6428126265599715944">"పరిచయాలు కొద్ది సేపట్లో ఎగుమతి చేయబడతాయి."</string>
-    <string name="vcard_export_request_rejected_message" msgid="6455336845734884740">"vCard ఎగుమతి రిక్వెస్ట్‌ తిరస్కరించబడింది. తర్వాత మళ్లీ ప్రయత్నించండి."</string>
+    <string name="vcard_export_request_rejected_message" msgid="6455336845734884740">"vCard ఎగుమతి అభ్యర్థన తిరస్కరించబడింది. తర్వాత మళ్లీ ప్రయత్నించండి."</string>
     <string name="vcard_unknown_filename" msgid="8320954544777782497">"పరిచయం"</string>
     <string name="caching_vcard_message" msgid="1879339732783666517">"vCard(ల)ను స్థానిక తాత్కాలిక నిల్వకు కాష్ చేస్తోంది. అసలు దిగుమతి కొద్దిసేపట్లో ప్రారంభమవుతుంది."</string>
     <string name="vcard_import_failed" msgid="37313715326741013">"vCardని దిగుమతి చేయడం సాధ్యపడలేదు."</string>
@@ -482,12 +484,12 @@
     <string name="description_search_video_call" msgid="1768558141309418755">"వీడియో కాల్ చేస్తుంది"</string>
     <string name="description_delete_contact" msgid="8110643050235441400">"తొలగిస్తుంది"</string>
     <string name="description_no_name_header" msgid="8596201864512339003">"అధ్యాహారం"</string>
-    <string name="dynamic_shortcut_disabled_message" msgid="8770462908102469878">"ఈ షార్ట్‌కట్‌ నిలిపివేయబడింది"</string>
+    <string name="dynamic_shortcut_disabled_message" msgid="8770462908102469878">"ఈ సత్వరమార్గం నిలిపివేయబడింది"</string>
     <string name="dynamic_shortcut_contact_removed_message" msgid="8331735243566193974">"పరిచయం తీసివేయబడింది"</string>
     <string name="sim_import_button_text" msgid="2845608246304396009">"దిగుమతి చేయి"</string>
     <string name="sim_import_title_none_selected" msgid="3527680774575468781">"పరిచయాలను ఎంచుకోండి"</string>
     <string name="sim_import_empty_message" msgid="7238368542566545854">"మీ SIM కార్డ్‌లో పరిచయాలు ఏవీ లేవు"</string>
-    <string name="sim_import_contact_exists_toast" msgid="8423212007841229749">"పరిచయం మీ లిస్ట్‌లో ఇప్పటికే ఉంది"</string>
+    <string name="sim_import_contact_exists_toast" msgid="8423212007841229749">"పరిచయం మీ జాబితాలో ఇప్పటికే ఉంది"</string>
     <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="422539156156042210">
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> SIM పరిచయాలు దిగుమతి చేయబడ్డాయి</item>
       <item quantity="one">1 SIM పరిచయం దిగుమతి చేయబడింది</item>
@@ -495,10 +497,10 @@
     <string name="sim_import_failed_toast" msgid="358117391138073786">"SIM పరిచయాలను దిగుమతి చేయడంలో విఫలమైంది"</string>
     <string name="sim_import_title" msgid="8202961146093040684">"SIM నుండి దిగుమతి చేసుకోండి"</string>
     <string name="sim_import_cancel_content_description" msgid="4746065462808862682">"రద్దు చేస్తుంది"</string>
-    <string name="auto_sync_off" msgid="7039314601316227882">"స్వీయ-సింక్‌ ఆఫ్‌లో ఉంది. ఆన్ చేయడానికి నొక్కండి."</string>
+    <string name="auto_sync_off" msgid="7039314601316227882">"స్వీయ-సమకాలీకరణ ఆఫ్‌లో ఉంది. ఆన్ చేయడానికి నొక్కండి."</string>
     <string name="dismiss_sync_alert" msgid="4057176963960104786">"తీసివేస్తుంది"</string>
-    <string name="account_sync_off" msgid="6187683798342006021">"ఖాతా సింక్‌ ఆఫ్‌లో ఉంది. ఆన్ చేయడానికి నొక్కండి."</string>
-    <string name="turn_auto_sync_on_dialog_title" msgid="3812155064863594938">"స్వీయ సింక్‌ను ఆన్ చేయాలా?"</string>
+    <string name="account_sync_off" msgid="6187683798342006021">"ఖాతా సమకాలీకరణ ఆఫ్‌లో ఉంది. ఆన్ చేయడానికి నొక్కండి."</string>
+    <string name="turn_auto_sync_on_dialog_title" msgid="3812155064863594938">"స్వీయ సమకాలీకరణను ఆన్ చేయాలా?"</string>
     <string name="turn_auto_sync_on_dialog_body" msgid="5386810641905184682">"మీరు కేవలం పరిచయాలకు చేసే మార్పులే కాకుండా అన్ని యాప్‌లు మరియు ఖాతాలకు చేసే మార్పులు వెబ్ మరియు మీ పరికరాల మధ్య ఎప్పటికప్పుడు నవీకృతంగా ఉంచబడతాయి."</string>
     <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="5575717918836806519">"ఆన్ చేయండి"</string>
     <string name="connection_error_message" msgid="7446131881946138093">"కనెక్షన్ లేదు"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 48c3982..3bd11c0 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"การตั้งค่า"</string>
     <string name="menu_settings" msgid="3524924670246877187">"การตั้งค่า"</string>
     <string name="menu_help" msgid="287801702920372292">"ความช่วยเหลือและความคิดเห็น"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"หมายเลขโทรศัพท์"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"เพิ่มลงในสมุดโทรศัพท์"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"ปิด"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"ข้อความตัวอักษร"</string>
     <string name="postal_address" msgid="5031809899673855074">"ที่อยู่"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"บริษัท"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"แผนก"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"ชื่อ"</string>
     <string name="label_notes" msgid="7134226125644463585">"หมายเหตุ"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"กำหนดเอง"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 1340788..6422a7f 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Mga Setting"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Mga Setting"</string>
     <string name="menu_help" msgid="287801702920372292">"Tulong at feedback"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Numero ng telepono"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Idagdag sa mga contact"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Isara"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Text message"</string>
     <string name="postal_address" msgid="5031809899673855074">"Address"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Kumpanya"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Departamento"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Pamagat"</string>
     <string name="label_notes" msgid="7134226125644463585">"Mga Tala"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Custom"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index e46ab4e..c588a0f 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Ayarlar"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Ayarlar"</string>
     <string name="menu_help" msgid="287801702920372292">"Yardım ve geri bildirim"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Telefon numarası"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Kişilere ekle"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Kapat"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Kısa mesaj"</string>
     <string name="postal_address" msgid="5031809899673855074">"Adres"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Şirket"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Bölüm"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Unvan"</string>
     <string name="label_notes" msgid="7134226125644463585">"Notlar"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Özel"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index a81ffc0..220829c 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -172,7 +172,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Налаштування"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Налаштування"</string>
     <string name="menu_help" msgid="287801702920372292">"Довідка й відгуки"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Номер телефону"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Додати до контактів"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Закрити"</string>
@@ -332,6 +333,7 @@
     <string name="sms" msgid="4246338112764847384">"Текстове повідомлення"</string>
     <string name="postal_address" msgid="5031809899673855074">"Адреса"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Компанія"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Відділ"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Назва"</string>
     <string name="label_notes" msgid="7134226125644463585">"Примітки"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Спеціальне"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 45406d2..3a3b647 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"ترتیبات"</string>
     <string name="menu_settings" msgid="3524924670246877187">"ترتیبات"</string>
     <string name="menu_help" msgid="287801702920372292">"مدد اور تاثرات"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>، <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"فون نمبر"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"رابطوں میں شامل کریں"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"بند کریں"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"متنی پیغام"</string>
     <string name="postal_address" msgid="5031809899673855074">"پتہ"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"کمپنی"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"محکمہ"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"عنوان"</string>
     <string name="label_notes" msgid="7134226125644463585">"نوٹس"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"حسب ضرورت"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index fceeec3..02904c0 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Sozlamalar"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Sozlamalar"</string>
     <string name="menu_help" msgid="287801702920372292">"Yordam/fikr-mulohaza"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Telefon raqami"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Kontaktlarga saqlash"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Yopish"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"SMS"</string>
     <string name="postal_address" msgid="5031809899673855074">"Manzil"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Kompaniya"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Bo‘lim"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Lavozimi"</string>
     <string name="label_notes" msgid="7134226125644463585">"Izohlar"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Maxsus"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 37872ae..c3495cc 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Cài đặt"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Cài đặt"</string>
     <string name="menu_help" msgid="287801702920372292">"Trợ giúp và phản hồi"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Số điện thoại"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Thêm vào danh bạ"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Đóng"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Tin nhắn văn bản"</string>
     <string name="postal_address" msgid="5031809899673855074">"Địa chỉ"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Công ty"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Phòng"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Tiêu đề"</string>
     <string name="label_notes" msgid="7134226125644463585">"Ghi chú"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Tùy chỉnh"</string>
@@ -355,9 +357,9 @@
     <string name="chat_jabber" msgid="1097960594943864847">"Trò chuyện sử dụng Jabber"</string>
     <string name="chat" msgid="8390862712584830532">"Trò chuyện"</string>
     <string name="description_minus_button" msgid="1305985971158054217">"xóa"</string>
-    <string name="expand_name_fields_description" msgid="6059558159338959487">"Hiện thêm trường tên"</string>
+    <string name="expand_name_fields_description" msgid="6059558159338959487">"Hiển thị thêm trường tên"</string>
     <string name="collapse_name_fields_description" msgid="7950435675716414477">"Thu gọn trường tên"</string>
-    <string name="expand_phonetic_name_fields_description" msgid="7414340689396399173">"Hiện thêm trường tên theo phiên âm"</string>
+    <string name="expand_phonetic_name_fields_description" msgid="7414340689396399173">"Hiển thị thêm trường tên theo phiên âm"</string>
     <string name="collapse_phonetic_name_fields_description" msgid="4614902922362144094">"Thu gọn trường tên theo phiên âm"</string>
     <string name="expand_fields_description" msgid="8604448646798943909">"Mở rộng"</string>
     <string name="collapse_fields_description" msgid="3213872920491992960">"Thu gọn"</string>
@@ -503,7 +505,7 @@
     <string name="turn_auto_sync_on_dialog_confirm_btn" msgid="5575717918836806519">"Bật"</string>
     <string name="connection_error_message" msgid="7446131881946138093">"Không có kết nối"</string>
     <string name="single_sim_display_label" msgid="264062966309455515">"SIM"</string>
-    <string name="show_more_content_description" msgid="6298277298495491712">"Hiện thêm"</string>
+    <string name="show_more_content_description" msgid="6298277298495491712">"Hiển thị thêm"</string>
     <string name="importing_sim_finished_title" msgid="6436721150882268416">"Đã nhập xong thẻ SIM"</string>
     <string name="importing_sim_failed_title" msgid="1046154274170241788">"Nhập không thành công"</string>
     <string name="importing_sim_failed_message" msgid="55568522164349044">"Không thể nhập danh bạ từ thẻ SIM"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index cbc7e81..36c1c1e 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"设置"</string>
     <string name="menu_settings" msgid="3524924670246877187">"设置"</string>
     <string name="menu_help" msgid="287801702920372292">"帮助和反馈"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>，<xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"电话号码"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"添加到通讯录"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"关闭"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"短信"</string>
     <string name="postal_address" msgid="5031809899673855074">"地址"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"公司"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"部门"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"职位"</string>
     <string name="label_notes" msgid="7134226125644463585">"备注"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"自定义"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index cb34b4e..6f3773d 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"設定"</string>
     <string name="menu_settings" msgid="3524924670246877187">"設定"</string>
     <string name="menu_help" msgid="287801702920372292">"說明和意見反映"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>，<xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"電話號碼"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"加入通訊錄"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"關閉"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"短訊"</string>
     <string name="postal_address" msgid="5031809899673855074">"地址"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"公司"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"部門"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"職位"</string>
     <string name="label_notes" msgid="7134226125644463585">"備註"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"自訂"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index e22d44c..409dc41 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"設定"</string>
     <string name="menu_settings" msgid="3524924670246877187">"設定"</string>
     <string name="menu_help" msgid="287801702920372292">"說明與意見回饋"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_1">%1$s</xliff:g> <xliff:g id="COMPANY_0">%2$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="SECOND">%2$s</xliff:g> • <xliff:g id="FIRST">%1$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"電話號碼"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"新增至通訊錄"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"關閉"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"簡訊"</string>
     <string name="postal_address" msgid="5031809899673855074">"地址"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"公司"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"部門"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"職稱"</string>
     <string name="label_notes" msgid="7134226125644463585">"附註"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"自訂"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 17bbd84..a8ebfc8 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -164,7 +164,8 @@
     <string name="activity_title_settings" msgid="4004290638426915162">"Izilungiselelo"</string>
     <string name="menu_settings" msgid="3524924670246877187">"Izilungiselelo"</string>
     <string name="menu_help" msgid="287801702920372292">"Usizo nempendulo"</string>
-    <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+    <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+    <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
     <string name="non_phone_caption" msgid="7343449684187013327">"Inombolo yefoni"</string>
     <string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Yengeza kothintana nabo"</string>
     <string name="non_phone_close" msgid="2792373584950696532">"Vala"</string>
@@ -324,6 +325,7 @@
     <string name="sms" msgid="4246338112764847384">"Umlayezo wombhalo"</string>
     <string name="postal_address" msgid="5031809899673855074">"Ikheli"</string>
     <string name="ghostData_company" msgid="3873500610390675876">"Inkampani"</string>
+    <string name="ghostData_department" msgid="8610642449404163799">"Umnyango"</string>
     <string name="ghostData_title" msgid="8584897460662904533">"Isihloko"</string>
     <string name="label_notes" msgid="7134226125644463585">"Imibhalo"</string>
     <string name="label_custom_field" msgid="4160584225306364924">"Ngokwezifiso"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 56c4aaa..faa1d96 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -452,9 +452,23 @@
     <!-- Menu item for invoking contextual Help & Feedback [CHAR LIMIT=64] -->
     <string name="menu_help">Help &amp; feedback</string>
 
-    <!-- Text used to show a organization that has both a company and title. This is used in the Detail-View
-    of a Contact. This is mostly about the formatting of the two elements, so it should be kept small [CHAR LIMIT=79] -->
-    <string name="organization_company_and_title"><xliff:g id="company" example="Technical Program Manager">%2$s</xliff:g>, <xliff:g id="company" example="Google Inc.">%1$s</xliff:g></string>
+    <!-- String used to build an organization entry containing any of the 2 fields <Company>,
+         <Department> or <Job Title>, example: Google • Developer. [CHAR LIMIT=NONE] -->
+    <string name="organization_entry_two_field">
+        <xliff:g id="first" example="Google">%1$s</xliff:g>
+         •
+         <xliff:g id="second" example="Developer">%2$s</xliff:g>
+    </string>
+
+    <!-- String used to build an organization entry containing all the field <Company>,
+       <Department> or <Job Title>, example: Google • Department • Developer. [CHAR LIMIT=NONE] -->
+    <string name="organization_entry_all_field">
+        <xliff:g id="company" example="Google">%1$s</xliff:g>
+         •
+         <xliff:g id="department" example="People">%2$s</xliff:g>
+         •
+         <xliff:g id="title" example="Developer">%3$s</xliff:g>
+    </string>
 
     <!-- Title shown for the phone number when the number tries to call on a device that it not a phone [CHAR LIMIT=30] -->
     <string name="non_phone_caption">Phone number</string>
@@ -923,6 +937,10 @@
     <!-- Hint text for the organization name when editing a business/work contact. [CHAR LIMIT=64] -->
     <string name="ghostData_company">Company</string>
 
+    <!-- Hint text for the organization department when editing a business/work contact.
+        [CHAR LIMIT=64] -->
+    <string name="ghostData_department">Department</string>
+
     <!-- Hint text for the organization title when editing a business/work contact. [CHAR LIMIT=64] -->
     <string name="ghostData_title">Title</string>
 
diff --git a/src/com/android/contacts/CallUtil.java b/src/com/android/contacts/CallUtil.java
index bba1faa..0f09df9 100644
--- a/src/com/android/contacts/CallUtil.java
+++ b/src/com/android/contacts/CallUtil.java
@@ -109,7 +109,7 @@
 
     /**
      * Return an Intent for making a phone call. A given Uri will be used as is (without any
-     * sanity check).
+     * quick check).
      */
     public static Intent getCallIntent(Uri uri) {
         return new Intent(Intent.ACTION_CALL, uri);
diff --git a/src/com/android/contacts/ContactPhotoManager.java b/src/com/android/contacts/ContactPhotoManager.java
index e5f808d..1468ed7 100644
--- a/src/com/android/contacts/ContactPhotoManager.java
+++ b/src/com/android/contacts/ContactPhotoManager.java
@@ -602,8 +602,8 @@
     private static final String[] COLUMNS = new String[] { Photo._ID, Photo.PHOTO };
 
     /**
-     * Dummy object used to indicate that a bitmap for a given key could not be stored in the
-     * cache.
+     * Placeholder object used to indicate that a bitmap for a given key could not
+     * be stored in the cache.
      */
     private static final BitmapHolder BITMAP_UNAVAILABLE;
 
diff --git a/src/com/android/contacts/SimImportFragment.java b/src/com/android/contacts/SimImportFragment.java
index cee1b1a..1d16df0 100644
--- a/src/com/android/contacts/SimImportFragment.java
+++ b/src/com/android/contacts/SimImportFragment.java
@@ -18,7 +18,6 @@
 import android.app.Activity;
 import android.app.Fragment;
 import android.app.LoaderManager;
-import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.IntentFilter;
 import android.content.Loader;
@@ -26,7 +25,7 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import com.google.android.material.snackbar.Snackbar;
-import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+
 import androidx.collection.ArrayMap;
 import androidx.core.view.ViewCompat;
 import androidx.core.widget.ContentLoadingProgressBar;
@@ -372,7 +371,7 @@
             if (position < 0 || position >= getCount()) {
                 return View.NO_ID;
             }
-            return getItem(position).getId();
+            return getItem(position).getRecordNumber();
         }
 
         @Override
diff --git a/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
index dea134b..8f0509b 100644
--- a/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
+++ b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
@@ -141,7 +141,8 @@
             mAccountListAdapter = new AccountsListAdapter(this, accounts);
             accountListView.setAdapter(mAccountListAdapter);
             accountListView.setOnItemClickListener(mAccountListItemClickListener);
-        } else if (numAccounts == 1 && !accounts.get(0).getAccount().isNullAccount()) {
+        } else if (numAccounts == 1
+                && !accounts.get(0).getAccount().equals(AccountWithDataSet.getLocalAccount(this))) {
             // If the user has 1 writable account we will just show the user a message with 2
             // possible action buttons.
             view = View.inflate(this,
diff --git a/src/com/android/contacts/database/SimContactDaoImpl.java b/src/com/android/contacts/database/SimContactDaoImpl.java
index 5ba6bd5..54106f0 100644
--- a/src/com/android/contacts/database/SimContactDaoImpl.java
+++ b/src/com/android/contacts/database/SimContactDaoImpl.java
@@ -26,20 +26,20 @@
 import android.net.Uri;
 import android.os.Build;
 import android.os.RemoteException;
-import android.provider.BaseColumns;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.CommonDataKinds.StructuredName;
 import android.provider.ContactsContract.Data;
 import android.provider.ContactsContract.RawContacts;
-import androidx.annotation.VisibleForTesting;
-import androidx.collection.ArrayMap;
+import android.provider.SimPhonebookContract;
+import android.provider.SimPhonebookContract.SimRecords;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
-import android.text.TextUtils;
 import android.util.SparseArray;
 
+import androidx.collection.ArrayMap;
+
 import com.android.contacts.R;
 import com.android.contacts.compat.CompatUtils;
 import com.android.contacts.model.SimCard;
@@ -47,6 +47,7 @@
 import com.android.contacts.model.account.AccountWithDataSet;
 import com.android.contacts.util.PermissionsUtil;
 import com.android.contacts.util.SharedPreferenceUtil;
+
 import com.google.common.base.Joiner;
 
 import java.util.ArrayList;
@@ -75,14 +76,6 @@
     // query parameter limit.
     static final int QUERY_MAX_BATCH_SIZE = 100;
 
-    @VisibleForTesting
-    public static final Uri ICC_CONTENT_URI = Uri.parse("content://icc/adn");
-
-    public static String _ID = BaseColumns._ID;
-    public static String NAME = "name";
-    public static String NUMBER = "number";
-    public static String EMAILS = "emails";
-
     private final Context mContext;
     private final ContentResolver mResolver;
     private final TelephonyManager mTelephonyManager;
@@ -128,18 +121,14 @@
         if (sim.hasValidSubscriptionId()) {
             return loadSimContacts(sim.getSubscriptionId());
         }
-        return loadSimContacts();
+        // Return an empty list.
+        return new ArrayList<>(0);
     }
 
     public ArrayList<SimContact> loadSimContacts(int subscriptionId) {
-        return loadFrom(ICC_CONTENT_URI.buildUpon()
-                .appendPath("subId")
-                .appendPath(String.valueOf(subscriptionId))
-                .build());
-    }
-
-    public ArrayList<SimContact> loadSimContacts() {
-        return loadFrom(ICC_CONTENT_URI);
+        return loadFrom(
+                SimRecords.getContentUri(
+                        subscriptionId, SimPhonebookContract.ElementaryFiles.EF_ADN));
     }
 
     @Override
@@ -273,7 +262,12 @@
     private static final Object SIM_READ_LOCK = new Object();
     private ArrayList<SimContact> loadFrom(Uri uri) {
         synchronized (SIM_READ_LOCK) {
-            final Cursor cursor = mResolver.query(uri, null, null, null, null);
+            final Cursor cursor = mResolver.query(uri,
+                    new String[]{
+                            SimRecords.RECORD_NUMBER,
+                            SimRecords.NAME,
+                            SimRecords.PHONE_NUMBER
+                    }, null, null);
             if (cursor == null) {
                 // Assume null means there are no SIM contacts.
                 return new ArrayList<>(0);
@@ -288,22 +282,20 @@
     }
 
     private ArrayList<SimContact> loadFromCursor(Cursor cursor) {
-        final int colId = cursor.getColumnIndex(_ID);
-        final int colName = cursor.getColumnIndex(NAME);
-        final int colNumber = cursor.getColumnIndex(NUMBER);
-        final int colEmails = cursor.getColumnIndex(EMAILS);
+        final int colRecordNumber = cursor.getColumnIndex(SimRecords.RECORD_NUMBER);
+        final int colName = cursor.getColumnIndex(SimRecords.NAME);
+        final int colNumber = cursor.getColumnIndex(SimRecords.PHONE_NUMBER);
 
         final ArrayList<SimContact> result = new ArrayList<>();
 
         while (cursor.moveToNext()) {
-            final long id = cursor.getLong(colId);
+            final int recordNumber = cursor.getInt(colRecordNumber);
             final String name = cursor.getString(colName);
             final String number = cursor.getString(colNumber);
-            final String emails = cursor.getString(colEmails);
 
-            final SimContact contact = new SimContact(id, name, number, parseEmails(emails));
+            final SimContact contact = new SimContact(recordNumber, name, number, null);
             // Only include contact if it has some useful data
-            if (contact.hasName() || contact.hasPhone() || contact.hasEmails()) {
+            if (contact.hasName() || contact.hasPhone()) {
                 result.add(contact);
             }
         }
@@ -392,10 +384,6 @@
         return ops;
     }
 
-    private String[] parseEmails(String emails) {
-        return !TextUtils.isEmpty(emails) ? emails.split(",") : null;
-    }
-
     private boolean hasTelephony() {
         return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY);
     }
diff --git a/src/com/android/contacts/detail/ContactDisplayUtils.java b/src/com/android/contacts/detail/ContactDisplayUtils.java
index ef9124a..198461f 100644
--- a/src/com/android/contacts/detail/ContactDisplayUtils.java
+++ b/src/com/android/contacts/detail/ContactDisplayUtils.java
@@ -42,6 +42,7 @@
 import com.android.contacts.preference.ContactsPreferences;
 import com.android.contacts.util.MoreMath;
 import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
 
 import java.util.List;
 
@@ -111,40 +112,20 @@
     }
 
     /**
-     * Returns the organization of the contact. If several organizations are given,
-     * the first one is used. Returns null if not applicable.
+     * Returns the organization of the contact. If several organizations are given, the first one
+     * is used. Returns null if not applicable.
      */
     public static String getCompany(Context context, Contact contactData) {
         final boolean displayNameIsOrganization = contactData.getDisplayNameSource()
-                == DisplayNameSources.ORGANIZATION;
+            == DisplayNameSources.ORGANIZATION;
         for (RawContact rawContact : contactData.getRawContacts()) {
             for (DataItem dataItem : Iterables.filter(
-                    rawContact.getDataItems(), OrganizationDataItem.class)) {
-                OrganizationDataItem organization = (OrganizationDataItem) dataItem;
-                final String company = organization.getCompany();
-                final String title = organization.getTitle();
-                final String combined;
-                // We need to show company and title in a combined string. However, if the
-                // DisplayName is already the organization, it mirrors company or (if company
-                // is empty title). Make sure we don't show what's already shown as DisplayName
-                if (TextUtils.isEmpty(company)) {
-                    combined = displayNameIsOrganization ? null : title;
-                } else {
-                    if (TextUtils.isEmpty(title)) {
-                        combined = displayNameIsOrganization ? null : company;
-                    } else {
-                        if (displayNameIsOrganization) {
-                            combined = title;
-                        } else {
-                            combined = context.getString(
-                                    R.string.organization_company_and_title,
-                                    company, title);
-                        }
-                    }
-                }
-
-                if (!TextUtils.isEmpty(combined)) {
-                    return combined;
+                rawContact.getDataItems(), OrganizationDataItem.class)) {
+                String organization = getFormattedCompanyString(context,
+                    (OrganizationDataItem) dataItem,
+                    displayNameIsOrganization);
+                if (!TextUtils.isEmpty(organization)) {
+                    return organization;
                 }
             }
         }
@@ -152,6 +133,41 @@
     }
 
     /**
+     * Return the formatted organization string from the given OrganizationDataItem
+     *
+     * This will combine the company, department and title in one formatted string. However, if the
+     * DisplayName is already the organization (company or title) and resulted combined string
+     * include either company or title only then we don't need to display the organization string,
+     * as it will already be shown in the DisplayName.
+     */
+    public static String getFormattedCompanyString(
+            Context context, OrganizationDataItem organization, boolean displayNameIsOrganization) {
+        List<String> text = Lists.newArrayList();
+        if (!TextUtils.isEmpty(organization.getCompany())) {
+            text.add(organization.getCompany());
+        }
+        if (!TextUtils.isEmpty(organization.getDepartment())) {
+            text.add(organization.getDepartment());
+        }
+        if (!TextUtils.isEmpty(organization.getTitle())) {
+            text.add(organization.getTitle());
+        }
+        if (text.size() == 3) {
+            return context.getString(
+                R.string.organization_entry_all_field, text.get(0), text.get(1),
+                text.get(2));
+        }
+        if (text.size() == 2) {
+            return context.getString(
+                R.string.organization_entry_two_field, text.get(0), text.get(1));
+        }
+        if (text.size() == 1 && !displayNameIsOrganization) {
+            return text.get(0);
+        }
+        return null;
+    }
+
+    /**
      * Sets the starred state of this contact.
      */
     public static void configureStarredMenuItem(MenuItem starredMenuItem, boolean isDirectoryEntry,
diff --git a/src/com/android/contacts/editor/ContactEditorUtils.java b/src/com/android/contacts/editor/ContactEditorUtils.java
index 517c2c7..0e9b5c9 100644
--- a/src/com/android/contacts/editor/ContactEditorUtils.java
+++ b/src/com/android/contacts/editor/ContactEditorUtils.java
@@ -38,9 +38,11 @@
 public class ContactEditorUtils {
     private static final String TAG = "ContactEditorUtils";
 
+    private final Context mContext;
     private final ContactsPreferences mContactsPrefs;
 
     private ContactEditorUtils(Context context) {
+        mContext = context;
         mContactsPrefs = new ContactsPreferences(context);
     }
 
@@ -122,7 +124,7 @@
     public void maybeUpdateDefaultAccount(List<AccountWithDataSet> currentWritableAccounts) {
         if (currentWritableAccounts.size() == 1) {
             final AccountWithDataSet onlyAccount = currentWritableAccounts.get(0);
-            if (!onlyAccount.isNullAccount()
+            if (!onlyAccount.equals(AccountWithDataSet.getLocalAccount(mContext))
                     && !onlyAccount.equals(mContactsPrefs.getDefaultAccount())) {
                 mContactsPrefs.setDefaultAccount(onlyAccount);
             }
diff --git a/src/com/android/contacts/editor/GroupMembershipView.java b/src/com/android/contacts/editor/GroupMembershipView.java
index f545e7b..fc28e33 100644
--- a/src/com/android/contacts/editor/GroupMembershipView.java
+++ b/src/com/android/contacts/editor/GroupMembershipView.java
@@ -267,8 +267,7 @@
     }
 
     private void updateView() {
-        if (mGroupMetaData == null || mGroupMetaData.isClosed() || mAccountType == null
-                || mAccountName == null) {
+        if (mGroupMetaData == null || mGroupMetaData.isClosed()) {
             setVisibility(GONE);
             return;
         }
@@ -282,8 +281,9 @@
             String accountName = mGroupMetaData.getString(GroupMetaDataLoader.ACCOUNT_NAME);
             String accountType = mGroupMetaData.getString(GroupMetaDataLoader.ACCOUNT_TYPE);
             String dataSet = mGroupMetaData.getString(GroupMetaDataLoader.DATA_SET);
-            if (accountName.equals(mAccountName) && accountType.equals(mAccountType)
-                    && Objects.equal(dataSet, mDataSet)) {
+            if (TextUtils.equals(accountName, mAccountName)
+                    && TextUtils.equals(accountType, mAccountType)
+                    && TextUtils.equals(dataSet, mDataSet)) {
                 long groupId = mGroupMetaData.getLong(GroupMetaDataLoader.GROUP_ID);
                 if (!mGroupMetaData.isNull(GroupMetaDataLoader.FAVORITES)
                         && mGroupMetaData.getInt(GroupMetaDataLoader.FAVORITES) != 0) {
@@ -355,8 +355,9 @@
             String accountName = mGroupMetaData.getString(GroupMetaDataLoader.ACCOUNT_NAME);
             String accountType = mGroupMetaData.getString(GroupMetaDataLoader.ACCOUNT_TYPE);
             String dataSet = mGroupMetaData.getString(GroupMetaDataLoader.DATA_SET);
-            if (accountName.equals(mAccountName) && accountType.equals(mAccountType)
-                    && Objects.equal(dataSet, mDataSet)) {
+            if (TextUtils.equals(accountName, mAccountName)
+                    && TextUtils.equals(accountType, mAccountType)
+                    && TextUtils.equals(dataSet, mDataSet)) {
                 long groupId = mGroupMetaData.getLong(GroupMetaDataLoader.GROUP_ID);
                 if (groupId != mFavoritesGroupId
                         && (groupId != mDefaultGroupId || mDefaultGroupVisible)) {
diff --git a/src/com/android/contacts/group/GroupMetaData.java b/src/com/android/contacts/group/GroupMetaData.java
index 4a8cb0f..d9ddd11 100644
--- a/src/com/android/contacts/group/GroupMetaData.java
+++ b/src/com/android/contacts/group/GroupMetaData.java
@@ -114,10 +114,7 @@
 
     /** Whether all metadata fields are set. */
     public boolean isValid() {
-        return uri != null
-                && !TextUtils.isEmpty(accountName)
-                && !TextUtils.isEmpty(groupName)
-                && groupId > 0;
+        return uri != null && !TextUtils.isEmpty(groupName) && groupId > 0;
     }
 
     @Override
diff --git a/src/com/android/contacts/group/GroupNameEditDialogFragment.java b/src/com/android/contacts/group/GroupNameEditDialogFragment.java
index 392bf24..b015b0d 100644
--- a/src/com/android/contacts/group/GroupNameEditDialogFragment.java
+++ b/src/com/android/contacts/group/GroupNameEditDialogFragment.java
@@ -27,8 +27,6 @@
 import android.database.Cursor;
 import android.os.Bundle;
 import android.provider.ContactsContract.Groups;
-import com.google.android.material.textfield.TextInputLayout;
-import androidx.appcompat.app.AlertDialog;
 import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;
@@ -39,10 +37,13 @@
 import android.widget.EditText;
 import android.widget.TextView;
 
+import androidx.appcompat.app.AlertDialog;
+
 import com.android.contacts.ContactSaveService;
 import com.android.contacts.R;
 import com.android.contacts.model.account.AccountWithDataSet;
 
+import com.google.android.material.textfield.TextInputLayout;
 import com.google.common.base.Strings;
 
 import java.util.Collections;
@@ -69,14 +70,17 @@
     /** Callbacks for hosts of the {@link GroupNameEditDialogFragment}. */
     public interface Listener {
         void onGroupNameEditCancelled();
+
         void onGroupNameEditCompleted(String name);
 
         public static final Listener None = new Listener() {
             @Override
-            public void onGroupNameEditCancelled() { }
+            public void onGroupNameEditCancelled() {
+            }
 
             @Override
-            public void onGroupNameEditCompleted(String name) { }
+            public void onGroupNameEditCompleted(String name) {
+            }
         };
     }
 
@@ -101,7 +105,7 @@
 
     private static GroupNameEditDialogFragment newInstance(
             AccountWithDataSet account, String callbackAction, long groupId, String groupName) {
-        if (account == null || account.name == null || account.type == null) {
+        if (account == null) {
             throw new IllegalArgumentException("Invalid account");
         }
         final boolean isInsert = groupId == NO_GROUP_ID;
@@ -279,7 +283,7 @@
     public Loader<Cursor> onCreateLoader(int id, Bundle args) {
         // Only a single loader so id is ignored.
         return new CursorLoader(getActivity(), Groups.CONTENT_SUMMARY_URI,
-                new String[] { Groups.TITLE, Groups.SYSTEM_ID, Groups.ACCOUNT_TYPE,
+                new String[]{Groups.TITLE, Groups.SYSTEM_ID, Groups.ACCOUNT_TYPE,
                         Groups.SUMMARY_COUNT, Groups.GROUP_IS_READ_ONLY},
                 getSelection(), getSelectionArgs(), null);
     }
@@ -353,24 +357,30 @@
 
     private String getSelection() {
         final StringBuilder builder = new StringBuilder();
-        builder.append(Groups.ACCOUNT_NAME).append("=? AND ")
-               .append(Groups.ACCOUNT_TYPE).append("=? AND ")
-               .append(Groups.DELETED).append("=?");
-        if (mAccount.dataSet != null) {
-            builder.append(" AND ").append(Groups.DATA_SET).append("=?");
-        }
+        builder.append(Groups.ACCOUNT_NAME).append(mAccount.name == null ? " IS NULL " : "=?")
+                .append(" AND ")
+                .append(Groups.ACCOUNT_TYPE).append(mAccount.type == null ? " IS NULL " : "=?")
+                .append(" AND ")
+                .append(Groups.DATA_SET).append(mAccount.dataSet == null ? " IS NULL " : "=?")
+                .append(" AND ")
+                .append(Groups.DELETED).append("=0");
         return builder.toString();
     }
 
     private String[] getSelectionArgs() {
-        final int len = mAccount.dataSet == null ? 3 : 4;
-        final String[] args = new String[len];
-        args[0] = mAccount.name;
-        args[1] = mAccount.type;
-        args[2] = "0"; // Not deleted
-        if (mAccount.dataSet != null) {
-            args[3] = mAccount.dataSet;
+        if (mAccount.isNullAccount()) {
+            return null;
+        } else if (mAccount.dataSet == null) {
+            return new String[]{
+                    mAccount.name,
+                    mAccount.type
+            };
+        } else {
+            return new String[]{
+                    mAccount.name,
+                    mAccount.type,
+                    mAccount.dataSet
+            };
         }
-        return args;
     }
 }
diff --git a/src/com/android/contacts/group/GroupUtil.java b/src/com/android/contacts/group/GroupUtil.java
index 706f16b..dae4f4e 100644
--- a/src/com/android/contacts/group/GroupUtil.java
+++ b/src/com/android/contacts/group/GroupUtil.java
@@ -46,9 +46,7 @@
  */
 public final class GroupUtil {
 
-    public final static String ALL_GROUPS_SELECTION =
-            Groups.ACCOUNT_TYPE + " NOT NULL AND " + Groups.ACCOUNT_NAME + " NOT NULL AND "
-                    + Groups.DELETED + "=0";
+    public final static String ALL_GROUPS_SELECTION = Groups.DELETED + "=0";
 
     public final static String DEFAULT_SELECTION = ALL_GROUPS_SELECTION + " AND "
             + Groups.AUTO_ADD + "=0 AND " + Groups.FAVORITES + "=0";
diff --git a/src/com/android/contacts/list/ContactListFilter.java b/src/com/android/contacts/list/ContactListFilter.java
index 32e4b9c..091a0c2 100644
--- a/src/com/android/contacts/list/ContactListFilter.java
+++ b/src/com/android/contacts/list/ContactListFilter.java
@@ -45,6 +45,7 @@
     public static final int FILTER_TYPE_SINGLE_CONTACT = -6;
     public static final int FILTER_TYPE_GROUP_MEMBERS = -7;
     public static final int FILTER_TYPE_DEVICE_CONTACTS = -8;
+    public static final int FILTER_TYPE_SIM_CONTACTS = -9;
 
     public static final int FILTER_TYPE_ACCOUNT = 0;
 
@@ -104,6 +105,12 @@
                 account.type, account.name, account.dataSet, icon);
     }
 
+    public static ContactListFilter createSimContactsFilter(Drawable icon,
+            AccountWithDataSet account) {
+        return new ContactListFilter(ContactListFilter.FILTER_TYPE_SIM_CONTACTS,
+                account.type, account.name, account.dataSet, icon);
+    }
+
     /**
      * Whether the given {@link ContactListFilter} has a filter type that should be displayed as
      * the default contacts list view.
@@ -347,7 +354,8 @@
     }
 
     public AccountWithDataSet toAccountWithDataSet() {
-        if (filterType == FILTER_TYPE_ACCOUNT || filterType == FILTER_TYPE_DEVICE_CONTACTS) {
+        if (filterType == FILTER_TYPE_ACCOUNT || filterType == FILTER_TYPE_DEVICE_CONTACTS
+                || filterType == FILTER_TYPE_SIM_CONTACTS) {
             return new AccountWithDataSet(accountName, accountType, dataSet);
         } else {
             throw new IllegalStateException("Cannot create Account from filter type " +
diff --git a/src/com/android/contacts/list/DefaultContactListAdapter.java b/src/com/android/contacts/list/DefaultContactListAdapter.java
index 20c1a8f..0744f6d 100644
--- a/src/com/android/contacts/list/DefaultContactListAdapter.java
+++ b/src/com/android/contacts/list/DefaultContactListAdapter.java
@@ -90,7 +90,8 @@
             final ContactListFilter filter = getFilter();
             configureUri(loader, directoryId, filter);
             if (filter != null
-                    && filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS) {
+                    && (filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS
+                    || filter.filterType == ContactListFilter.FILTER_TYPE_SIM_CONTACTS)) {
                 loader.setProjection(getDataProjectionForContacts(false));
             } else {
                 loader.setProjection(getProjection(false));
@@ -140,7 +141,8 @@
                 } else {
                     uri = ContentUris.withAppendedId(Contacts.CONTENT_URI, getSelectedContactId());
                 }
-            } else if (filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS) {
+            } else if (filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS
+                    || filter.filterType == ContactListFilter.FILTER_TYPE_SIM_CONTACTS) {
                 uri = Data.CONTENT_URI;
             }
         }
@@ -209,7 +211,8 @@
             case ContactListFilter.FILTER_TYPE_GROUP_MEMBERS: {
                 break;
             }
-            case ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS: {
+            case ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS:
+            case ContactListFilter.FILTER_TYPE_SIM_CONTACTS: {
                 if (filter.accountType != null) {
                     selection.append(ContactsContract.RawContacts.ACCOUNT_TYPE)
                             .append("=?");
diff --git a/src/com/android/contacts/list/GroupMemberPickerFragment.java b/src/com/android/contacts/list/GroupMemberPickerFragment.java
index e94d73b..68cb6ce 100644
--- a/src/com/android/contacts/list/GroupMemberPickerFragment.java
+++ b/src/com/android/contacts/list/GroupMemberPickerFragment.java
@@ -245,8 +245,12 @@
     @Override
     protected DefaultContactListAdapter createListAdapter() {
         final DefaultContactListAdapter adapter = new DefaultContactListAdapter(getActivity());
-        adapter.setFilter(ContactListFilter.createGroupMembersFilter(
-                mAccountType, mAccountName, mAccountDataSet));
+        if (mAccountName == null && mAccountType == null && mAccountDataSet == null) {
+            adapter.setFilter(ContactListFilter.createDeviceContactsFilter(/*icon=*/null));
+        } else {
+            adapter.setFilter(ContactListFilter.createGroupMembersFilter(
+                    mAccountType, mAccountName, mAccountDataSet));
+        }
         adapter.setSectionHeaderDisplayEnabled(true);
         adapter.setDisplayPhotos(true);
         return adapter;
diff --git a/src/com/android/contacts/model/AccountTypeManager.java b/src/com/android/contacts/model/AccountTypeManager.java
index 196e67f..8e01358 100644
--- a/src/com/android/contacts/model/AccountTypeManager.java
+++ b/src/com/android/contacts/model/AccountTypeManager.java
@@ -27,17 +27,15 @@
 import android.content.SharedPreferences;
 import android.content.SyncStatusObserver;
 import android.content.pm.PackageManager;
-import android.database.ContentObserver;
-import android.net.Uri;
 import android.os.Handler;
 import android.os.Looper;
 import android.provider.ContactsContract;
-import androidx.core.content.ContextCompat;
-import androidx.localbroadcastmanager.content.LocalBroadcastManager;
 import android.text.TextUtils;
 import android.util.Log;
 
-import com.android.contacts.Experiments;
+import androidx.core.content.ContextCompat;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+
 import com.android.contacts.R;
 import com.android.contacts.list.ContactListFilterController;
 import com.android.contacts.model.account.AccountInfo;
@@ -47,12 +45,13 @@
 import com.android.contacts.model.account.AccountWithDataSet;
 import com.android.contacts.model.account.FallbackAccountType;
 import com.android.contacts.model.account.GoogleAccountType;
+import com.android.contacts.model.account.SimAccountType;
 import com.android.contacts.model.dataitem.DataKind;
 import com.android.contacts.util.concurrent.ContactsExecutors;
-import com.android.contactsbind.experiments.Flags;
-import com.google.common.base.Preconditions;
+
 import com.google.common.base.Function;
 import com.google.common.base.Objects;
+import com.google.common.base.Preconditions;
 import com.google.common.base.Predicate;
 import com.google.common.collect.Collections2;
 import com.google.common.util.concurrent.FutureCallback;
@@ -95,6 +94,13 @@
                 return input != null && input.getType().areContactsWritable();
             }
         },
+        DRAWER_DISPLAYABLE {
+            @Override
+            public boolean apply(@Nullable AccountInfo input) {
+                return input != null && ((input.getType() instanceof SimAccountType)
+                        || input.getType().areContactsWritable());
+            }
+        },
         GROUPS_WRITABLE {
             @Override
             public boolean apply(@Nullable AccountInfo input) {
@@ -327,6 +333,10 @@
         return AccountFilter.CONTACTS_WRITABLE;
     }
 
+    public static Predicate<AccountInfo> drawerDisplayableFilter() {
+        return AccountFilter.DRAWER_DISPLAYABLE;
+    }
+
     public static Predicate<AccountInfo> groupWritableFilter() {
         return AccountFilter.GROUPS_WRITABLE;
     }
@@ -345,9 +355,11 @@
     private final AccountType mFallbackAccountType;
 
     private ListenableFuture<List<AccountWithDataSet>> mLocalAccountsFuture;
+    private ListenableFuture<List<AccountWithDataSet>> mSimAccountsFuture;
     private ListenableFuture<AccountTypeProvider> mAccountTypesFuture;
 
     private List<AccountWithDataSet> mLocalAccounts = new ArrayList<>();
+    private List<AccountWithDataSet> mSimAccounts = new ArrayList<>();
     private List<AccountWithDataSet> mAccountManagerAccounts = new ArrayList<>();
 
     private final Handler mMainThreadHandler = new Handler(Looper.getMainLooper());
@@ -362,7 +374,7 @@
             };
 
 
-    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
+    private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
             // Don't use reloadAccountTypesIfNeeded when packages change in case a contacts.xml
@@ -371,12 +383,22 @@
         }
     };
 
+    private final BroadcastReceiver mSimBroadcastReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (ContactsContract.SimContacts.ACTION_SIM_ACCOUNTS_CHANGED.equals(
+                    intent.getAction())) {
+                reloadSimAccounts();
+            }
+        }
+    };
+
     /**
      * Internal constructor that only performs initial parsing.
      */
     public AccountTypeManagerImpl(Context context) {
         mContext = context;
-        mLocalAccountLocator = DeviceLocalAccountLocator.create(context);
+        mLocalAccountLocator = new DeviceLocalAccountLocator(context, AccountManager.get(context));
         mTypeProvider = new AccountTypeProvider(context);
         mFallbackAccountType = new FallbackAccountType(context);
 
@@ -401,30 +423,14 @@
         filter = new IntentFilter(Intent.ACTION_LOCALE_CHANGED);
         mContext.registerReceiver(mBroadcastReceiver, filter);
 
+        IntentFilter simFilter = new IntentFilter(
+                ContactsContract.SimContacts.ACTION_SIM_ACCOUNTS_CHANGED);
+        mContext.registerReceiver(mSimBroadcastReceiver, simFilter);
+
         mAccountManager.addOnAccountsUpdatedListener(this, mMainThreadHandler, false);
 
         ContentResolver.addStatusChangeListener(ContentResolver.SYNC_OBSERVER_TYPE_SETTINGS, this);
 
-        // Observe changes to RAW_CONTACTS so that we will update the list of "Device" accounts
-        // if a new device contact is added or removed.
-        mContext.getContentResolver().registerContentObserver(
-                ContactsContract.RawContacts.CONTENT_URI, /* notifyDescendents */ true,
-                new ContentObserver(mMainThreadHandler) {
-                    @Override
-                    public boolean deliverSelfNotifications() {
-                        return true;
-                    }
-
-                    @Override
-                    public void onChange(boolean selfChange) {
-                        reloadLocalAccounts();
-                    }
-
-                    @Override
-                    public void onChange(boolean selfChange, Uri uri) {
-                        reloadLocalAccounts();
-                    }
-                });
         loadAccountTypes();
     }
 
@@ -463,6 +469,9 @@
         if (mLocalAccountsFuture == null) {
             reloadLocalAccounts();
         }
+        if (mSimAccountsFuture == null) {
+            reloadSimAccounts();
+        }
     }
 
     private synchronized void loadAccountTypes() {
@@ -523,6 +532,28 @@
                 mMainThreadExecutor);
     }
 
+    private synchronized void loadSimAccounts() {
+        mSimAccountsFuture = mExecutor.submit(new Callable<List<AccountWithDataSet>>() {
+            @Override
+            public List<AccountWithDataSet> call() throws Exception {
+                List<AccountWithDataSet> simAccountWithDataSets = new ArrayList<>();
+                List<ContactsContract.SimAccount> simAccounts =
+                        ContactsContract.SimContacts.getSimAccounts(mContext.getContentResolver());
+                for (ContactsContract.SimAccount simAccount : simAccounts) {
+                    simAccountWithDataSets.add(new AccountWithDataSet(simAccount.getAccountName(),
+                            simAccount.getAccountType(), null));
+                }
+                return simAccountWithDataSets;
+            }
+        });
+    }
+
+    private synchronized void reloadSimAccounts() {
+        loadSimAccounts();
+        Futures.addCallback(mSimAccountsFuture, newAccountsUpdatedCallback(mSimAccounts),
+                mMainThreadExecutor);
+    }
+
     @Override
     public ListenableFuture<List<AccountInfo>> getAccountsAsync() {
         return getAllAccountsAsyncInternal();
@@ -536,7 +567,8 @@
                         Futures.successfulAsList(
                                 Futures.transform(mAccountTypesFuture, mAccountsExtractor,
                                         MoreExecutors.directExecutor()),
-                                mLocalAccountsFuture));
+                                mLocalAccountsFuture,
+                                mSimAccountsFuture));
 
         return Futures.transform(all, new Function<List<List<AccountWithDataSet>>,
                 List<AccountInfo>>() {
@@ -545,8 +577,9 @@
             public List<AccountInfo> apply(@Nullable List<List<AccountWithDataSet>> input) {
                 // input.get(0) contains accounts from AccountManager
                 // input.get(1) contains device local accounts
-                Preconditions.checkArgument(input.size() == 2,
-                        "List should have exactly 2 elements");
+                // input.get(2) contains SIM accounts
+                Preconditions.checkArgument(input.size() == 3,
+                        "List should have exactly 3 elements");
 
                 final List<AccountInfo> result = new ArrayList<>();
                 for (AccountWithDataSet account : input.get(0)) {
@@ -558,6 +591,11 @@
                     result.add(
                             typeProvider.getTypeForAccount(account).wrapAccount(mContext, account));
                 }
+
+                for (AccountWithDataSet account : input.get(2)) {
+                    result.add(
+                            typeProvider.getTypeForAccount(account).wrapAccount(mContext, account));
+                }
                 AccountInfo.sortAccounts(null, result);
                 return result;
             }
diff --git a/src/com/android/contacts/model/ContactLoader.java b/src/com/android/contacts/model/ContactLoader.java
index cf5442f..9e690e3 100644
--- a/src/com/android/contacts/model/ContactLoader.java
+++ b/src/com/android/contacts/model/ContactLoader.java
@@ -887,24 +887,12 @@
                 .getViewContactNotifyServicePackageName();
             if (!TextUtils.isEmpty(serviceName) && !TextUtils.isEmpty(servicePackageName)) {
                 final Uri uri = ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId);
-                final Intent intent = new Intent();
-                intent.setDataAndType(uri, RawContacts.CONTENT_ITEM_TYPE);
                 if (accountType instanceof GoogleAccountType) {
-                    intent.setPackage(servicePackageName);
-                    intent
-                        .setAction("com.google.android.syncadapters.contacts.SYNC_HIGH_RES_PHOTO");
-                    List<ResolveInfo> broadcastReceivers =
-                        context.getPackageManager().queryBroadcastReceivers(intent, 0);
-                    if (!broadcastReceivers.isEmpty()) {
-                        if (Log.isLoggable(TAG, Log.DEBUG)) {
-                            for (ResolveInfo broadcastReceiver : broadcastReceivers) {
-                                Log.d(TAG, broadcastReceiver.activityInfo.toString());
-                            }
-                        }
-                        context.sendBroadcast(intent);
-                        continue;
-                    }
+                    ((GoogleAccountType) accountType).handleRawContactViewed(context, uri);
+                    continue;
                 }
+                final Intent intent = new Intent();
+                intent.setData(uri);
                 // TODO: Social Stream API is deprecated, and once the opted-in
                 // sync adapters target Android O+, we won't be able to start their services
                 // since they'll likely be in the background, so we'll need to remove the
diff --git a/src/com/android/contacts/model/Cp2DeviceLocalAccountLocator.java b/src/com/android/contacts/model/Cp2DeviceLocalAccountLocator.java
deleted file mode 100644
index 32912dc..0000000
--- a/src/com/android/contacts/model/Cp2DeviceLocalAccountLocator.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (C) 2016 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.model;
-
-import android.accounts.AccountManager;
-import android.content.ContentResolver;
-import android.database.Cursor;
-import android.net.Uri;
-import android.provider.ContactsContract;
-import androidx.annotation.VisibleForTesting;
-
-import com.android.contacts.model.account.AccountWithDataSet;
-import com.android.contacts.util.DeviceLocalAccountTypeFactory;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-/**
- * Attempts to create accounts for "Device" contacts by querying
- * CP2 for records with {@link android.provider.ContactsContract.RawContacts#ACCOUNT_TYPE} columns
- * that do not exist for any account returned by {@link AccountManager#getAccounts()}
- *
- * This class should be used from a background thread since it does DB queries
- */
-public class Cp2DeviceLocalAccountLocator extends DeviceLocalAccountLocator {
-
-    // Note this class is assuming ACCOUNT_NAME and ACCOUNT_TYPE have same values in
-    // RawContacts, Groups, and Settings. This assumption simplifies the code somewhat and it
-    // is true right now and unlikely to ever change.
-    @VisibleForTesting
-    static String[] PROJECTION = new String[] {
-            ContactsContract.RawContacts.ACCOUNT_NAME, ContactsContract.RawContacts.ACCOUNT_TYPE,
-            ContactsContract.RawContacts.DATA_SET
-    };
-
-    private static final int COL_NAME = 0;
-    private static final int COL_TYPE = 1;
-    private static final int COL_DATA_SET = 2;
-
-    private final ContentResolver mResolver;
-    private final DeviceLocalAccountTypeFactory mAccountTypeFactory;
-
-    private final String mSelection;
-    private final String[] mSelectionArgs;
-
-    public Cp2DeviceLocalAccountLocator(ContentResolver contentResolver,
-            DeviceLocalAccountTypeFactory factory,
-            Set<String> knownAccountTypes) {
-        mResolver = contentResolver;
-        mAccountTypeFactory = factory;
-
-        mSelection = getSelection(knownAccountTypes);
-        mSelectionArgs = getSelectionArgs(knownAccountTypes);
-    }
-
-    @Override
-    public List<AccountWithDataSet> getDeviceLocalAccounts() {
-
-        final Set<AccountWithDataSet> localAccounts = new HashSet<>();
-
-        // Many device accounts have default groups associated with them.
-        addAccountsFromQuery(ContactsContract.Groups.CONTENT_URI, localAccounts);
-        addAccountsFromQuery(ContactsContract.Settings.CONTENT_URI, localAccounts);
-        addAccountsFromQuery(ContactsContract.RawContacts.CONTENT_URI, localAccounts);
-
-        return new ArrayList<>(localAccounts);
-    }
-
-    private void addAccountsFromQuery(Uri uri, Set<AccountWithDataSet> accounts) {
-        final Cursor cursor = mResolver.query(uri, PROJECTION, mSelection, mSelectionArgs, null);
-
-        if (cursor == null) return;
-
-        try {
-            addAccountsFromCursor(cursor, accounts);
-        } finally {
-            cursor.close();
-        }
-    }
-
-    private void addAccountsFromCursor(Cursor cursor, Set<AccountWithDataSet> accounts) {
-        while (cursor.moveToNext()) {
-            final String name = cursor.getString(COL_NAME);
-            final String type = cursor.getString(COL_TYPE);
-            final String dataSet = cursor.getString(COL_DATA_SET);
-
-            if (DeviceLocalAccountTypeFactory.Util.isLocalAccountType(
-                    mAccountTypeFactory, type)) {
-                accounts.add(new AccountWithDataSet(name, type, dataSet));
-            }
-        }
-    }
-
-    @VisibleForTesting
-    public String getSelection() {
-        return mSelection;
-    }
-
-    @VisibleForTesting
-    public String[] getSelectionArgs() {
-        return mSelectionArgs;
-    }
-
-    private static String getSelection(Set<String> knownAccountTypes) {
-        final StringBuilder sb = new StringBuilder()
-                .append(ContactsContract.RawContacts.ACCOUNT_TYPE).append(" IS NULL");
-        if (knownAccountTypes.isEmpty()) {
-            return sb.toString();
-        }
-        sb.append(" OR ").append(ContactsContract.RawContacts.ACCOUNT_TYPE).append(" NOT IN (");
-        for (String ignored : knownAccountTypes) {
-            sb.append("?,");
-        }
-        // Remove trailing ','
-        sb.deleteCharAt(sb.length() - 1).append(')');
-        return sb.toString();
-    }
-
-    private static String[] getSelectionArgs(Set<String> knownAccountTypes) {
-        if (knownAccountTypes.isEmpty()) return null;
-
-        return knownAccountTypes.toArray(new String[knownAccountTypes.size()]);
-    }
-}
diff --git a/src/com/android/contacts/model/DeviceLocalAccountLocator.java b/src/com/android/contacts/model/DeviceLocalAccountLocator.java
index 2b987d3..e8a2ba0 100644
--- a/src/com/android/contacts/model/DeviceLocalAccountLocator.java
+++ b/src/com/android/contacts/model/DeviceLocalAccountLocator.java
@@ -18,92 +18,40 @@
 import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.content.Context;
-import android.database.Cursor;
 import android.provider.ContactsContract;
 
-import com.android.contacts.Experiments;
 import com.android.contacts.model.account.AccountWithDataSet;
 import com.android.contacts.model.account.GoogleAccountType;
-import com.android.contactsbind.ObjectFactory;
-import com.android.contactsbind.experiments.Flags;
 
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 
 /**
  * Attempts to detect accounts for device contacts
  */
-public abstract class DeviceLocalAccountLocator {
+public final class DeviceLocalAccountLocator {
+
+    private final Context mContext;
+    private final AccountManager mAccountManager;
+    private final List<AccountWithDataSet> mLocalAccount;
+
+    public DeviceLocalAccountLocator(Context context, AccountManager accountManager) {
+        mContext = context;
+        mAccountManager = accountManager;
+        mLocalAccount = Collections.singletonList(AccountWithDataSet.getLocalAccount(context));
+    }
 
     /**
      * Returns a list of device local accounts
      */
-    public abstract List<AccountWithDataSet> getDeviceLocalAccounts();
+    public List<AccountWithDataSet> getDeviceLocalAccounts() {
+        @SuppressWarnings("MissingPermission") final Account[] accounts = mAccountManager
+                .getAccountsByType(GoogleAccountType.ACCOUNT_TYPE);
 
-    // This works on Nexus and AOSP because the local device account is the null account but most
-    // OEMs have a special account name and type for their device account.
-    public static final DeviceLocalAccountLocator NULL_ONLY = new DeviceLocalAccountLocator() {
-        @Override
-        public List<AccountWithDataSet> getDeviceLocalAccounts() {
-            return Collections.singletonList(AccountWithDataSet.getNullAccount());
-        }
-    };
-
-    public static DeviceLocalAccountLocator create(Context context,
-            Set<String> knownAccountTypes) {
-        if (Flags.getInstance().getBoolean(Experiments.CP2_DEVICE_ACCOUNT_DETECTION_ENABLED)) {
-            return new Cp2DeviceLocalAccountLocator(context.getContentResolver(),
-                    ObjectFactory.getDeviceLocalAccountTypeFactory(context), knownAccountTypes);
-        }
-        return NULL_ONLY;
-    }
-
-    public static DeviceLocalAccountLocator create(Context context) {
-        final AccountManager accountManager =
-                (AccountManager) context.getSystemService(Context.ACCOUNT_SERVICE);
-        final Set<String> knownTypes = new HashSet<>();
-        for (Account account : accountManager.getAccounts()) {
-            knownTypes.add(account.type);
-        }
-        if (Flags.getInstance().getBoolean(Experiments.CP2_DEVICE_ACCOUNT_DETECTION_ENABLED)) {
-            return new Cp2DeviceLocalAccountLocator(context.getContentResolver(),
-                    ObjectFactory.getDeviceLocalAccountTypeFactory(context), knownTypes);
+        if (accounts.length > 0 && !mLocalAccount.get(0).hasData(mContext)) {
+            return Collections.emptyList();
         } else {
-            return new NexusDeviceAccountLocator(context, accountManager);
-        }
-    }
-
-    /**
-     * On Nexus the "device" account uses "null" values for the account name and type columns
-     *
-     * <p>However, the focus sync adapter migrates contacts from this null account to a Google
-     * account if one exists. Hence, the device account should be returned only when there is no
-     * Google Account added or when there already exists contacts in the null account.
-     * </p>
-     */
-    public static class NexusDeviceAccountLocator extends DeviceLocalAccountLocator {
-        private final Context mContext;
-        private final AccountManager mAccountManager;
-
-
-        public NexusDeviceAccountLocator(Context context, AccountManager accountManager) {
-            mContext = context;
-            mAccountManager = accountManager;
-        }
-
-        @Override
-        public List<AccountWithDataSet> getDeviceLocalAccounts() {
-            @SuppressWarnings("MissingPermission")
-            final Account[] accounts = mAccountManager
-                    .getAccountsByType(GoogleAccountType.ACCOUNT_TYPE);
-
-            if (accounts.length > 0 && !AccountWithDataSet.getNullAccount().hasData(mContext)) {
-                return Collections.emptyList();
-            } else {
-                return Collections.singletonList(AccountWithDataSet.getNullAccount());
-            }
+            return mLocalAccount;
         }
     }
 }
diff --git a/src/com/android/contacts/model/SimCard.java b/src/com/android/contacts/model/SimCard.java
index ea74379..969d96d 100644
--- a/src/com/android/contacts/model/SimCard.java
+++ b/src/com/android/contacts/model/SimCard.java
@@ -19,6 +19,7 @@
 import androidx.annotation.RequiresApi;
 import android.telephony.PhoneNumberUtils;
 import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.util.Log;
 
@@ -78,11 +79,6 @@
         mCountryCode = countryCode != null ? countryCode.toUpperCase(Locale.US) : null;
     }
 
-    public SimCard(String simId, CharSequence carrierName,
-            CharSequence displayName, String phoneNumber, String countryCode) {
-        this(simId, NO_SUBSCRIPTION_ID, carrierName, displayName, phoneNumber, countryCode);
-    }
-
     public String getSimId() {
         return mSimId;
     }
@@ -245,12 +241,14 @@
 
     public static SimCard create(TelephonyManager telephony, String displayLabel) {
         if (telephony.getSimState() == TelephonyManager.SIM_STATE_READY) {
-            return new SimCard(telephony.getSimSerialNumber(),
+            return new SimCard(telephony.getSimSerialNumber(), telephony.getSubscriptionId(),
                     telephony.getSimOperatorName(), displayLabel, telephony.getLine1Number(),
                     telephony.getSimCountryIso());
         } else {
             // This should never happen but in case it does just fallback to an "empty" instance
-            return new SimCard(/* SIM id */ "", /* operator name */ null, displayLabel,
+            return new SimCard(/* SIM id */ "",
+                    /* subscriptionId */ SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+                    /* operator name */ null, displayLabel,
                     /* phone number */ "", /* Country code */ null);
         }
     }
diff --git a/src/com/android/contacts/model/SimContact.java b/src/com/android/contacts/model/SimContact.java
index 7babe27..820e346 100644
--- a/src/com/android/contacts/model/SimContact.java
+++ b/src/com/android/contacts/model/SimContact.java
@@ -43,28 +43,28 @@
  * Holds data for contacts loaded from the SIM card.
  */
 public class SimContact implements Parcelable {
-    private final long mId;
+    private final int mRecordNumber;
     private final String mName;
     private final String mPhone;
     private final String[] mEmails;
 
-    public SimContact(long id, String name, String phone) {
-        this(id, name, phone, null);
+    public SimContact(int recordNumber, String name, String phone) {
+        this(recordNumber, name, phone, null);
     }
 
-    public SimContact(long id, String name, String phone, String[] emails) {
-        mId = id;
+    public SimContact(int recordNumber, String name, String phone, String[] emails) {
+        mRecordNumber = recordNumber;
         mName = name;
         mPhone = phone == null ? "" : phone.trim();
         mEmails = emails;
     }
 
     public SimContact(SimContact other) {
-        this(other.mId, other.mName, other.mPhone, other.mEmails);
+        this(other.mRecordNumber, other.mName, other.mPhone, other.mEmails);
     }
 
-    public long getId() {
-        return mId;
+    public int getRecordNumber() {
+        return mRecordNumber;
     }
 
     public String getName() {
@@ -117,7 +117,7 @@
     }
 
     public void appendAsContactRow(MatrixCursor cursor) {
-        cursor.newRow().add(ContactsContract.Contacts._ID, mId)
+        cursor.newRow().add(ContactsContract.Contacts._ID, mRecordNumber)
                 .add(ContactsContract.Contacts.DISPLAY_NAME_PRIMARY, mName)
                 .add(ContactsContract.Contacts.LOOKUP_KEY, getLookupKey());
     }
@@ -152,7 +152,7 @@
     @Override
     public String toString() {
         return "SimContact{" +
-                "mId=" + mId +
+                "mId=" + mRecordNumber +
                 ", mName='" + mName + '\'' +
                 ", mPhone='" + mPhone + '\'' +
                 ", mEmails=" + Arrays.toString(mEmails) +
@@ -166,13 +166,13 @@
 
         final SimContact that = (SimContact) o;
 
-        return mId == that.mId && Objects.equals(mName, that.mName) &&
+        return mRecordNumber == that.mRecordNumber && Objects.equals(mName, that.mName) &&
                 Objects.equals(mPhone, that.mPhone) && Arrays.equals(mEmails, that.mEmails);
     }
 
     @Override
     public int hashCode() {
-        int result = (int) (mId ^ (mId >>> 32));
+        int result = (int) (mRecordNumber ^ (mRecordNumber >>> 32));
         result = 31 * result + (mName != null ? mName.hashCode() : 0);
         result = 31 * result + (mPhone != null ? mPhone.hashCode() : 0);
         result = 31 * result + Arrays.hashCode(mEmails);
@@ -186,7 +186,7 @@
 
     @Override
     public void writeToParcel(Parcel dest, int flags) {
-        dest.writeLong(mId);
+        dest.writeInt(mRecordNumber);
         dest.writeString(mName);
         dest.writeString(mPhone);
         dest.writeStringArray(mEmails);
@@ -195,11 +195,11 @@
     public static final Creator<SimContact> CREATOR = new Creator<SimContact>() {
         @Override
         public SimContact createFromParcel(Parcel source) {
-            final long id = source.readLong();
+            final int recordNumber = source.readInt();
             final String name = source.readString();
             final String phone = source.readString();
             final String[] emails = source.createStringArray();
-            return new SimContact(id, name, phone, emails);
+            return new SimContact(recordNumber, name, phone, emails);
         }
 
         @Override
@@ -253,7 +253,7 @@
             @Override
             public int compare(SimContact lhs, SimContact rhs) {
                 // We assume ids are unique.
-                return Long.compare(lhs.mId, rhs.mId);
+                return Long.compare(lhs.mRecordNumber, rhs.mRecordNumber);
             }
         };
     }
diff --git a/src/com/android/contacts/model/account/AccountTypeProvider.java b/src/com/android/contacts/model/account/AccountTypeProvider.java
index 4f83ec6..2888dfa 100644
--- a/src/com/android/contacts/model/account/AccountTypeProvider.java
+++ b/src/com/android/contacts/model/account/AccountTypeProvider.java
@@ -83,7 +83,8 @@
      */
     public List<AccountType> getAccountTypes(String accountType) {
         // ConcurrentHashMap doesn't support null keys
-        if (accountType == null) {
+        if (accountType == null || mLocalAccountTypeFactory.classifyAccount(accountType)
+                == DeviceLocalAccountTypeFactory.TYPE_SIM) {
             AccountType type = mLocalAccountTypeFactory.getAccountType(accountType);
             // Just in case the DeviceLocalAccountTypeFactory doesn't handle the null type
             if (type == null) {
diff --git a/src/com/android/contacts/model/account/AccountWithDataSet.java b/src/com/android/contacts/model/account/AccountWithDataSet.java
index a163139..358ef9c 100644
--- a/src/com/android/contacts/model/account/AccountWithDataSet.java
+++ b/src/com/android/contacts/model/account/AccountWithDataSet.java
@@ -21,6 +21,7 @@
 import android.content.Context;
 import android.database.Cursor;
 import android.net.Uri;
+import android.os.Build;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.provider.BaseColumns;
@@ -28,8 +29,6 @@
 import android.provider.ContactsContract.RawContacts;
 import android.text.TextUtils;
 
-import com.android.contacts.model.AccountTypeManager;
-import com.android.contacts.preference.ContactsPreferences;
 import com.google.common.base.Objects;
 import com.google.common.collect.Lists;
 
@@ -88,6 +87,15 @@
         return new AccountWithDataSet(null, null, null);
     }
 
+    public static AccountWithDataSet getLocalAccount(Context context) {
+        return android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.R
+                ? getNullAccount()
+                : new AccountWithDataSet(
+                      RawContacts.getLocalAccountName(context),
+                      RawContacts.getLocalAccountType(context),
+                      null);
+    }
+
     public Account getAccountOrNull() {
         if (name != null && type != null) {
             return new Account(name, type);
@@ -255,4 +263,3 @@
         return ret;
     }
 }
-
diff --git a/src/com/android/contacts/model/account/BaseAccountType.java b/src/com/android/contacts/model/account/BaseAccountType.java
index b242950..59ad742 100644
--- a/src/com/android/contacts/model/account/BaseAccountType.java
+++ b/src/com/android/contacts/model/account/BaseAccountType.java
@@ -35,6 +35,7 @@
 import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
 import android.provider.ContactsContract.CommonDataKinds.Website;
 import android.provider.ContactsContract.Data;
+import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.inputmethod.EditorInfo;
@@ -368,6 +369,8 @@
         kind.fieldList = Lists.newArrayList();
         kind.fieldList.add(new EditField(Organization.COMPANY, R.string.ghostData_company,
                 FLAGS_GENERIC_NAME));
+        kind.fieldList.add(new EditField(Organization.DEPARTMENT, R.string.ghostData_department,
+                FLAGS_GENERIC_NAME));
         kind.fieldList.add(new EditField(Organization.TITLE, R.string.ghostData_title,
                 FLAGS_GENERIC_NAME));
 
@@ -629,23 +632,25 @@
         }
     }
 
-    public static final StringInflater ORGANIZATION_BODY_INFLATER = new StringInflater() {
-        @Override
-        public CharSequence inflateUsing(Context context, ContentValues values) {
-            final CharSequence companyValue = values.containsKey(Organization.COMPANY) ?
-                    values.getAsString(Organization.COMPANY) : null;
-            final CharSequence titleValue = values.containsKey(Organization.TITLE) ?
-                    values.getAsString(Organization.TITLE) : null;
+    public static final StringInflater ORGANIZATION_BODY_INFLATER =
+      (context, values) -> {
+        List<String> text = Lists.newArrayList();
 
-            if (companyValue != null && titleValue != null) {
-                return companyValue +  ": " + titleValue;
-            } else if (companyValue == null) {
-                return titleValue;
-            } else {
-                return companyValue;
-            }
+        if (values.containsKey(Organization.COMPANY)) {
+          text.add(values.getAsString(Organization.COMPANY));
         }
-    };
+        if (values.containsKey(Organization.DEPARTMENT)) {
+          text.add(values.getAsString(Organization.DEPARTMENT));
+        }
+        if (values.containsKey(Organization.TITLE)) {
+          text.add(values.getAsString(Organization.TITLE));
+        }
+
+        if (!text.isEmpty()) {
+          return TextUtils.join(": ", text);
+        }
+        return null;
+      };
 
     @Override
     public boolean isGroupMembershipEditable() {
@@ -1233,6 +1238,8 @@
 
             kind.fieldList.add(new EditField(Organization.COMPANY, R.string.ghostData_company,
                     FLAGS_GENERIC_NAME));
+            kind.fieldList.add(new EditField(Organization.DEPARTMENT, R.string.ghostData_department,
+                    FLAGS_GENERIC_NAME));
             kind.fieldList.add(new EditField(Organization.TITLE, R.string.ghostData_title,
                     FLAGS_GENERIC_NAME));
 
diff --git a/src/com/android/contacts/model/account/ExchangeAccountType.java b/src/com/android/contacts/model/account/ExchangeAccountType.java
index bd79852..76b5309 100644
--- a/src/com/android/contacts/model/account/ExchangeAccountType.java
+++ b/src/com/android/contacts/model/account/ExchangeAccountType.java
@@ -246,6 +246,8 @@
         kind.fieldList = Lists.newArrayList();
         kind.fieldList.add(new EditField(Organization.COMPANY, R.string.ghostData_company,
                 FLAGS_GENERIC_NAME));
+        kind.fieldList.add(new EditField(Organization.DEPARTMENT, R.string.ghostData_department,
+                FLAGS_GENERIC_NAME));
         kind.fieldList.add(new EditField(Organization.TITLE, R.string.ghostData_title,
                 FLAGS_GENERIC_NAME));
 
diff --git a/src/com/android/contacts/model/account/GoogleAccountType.java b/src/com/android/contacts/model/account/GoogleAccountType.java
index c7aac76..14d8a3d 100644
--- a/src/com/android/contacts/model/account/GoogleAccountType.java
+++ b/src/com/android/contacts/model/account/GoogleAccountType.java
@@ -18,10 +18,14 @@
 
 import android.content.ContentValues;
 import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ResolveInfo;
+import android.net.Uri;
 import android.provider.ContactsContract.CommonDataKinds.Email;
 import android.provider.ContactsContract.CommonDataKinds.Event;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.CommonDataKinds.Relation;
+import android.util.Log;
 
 import com.android.contacts.R;
 import com.android.contacts.model.dataitem.DataKind;
@@ -203,4 +207,27 @@
     public String getViewContactNotifyServicePackageName() {
         return "com.google.android.syncadapters.contacts";
     }
+
+    /**
+     * Sends a broadcast to the sync adapter to trigger a high res photo sync for the contact which
+     * was viewed
+     * @param context context to send broadcast in
+     * @param rawContactUri Uri of the raw contact viewed
+     */
+    public void handleRawContactViewed(Context context, Uri rawContactUri) {
+        final Intent intent = new Intent();
+        intent.setData(rawContactUri);
+        // New broadcast for syncing high res photo.
+        intent.setPackage(GoogleAccountType.PLUS_EXTENSION_PACKAGE_NAME);
+        intent.setAction(
+                "com.google.android.gms.people.sync.focus.SYNC_HIGH_RES_PHOTO");
+
+        context.sendBroadcast(intent);
+
+        // Old broadcast. This can be removed in T
+        intent.setPackage(getViewContactNotifyServicePackageName());
+        intent.setAction(
+                "com.google.android.syncadapters.contacts.SYNC_HIGH_RES_PHOTO");
+        context.sendBroadcast(intent);
+    }
 }
diff --git a/src/com/android/contacts/model/account/SimAccountType.java b/src/com/android/contacts/model/account/SimAccountType.java
index 360e944..19332e6 100644
--- a/src/com/android/contacts/model/account/SimAccountType.java
+++ b/src/com/android/contacts/model/account/SimAccountType.java
@@ -17,9 +17,14 @@
 
 import android.accounts.AuthenticatorDescription;
 import android.content.Context;
+import android.graphics.PorterDuff;
+import android.graphics.drawable.Drawable;
 import android.provider.ContactsContract.CommonDataKinds.Nickname;
 import android.provider.ContactsContract.CommonDataKinds.StructuredName;
 
+import androidx.core.content.ContextCompat;
+import androidx.core.content.res.ResourcesCompat;
+
 import com.android.contacts.R;
 import com.android.contacts.model.dataitem.DataKind;
 
@@ -55,7 +60,7 @@
 
     @Override
     public boolean areContactsWritable() {
-        return true;
+        return false;
     }
 
     @Override
@@ -114,6 +119,14 @@
     }
 
     @Override
+    public Drawable getDisplayIcon(Context context) {
+        final Drawable icon = ResourcesCompat.getDrawable(context.getResources(), iconRes, null);
+        icon.mutate().setColorFilter(ContextCompat.getColor(context,
+                R.color.actionbar_icon_color_grey), PorterDuff.Mode.SRC_ATOP);
+        return icon;
+    }
+
+    @Override
     public AccountInfo wrapAccount(Context context, AccountWithDataSet account) {
         // Use the "SIM" type label for the name as well because on OEM phones the "name" is
         // not always user-friendly
diff --git a/src/com/android/contacts/preference/ContactsPreferences.java b/src/com/android/contacts/preference/ContactsPreferences.java
index 85da891..e1a58d3 100644
--- a/src/com/android/contacts/preference/ContactsPreferences.java
+++ b/src/com/android/contacts/preference/ContactsPreferences.java
@@ -16,7 +16,6 @@
 
 package com.android.contacts.preference;
 
-import android.app.backup.BackupAgent;
 import android.app.backup.BackupManager;
 import android.content.Context;
 import android.content.SharedPreferences;
@@ -27,9 +26,10 @@
 import android.preference.PreferenceManager;
 import android.provider.Settings;
 import android.provider.Settings.SettingNotFoundException;
+import android.text.TextUtils;
+
 import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
-import android.text.TextUtils;
 
 import com.android.contacts.R;
 import com.android.contacts.model.account.AccountWithDataSet;
@@ -246,7 +246,7 @@
      *         true if the contact editor should show the "accounts changed" notification, that is:
      *              - If it's the first launch.
      *              - Or, if the default account has been removed.
-     *              (And some extra sanity check)
+     *              (And some extra soundness check)
      *
      * Note if this method returns {@code false}, the caller can safely assume that
      * {@link #getDefaultAccount} will return a valid account.  (Either an account which still
@@ -256,15 +256,16 @@
             currentWritableAccounts) {
         final AccountWithDataSet defaultAccount = getDefaultAccount();
 
+        AccountWithDataSet localAccount = AccountWithDataSet.getLocalAccount(mContext);
         // This shouldn't occur anymore because a "device" account is added in the case that there
         // are no other accounts but if there are no writable accounts then the default has been
         // initialized if it is "device"
         if (currentWritableAccounts.isEmpty()) {
-            return defaultAccount == null || !defaultAccount.isNullAccount();
+            return defaultAccount == null || !defaultAccount.equals(localAccount);
         }
 
         if (currentWritableAccounts.size() == 1
-                && !currentWritableAccounts.get(0).isNullAccount()) {
+                && !currentWritableAccounts.get(0).equals(localAccount)) {
             return false;
         }
 
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 43ade96..53dbf15 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -1431,10 +1431,10 @@
         } else if (dataItem instanceof OrganizationDataItem) {
             final OrganizationDataItem organization = (OrganizationDataItem) dataItem;
             header = res.getString(R.string.header_organization_entry);
-            subHeader = organization.getCompany();
             entryContextMenuInfo = new EntryContextMenuInfo(subHeader, header,
-                    dataItem.getMimeType(), dataItem.getId(), dataItem.isSuperPrimary());
-            text = organization.getTitle();
+                dataItem.getMimeType(), dataItem.getId(), dataItem.isSuperPrimary());
+            text = ContactDisplayUtils
+                .getFormattedCompanyString(context, (OrganizationDataItem) dataItem, false);
         } else if (dataItem instanceof NicknameDataItem) {
             final NicknameDataItem nickname = (NicknameDataItem) dataItem;
             // Build nickname entries
diff --git a/src/com/android/contacts/util/AccountFilterUtil.java b/src/com/android/contacts/util/AccountFilterUtil.java
index 65ee69e..c4a8df6 100644
--- a/src/com/android/contacts/util/AccountFilterUtil.java
+++ b/src/com/android/contacts/util/AccountFilterUtil.java
@@ -20,15 +20,12 @@
 import android.app.Activity;
 import android.app.Fragment;
 import android.content.ActivityNotFoundException;
-import android.content.AsyncTaskLoader;
-import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.graphics.drawable.Drawable;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Intents;
-import androidx.localbroadcastmanager.content.LocalBroadcastManager;
 import android.text.TextUtils;
 import android.util.Log;
 import android.widget.Toast;
@@ -39,9 +36,6 @@
 import com.android.contacts.list.ContactListFilter;
 import com.android.contacts.list.ContactListFilterController;
 import com.android.contacts.model.AccountTypeManager;
-import com.android.contacts.model.Contact;
-import com.android.contacts.model.account.AccountDisplayInfo;
-import com.android.contacts.model.account.AccountDisplayInfoFactory;
 import com.android.contacts.model.account.AccountInfo;
 import com.android.contacts.model.account.AccountType;
 import com.android.contacts.model.account.AccountWithDataSet;
@@ -51,16 +45,12 @@
 import com.android.contactsbind.ObjectFactory;
 
 import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Lists;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.annotation.Nullable;
-
 /**
  * Utility class for account filter manipulation.
  */
@@ -125,7 +115,7 @@
         @Override
         protected ListenableFuture<List<ContactListFilter>> loadData() {
             return Futures.transform(mAccountTypeManager.filterAccountsAsync(
-                    AccountTypeManager.writableFilter()),
+                    AccountTypeManager.drawerDisplayableFilter()),
                     new Function<List<AccountInfo>, List<ContactListFilter>>() {
                         @Override
                         public List<ContactListFilter> apply(List<AccountInfo> input) {
@@ -150,9 +140,12 @@
                 }
                 final Drawable icon = accountType != null ?
                         accountType.getDisplayIcon(getContext()) : null;
-                if (DeviceLocalAccountTypeFactory.Util.isLocalAccountType(
-                        mDeviceLocalFactory, account.type)) {
+                if (mDeviceLocalFactory.classifyAccount(account.type)
+                        == DeviceLocalAccountTypeFactory.TYPE_DEVICE) {
                     accountFilters.add(ContactListFilter.createDeviceContactsFilter(icon, account));
+                } else if (mDeviceLocalFactory.classifyAccount(account.type)
+                        == DeviceLocalAccountTypeFactory.TYPE_SIM) {
+                    accountFilters.add(ContactListFilter.createSimContactsFilter(icon, account));
                 } else {
                     accountFilters.add(ContactListFilter.createAccountFilter(
                             account.type, account.name, account.dataSet, icon));
@@ -222,6 +215,8 @@
     public static String getActionBarTitleForFilter(Context context, ContactListFilter filter) {
         if (filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS) {
             return context.getString(R.string.account_phone);
+        } else if (filter.filterType == ContactListFilter.FILTER_TYPE_SIM_CONTACTS) {
+            return context.getString(R.string.account_sim);
         } else if (filter.filterType == ContactListFilter.FILTER_TYPE_ACCOUNT &&
                 !TextUtils.isEmpty(filter.accountName)) {
             return getActionBarTitleForAccount(context, filter);
diff --git a/src/com/android/contacts/util/DeviceLocalAccountTypeFactory.java b/src/com/android/contacts/util/DeviceLocalAccountTypeFactory.java
index d3a8c16..41caa42 100644
--- a/src/com/android/contacts/util/DeviceLocalAccountTypeFactory.java
+++ b/src/com/android/contacts/util/DeviceLocalAccountTypeFactory.java
@@ -16,12 +16,17 @@
 package com.android.contacts.util;
 
 import android.content.Context;
+import android.provider.ContactsContract;
+
 import androidx.annotation.IntDef;
 
 import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountWithDataSet;
 import com.android.contacts.model.account.DeviceLocalAccountType;
+import com.android.contacts.model.account.SimAccountType;
 
 import java.lang.annotation.Retention;
+import java.util.Objects;
 
 import static java.lang.annotation.RetentionPolicy.SOURCE;
 
@@ -65,15 +70,29 @@
 
         @Override
         public int classifyAccount(String accountType) {
-            return accountType == null ? TYPE_DEVICE : TYPE_OTHER;
+            for (ContactsContract.SimAccount simAccount :
+                    ContactsContract.SimContacts.getSimAccounts(
+                            mContext.getContentResolver())) {
+                if (accountType != null && Objects.equals(accountType,
+                        simAccount.getAccountType())) {
+                    return TYPE_SIM;
+                }
+            }
+            return accountType == null ||
+                    Objects.equals(AccountWithDataSet.getLocalAccount(mContext).type, accountType)
+                    ? TYPE_DEVICE : TYPE_OTHER;
         }
 
         @Override
         public AccountType getAccountType(String accountType) {
-            if (accountType != null) {
+            if (classifyAccount(accountType) == TYPE_SIM) {
+                return new SimAccountType(mContext);
+            }
+            if (accountType != null && !Objects.equals(
+                    AccountWithDataSet.getLocalAccount(mContext).type, accountType)) {
                 throw new IllegalArgumentException(accountType + " is not a device account type.");
             }
-            return new DeviceLocalAccountType(mContext);
+            return new DeviceLocalAccountType(mContext, true);
         }
     }
 }
diff --git a/src/com/android/contacts/util/StopWatch.java b/src/com/android/contacts/util/StopWatch.java
index 4300eff..1797d2a 100644
--- a/src/com/android/contacts/util/StopWatch.java
+++ b/src/com/android/contacts/util/StopWatch.java
@@ -84,7 +84,7 @@
     }
 
     /**
-     * Return a dummy instance that does no operations.
+     * Return a no-op StopWatch instance that does no operations.
      */
     public static StopWatch getNullStopWatch() {
         return NullStopWatch.INSTANCE;
diff --git a/src/com/android/contacts/vcard/ExportProcessor.java b/src/com/android/contacts/vcard/ExportProcessor.java
old mode 100644
new mode 100755
index 66308c6..0b96ea1
--- a/src/com/android/contacts/vcard/ExportProcessor.java
+++ b/src/com/android/contacts/vcard/ExportProcessor.java
@@ -209,7 +209,7 @@
             mService.updateMediaScanner(request.destUri.getPath());
 
             successful = true;
-            final String filename = ExportVCardActivity.getOpenableUriDisplayName(mService, uri);
+            final String filename = request.displayName;
             // If it is a local file (i.e. not a file from Drive), we need to allow user to share
             // the file by pressing the notification; otherwise, it would be a file in Drive, we
             // don't need to enable this action in notification since the file is already uploaded.
diff --git a/src/com/android/contacts/vcard/ExportRequest.java b/src/com/android/contacts/vcard/ExportRequest.java
old mode 100644
new mode 100755
index 65e395e..654f65b
--- a/src/com/android/contacts/vcard/ExportRequest.java
+++ b/src/com/android/contacts/vcard/ExportRequest.java
@@ -24,12 +24,19 @@
      */
     public final String exportType;
 
+    public final String displayName;
+
     public ExportRequest(Uri destUri) {
         this(destUri, null);
     }
 
     public ExportRequest(Uri destUri, String exportType) {
+        this(destUri, exportType, null);
+    }
+
+    public ExportRequest(Uri destUri, String exportType, String displayName) {
         this.destUri = destUri;
         this.exportType = exportType;
+        this.displayName = displayName;
     }
 }
diff --git a/src/com/android/contacts/vcard/ExportVCardActivity.java b/src/com/android/contacts/vcard/ExportVCardActivity.java
old mode 100644
new mode 100755
index 690f207..87a1eb1
--- a/src/com/android/contacts/vcard/ExportVCardActivity.java
+++ b/src/com/android/contacts/vcard/ExportVCardActivity.java
@@ -136,7 +136,8 @@
                     data != null && data.getData() != null) {
                 final Uri targetFileName = data.getData();
                 if (DEBUG) Log.d(LOG_TAG, "exporting to " + targetFileName);
-                final ExportRequest request = new ExportRequest(targetFileName);
+                final String displayName = getOpenableUriDisplayName(this, targetFileName);
+                final ExportRequest request = new ExportRequest(targetFileName, null, displayName);
                 // The connection object will call finish().
                 mService.handleExportRequest(request, new NotificationImportExportListener(
                         ExportVCardActivity.this));
diff --git a/src/com/android/contacts/vcard/NotificationImportExportListener.java b/src/com/android/contacts/vcard/NotificationImportExportListener.java
old mode 100644
new mode 100755
index efd6861..3b4dc5e
--- a/src/com/android/contacts/vcard/NotificationImportExportListener.java
+++ b/src/com/android/contacts/vcard/NotificationImportExportListener.java
@@ -160,8 +160,7 @@
 
     @Override
     public Notification onExportProcessed(ExportRequest request, int jobId) {
-        final String displayName = ExportVCardActivity.getOpenableUriDisplayName(mContext,
-                request.destUri);
+        final String displayName = request.displayName;
         final String message = mContext.getString(R.string.contacts_export_will_start_message);
 
         mHandler.obtainMessage(0, message).sendToTarget();
diff --git a/src/com/android/contacts/vcard/ShareVCardActivity.java b/src/com/android/contacts/vcard/ShareVCardActivity.java
old mode 100644
new mode 100755
index 5873b7f..7e86ce1
--- a/src/com/android/contacts/vcard/ShareVCardActivity.java
+++ b/src/com/android/contacts/vcard/ShareVCardActivity.java
@@ -60,7 +60,7 @@
                 getString(R.string.contacts_file_provider_authority), file);
         if (DEBUG) Log.d(LOG_TAG, "exporting to " + contentUri);
 
-        final ExportRequest request = new ExportRequest(contentUri);
+        final ExportRequest request = new ExportRequest(contentUri, null, file.getName());
         // The connection object will call finish().
         mService.handleExportRequest(request, new NotificationImportExportListener(
                 ShareVCardActivity.this));
diff --git a/tests/Android.bp b/tests/Android.bp
index 2e1d47b..10ebbc9 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -1,3 +1,13 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "packages_apps_Contacts_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    //   SPDX-license-identifier-CC-BY
+    default_applicable_licenses: ["packages_apps_Contacts_license"],
+}
+
 android_test {
     name: "ContactsTests",
 
@@ -12,6 +22,8 @@
 
     static_libs: [
         "androidx.test.rules",
+        "androidx.test.runner",
+        "androidx.test.ext.junit",
         "hamcrest-library",
         "mockito-target-minus-junit4",
         "ub-uiautomator",
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index f61efda..f22f92c 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -40,7 +40,8 @@
         <uses-library android:name="android.test.runner" />
         <meta-data android:name="com.android.contacts.iconset" android:resource="@xml/iconset" />
 
-        <activity android:name=".allintents.AllIntentsActivity">
+        <activity android:name=".allintents.AllIntentsActivity"
+            android:exported="true">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -48,7 +49,8 @@
             </intent-filter>
         </activity>
 
-        <activity android:name=".allintents.ResultActivity">
+        <activity android:name=".allintents.ResultActivity"
+            android:exported="true">
             <intent-filter>
                 <action android:name="android.intent.action.VIEW" />
                 <category android:name="android.intent.category.DEFAULT" />
diff --git a/tests/src/com/android/contacts/activities/SimImportActivityTest.java b/tests/src/com/android/contacts/activities/SimImportActivityTest.java
index 7069ef1..250ce4b 100644
--- a/tests/src/com/android/contacts/activities/SimImportActivityTest.java
+++ b/tests/src/com/android/contacts/activities/SimImportActivityTest.java
@@ -40,6 +40,8 @@
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 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;
@@ -48,9 +50,9 @@
 
 import androidx.localbroadcastmanager.content.LocalBroadcastManager;
 import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
 
 import com.android.contacts.SimImportService;
 import com.android.contacts.database.SimContactDao;
@@ -224,10 +226,10 @@
         final AccountWithDataSet targetAccount = mAccountHelper.addTestAccount(
                 mAccountHelper.generateAccountName("SimImportActivity0_targetAccount_"));
 
-        final MockContentProvider iccProvider = new MockContentProvider();
-        iccProvider.expect(MockContentProvider.Query.forAnyUri())
-                .withDefaultProjection(new String[] {SimContactDaoImpl._ID, SimContactDaoImpl.NAME,
-                        SimContactDaoImpl.NUMBER, SimContactDaoImpl.EMAILS })
+        final MockContentProvider simPhonebookProvider = new MockContentProvider();
+        simPhonebookProvider.expect(MockContentProvider.Query.forAnyUri())
+                .withProjection(
+                        SimRecords.RECORD_NUMBER, SimRecords.NAME, SimRecords.PHONE_NUMBER)
                 .anyNumberOfTimes()
                 .returnRow(toCursorRow(new SimContact(1, "Import One", "5550101")))
                 .returnRow(toCursorRow(new SimContact(2, "Skip Two", "5550102")))
@@ -236,7 +238,7 @@
                 .returnRow(toCursorRow(new SimContact(5, "Skip Five", "5550105")))
                 .returnRow(toCursorRow(new SimContact(6, "Import Six", "5550106")));
         final MockContentResolver mockResolver = new MockContentResolver();
-        mockResolver.addProvider("icc", iccProvider);
+        mockResolver.addProvider(SimPhonebookContract.AUTHORITY, simPhonebookProvider);
         final ContentProviderClient contactsProviderClient = mContext.getContentResolver()
                 .acquireContentProviderClient(ContactsContract.AUTHORITY);
         mockResolver.addProvider(ContactsContract.AUTHORITY, new ForwardingContentProvider(
@@ -258,6 +260,7 @@
 
         mActivity = mInstrumentation.startActivitySync(
                 new Intent(mContext, SimImportActivity.class)
+                        .putExtra(SimImportActivity.EXTRA_SUBSCRIPTION_ID, 1)
                         .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
 
         assertTrue(mDevice.wait(Until.hasObject(By.desc("Show more")), TIMEOUT));
@@ -319,6 +322,7 @@
 
         mActivity = mInstrumentation.startActivitySync(
                 new Intent(mContext, SimImportActivity.class)
+                        .putExtra(SimImportActivity.EXTRA_SUBSCRIPTION_ID, 1)
                         .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
 
         assertTrue(mDevice.wait(Until.hasObject(By.text("Import One")), TIMEOUT));
@@ -351,7 +355,7 @@
     }
 
     private Object[] toCursorRow(SimContact contact) {
-        return new Object[] { contact.getId(), contact.getName(), contact.getPhone(), null };
+        return new Object[]{contact.getRecordNumber(), contact.getName(), contact.getPhone()};
     }
 
     private SimCard someSimCard() {
diff --git a/tests/src/com/android/contacts/database/SimContactDaoTests.java b/tests/src/com/android/contacts/database/SimContactDaoTests.java
index 0b5b37f..680ba10 100644
--- a/tests/src/com/android/contacts/database/SimContactDaoTests.java
+++ b/tests/src/com/android/contacts/database/SimContactDaoTests.java
@@ -45,16 +45,18 @@
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.CommonDataKinds.StructuredName;
 import android.provider.ContactsContract.Data;
+import android.provider.SimPhonebookContract;
+import android.provider.SimPhonebookContract.SimRecords;
 import android.test.mock.MockContentResolver;
 import android.test.mock.MockContext;
 
 import androidx.annotation.RequiresApi;
 import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
 import androidx.test.filters.Suppress;
-import androidx.test.runner.AndroidJUnit4;
 
 import com.android.contacts.model.SimCard;
 import com.android.contacts.model.SimContact;
@@ -578,92 +580,78 @@
     @RunWith(AndroidJUnit4.class)
     public static class LoadContactsUnitTests {
 
-        private MockContentProvider mMockIccProvider;
+        private MockContentProvider mMockSimPhonebookProvider;
         private Context mContext;
 
         @Before
         public void setUp() {
             mContext = mock(MockContext.class);
             final MockContentResolver mockResolver = new MockContentResolver();
-            mMockIccProvider = new MockContentProvider();
-            mockResolver.addProvider("icc", mMockIccProvider);
+            mMockSimPhonebookProvider = new MockContentProvider();
+            mockResolver.addProvider(SimPhonebookContract.AUTHORITY, mMockSimPhonebookProvider);
             when(mContext.getContentResolver()).thenReturn(mockResolver);
         }
 
 
         @Test
         public void createsContactsFromCursor() {
-            mMockIccProvider.expect(MockContentProvider.Query.forAnyUri())
+            mMockSimPhonebookProvider.expect(MockContentProvider.Query.forAnyUri())
                     .withDefaultProjection(
-                            SimContactDaoImpl._ID, SimContactDaoImpl.NAME,
-                            SimContactDaoImpl.NUMBER, SimContactDaoImpl.EMAILS)
+                            SimRecords.RECORD_NUMBER, SimRecords.NAME, SimRecords.PHONE_NUMBER)
                     .withAnyProjection()
                     .withAnySelection()
                     .withAnySortOrder()
-                    .returnRow(1, "Name One", "5550101", null)
-                    .returnRow(2, "Name Two", "5550102", null)
-                    .returnRow(3, "Name Three", null, null)
-                    .returnRow(4, null, "5550104", null)
-                    .returnRow(5, "Name Five", "5550105",
-                            "five@example.com,nf@example.com,name.five@example.com")
-                    .returnRow(6, "Name Six", "5550106", "thesix@example.com");
+                    .returnRow(1, "Name One", "5550101")
+                    .returnRow(2, "Name Two", "5550102")
+                    .returnRow(3, "Name Three", null)
+                    .returnRow(4, null, "5550104");
 
             final SimContactDao sut = SimContactDao.create(mContext);
             final List<SimContact> contacts = sut
-                    .loadContactsForSim(new SimCard("123", "carrier", "sim", null, "us"));
+                    .loadContactsForSim(new SimCard("123", 1, "carrier", "sim", null, "us"));
 
             assertThat(contacts, equalTo(
                     Arrays.asList(
                             new SimContact(1, "Name One", "5550101", null),
                             new SimContact(2, "Name Two", "5550102", null),
                             new SimContact(3, "Name Three", null, null),
-                            new SimContact(4, null, "5550104", null),
-                            new SimContact(5, "Name Five", "5550105", new String[] {
-                                    "five@example.com", "nf@example.com", "name.five@example.com"
-                            }),
-                            new SimContact(6, "Name Six", "5550106", new String[] {
-                                    "thesix@example.com"
-                            })
+                            new SimContact(4, null, "5550104", null)
                     )));
         }
 
         @Test
         public void excludesEmptyContactsFromResult() {
-            mMockIccProvider.expect(MockContentProvider.Query.forAnyUri())
+            mMockSimPhonebookProvider.expect(MockContentProvider.Query.forAnyUri())
                     .withDefaultProjection(
-                            SimContactDaoImpl._ID, SimContactDaoImpl.NAME,
-                            SimContactDaoImpl.NUMBER, SimContactDaoImpl.EMAILS)
+                            SimRecords.RECORD_NUMBER, SimRecords.NAME, SimRecords.PHONE_NUMBER)
                     .withAnyProjection()
                     .withAnySelection()
                     .withAnySortOrder()
-                    .returnRow(1, "Non Empty1", "5550101", null)
-                    .returnRow(2, "", "", "")
-                    .returnRow(3, "Non Empty2", null, null)
-                    .returnRow(4, null, null, null)
-                    .returnRow(5, "", null, null)
-                    .returnRow(6, null, "5550102", null)
-                    .returnRow(7, null, null, "user@example.com");
+                    .returnRow(1, "Non Empty1", "5550101")
+                    .returnRow(2, "", "")
+                    .returnRow(3, "Non Empty2", null)
+                    .returnRow(4, null, null)
+                    .returnRow(5, "", null)
+                    .returnRow(6, null, "5550102");
 
             final SimContactDao sut = SimContactDao.create(mContext);
             final List<SimContact> contacts = sut
-                    .loadContactsForSim(new SimCard("123", "carrier", "sim", null, "us"));
+                    .loadContactsForSim(new SimCard("123", 1, "carrier", "sim", null, "us"));
 
             assertThat(contacts, equalTo(
                     Arrays.asList(
                             new SimContact(1, "Non Empty1", "5550101", null),
                             new SimContact(3, "Non Empty2", null, null),
-                            new SimContact(6, null, "5550102", null),
-                            new SimContact(7, null, null, new String[] { "user@example.com" })
+                            new SimContact(6, null, "5550102", null)
                     )));
         }
 
         @Test
         public void usesSimCardSubscriptionIdIfAvailable() {
-            mMockIccProvider.expectQuery(SimContactDaoImpl.ICC_CONTENT_URI.buildUpon()
-                    .appendPath("subId").appendPath("2").build())
+            mMockSimPhonebookProvider.expectQuery(SimRecords.getContentUri(2,
+                    SimPhonebookContract.ElementaryFiles.EF_ADN))
                     .withDefaultProjection(
-                            SimContactDaoImpl._ID, SimContactDaoImpl.NAME,
-                            SimContactDaoImpl.NUMBER, SimContactDaoImpl.EMAILS)
+                            SimRecords.RECORD_NUMBER, SimRecords.NAME, SimRecords.PHONE_NUMBER)
                     .withAnyProjection()
                     .withAnySelection()
                     .withAnySortOrder()
@@ -671,32 +659,14 @@
 
             final SimContactDao sut = SimContactDao.create(mContext);
             sut.loadContactsForSim(new SimCard("123", 2, "carrier", "sim", null, "us"));
-            mMockIccProvider.verify();
-        }
-
-        @Test
-        public void omitsSimCardSubscriptionIdIfUnavailable() {
-            mMockIccProvider.expectQuery(SimContactDaoImpl.ICC_CONTENT_URI)
-                    .withDefaultProjection(
-                            SimContactDaoImpl._ID, SimContactDaoImpl.NAME,
-                            SimContactDaoImpl.NUMBER, SimContactDaoImpl.EMAILS)
-                    .withAnyProjection()
-                    .withAnySelection()
-                    .withAnySortOrder()
-                    .returnEmptyCursor();
-
-            final SimContactDao sut = SimContactDao.create(mContext);
-            sut.loadContactsForSim(new SimCard("123", SimCard.NO_SUBSCRIPTION_ID,
-                    "carrier", "sim", null, "us"));
-            mMockIccProvider.verify();
+            mMockSimPhonebookProvider.verify();
         }
 
         @Test
         public void returnsEmptyListForEmptyCursor() {
-            mMockIccProvider.expect(MockContentProvider.Query.forAnyUri())
+            mMockSimPhonebookProvider.expect(MockContentProvider.Query.forAnyUri())
                     .withDefaultProjection(
-                            SimContactDaoImpl._ID, SimContactDaoImpl.NAME,
-                            SimContactDaoImpl.NUMBER, SimContactDaoImpl.EMAILS)
+                            SimRecords.RECORD_NUMBER, SimRecords.NAME, SimRecords.PHONE_NUMBER)
                     .withAnyProjection()
                     .withAnySelection()
                     .withAnySortOrder()
@@ -704,7 +674,7 @@
 
             final SimContactDao sut = SimContactDao.create(mContext);
             List<SimContact> result = sut
-                    .loadContactsForSim(new SimCard("123", "carrier", "sim", null, "us"));
+                    .loadContactsForSim(new SimCard("123", 1, "carrier", "sim", null, "us"));
             assertTrue(result.isEmpty());
         }
 
@@ -725,7 +695,7 @@
 
             final SimContactDao sut = SimContactDao.create(mContext);
             final List<SimContact> result = sut
-                    .loadContactsForSim(new SimCard("123", "carrier", "sim", null, "us"));
+                    .loadContactsForSim(new SimCard("123", 1, "carrier", "sim", null, "us"));
             assertTrue(result.isEmpty());
         }
     }
diff --git a/tests/src/com/android/contacts/editor/ContactEditorUtilsTest.java b/tests/src/com/android/contacts/editor/ContactEditorUtilsTest.java
index 7ffecc1..06d64a8 100644
--- a/tests/src/com/android/contacts/editor/ContactEditorUtilsTest.java
+++ b/tests/src/com/android/contacts/editor/ContactEditorUtilsTest.java
@@ -197,7 +197,7 @@
     }
 
     @Test
-    public void testShouldShowAccountChangedNotification_sanity_check() {
+    public void testShouldShowAccountChangedNotification_initial_check() {
         // Prepare 1 account and save it as the default.
         mTarget.saveDefaultAccount(ACCOUNT_1_A);
 
diff --git a/tests/src/com/android/contacts/model/Cp2DeviceLocalAccountLocatorTests.java b/tests/src/com/android/contacts/model/Cp2DeviceLocalAccountLocatorTests.java
deleted file mode 100644
index 7dbf933..0000000
--- a/tests/src/com/android/contacts/model/Cp2DeviceLocalAccountLocatorTests.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Copyright (C) 2016 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.model;
-
-import android.content.ContentProvider;
-import android.content.ContentResolver;
-import android.database.Cursor;
-import android.database.MatrixCursor;
-import android.net.Uri;
-import android.os.CancellationSignal;
-import android.provider.ContactsContract;
-import android.provider.ContactsContract.RawContacts;
-import androidx.annotation.Nullable;
-import android.test.AndroidTestCase;
-import android.test.mock.MockContentResolver;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import com.android.contacts.test.mocks.MockContentProvider;
-import com.android.contacts.tests.FakeDeviceAccountTypeFactory;
-import com.android.contacts.util.DeviceLocalAccountTypeFactory;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-
-@SmallTest
-public class Cp2DeviceLocalAccountLocatorTests extends AndroidTestCase {
-
-    // Basic smoke test that just checks that it doesn't throw when loading from CP2. We don't
-    // care what CP2 actually contains for this.
-    public void testShouldNotCrash() {
-        final DeviceLocalAccountLocator sut = new Cp2DeviceLocalAccountLocator(
-                getContext().getContentResolver(),
-                new DeviceLocalAccountTypeFactory.Default(getContext()),
-                Collections.<String>emptySet());
-        sut.getDeviceLocalAccounts();
-        // We didn't throw so it passed
-    }
-
-    public void test_getDeviceLocalAccounts_returnsEmptyListWhenQueryReturnsNull() {
-        final DeviceLocalAccountLocator sut = createWithQueryResult(null);
-        assertTrue(sut.getDeviceLocalAccounts().isEmpty());
-    }
-
-    public void test_getDeviceLocalAccounts_returnsEmptyListWhenNoRawContactsHaveDeviceType() {
-        final DeviceLocalAccountLocator sut = createWithQueryResult(queryResult(
-                        "user", "com.example",
-                        "user", "com.example",
-                        "user", "com.example"));
-        assertTrue(sut.getDeviceLocalAccounts().isEmpty());
-    }
-
-    public void test_getDeviceLocalAccounts_returnsListWithItemForNullAccount() {
-        final DeviceLocalAccountLocator sut = createWithQueryResult(queryResult(
-                "user", "com.example",
-                null, null,
-                "user", "com.example",
-                null, null));
-
-        assertEquals(1, sut.getDeviceLocalAccounts().size());
-    }
-
-    public void test_getDeviceLocalAccounts_containsItemForEachDeviceAccount() {
-        final DeviceLocalAccountTypeFactory stubFactory = new FakeDeviceAccountTypeFactory()
-                .withDeviceTypes(null, "vnd.sec.contact.phone")
-                .withSimTypes("vnd.sec.contact.sim");
-        final DeviceLocalAccountLocator sut = createLocator(queryResult(
-                "user", "com.example",
-                "user", "com.example",
-                "phone_account", "vnd.sec.contact.phone",
-                null, null,
-                "phone_account", "vnd.sec.contact.phone",
-                "user", "com.example",
-                null, null,
-                "sim_account", "vnd.sec.contact.sim",
-                "sim_account_2", "vnd.sec.contact.sim"
-        ), stubFactory);
-
-
-        assertEquals(4, sut.getDeviceLocalAccounts().size());
-    }
-
-    public void test_getDeviceLocalAccounts_doesNotContainItemsForKnownAccountTypes() {
-        final Cp2DeviceLocalAccountLocator sut = new Cp2DeviceLocalAccountLocator(
-                getContext().getContentResolver(), new FakeDeviceAccountTypeFactory(),
-                new HashSet<>(Arrays.asList("com.example", "com.example.1")));
-
-        assertTrue("Selection should filter known accounts",
-                sut.getSelection().contains("NOT IN (?,?)"));
-
-        final List<String> args = Arrays.asList(sut.getSelectionArgs());
-        assertEquals(2, args.size());
-        assertTrue("Selection args is missing an expected value", args.contains("com.example"));
-        assertTrue("Selection args is missing an expected value", args.contains("com.example.1"));
-    }
-
-    public void test_getDeviceLocalAccounts_includesAccountsFromSettings() {
-        final DeviceLocalAccountTypeFactory stubFactory = new FakeDeviceAccountTypeFactory()
-                .withDeviceTypes(null, "vnd.sec.contact.phone")
-                .withSimTypes("vnd.sec.contact.sim");
-        final DeviceLocalAccountLocator sut = createLocator(new FakeContactsProvider()
-                .withQueryResult(ContactsContract.Settings.CONTENT_URI, queryResult(
-                        "phone_account", "vnd.sec.contact.phone",
-                        "sim_account", "vnd.sec.contact.sim"
-                )), stubFactory);
-
-        assertEquals(2, sut.getDeviceLocalAccounts().size());
-    }
-
-    public void test_getDeviceLocalAccounts_includesAccountsFromGroups() {
-        final DeviceLocalAccountTypeFactory stubFactory = new FakeDeviceAccountTypeFactory()
-                .withDeviceTypes(null, "vnd.sec.contact.phone")
-                .withSimTypes("vnd.sec.contact.sim");
-        final DeviceLocalAccountLocator sut = createLocator(new FakeContactsProvider()
-                .withQueryResult(ContactsContract.Groups.CONTENT_URI, queryResult(
-                        "phone_account", "vnd.sec.contact.phone",
-                        "sim_account", "vnd.sec.contact.sim"
-                )), stubFactory);
-
-        assertEquals(2, sut.getDeviceLocalAccounts().size());
-    }
-
-    private DeviceLocalAccountLocator createWithQueryResult(
-            Cursor cursor) {
-        return createLocator(cursor, new DeviceLocalAccountTypeFactory.Default(mContext));
-    }
-
-    private DeviceLocalAccountLocator createLocator(ContentProvider contactsProvider,
-            DeviceLocalAccountTypeFactory localAccountTypeFactory) {
-        final DeviceLocalAccountLocator locator = new Cp2DeviceLocalAccountLocator(
-                createContentResolverWithProvider(contactsProvider),
-                localAccountTypeFactory, Collections.<String>emptySet());
-        return locator;
-    }
-
-    private DeviceLocalAccountLocator createLocator(Cursor cursor,
-            DeviceLocalAccountTypeFactory localAccountTypeFactory) {
-        final DeviceLocalAccountLocator locator = new Cp2DeviceLocalAccountLocator(
-                createStubResolverWithContentQueryResult(cursor),
-                localAccountTypeFactory,
-                Collections.<String>emptySet());
-        return locator;
-    }
-
-    private ContentResolver createContentResolverWithProvider(ContentProvider contactsProvider) {
-        final MockContentResolver resolver = new MockContentResolver();
-        resolver.addProvider(ContactsContract.AUTHORITY, contactsProvider);
-        return resolver;
-    }
-
-    private ContentResolver createStubResolverWithContentQueryResult(Cursor cursor) {
-        final MockContentResolver resolver = new MockContentResolver();
-        resolver.addProvider(ContactsContract.AUTHORITY, new FakeContactsProvider()
-                .withDefaultQueryResult(cursor));
-        return resolver;
-    }
-
-    private Cursor queryResult(String... nameTypePairs) {
-        final MatrixCursor cursor = new MatrixCursor(new String[]
-                { RawContacts.ACCOUNT_NAME, RawContacts.ACCOUNT_TYPE, RawContacts.DATA_SET });
-        for (int i = 0; i < nameTypePairs.length; i+=2) {
-            cursor.newRow().add(nameTypePairs[i]).add(nameTypePairs[i+1])
-                    .add(null);
-        }
-        return cursor;
-    }
-
-    private static class FakeContactsProvider extends MockContentProvider {
-        public Cursor mNextQueryResult;
-        public Map<Uri, Cursor> mNextResultMapping = new HashMap<>();
-
-        public FakeContactsProvider() {}
-
-        public FakeContactsProvider withDefaultQueryResult(Cursor cursor) {
-            mNextQueryResult = cursor;
-            return this;
-        }
-
-        public FakeContactsProvider withQueryResult(Uri uri, Cursor cursor) {
-            mNextResultMapping.put(uri, cursor);
-            return this;
-        }
-
-        @Override
-        public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
-                String sortOrder) {
-            return query(uri, projection, selection, selectionArgs, sortOrder, null);
-        }
-
-        @Nullable
-        @Override
-        public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
-                String sortOrder, CancellationSignal cancellationSignal) {
-            final Cursor result = mNextResultMapping.get(uri);
-            if (result == null) {
-                return mNextQueryResult;
-            } else {
-                return result;
-            }
-        }
-    }
-}
diff --git a/tests/src/com/android/contacts/model/RawContactDeltaListTests.java b/tests/src/com/android/contacts/model/RawContactDeltaListTests.java
index 03e1d4f..d9ff184 100644
--- a/tests/src/com/android/contacts/model/RawContactDeltaListTests.java
+++ b/tests/src/com/android/contacts/model/RawContactDeltaListTests.java
@@ -17,6 +17,8 @@
 package com.android.contacts.model;
 
 import android.content.ContentProviderOperation;
+import android.content.ContentProviderResult;
+import android.content.ContentUris;
 import android.content.ContentValues;
 import android.content.Context;
 import android.net.Uri;
@@ -56,6 +58,8 @@
     public static final long CONTACT_BOB = 10;
     public static final long CONTACT_MARY = 11;
 
+    public static final long INSERTED_CONTACT_ID = 3;
+
     public static final long PHONE_RED = 20;
     public static final long PHONE_GREEN = 21;
     public static final long PHONE_BLUE = 22;
@@ -182,6 +186,8 @@
 
     static void assertDiffPattern(ArrayList<CPOWrapper> diff, CPOWrapper... pattern) {
         assertEquals("Unexpected operations", pattern.length, diff.size());
+
+        ContentProviderResult[] fakeBackReferences = new ContentProviderResult[diff.size()];
         for (int i = 0; i < pattern.length; i++) {
             final CPOWrapper expected = pattern[i];
             final CPOWrapper found = diff.get(i);
@@ -193,21 +199,25 @@
             final String foundType = getTypeString(found);
             assertEquals("Unexpected type", expectedType, foundType);
 
-            if (CompatUtils.isDeleteCompat(expected)) continue;
-
-            try {
-                final ContentValues expectedValues = getValues(expected.getOperation());
-                final ContentValues foundValues = getValues(found.getOperation());
-
-                expectedValues.remove(BaseColumns._ID);
-                foundValues.remove(BaseColumns._ID);
-
-                assertEquals("Unexpected values", expectedValues, foundValues);
-            } catch (NoSuchFieldException e) {
-                fail(e.toString());
-            } catch (IllegalAccessException e) {
-                fail(e.toString());
+            if (CompatUtils.isDeleteCompat(expected)) {
+                continue;
             }
+
+            if (CompatUtils.isInsertCompat(found)) {
+                fakeBackReferences[i] = new ContentProviderResult(
+                        ContentUris.withAppendedId(RawContacts.CONTENT_URI, INSERTED_CONTACT_ID));
+            } else if (CompatUtils.isUpdateCompat(found)) {
+                fakeBackReferences[i] = new ContentProviderResult(1);
+            }
+
+
+            ContentValues expectedValues = expected.getOperation().resolveValueBackReferences(
+                    new ContentProviderResult[0], 0);
+            ContentValues foundValues = found.getOperation().resolveValueBackReferences(
+                    fakeBackReferences, fakeBackReferences.length);
+            expectedValues.remove(BaseColumns._ID);
+            foundValues.remove(BaseColumns._ID);
+            assertEquals("Unexpected values", expectedValues, foundValues);
         }
     }
 
@@ -247,6 +257,7 @@
     static CPOWrapper buildUpdateAggregationKeepTogether(long rawContactId) {
         final ContentValues values = new ContentValues();
         values.put(AggregationExceptions.RAW_CONTACT_ID1, rawContactId);
+        values.put(AggregationExceptions.RAW_CONTACT_ID2, INSERTED_CONTACT_ID);
         values.put(AggregationExceptions.TYPE, AggregationExceptions.TYPE_KEEP_TOGETHER);
         return buildCPOWrapper(AggregationExceptions.CONTENT_URI, TYPE_UPDATE, values);
     }
@@ -462,7 +473,8 @@
         assertDiffPattern(first,
                 buildAssertVersion(VER_FIRST),
                 buildUpdateAggregationSuspended(),
-                buildCPOWrapper(Data.CONTENT_URI, TYPE_INSERT, buildDataInsert(bluePhone, CONTACT_BOB)),
+                buildCPOWrapper(Data.CONTENT_URI, TYPE_INSERT,
+                        buildDataInsert(bluePhone, CONTACT_BOB)),
                 buildUpdateAggregationDefault());
 
         // Merge in the second version, verify that our insert remains
@@ -470,7 +482,8 @@
         assertDiffPattern(merged,
                 buildAssertVersion(VER_SECOND),
                 buildUpdateAggregationSuspended(),
-                buildCPOWrapper(Data.CONTENT_URI, TYPE_INSERT, buildDataInsert(bluePhone, CONTACT_BOB)),
+                buildCPOWrapper(Data.CONTENT_URI, TYPE_INSERT,
+                        buildDataInsert(bluePhone, CONTACT_BOB)),
                 buildUpdateAggregationDefault());
     }
 
@@ -479,10 +492,11 @@
                 VER_FIRST, buildPhone(PHONE_RED)));
         final RawContactDeltaList second = buildSet(buildBeforeEntity(mContext, CONTACT_BOB,
                 VER_SECOND, buildPhone(PHONE_RED)), buildBeforeEntity(mContext, CONTACT_MARY,
-                        VER_SECOND, buildPhone(PHONE_RED)));
+                VER_SECOND, buildPhone(PHONE_RED)));
 
         // Add new contact locally, should remain insert
         final ContentValues joePhoneInsert = buildPhone(PHONE_BLUE);
+        joePhoneInsert.put(Data.RAW_CONTACT_ID, INSERTED_CONTACT_ID);
         final RawContactDelta joeContact = buildAfterEntity(joePhoneInsert);
         final ContentValues joeContactInsert = joeContact.getValues().getCompleteValues();
         joeContactInsert.put(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_SUSPENDED);
@@ -542,6 +556,7 @@
                 buildUpdateAggregationDefault());
 
         final ContentValues phoneInsert = phone.getCompleteValues();
+        phoneInsert.put(Data.RAW_CONTACT_ID, INSERTED_CONTACT_ID);
         final ContentValues contactInsert = first.getByRawContactId(CONTACT_MARY).getValues()
                 .getCompleteValues();
         contactInsert.put(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_SUSPENDED);
@@ -562,11 +577,11 @@
         final RawContactDeltaList second = buildSet(buildBeforeEntity(mContext, CONTACT_BOB,
                 VER_SECOND, buildPhone(PHONE_RED)));
 
-        assertEquals((Long)VER_FIRST, getVersion(first, CONTACT_BOB));
-        assertEquals((Long)VER_SECOND, getVersion(second, CONTACT_BOB));
+        assertEquals((Long) VER_FIRST, getVersion(first, CONTACT_BOB));
+        assertEquals((Long) VER_SECOND, getVersion(second, CONTACT_BOB));
 
         final RawContactDeltaList merged = RawContactDeltaList.mergeAfter(second, first);
-        assertEquals((Long)VER_SECOND, getVersion(merged, CONTACT_BOB));
+        assertEquals((Long) VER_SECOND, getVersion(merged, CONTACT_BOB));
     }
 
     public void testMergeAfterEnsureAndTrim() {
@@ -585,7 +600,8 @@
         assertDiffPattern(first,
                 buildAssertVersion(VER_FIRST),
                 buildUpdateAggregationSuspended(),
-                buildCPOWrapper(Data.CONTENT_URI, TYPE_INSERT, buildDataInsert(bobPhone, CONTACT_BOB)),
+                buildCPOWrapper(Data.CONTENT_URI, TYPE_INSERT,
+                        buildDataInsert(bobPhone, CONTACT_BOB)),
                 buildUpdateAggregationDefault());
 
         // Trim values and ensure that we don't insert things
diff --git a/tests/src/com/android/contacts/tests/FakeSimContactDao.java b/tests/src/com/android/contacts/tests/FakeSimContactDao.java
index c40ab25..ab6c653 100644
--- a/tests/src/com/android/contacts/tests/FakeSimContactDao.java
+++ b/tests/src/com/android/contacts/tests/FakeSimContactDao.java
@@ -110,5 +110,4 @@
         result.canReadSimContacts = false;
         return result;
     }
-
 }
diff --git a/tests/src/com/android/contacts/tests/SimContactsTestHelper.java b/tests/src/com/android/contacts/tests/SimContactsTestHelper.java
index 740d013..99c95cb 100644
--- a/tests/src/com/android/contacts/tests/SimContactsTestHelper.java
+++ b/tests/src/com/android/contacts/tests/SimContactsTestHelper.java
@@ -28,13 +28,15 @@
 import android.database.Cursor;
 import android.net.Uri;
 import android.os.RemoteException;
+import android.provider.SimPhonebookContract;
+import android.provider.SimPhonebookContract.ElementaryFiles;
+import android.provider.SimPhonebookContract.SimRecords;
 import android.telephony.TelephonyManager;
 
 import androidx.annotation.NonNull;
 import androidx.test.InstrumentationRegistry;
 
 import com.android.contacts.database.SimContactDao;
-import com.android.contacts.database.SimContactDaoImpl;
 import com.android.contacts.model.SimCard;
 import com.android.contacts.model.SimContact;
 
@@ -47,6 +49,8 @@
     private final TelephonyManager mTelephonyManager;
     private final ContentResolver mResolver;
     private final SimContactDao mSimDao;
+    private final int mSubscriptionId;
+    private final Uri mDefaultSimAdnUri;
 
     public SimContactsTestHelper() {
         this(InstrumentationRegistry.getTargetContext());
@@ -57,10 +61,13 @@
         mResolver = context.getContentResolver();
         mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
         mSimDao = SimContactDao.create(context);
+        mSubscriptionId = mTelephonyManager.getSubscriptionId();
+        mDefaultSimAdnUri = SimRecords.getContentUri(
+                mTelephonyManager.getSubscriptionId(), ElementaryFiles.EF_ADN);
     }
 
     public int getSimContactCount() {
-        Cursor cursor = mContext.getContentResolver().query(SimContactDaoImpl.ICC_CONTENT_URI,
+        Cursor cursor = mContext.getContentResolver().query(mDefaultSimAdnUri,
                 null, null, null, null);
         try {
             return cursor.getCount();
@@ -71,15 +78,13 @@
 
     public Uri addSimContact(String name, String number) {
         ContentValues values = new ContentValues();
-        // Oddly even though it's called name when querying we have to use "tag" for it to work
-        // when inserting.
         if (name != null) {
-            values.put("tag", name);
+            values.put(SimRecords.NAME, name);
         }
         if (number != null) {
-            values.put(SimContactDaoImpl.NUMBER, number);
+            values.put(SimRecords.PHONE_NUMBER, number);
         }
-        return mResolver.insert(SimContactDaoImpl.ICC_CONTENT_URI, values);
+        return mResolver.insert(mDefaultSimAdnUri, values);
     }
 
     public ContentProviderResult[] deleteAllSimContacts()
@@ -92,11 +97,11 @@
         ArrayList<ContentProviderOperation> ops = new ArrayList<>();
         for (SimContact contact : contacts) {
             ops.add(ContentProviderOperation
-                    .newDelete(SimContactDaoImpl.ICC_CONTENT_URI)
-                    .withSelection(getWriteSelection(contact), null)
+                    .newDelete(SimRecords.getItemUri(
+                            mSubscriptionId, ElementaryFiles.EF_ADN, contact.getRecordNumber()))
                     .build());
         }
-        return mResolver.applyBatch(SimContactDaoImpl.ICC_CONTENT_URI.getAuthority(), ops);
+        return mResolver.applyBatch(SimPhonebookContract.AUTHORITY, ops);
     }
 
     public ContentProviderResult[] restore(ArrayList<ContentProviderOperation> restoreOps)
@@ -106,7 +111,7 @@
         // Remove SIM contacts because we assume that caller wants the data to be in the exact
         // state as when the restore ops were captured.
         deleteAllSimContacts();
-        return mResolver.applyBatch(SimContactDaoImpl.ICC_CONTENT_URI.getAuthority(), restoreOps);
+        return mResolver.applyBatch(SimPhonebookContract.AUTHORITY, restoreOps);
     }
 
     public ArrayList<ContentProviderOperation> captureRestoreSnapshot() {
@@ -124,24 +129,16 @@
                         " Please manually remove SIM contacts with emails.");
             }
             ops.add(ContentProviderOperation
-                    .newInsert(SimContactDaoImpl.ICC_CONTENT_URI)
-                    .withValue("tag", contact.getName())
-                    .withValue("number", contact.getPhone())
+                    .newInsert(mDefaultSimAdnUri)
+                    .withValue(SimRecords.NAME, contact.getName())
+                    .withValue(SimRecords.PHONE_NUMBER, contact.getPhone())
                     .build());
         }
         return ops;
     }
 
-    public String getWriteSelection(SimContact simContact) {
-        return "tag='" + simContact.getName() + "' AND " + SimContactDaoImpl.NUMBER + "='" +
-                simContact.getPhone() + "'";
-    }
-
-    public int deleteSimContact(@NonNull  String name, @NonNull  String number) {
-        // IccProvider doesn't use the selection args.
-        final String selection = "tag='" + name + "' AND " +
-                SimContactDaoImpl.NUMBER + "='" + number + "'";
-        return mResolver.delete(SimContactDaoImpl.ICC_CONTENT_URI, selection, null);
+    public int deleteSimContact(@NonNull Uri recordUri) {
+        return mResolver.delete(recordUri, null);
     }
 
     public boolean isSimReady() {
@@ -156,7 +153,7 @@
         if (!isSimReady()) return false;
         final String name = "writabeProbe" + System.nanoTime();
         final Uri uri = addSimContact(name, "15095550101");
-        return uri != null && deleteSimContact(name, "15095550101") == 1;
+        return uri != null && deleteSimContact(uri) == 1;
     }
 
     public void assumeSimReady() {
