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 012b924..32d6644 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"/>
@@ -484,6 +497,7 @@
             android:name=".vcard.NfcImportVCardActivity"
             android:permission="android.permission.DISPATCH_NFC_MESSAGE"
             android:configChanges="orientation|screenSize|keyboardHidden"
+            android:exported="true"
             android:theme="@style/BackgroundOnlyTheme">
             <intent-filter>
                 <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
@@ -529,6 +543,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"/>
@@ -557,6 +572,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"/>
@@ -600,4 +616,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 26fad72..b22189e 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/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-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 a49dc8b..186d9dc 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 29bdbd0..cbe5a89 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 9b2e77f..6ca308f 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 5b899ea..72f8b65 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 71a9e8e..d56f205 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 b674f5c..3c0570f 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 e7fbe18..f2f7dc0 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 aa34808..19af556 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/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-pa/strings.xml b/res/values-pa/strings.xml
index 6001028..5d08de3 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>
@@ -371,7 +373,7 @@
     <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="display_more_groups" msgid="8398232980355188133">"ਹੋਰ ਸਮੂਹ…"</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="savingDisplayGroups" msgid="6779839417901711381">"ਡਿਸਪਲੇ ਵਿਕਲਪਾਂ ਨੂੰ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
     <string name="listCustomView" msgid="5782275477737032610">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ ਕੀਤਾ ਦ੍ਰਿਸ਼"</string>
@@ -462,7 +464,7 @@
     <string name="contact_status_update_attribution" msgid="5051874518046969847">"<xliff:g id="SOURCE">%1$s</xliff:g> ਦੇ ਰਾਹੀਂ"</string>
     <string name="contact_status_update_attribution_with_date" msgid="2195847657702455703">"<xliff:g id="SOURCE">%2$s</xliff:g> ਦੇ ਰਾਹੀਂ <xliff:g id="DATE">%1$s</xliff:g>"</string>
     <string name="action_menu_back_from_search" msgid="683765774264585732">"ਖੋਜ ਕਰਨਾ ਬੰਦ ਕਰੋ"</string>
-    <string name="description_clear_search" msgid="1852934085825794095">"ਖੋਜ ਹਟਾਓ"</string>
+    <string name="description_clear_search" msgid="1852934085825794095">"ਖੋਜ ਕਲੀਅਰ ਕਰੋ"</string>
     <string name="select_account_dialog_title" msgid="5047523441152129207">"ਖਾਤਾ"</string>
     <string name="set_default_account" msgid="9194321110211682396">"ਕਾਲਾਂ ਲਈ ਹਮੇਸ਼ਾ ਇਹ ਵਰਤੋ"</string>
     <string name="call_with_a_note" msgid="2463785820399287281">"ਕਿਸੇ ਨੋਟ-ਕਥਨ ਦੇ ਨਾਲ ਕਾਲ ਕਰੋ"</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 19a543e..b533a87 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 19a543e..b533a87 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..37c9ab5 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>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 67c1b3d..4579792 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/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-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..51ae0fa 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>
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() {
