[automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 71c494e1c0 -s ours
am skip reason: subject contains skip directive
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Contacts/+/15523974
Change-Id: I12fbd64e71a291bbcfb57e90659eafced2751d3b
diff --git a/Android.bp b/Android.bp
index 08288f8..27c5b2f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,3 +1,34 @@
+package {
+ default_applicable_licenses: ["packages_apps_Contacts_license"],
+}
+
+// Added automatically by a large-scale-change that took the approach of
+// 'apply every license found to every target'. While this makes sure we respect
+// every license restriction, it may not be entirely correct.
+//
+// e.g. GPL in an MIT project might only apply to the contrib/ directory.
+//
+// Please consider splitting the single license below into multiple licenses,
+// taking care not to lose any license_kind information, and overriding the
+// default license using the 'licenses: [...]' property on targets as needed.
+//
+// For unused files, consider creating a 'fileGroup' with "//visibility:private"
+// to attach the license to, and including a comment whether the files may be
+// used in the current project.
+// See: http://go/android-license-faq
+license {
+ name: "packages_apps_Contacts_license",
+ visibility: [":__subpackages__"],
+ license_kinds: [
+ "SPDX-license-identifier-Apache-2.0",
+ "SPDX-license-identifier-BSD",
+ "SPDX-license-identifier-CC-BY",
+ ],
+ license_text: [
+ "NOTICE",
+ ],
+}
+
android_app {
name: "Contacts",
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index c9dc980..a5b25de 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -16,12 +16,12 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.contacts"
- android:versionCode="10731"
- android:versionName="1.7.31">
+ android:versionCode="10733"
+ android:versionName="1.7.33">
<uses-sdk
android:minSdkVersion="21"
- android:targetSdkVersion="29"/>
+ android:targetSdkVersion="30"/>
<original-package android:name="com.android.contacts"/>
@@ -74,6 +74,7 @@
android:launchMode="singleTop"
android:resizeableActivity="true"
android:theme="@style/LaunchScreenTheme"
+ android:exported="true"
android:visibleToInstantApps="true"
>
<intent-filter>
@@ -184,6 +185,7 @@
android:theme="@style/ContactPickerTheme"
android:uiOptions="splitActionBarWhenNarrow"
android:windowSoftInputMode="adjustResize"
+ android:exported="true"
android:visibleToInstantApps="true">
<meta-data android:name="android.app.shortcuts.new_config"
android:value="true" />
@@ -286,6 +288,7 @@
<activity
android:name=".activities.ShowOrCreateActivity"
+ android:exported="true"
android:theme="@android:style/Theme.Material.Light.Dialog.NoActionBar">
<intent-filter>
@@ -303,6 +306,7 @@
android:launchMode="singleTop"
android:taskAffinity=""
android:theme="@style/Theme.QuickContact"
+ android:exported="true"
android:windowSoftInputMode="stateUnchanged">
<intent-filter>
@@ -331,7 +335,8 @@
<!-- Responsible for creating notification channels when boot is completed or when app is
re-installed -->
- <receiver android:name=".interactions.OnBootOrUpgradeReceiver">
+ <receiver android:name=".interactions.OnBootOrUpgradeReceiver"
+ android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
@@ -342,6 +347,7 @@
android:name="ContactShortcut"
android:icon="@drawable/logo_quick_contacts_color_44in48dp"
android:label="@string/shortcutContact"
+ android:exported="true"
android:targetActivity=".activities.ContactSelectionActivity">
<intent-filter>
@@ -355,6 +361,7 @@
android:name="alias.DialShortcut"
android:icon="@drawable/logo_quick_contacts_dialer_color_44in48dp"
android:label="@string/shortcutDialContact"
+ android:exported="true"
android:targetActivity=".activities.ContactSelectionActivity">
<intent-filter>
@@ -370,6 +377,7 @@
android:name="alias.MessageShortcut"
android:icon="@drawable/logo_quick_contacts_mail_color_44in48dp"
android:label="@string/shortcutMessageContact"
+ android:exported="true"
android:targetActivity=".activities.ContactSelectionActivity">
<intent-filter>
@@ -389,6 +397,7 @@
<!-- Edit or create a contact with only the most important fields displayed initially. -->
<activity
android:name=".activities.ContactEditorActivity"
+ android:exported="true"
android:theme="@style/EditorActivityTheme">
<intent-filter>
@@ -418,6 +427,7 @@
<activity
android:name=".activities.ContactEditorSpringBoardActivity"
+ android:exported="true"
android:theme="@style/TransparentThemeAppCompat">
<intent-filter>
@@ -430,7 +440,8 @@
</intent-filter>
</activity>
- <activity android:name=".test.FragmentTestActivity">
+ <activity android:name=".test.FragmentTestActivity"
+ android:exported="true">
<intent-filter>
<category android:name="android.intent.category.TEST"/>
</intent-filter>
@@ -456,6 +467,7 @@
<activity
android:name=".activities.AttachPhotoActivity"
android:label="@string/attach_photo_dialog_title"
+ android:exported="true"
android:taskAffinity="">
<intent-filter>
<action android:name="android.intent.action.ATTACH_DATA"/>
@@ -468,6 +480,7 @@
<activity
android:name=".vcard.ImportVCardActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
+ android:exported="true"
android:theme="@style/BackgroundOnlyTheme">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
@@ -483,6 +496,7 @@
<activity
android:name=".vcard.NfcImportVCardActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
+ android:exported="true"
android:theme="@style/BackgroundOnlyTheme">
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
@@ -528,6 +542,7 @@
are set lower, so that the user does not see a disambig dialog -->
<activity
android:name="com.android.contacts.NonPhoneActivity"
+ android:exported="true"
android:theme="@style/NonPhoneActivityTheme">
<intent-filter android:priority="-1">
<action android:name="android.intent.action.MAIN"/>
@@ -556,6 +571,7 @@
<activity
android:name="com.android.contacts.dialog.CallSubjectDialog"
android:theme="@style/Theme.CallSubjectDialogTheme"
+ android:exported="true"
android:windowSoftInputMode="stateVisible|adjustResize">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
@@ -599,4 +615,95 @@
android:value="true"/>
</application>
+
+ <!-- Allows the contacts app to see the activities and services needed
+ to detect accounts and show actions in QuickContact. -->
+ <queries>
+ <!-- ContactsProvider2 -->
+ <package android:name="com.android.providers.contacts"/>
+
+ <!-- quickcontact actions and verbs -->
+ <intent>
+ <action android:name="android.intent.action.SENDTO" />
+ <data android:scheme="imto" />
+ </intent>
+ <intent>
+ <action android:name="android.intent.action.SENDTO" />
+ <data android:scheme="xmpp" />
+ </intent>
+ <intent>
+ <action android:name="android.intent.action.SENDTO" />
+ <data android:scheme="mailto" />
+ </intent>
+ <intent>
+ <action android:name="android.intent.action.SENDTO" />
+ <data android:scheme="smsto" />
+ </intent>
+ <intent>
+ <action android:name="android.intent.action.VIEW"/>
+ <data android:scheme="geo"/>
+ </intent>
+ <!-- About card -->
+ <intent>
+ <!-- View CalendarContract Uris -->
+ <action android:name="android.intent.action.VIEW"/>
+ <data android:scheme="content" android:host="com.android.calendar"/>
+ </intent>
+ <intent>
+ <action android:name="android.intent.action.VIEW"/>
+ <data android:scheme="https"/>
+ </intent>
+
+ <!-- Account loading -->
+ <intent>
+ <action android:name="android.accounts.AccountAuthenticator"/>
+ </intent>
+ <intent>
+ <action android:name="android.intent.action.VIEW" />
+ <data android:scheme="content" android:host="com.android.contacts"
+ android:mimeType="vnd.android.cursor.item/*" />
+ </intent>
+
+ <!-- calling -->
+ <package android:name="com.android.dialer"/>
+ <intent>
+ <action android:name="android.intent.action.CALL" />
+ <data android:scheme="tel" />
+ </intent>
+ <intent>
+ <action android:name="android.intent.action.DIAL" />
+ <data android:scheme="tel" />
+ </intent>
+ <intent>
+ <action android:name="android.intent.action.CALL" />
+ <data android:scheme="sip" />
+ </intent>
+ <intent>
+ <action android:name="android.intent.action.DIAL" />
+ <data android:scheme="sip" />
+ </intent>
+ <intent>
+ <action android:name="android.intent.action.CALL" />
+ <data android:scheme="voicemail" />
+ </intent>
+ <intent>
+ <action android:name="android.intent.action.DIAL" />
+ <data android:scheme="voicemail" />
+ </intent>
+
+ <!-- vcard export -->
+ <intent>
+ <action android:name="android.intent.action.CREATE_DOCUMENT" />
+ <data android:mimeType="text/x-vcard" />
+ <category android:name="android.intent.category.OPENABLE" />
+ </intent>
+
+ <!-- edit contact photo -->
+ <intent>
+ <action android:name="com.android.camera.action.CROP" />
+ <data android:mimeType="image/*" />
+ </intent>
+
+ </queries>
+
</manifest>
diff --git a/METADATA b/METADATA
new file mode 100644
index 0000000..d97975c
--- /dev/null
+++ b/METADATA
@@ -0,0 +1,3 @@
+third_party {
+ license_type: NOTICE
+}
diff --git a/lint-baseline.xml b/lint-baseline.xml
new file mode 100644
index 0000000..764546f
--- /dev/null
+++ b/lint-baseline.xml
@@ -0,0 +1,576 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="5" by="lint 4.1.0" client="cli" variant="all" version="4.1.0">
+
+ <issue
+ id="NewApi"
+ message="Call requires API level 31 (current min is 21): `android.provider.ContactsContract.SimContacts#getSimAccounts`"
+ errorLine1=" ContactsContract.SimContacts.getSimAccounts(mContext.getContentResolver());"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="packages/apps/Contacts/src/com/android/contacts/model/AccountTypeManager.java"
+ line="541"
+ column="54"/>
+ </issue>
+
+ <issue
+ id="NewApi"
+ message="Call requires API level 31 (current min is 21): `android.provider.ContactsContract.SimAccount#getAccountName`"
+ errorLine1=" simAccountWithDataSets.add(new AccountWithDataSet(simAccount.getAccountName(),"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="packages/apps/Contacts/src/com/android/contacts/model/AccountTypeManager.java"
+ line="543"
+ column="82"/>
+ </issue>
+
+ <issue
+ id="NewApi"
+ message="Call requires API level 31 (current min is 21): `android.provider.ContactsContract.SimAccount#getAccountType`"
+ errorLine1=" simAccount.getAccountType(), null));"
+ errorLine2=" ~~~~~~~~~~~~~~">
+ <location
+ file="packages/apps/Contacts/src/com/android/contacts/model/AccountTypeManager.java"
+ line="544"
+ column="40"/>
+ </issue>
+
+ <issue
+ id="NewApi"
+ message="Cast from `PhoneAccountHandle` to `Parcelable` requires API level 23 (current min is 21)"
+ errorLine1=" arguments.putParcelable(ARG_PHONE_ACCOUNT_HANDLE, phoneAccountHandle);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="packages/apps/Contacts/src/com/android/contacts/dialog/CallSubjectDialog.java"
+ line="249"
+ column="59"/>
+ </issue>
+
+ <issue
+ id="NewApi"
+ message="Cast from `PhoneAccountHandle` to `Parcelable` requires API level 23 (current min is 21)"
+ errorLine1=" intent.putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~">
+ <location
+ file="packages/apps/Contacts/src/com/android/contacts/CallUtil.java"
+ line="87"
+ column="72"/>
+ </issue>
+
+ <issue
+ id="NewApi"
+ message="Call requires API level 23 (current min is 21): `android.telecom.TelecomManager#getCallCapablePhoneAccounts`"
+ errorLine1=" List<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<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 && 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=" && 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("createIconDrawable", 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 && CompatUtils.isLollipopMr1Compatible() && 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=" <item name="android:contentInsetStartWithNavigation">72dp</item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="packages/apps/Contacts/res/values/styles.xml"
+ line="215"
+ column="15"/>
+ </issue>
+
+</issues>
diff --git a/proguard.flags b/proguard.flags
index 782aa7e..9543f9d 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -57,7 +57,6 @@
-keep class com.android.contacts.model.BuilderWrapper { *; }
-keep class com.android.contacts.model.Contact { *; }
-keep class com.android.contacts.model.ContactLoader { *; }
--keep class com.android.contacts.model.Cp2DeviceLocalAccountLocator { *; }
-keep class com.android.contacts.model.CPOWrapper { *; }
-keep class com.android.contacts.model.dataitem.DataItem { *; }
-keep class com.android.contacts.model.dataitem.DataKind { *; }
diff --git a/res/layout-land/contact_editor_fragment.xml b/res/layout-land/contact_editor_fragment.xml
index 6f026aa..e68d7a3 100644
--- a/res/layout-land/contact_editor_fragment.xml
+++ b/res/layout-land/contact_editor_fragment.xml
@@ -31,7 +31,7 @@
<include layout="@layout/photo_editor_view" />
- <!-- Dummy view so the first input field is not initially focused. b/21644158 -->
+ <!-- Placeholder view so the first input field is not initially focused. b/21644158 -->
<View
android:layout_width="0dp"
android:layout_height="0dp"
diff --git a/res/layout/contact_editor_fragment.xml b/res/layout/contact_editor_fragment.xml
index 03a84e1..694e1f6 100644
--- a/res/layout/contact_editor_fragment.xml
+++ b/res/layout/contact_editor_fragment.xml
@@ -38,7 +38,7 @@
<include layout="@layout/photo_editor_view" />
- <!-- Dummy view so the first input field is not initially focused. b/21644158 -->
+ <!-- Placeholder view so the first input field is not initially focused. b/21644158 -->
<View
android:layout_width="0dp"
android:layout_height="0dp"
diff --git a/res/layout/menu_item_action_view.xml b/res/layout/menu_item_action_view.xml
index 62eb758..1f8066e 100644
--- a/res/layout/menu_item_action_view.xml
+++ b/res/layout/menu_item_action_view.xml
@@ -15,7 +15,8 @@
limitations under the License.
-->
-<!-- A dummy action view to attach extra hidden content description to menuItem for Talkback. -->
+<!-- A placeholder action view to attach extra hidden content description to
+ menuItem for Talkback. -->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
@@ -24,4 +25,4 @@
<View
android:layout_width="1dp"
android:layout_height= "1dp" />
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index af96fb9..2c30f00 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Instellings"</string>
<string name="menu_settings" msgid="3524924670246877187">"Instellings"</string>
<string name="menu_help" msgid="287801702920372292">"Hulp en terugvoer"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Foonnommer"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Voeg by kontakte"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Maak toe"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Teksboodskap"</string>
<string name="postal_address" msgid="5031809899673855074">"Adres"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Maatskappy"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Departement"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Titel"</string>
<string name="label_notes" msgid="7134226125644463585">"Notas"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Gepasmaak"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 9c49977..388ce56 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"ቅንብሮች"</string>
<string name="menu_settings" msgid="3524924670246877187">"ቅንብሮች"</string>
<string name="menu_help" msgid="287801702920372292">"እገዛ እና ግብረመልስ"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>፣ <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"ስልክ ቁጥር:"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"ወደ ዕውቂያዎች አክል"</string>
<string name="non_phone_close" msgid="2792373584950696532">"ዝጋ"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"የጽሑፍ መልዕክት"</string>
<string name="postal_address" msgid="5031809899673855074">"አድራሻ"</string>
<string name="ghostData_company" msgid="3873500610390675876">"ኩባንያ"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"መምሪያ"</string>
<string name="ghostData_title" msgid="8584897460662904533">"አርዕስት"</string>
<string name="label_notes" msgid="7134226125644463585">"ማስታወሻዎች"</string>
<string name="label_custom_field" msgid="4160584225306364924">"ብጁ"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 99b7a86..b7bc19a 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -180,7 +180,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"الإعدادات"</string>
<string name="menu_settings" msgid="3524924670246877187">"الإعدادات"</string>
<string name="menu_help" msgid="287801702920372292">"المساعدة والتعليقات"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>، <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"رقم الهاتف"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"إضافة إلى جهات الاتصال"</string>
<string name="non_phone_close" msgid="2792373584950696532">"إغلاق"</string>
@@ -340,6 +341,7 @@
<string name="sms" msgid="4246338112764847384">"رسالة نصية"</string>
<string name="postal_address" msgid="5031809899673855074">"العنوان"</string>
<string name="ghostData_company" msgid="3873500610390675876">"الشركة"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"القسم"</string>
<string name="ghostData_title" msgid="8584897460662904533">"المسمى الوظيفي"</string>
<string name="label_notes" msgid="7134226125644463585">"ملاحظات"</string>
<string name="label_custom_field" msgid="4160584225306364924">"مخصص"</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 8c396f3..0ab03a3 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -164,7 +164,10 @@
<string name="activity_title_settings" msgid="4004290638426915162">"ছেটিংবোৰ"</string>
<string name="menu_settings" msgid="3524924670246877187">"ছেটিংবোৰ"</string>
<string name="menu_help" msgid="287801702920372292">"সহায় আৰু মতামত"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <!-- no translation found for organization_entry_two_field (6034934619269052455) -->
+ <skip />
+ <!-- no translation found for organization_entry_all_field (6724345890324437167) -->
+ <skip />
<string name="non_phone_caption" msgid="7343449684187013327">"ফ\'ন নম্বৰ"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"সর্ম্পক সূচীত যোগ কৰক"</string>
<string name="non_phone_close" msgid="2792373584950696532">"বন্ধ কৰক"</string>
@@ -324,6 +327,7 @@
<string name="sms" msgid="4246338112764847384">"পাঠ বাৰ্তা"</string>
<string name="postal_address" msgid="5031809899673855074">"ঠিকনা"</string>
<string name="ghostData_company" msgid="3873500610390675876">"কোম্পানী"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"বিভাগ"</string>
<string name="ghostData_title" msgid="8584897460662904533">"শিৰোনাম"</string>
<string name="label_notes" msgid="7134226125644463585">"টোকাবোৰ"</string>
<string name="label_custom_field" msgid="4160584225306364924">"নিজৰ উপযোগিতা অনুসৰি"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index b104b36..779d752 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Ayarlar"</string>
<string name="menu_settings" msgid="3524924670246877187">"Ayarlar"</string>
<string name="menu_help" msgid="287801702920372292">"Kömək & əks əlaqə"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g>, <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Telefon nömrəsi"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Kontaktlara əlavə edin"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Qapadın"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Mətn mesajı"</string>
<string name="postal_address" msgid="5031809899673855074">"Ünvan:"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Şirkət"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Şöbə"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Başlıq"</string>
<string name="label_notes" msgid="7134226125644463585">"Qeydlər"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Fərdi"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 8f981d6..595bc60 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -168,7 +168,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Podešavanja"</string>
<string name="menu_settings" msgid="3524924670246877187">"Podešavanja"</string>
<string name="menu_help" msgid="287801702920372292">"Pomoć i povratne informacije"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Broj telefona"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Dodaj u kontakte"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Zatvori"</string>
@@ -328,6 +329,7 @@
<string name="sms" msgid="4246338112764847384">"Tekstualna poruka"</string>
<string name="postal_address" msgid="5031809899673855074">"Adresa"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Preduzeće"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Odsek"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Naslov"</string>
<string name="label_notes" msgid="7134226125644463585">"Beleške"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Prilagođeno"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 9082031..336346b 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -172,7 +172,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Налады"</string>
<string name="menu_settings" msgid="3524924670246877187">"Налады"</string>
<string name="menu_help" msgid="287801702920372292">"Даведка і водгукі"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Нумар тэлефона"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Дадаць у кантакты"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Закрыць"</string>
@@ -332,6 +333,7 @@
<string name="sms" msgid="4246338112764847384">"Тэкставае паведамленне"</string>
<string name="postal_address" msgid="5031809899673855074">"Адрас"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Кампанія"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Аддзел"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Пасада"</string>
<string name="label_notes" msgid="7134226125644463585">"Нататкі"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Карыстальніцкі"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index be177bc..966b89c 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Настройки"</string>
<string name="menu_settings" msgid="3524924670246877187">"Настройки"</string>
<string name="menu_help" msgid="287801702920372292">"Помощ и отзиви"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Телефонен номер"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Добавяне към контактите"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Затваряне"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Текстово съобщение"</string>
<string name="postal_address" msgid="5031809899673855074">"Адрес"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Фирма"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Отдел"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Длъжност"</string>
<string name="label_notes" msgid="7134226125644463585">"Бележки"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Персонализирано"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index d5365ec..16a0431 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"সেটিংস"</string>
<string name="menu_settings" msgid="3524924670246877187">"সেটিংস"</string>
<string name="menu_help" msgid="287801702920372292">"সহায়তা ও প্রতিক্রিয়া"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"ফোন নম্বর"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"পরিচিতিগুলিতে যোগ করুন"</string>
<string name="non_phone_close" msgid="2792373584950696532">"বন্ধ"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"পাঠ্য বার্তা"</string>
<string name="postal_address" msgid="5031809899673855074">"ঠিকানা"</string>
<string name="ghostData_company" msgid="3873500610390675876">"কোম্পানি"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"বিভাগ"</string>
<string name="ghostData_title" msgid="8584897460662904533">"শীর্ষক"</string>
<string name="label_notes" msgid="7134226125644463585">"নোটগুলি"</string>
<string name="label_custom_field" msgid="4160584225306364924">"কাস্টম"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index f43d7c0..fe40e4c 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -168,7 +168,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Postavke"</string>
<string name="menu_settings" msgid="3524924670246877187">"Postavke"</string>
<string name="menu_help" msgid="287801702920372292">"Pomoć i povratne informacije"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Broj telefona"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Dodaj u kontakte"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Zatvori"</string>
@@ -328,6 +329,7 @@
<string name="sms" msgid="4246338112764847384">"SMS"</string>
<string name="postal_address" msgid="5031809899673855074">"Adresa"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Kompanija"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Odjel"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Pozicija"</string>
<string name="label_notes" msgid="7134226125644463585">"Bilješke"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Prilagođeno"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 3ec77e3..1bff03d 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Configuració"</string>
<string name="menu_settings" msgid="3524924670246877187">"Configuració"</string>
<string name="menu_help" msgid="287801702920372292">"Ajuda i suggeriments"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Número de telèfon"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Afegeix als contactes"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Tanca"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Missatge de text"</string>
<string name="postal_address" msgid="5031809899673855074">"Adreça"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Empresa"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Departament"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Títol"</string>
<string name="label_notes" msgid="7134226125644463585">"Notes"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Personalitzat"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index ddfe5b4..8f7d22d 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -172,7 +172,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Nastavení"</string>
<string name="menu_settings" msgid="3524924670246877187">"Nastavení"</string>
<string name="menu_help" msgid="287801702920372292">"Nápověda a zpětná vazba"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Telefonní číslo"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Přidat do kontaktů"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Zavřít"</string>
@@ -332,6 +333,7 @@
<string name="sms" msgid="4246338112764847384">"Textová zpráva"</string>
<string name="postal_address" msgid="5031809899673855074">"Adresa"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Společnost"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Oddělení"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Název"</string>
<string name="label_notes" msgid="7134226125644463585">"Poznámky"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Vlastní"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 771e266..67384a6 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Indstillinger"</string>
<string name="menu_settings" msgid="3524924670246877187">"Indstillinger"</string>
<string name="menu_help" msgid="287801702920372292">"Hjælp og feedback"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Telefonnummer"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Føj til kontakter"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Luk"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Sms"</string>
<string name="postal_address" msgid="5031809899673855074">"Adresse"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Virksomhed"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Afdeling"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Titel"</string>
<string name="label_notes" msgid="7134226125644463585">"Noter"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Tilpasset"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index c2c2f58..c3c5e02 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Einstellungen"</string>
<string name="menu_settings" msgid="3524924670246877187">"Einstellungen"</string>
<string name="menu_help" msgid="287801702920372292">"Hilfe & 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 & 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 & 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 & 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 & 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 & feedback"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Phone number"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Add to contacts"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Close"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Text message"</string>
<string name="postal_address" msgid="5031809899673855074">"Address"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Company"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Department"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Title"</string>
<string name="label_notes" msgid="7134226125644463585">"Notes"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Custom"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 21fc88f..6e394ef 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Configuración"</string>
<string name="menu_settings" msgid="3524924670246877187">"Configuración"</string>
<string name="menu_help" msgid="287801702920372292">"Ayuda y comentarios"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Núm. de tel."</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Agregar a contactos"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Cerrar"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Mensaje de texto"</string>
<string name="postal_address" msgid="5031809899673855074">"Dirección"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Empresa"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Departamento"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Título"</string>
<string name="label_notes" msgid="7134226125644463585">"Notas"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Personalizado"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 9902e26..8001dc8 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Ajustes"</string>
<string name="menu_settings" msgid="3524924670246877187">"Ajustes"</string>
<string name="menu_help" msgid="287801702920372292">"Ayuda y comentarios"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Número de teléfono"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Añadir a contactos"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Cerrar"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Mensaje de texto"</string>
<string name="postal_address" msgid="5031809899673855074">"Dirección"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Empresa"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Departamento"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Cargo"</string>
<string name="label_notes" msgid="7134226125644463585">"Notas"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Personalizado"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index baecc4b..c7174c7 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Seaded"</string>
<string name="menu_settings" msgid="3524924670246877187">"Seaded"</string>
<string name="menu_help" msgid="287801702920372292">"Abi ja tagasiside"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Telefoninumber"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Lisa kontaktidesse"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Sule"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Tekstsõnum"</string>
<string name="postal_address" msgid="5031809899673855074">"Aadress"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Ettevõte"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Osakond"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Pealkiri"</string>
<string name="label_notes" msgid="7134226125644463585">"Märkused"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Kohandatud"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 4967f6d..a20d96e 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Ezarpenak"</string>
<string name="menu_settings" msgid="3524924670246877187">"Ezarpenak"</string>
<string name="menu_help" msgid="287801702920372292">"Laguntza eta iritziak"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Telefono-zenbakia"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Gehitu kontaktuetan"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Itxi"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Testu-mezua"</string>
<string name="postal_address" msgid="5031809899673855074">"Helbidea"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Enpresa"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Saila"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Lanpostua"</string>
<string name="label_notes" msgid="7134226125644463585">"Oharrak"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Pertsonalizatua"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 041404e..824d903 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"تنظیمات"</string>
<string name="menu_settings" msgid="3524924670246877187">"تنظیمات"</string>
<string name="menu_help" msgid="287801702920372292">"راهنما و بازخورد"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>، <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="SECOND">%2$s</xliff:g> • <xliff:g id="FIRST">%1$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"شماره تلفن"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"افزودن به مخاطبین"</string>
<string name="non_phone_close" msgid="2792373584950696532">"بستن"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"پیام نوشتاری"</string>
<string name="postal_address" msgid="5031809899673855074">"آدرس"</string>
<string name="ghostData_company" msgid="3873500610390675876">"شرکت"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"بخش"</string>
<string name="ghostData_title" msgid="8584897460662904533">"عنوان"</string>
<string name="label_notes" msgid="7134226125644463585">"یادداشتها"</string>
<string name="label_custom_field" msgid="4160584225306364924">"سفارشی"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 1d85767..92c9cb0 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Asetukset"</string>
<string name="menu_settings" msgid="3524924670246877187">"Asetukset"</string>
<string name="menu_help" msgid="287801702920372292">"Ohje ja palaute"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Puhelinnumero"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Lisää yhteystietoihin"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Sulje"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Tekstiviesti"</string>
<string name="postal_address" msgid="5031809899673855074">"Osoite"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Yritys"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Osasto"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Nimi"</string>
<string name="label_notes" msgid="7134226125644463585">"Muistiinpanot"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Muokattu"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 1711751..e92919f 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Paramètres"</string>
<string name="menu_settings" msgid="3524924670246877187">"Paramètres"</string>
<string name="menu_help" msgid="287801702920372292">"Aide et commentaires"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Numéro de téléphone"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Ajouter aux contacts"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Fermer"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Message texte"</string>
<string name="postal_address" msgid="5031809899673855074">"Adresse"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Entreprise"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Service"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Titre"</string>
<string name="label_notes" msgid="7134226125644463585">"Remarques"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Personnalisé"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index f7ee599..36e6a86 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Paramètres"</string>
<string name="menu_settings" msgid="3524924670246877187">"Paramètres"</string>
<string name="menu_help" msgid="287801702920372292">"Aide et commentaires"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Numéro de téléphone"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Ajouter aux contacts"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Fermer"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"SMS"</string>
<string name="postal_address" msgid="5031809899673855074">"Adresse"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Entreprise"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Service"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Titre"</string>
<string name="label_notes" msgid="7134226125644463585">"Notes"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Personnalisé"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 690f2e7..dc62e2d 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Configuración"</string>
<string name="menu_settings" msgid="3524924670246877187">"Configuración"</string>
<string name="menu_help" msgid="287801702920372292">"Axuda e comentarios"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Número de teléfono"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Engadir a contactos"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Pechar"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Mensaxe de texto"</string>
<string name="postal_address" msgid="5031809899673855074">"Enderezo"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Empresa"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Departamento"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Cargo"</string>
<string name="label_notes" msgid="7134226125644463585">"Notas"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Personalizado"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 832bf07..850ab91 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"સેટિંગ"</string>
<string name="menu_settings" msgid="3524924670246877187">"સેટિંગ"</string>
<string name="menu_help" msgid="287801702920372292">"સહાય અને પ્રતિસાદ"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"ફોન નંબર"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"સંપર્કોમાં ઉમેરો"</string>
<string name="non_phone_close" msgid="2792373584950696532">"બંધ કરો"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"ટેક્સ્ટ સંદેશ"</string>
<string name="postal_address" msgid="5031809899673855074">"સરનામું"</string>
<string name="ghostData_company" msgid="3873500610390675876">"કંપની"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"વિભાગ"</string>
<string name="ghostData_title" msgid="8584897460662904533">"શીર્ષક"</string>
<string name="label_notes" msgid="7134226125644463585">"નોંધ"</string>
<string name="label_custom_field" msgid="4160584225306364924">"કસ્ટમ"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 9d5b7dc..0a0ad87 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"सेटिंग"</string>
<string name="menu_settings" msgid="3524924670246877187">"सेटिंग"</string>
<string name="menu_help" msgid="287801702920372292">"सहायता और फ़ीडबैक"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"फ़ोन नंबर"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"संपर्कों में जोड़ें"</string>
<string name="non_phone_close" msgid="2792373584950696532">"बंद करें"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"लेख संदेश"</string>
<string name="postal_address" msgid="5031809899673855074">"पता"</string>
<string name="ghostData_company" msgid="3873500610390675876">"कंपनी"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"डिपार्टमेंट"</string>
<string name="ghostData_title" msgid="8584897460662904533">"शीर्षक"</string>
<string name="label_notes" msgid="7134226125644463585">"नोट"</string>
<string name="label_custom_field" msgid="4160584225306364924">"पसंद के मुताबिक"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 0e39456..78b88bb 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -168,7 +168,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Postavke"</string>
<string name="menu_settings" msgid="3524924670246877187">"Postavke"</string>
<string name="menu_help" msgid="287801702920372292">"Pomoć i povratne informacije"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Broj telefona"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Dodaj kontaktima"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Zatvori"</string>
@@ -328,6 +329,7 @@
<string name="sms" msgid="4246338112764847384">"Tekstualna poruka"</string>
<string name="postal_address" msgid="5031809899673855074">"Adresa"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Tvrtka"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Odjel"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Naslov"</string>
<string name="label_notes" msgid="7134226125644463585">"Bilješke"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Prilagođeno"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index b948140..f5030f9 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Beállítások"</string>
<string name="menu_settings" msgid="3524924670246877187">"Beállítások"</string>
<string name="menu_help" msgid="287801702920372292">"Súgó és visszajelzés"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Telefonszám"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Hozzáadása a névjegyekhez"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Bezárás"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Szöveges üzenet"</string>
<string name="postal_address" msgid="5031809899673855074">"Cím"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Cég"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Részleg"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Beosztás"</string>
<string name="label_notes" msgid="7134226125644463585">"Jegyzetek"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Egyéni"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index c33f758..6d45f64 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Կարգավորումներ"</string>
<string name="menu_settings" msgid="3524924670246877187">"Կարգավորումներ"</string>
<string name="menu_help" msgid="287801702920372292">"Օգնություն և կարծիք"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Հեռախոսահամար"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Ավելացնել կոնտակտներում"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Փակել"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Տեքստային հաղորդագրություն"</string>
<string name="postal_address" msgid="5031809899673855074">"Հասցե"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Ընկերություն"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Բաժին"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Պաշտոն"</string>
<string name="label_notes" msgid="7134226125644463585">"Գրառումներ"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Հատուկ"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index fb1903a..a7e339c 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Setelan"</string>
<string name="menu_settings" msgid="3524924670246877187">"Setelan"</string>
<string name="menu_help" msgid="287801702920372292">"Bantuan & masukan"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Nomor telepon"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Tambahkan ke kontak"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Tutup"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Pesan teks"</string>
<string name="postal_address" msgid="5031809899673855074">"Alamat"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Perusahaan"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Departemen"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Jabatan"</string>
<string name="label_notes" msgid="7134226125644463585">"Catatan"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Khusus"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index d2986bd..64427df 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Stillingar"</string>
<string name="menu_settings" msgid="3524924670246877187">"Stillingar"</string>
<string name="menu_help" msgid="287801702920372292">"Hjálp og ábendingar"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Símanúmer"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Bæta við tengiliði"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Loka"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Senda SMS-skilaboð"</string>
<string name="postal_address" msgid="5031809899673855074">"Heimilisfang"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Fyrirtæki"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Deild"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Titill"</string>
<string name="label_notes" msgid="7134226125644463585">"Glósur"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Sérsniðið"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 4396eec..037fbed 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Impostazioni"</string>
<string name="menu_settings" msgid="3524924670246877187">"Impostazioni"</string>
<string name="menu_help" msgid="287801702920372292">"Guida e feedback"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Numero di telefono"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Aggiungi a contatti"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Chiudi"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Messaggio di testo"</string>
<string name="postal_address" msgid="5031809899673855074">"Indirizzo"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Società"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Reparto"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Titolo"</string>
<string name="label_notes" msgid="7134226125644463585">"Note"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Personalizzato"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 191024d..8c4793b 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -172,7 +172,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"הגדרות"</string>
<string name="menu_settings" msgid="3524924670246877187">"הגדרות"</string>
<string name="menu_help" msgid="287801702920372292">"עזרה ומשוב"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"מספר טלפון"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"הוסף לאנשי הקשר"</string>
<string name="non_phone_close" msgid="2792373584950696532">"סגור"</string>
@@ -332,6 +333,7 @@
<string name="sms" msgid="4246338112764847384">"הודעת טקסט"</string>
<string name="postal_address" msgid="5031809899673855074">"כתובת"</string>
<string name="ghostData_company" msgid="3873500610390675876">"חברה"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"מחלקה"</string>
<string name="ghostData_title" msgid="8584897460662904533">"שם"</string>
<string name="label_notes" msgid="7134226125644463585">"הערות"</string>
<string name="label_custom_field" msgid="4160584225306364924">"מותאם אישית"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 7293c44..30221ef 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"設定"</string>
<string name="menu_settings" msgid="3524924670246877187">"設定"</string>
<string name="menu_help" msgid="287801702920372292">"ヘルプとフィードバック"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>、<xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"電話番号"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"連絡先に追加"</string>
<string name="non_phone_close" msgid="2792373584950696532">"閉じる"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"テキストメッセージ"</string>
<string name="postal_address" msgid="5031809899673855074">"住所"</string>
<string name="ghostData_company" msgid="3873500610390675876">"会社"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"部署"</string>
<string name="ghostData_title" msgid="8584897460662904533">"役職"</string>
<string name="label_notes" msgid="7134226125644463585">"メモ"</string>
<string name="label_custom_field" msgid="4160584225306364924">"カスタム"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index cfde2ab..a3f008e 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"პარამეტრები"</string>
<string name="menu_settings" msgid="3524924670246877187">"პარამეტრები"</string>
<string name="menu_help" msgid="287801702920372292">"დახმარება/უკუკავშირი"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"ტელეფონის ნომერი"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"კონტაქტებში დამატება"</string>
<string name="non_phone_close" msgid="2792373584950696532">"დახურვა"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"ტექსტური შეტყობინება"</string>
<string name="postal_address" msgid="5031809899673855074">"მისამართი"</string>
<string name="ghostData_company" msgid="3873500610390675876">"კომპანია"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"განყოფილება"</string>
<string name="ghostData_title" msgid="8584897460662904533">"სათაური"</string>
<string name="label_notes" msgid="7134226125644463585">"შენიშვნები"</string>
<string name="label_custom_field" msgid="4160584225306364924">"მორგებული"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 1dc5f32..4d6b1bf 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Параметрлер"</string>
<string name="menu_settings" msgid="3524924670246877187">"Параметрлер"</string>
<string name="menu_help" msgid="287801702920372292">"Анықтама және пікір"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Телефон нөмірі"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Контактілерге қосу"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Жабу"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Мәтіндік хабар"</string>
<string name="postal_address" msgid="5031809899673855074">"Мекенжай"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Компания"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Бөлім"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Атауы"</string>
<string name="label_notes" msgid="7134226125644463585">"Ескертпелер"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Арнаулы"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index f37834a..1d875e1 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"ការកំណត់"</string>
<string name="menu_settings" msgid="3524924670246877187">"ការកំណត់"</string>
<string name="menu_help" msgid="287801702920372292">"ជំនួយ និង មតិស្ថាបនា"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"លេខទូរសព្ទ"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"បញ្ចូលទៅក្នុងទំនាក់ទំនង"</string>
<string name="non_phone_close" msgid="2792373584950696532">"បិទ"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"សារអត្ថបទ"</string>
<string name="postal_address" msgid="5031809899673855074">"អាសយដ្ឋាន"</string>
<string name="ghostData_company" msgid="3873500610390675876">"ក្រុមហ៊ុន"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"ផ្នែក"</string>
<string name="ghostData_title" msgid="8584897460662904533">"ចំណងជើង"</string>
<string name="label_notes" msgid="7134226125644463585">"ចំណាំ"</string>
<string name="label_custom_field" msgid="4160584225306364924">"ផ្ទាល់ខ្លួន"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 87d629c..f867e39 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="menu_settings" msgid="3524924670246877187">"ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="menu_help" msgid="287801702920372292">"ಸಹಾಯ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆ"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"ಫೋನ್ ಸಂಖ್ಯೆ"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"ಸಂಪರ್ಕಗಳಿಗೆ ಸೇರಿಸು"</string>
<string name="non_phone_close" msgid="2792373584950696532">"ಮುಚ್ಚು"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"ಪಠ್ಯ ಸಂದೇಶ"</string>
<string name="postal_address" msgid="5031809899673855074">"ವಿಳಾಸ"</string>
<string name="ghostData_company" msgid="3873500610390675876">"ಕಂಪನಿ"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"ವಿಭಾಗ"</string>
<string name="ghostData_title" msgid="8584897460662904533">"ಶೀರ್ಷಿಕೆ"</string>
<string name="label_notes" msgid="7134226125644463585">"ಟಿಪ್ಪಣಿಗಳು"</string>
<string name="label_custom_field" msgid="4160584225306364924">"ಕಸ್ಟಮ್"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 3641817..f265a5e 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"설정"</string>
<string name="menu_settings" msgid="3524924670246877187">"설정"</string>
<string name="menu_help" msgid="287801702920372292">"고객센터"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"전화번호"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"주소록에 추가"</string>
<string name="non_phone_close" msgid="2792373584950696532">"닫기"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"문자 메시지"</string>
<string name="postal_address" msgid="5031809899673855074">"주소"</string>
<string name="ghostData_company" msgid="3873500610390675876">"회사"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"부서"</string>
<string name="ghostData_title" msgid="8584897460662904533">"직함"</string>
<string name="label_notes" msgid="7134226125644463585">"메모"</string>
<string name="label_custom_field" msgid="4160584225306364924">"맞춤"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 9f689ef..3267e04 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Жөндөөлөр"</string>
<string name="menu_settings" msgid="3524924670246877187">"Жөндөөлөр"</string>
<string name="menu_help" msgid="287801702920372292">"Жардам жана пикир билдирүү"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g> , <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Телефон номери"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Байланыштарга кошуу"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Жабуу"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"SMS билдирүү жөнөтүү"</string>
<string name="postal_address" msgid="5031809899673855074">"Почта дареги"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Компания"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Бөлүм"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Аталышы"</string>
<string name="label_notes" msgid="7134226125644463585">"Эскертүүлөр"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Өздүк"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 27c9e53..fb89778 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"ການຕັ້ງຄ່າ"</string>
<string name="menu_settings" msgid="3524924670246877187">"ການຕັ້ງຄ່າ"</string>
<string name="menu_help" msgid="287801702920372292">"ຊ່ວຍເຫຼືອ ແລະ ຄຳຕິຊົມ"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"ເບີໂທລະສັບ"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"ເພີ່ມໃສ່ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
<string name="non_phone_close" msgid="2792373584950696532">"ປິດ"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"ຂໍ້ຄວາມ"</string>
<string name="postal_address" msgid="5031809899673855074">"ທີ່ຢູ່"</string>
<string name="ghostData_company" msgid="3873500610390675876">"ບໍລິສັດ"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"ພະແນກ"</string>
<string name="ghostData_title" msgid="8584897460662904533">"ຕຳແໜ່ງໜ້າທີ່"</string>
<string name="label_notes" msgid="7134226125644463585">"ໝາຍເຫດ"</string>
<string name="label_custom_field" msgid="4160584225306364924">"ກຳນົດເອງ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 4aa209a..d1a5c15 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -172,7 +172,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Nustatymai"</string>
<string name="menu_settings" msgid="3524924670246877187">"Nustatymai"</string>
<string name="menu_help" msgid="287801702920372292">"Pagalba ir atsiliepimai"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"„<xliff:g id="COMPANY_0">%2$s</xliff:g>“, „<xliff:g id="COMPANY_1">%1$s</xliff:g>“"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"„<xliff:g id="FIRST">%1$s</xliff:g>“ • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"„<xliff:g id="COMPANY">%1$s</xliff:g>“ • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Telefono numeris"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Pridėti prie kontaktų"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Uždaryti"</string>
@@ -332,6 +333,7 @@
<string name="sms" msgid="4246338112764847384">"Teksto pranešimas"</string>
<string name="postal_address" msgid="5031809899673855074">"Adresas"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Įmonė"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Skyrius"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Pareigos"</string>
<string name="label_notes" msgid="7134226125644463585">"Pastabos"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Tinkintas"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 89fdbb8..2f5e9d3 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -168,7 +168,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Iestatījumi"</string>
<string name="menu_settings" msgid="3524924670246877187">"Iestatījumi"</string>
<string name="menu_help" msgid="287801702920372292">"Palīdzība un atsauksmes"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Tālruņa numurs"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Piev. kontaktpersonām"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Aizvērt"</string>
@@ -328,6 +329,7 @@
<string name="sms" msgid="4246338112764847384">"Īsziņa"</string>
<string name="postal_address" msgid="5031809899673855074">"Adrese"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Uzņēmums"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Nodaļa"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Nosaukums"</string>
<string name="label_notes" msgid="7134226125644463585">"Piezīmes"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Pielāgota"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index c082cb3..b5d0c38 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Поставки"</string>
<string name="menu_settings" msgid="3524924670246877187">"Поставки"</string>
<string name="menu_help" msgid="287801702920372292">"Помош и повратни информации"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Телефонски број"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Додај во контакти"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Затвори"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"SMS-порака"</string>
<string name="postal_address" msgid="5031809899673855074">"Адреса"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Компанија"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Оддел"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Наслов"</string>
<string name="label_notes" msgid="7134226125644463585">"Белешки"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Приспособено"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index d448ee3..f576ef7 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"ക്രമീകരണം"</string>
<string name="menu_settings" msgid="3524924670246877187">"ക്രമീകരണം"</string>
<string name="menu_help" msgid="287801702920372292">"സഹായവും ഫീഡ്ബാക്കും"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"ഫോൺ നമ്പർ"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"കോൺടാക്റ്റുകളിൽ ചേർക്കുക"</string>
<string name="non_phone_close" msgid="2792373584950696532">"അടയ്ക്കുക"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"വാചക സന്ദേശം"</string>
<string name="postal_address" msgid="5031809899673855074">"വിലാസം"</string>
<string name="ghostData_company" msgid="3873500610390675876">"കമ്പനി"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"ഡിപ്പാർട്ട്മെന്റ്"</string>
<string name="ghostData_title" msgid="8584897460662904533">"ശീർഷകം"</string>
<string name="label_notes" msgid="7134226125644463585">"കുറിപ്പുകള്"</string>
<string name="label_custom_field" msgid="4160584225306364924">"ഇഷ്ടാനുസൃതം"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index c1fdab5..8ebb52a 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Тохиргоо"</string>
<string name="menu_settings" msgid="3524924670246877187">"Тохиргоо"</string>
<string name="menu_help" msgid="287801702920372292">"Тусламж, санал хүсэлт"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Утасны дугаар"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Харилцагчдад нэмэх"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Хаах"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Мессеж"</string>
<string name="postal_address" msgid="5031809899673855074">"Хаяг"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Компани"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Хэлтэс"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Гарчиг"</string>
<string name="label_notes" msgid="7134226125644463585">"Тэмдэглэл"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Тусгай"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 51d59cb..0b67181 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"सेटिंग्ज"</string>
<string name="menu_settings" msgid="3524924670246877187">"सेटिंग्ज"</string>
<string name="menu_help" msgid="287801702920372292">"मदत आणि अभिप्राय"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"फोन नंबर"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"संपर्कांमध्ये जोडा"</string>
<string name="non_phone_close" msgid="2792373584950696532">"बंद करा"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"मजकूर संदेश"</string>
<string name="postal_address" msgid="5031809899673855074">"पत्ता"</string>
<string name="ghostData_company" msgid="3873500610390675876">"कंपनी"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"विभाग"</string>
<string name="ghostData_title" msgid="8584897460662904533">"शीर्षक"</string>
<string name="label_notes" msgid="7134226125644463585">"टिपा"</string>
<string name="label_custom_field" msgid="4160584225306364924">"सानुकूल"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index dffb9f4..5dd3959 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Tetapan"</string>
<string name="menu_settings" msgid="3524924670246877187">"Tetapan"</string>
<string name="menu_help" msgid="287801702920372292">"Bantuan & 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">"मद्दत & प्रतिक्रिया"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g> , <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"फोन नम्बर"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"सम्पर्कहरूमा जोड्नुहोस्"</string>
<string name="non_phone_close" msgid="2792373584950696532">"बन्द गर्नुहोस्"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"टेक्स्ट म्यासेज"</string>
<string name="postal_address" msgid="5031809899673855074">"ठेगाना"</string>
<string name="ghostData_company" msgid="3873500610390675876">"कम्पनी"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"विभाग"</string>
<string name="ghostData_title" msgid="8584897460662904533">"शीर्षक"</string>
<string name="label_notes" msgid="7134226125644463585">"टिप्पणीहरू"</string>
<string name="label_custom_field" msgid="4160584225306364924">"आफू अनुकूल"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 2f5ed8f..f23c6e3 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Instellingen"</string>
<string name="menu_settings" msgid="3524924670246877187">"Instellingen"</string>
<string name="menu_help" msgid="287801702920372292">"Hulp en feedback"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Telefoonnummer"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Toevoegen aan contacten"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Sluiten"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Sms"</string>
<string name="postal_address" msgid="5031809899673855074">"Adres"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Bedrijf"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Afdeling"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Titel"</string>
<string name="label_notes" msgid="7134226125644463585">"Opmerkingen"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Aangepast"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 8650ac8..00c6202 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -164,7 +164,10 @@
<string name="activity_title_settings" msgid="4004290638426915162">"ସେଟିଙ୍ଗ"</string>
<string name="menu_settings" msgid="3524924670246877187">"ସେଟିଙ୍ଗ"</string>
<string name="menu_help" msgid="287801702920372292">"ସହାୟତା ଓ ମତାମତ"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <!-- no translation found for organization_entry_two_field (6034934619269052455) -->
+ <skip />
+ <!-- no translation found for organization_entry_all_field (6724345890324437167) -->
+ <skip />
<string name="non_phone_caption" msgid="7343449684187013327">"ଫୋନ୍ ନମ୍ଵର୍"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"ଯୋଗାଯୋଗରେ ଯୋଡ଼ନ୍ତୁ"</string>
<string name="non_phone_close" msgid="2792373584950696532">"ବନ୍ଦ କରନ୍ତୁ"</string>
@@ -324,6 +327,7 @@
<string name="sms" msgid="4246338112764847384">"SMS"</string>
<string name="postal_address" msgid="5031809899673855074">"ଠିକଣା"</string>
<string name="ghostData_company" msgid="3873500610390675876">"କମ୍ପାନୀ"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"ବିଭାଗ"</string>
<string name="ghostData_title" msgid="8584897460662904533">"ଟାଇଟଲ୍"</string>
<string name="label_notes" msgid="7134226125644463585">"ନୋଟ୍"</string>
<string name="label_custom_field" msgid="4160584225306364924">"କଷ୍ଟମ"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 008f1ef..dd24e71 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"ਸੈਟਿੰਗਾਂ"</string>
<string name="menu_settings" msgid="3524924670246877187">"ਸੈਟਿੰਗਾਂ"</string>
<string name="menu_help" msgid="287801702920372292">"ਸਹਾਇਤਾ ਅਤੇ ਪ੍ਰਤੀਕਰਮ"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"ਫ਼ੋਨ ਨੰਬਰ"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"ਸੰਪਰਕਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ"</string>
<string name="non_phone_close" msgid="2792373584950696532">"ਬੰਦ ਕਰੋ"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"ਲਿਖਤ ਸੁਨੇਹਾ"</string>
<string name="postal_address" msgid="5031809899673855074">"ਪਤਾ"</string>
<string name="ghostData_company" msgid="3873500610390675876">"ਕੰਪਨੀ"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"ਵਿਭਾਗ"</string>
<string name="ghostData_title" msgid="8584897460662904533">"ਸਿਰਲੇਖ"</string>
<string name="label_notes" msgid="7134226125644463585">"ਨੋਟ-ਕਥਨ"</string>
<string name="label_custom_field" msgid="4160584225306364924">"ਵਿਉਂਤਬੱਧ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 9d054ef..59dfb02 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -172,7 +172,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Ustawienia"</string>
<string name="menu_settings" msgid="3524924670246877187">"Ustawienia"</string>
<string name="menu_help" msgid="287801702920372292">"Pomoc i opinie"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Numer telefonu"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Dodaj do kontaktów"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Zamknij"</string>
@@ -332,6 +333,7 @@
<string name="sms" msgid="4246338112764847384">"SMS"</string>
<string name="postal_address" msgid="5031809899673855074">"Adres"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Firma"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Dział"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Stanowisko"</string>
<string name="label_notes" msgid="7134226125644463585">"Notatki"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Niestandardowe"</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 2afe197..f74079e 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Configurações"</string>
<string name="menu_settings" msgid="3524924670246877187">"Configurações"</string>
<string name="menu_help" msgid="287801702920372292">"Ajuda e feedback"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Número de telefone"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Adicionar aos contatos"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Fechar"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Mensagem de texto"</string>
<string name="postal_address" msgid="5031809899673855074">"Endereço"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Empresa"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Departamento"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Título"</string>
<string name="label_notes" msgid="7134226125644463585">"Observações"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Personalizado"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index a1be30f..22539ba 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Definições"</string>
<string name="menu_settings" msgid="3524924670246877187">"Definições"</string>
<string name="menu_help" msgid="287801702920372292">"Ajuda e comentários"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Número de telefone"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Adicionar aos contactos"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Fechar"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Mensagem de texto"</string>
<string name="postal_address" msgid="5031809899673855074">"Endereço"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Empresa"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Departamento"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Título"</string>
<string name="label_notes" msgid="7134226125644463585">"Notas"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Personalizado"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 2afe197..f74079e 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Configurações"</string>
<string name="menu_settings" msgid="3524924670246877187">"Configurações"</string>
<string name="menu_help" msgid="287801702920372292">"Ajuda e feedback"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Número de telefone"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Adicionar aos contatos"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Fechar"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Mensagem de texto"</string>
<string name="postal_address" msgid="5031809899673855074">"Endereço"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Empresa"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Departamento"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Título"</string>
<string name="label_notes" msgid="7134226125644463585">"Observações"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Personalizado"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index f5dcd99..a721949 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -168,7 +168,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Setări"</string>
<string name="menu_settings" msgid="3524924670246877187">"Setări"</string>
<string name="menu_help" msgid="287801702920372292">"Ajutor și feedback"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Număr de telefon"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Adăugați în agendă"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Închideți"</string>
@@ -328,6 +329,7 @@
<string name="sms" msgid="4246338112764847384">"Mesaj text"</string>
<string name="postal_address" msgid="5031809899673855074">"Adresă"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Companie"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Departament"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Titlu"</string>
<string name="label_notes" msgid="7134226125644463585">"Note"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Personalizat"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 57e6862..a795ee8 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -172,7 +172,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Настройки"</string>
<string name="menu_settings" msgid="3524924670246877187">"Настройки"</string>
<string name="menu_help" msgid="287801702920372292">"Справка/отзыв"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Номер телефона"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Добавить в контакты"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Скрыть"</string>
@@ -332,6 +333,7 @@
<string name="sms" msgid="4246338112764847384">"Текстовое сообщение"</string>
<string name="postal_address" msgid="5031809899673855074">"Адрес"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Компания"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Отдел"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Должность"</string>
<string name="label_notes" msgid="7134226125644463585">"Примечания"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Другое"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 57a5f4b..7e95776 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"සැකසීම්"</string>
<string name="menu_settings" msgid="3524924670246877187">"සැකසීම්"</string>
<string name="menu_help" msgid="287801702920372292">"උදවු සහ ප්රතිපෝෂණ"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"දුරකථන අංකය"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"සම්බන්ධතා වලට එක් කරන්න"</string>
<string name="non_phone_close" msgid="2792373584950696532">"වසන්න"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"කෙටි පණිවුඩ"</string>
<string name="postal_address" msgid="5031809899673855074">"ලිපිනය"</string>
<string name="ghostData_company" msgid="3873500610390675876">"සමාගම"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"දෙපාර්තමේන්තුව"</string>
<string name="ghostData_title" msgid="8584897460662904533">"මාතෘකාව"</string>
<string name="label_notes" msgid="7134226125644463585">"සටහන්"</string>
<string name="label_custom_field" msgid="4160584225306364924">"අභිරුචි"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 3e22d5c..3de78d4 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -172,7 +172,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Nastavenia"</string>
<string name="menu_settings" msgid="3524924670246877187">"Nastavenia"</string>
<string name="menu_help" msgid="287801702920372292">"Pomocník a spätná väzba"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Telefónne číslo"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Pridať medzi kontakty"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Zavrieť"</string>
@@ -332,6 +333,7 @@
<string name="sms" msgid="4246338112764847384">"Textová správa"</string>
<string name="postal_address" msgid="5031809899673855074">"Adresa"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Firma"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Oddelenie"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Titul"</string>
<string name="label_notes" msgid="7134226125644463585">"Poznámky"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Vlastný"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 636a2b6..343053c 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -172,7 +172,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Nastavitve"</string>
<string name="menu_settings" msgid="3524924670246877187">"Nastavitve"</string>
<string name="menu_help" msgid="287801702920372292">"Pomoč in povr. informacije"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Telefonska številka"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Dodaj v stike"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Zapri"</string>
@@ -332,6 +333,7 @@
<string name="sms" msgid="4246338112764847384">"SMS"</string>
<string name="postal_address" msgid="5031809899673855074">"Naslov"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Podjetje"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Oddelek"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Naslov"</string>
<string name="label_notes" msgid="7134226125644463585">"Opombe"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Po meri"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index af9a6ff..cdef0ec 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Cilësimet"</string>
<string name="menu_settings" msgid="3524924670246877187">"Cilësimet"</string>
<string name="menu_help" msgid="287801702920372292">"Ndihmë dhe komente"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Numri i telefonit"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Shto te kontaktet"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Mbyll"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Mesazhi me tekst"</string>
<string name="postal_address" msgid="5031809899673855074">"Adresa"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Kompania"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Departamenti"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Titulli"</string>
<string name="label_notes" msgid="7134226125644463585">"Shënimet"</string>
<string name="label_custom_field" msgid="4160584225306364924">"E personalizuar"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 1438160..3304dca 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -168,7 +168,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Подешавања"</string>
<string name="menu_settings" msgid="3524924670246877187">"Подешавања"</string>
<string name="menu_help" msgid="287801702920372292">"Помоћ и повратне информације"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Број телефона"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Додај у контакте"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Затвори"</string>
@@ -328,6 +329,7 @@
<string name="sms" msgid="4246338112764847384">"Текстуална порука"</string>
<string name="postal_address" msgid="5031809899673855074">"Адреса"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Предузеће"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Одсек"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Наслов"</string>
<string name="label_notes" msgid="7134226125644463585">"Белешке"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Прилагођено"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index d54e359..1afd097 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Inställningar"</string>
<string name="menu_settings" msgid="3524924670246877187">"Inställningar"</string>
<string name="menu_help" msgid="287801702920372292">"Hjälp och feedback"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Telefonnummer"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Lägg till i Kontakter"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Stäng"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Textmeddelande"</string>
<string name="postal_address" msgid="5031809899673855074">"Adress"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Företag"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Avdelning"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Titel"</string>
<string name="label_notes" msgid="7134226125644463585">"Anteckningar"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Anpassat"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index b6ff4ea..02299f6 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Mipangilio"</string>
<string name="menu_settings" msgid="3524924670246877187">"Mipangilio"</string>
<string name="menu_help" msgid="287801702920372292">"Usaidizi na maoni"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Nambari ya simu"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Ongeza kwa anwani"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Funga"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Ujumbe wa maandishi"</string>
<string name="postal_address" msgid="5031809899673855074">"Anwani"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Kampuni"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Idara"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Jina la heshima"</string>
<string name="label_notes" msgid="7134226125644463585">"Kidokezo"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Maalum"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 6598310..c38377f 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"அமைப்பு"</string>
<string name="menu_settings" msgid="3524924670246877187">"அமைப்பு"</string>
<string name="menu_help" msgid="287801702920372292">"உதவி & கருத்து"</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 68202f0..1eb06d7 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">"సహాయం & అభిప్రాయం"</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>
@@ -198,7 +199,7 @@
<string name="contact_editor_unlink_contacts" msgid="8399419729744305687">"అన్లింక్ చేయి"</string>
<string name="add_account" msgid="3071396624500839020">"ఖాతాను జోడించు"</string>
<string name="add_new_account" msgid="573368229646104110">"కొత్త ఖాతాను జోడించు"</string>
- <string name="menu_export_database" msgid="1658249125751926885">"డేటాబేస్ ఫైళ్లను ఎగుమతి చేయి"</string>
+ <string name="menu_export_database" msgid="1658249125751926885">"డేటాబేస్ ఫైల్లను ఎగుమతి చేయి"</string>
<string name="action_menu_add_new_contact_button" msgid="1201339383074001291">"కొత్త పరిచయాన్ని సృష్టిస్తుంది"</string>
<string name="expanding_entry_card_view_see_more" msgid="6636033205952561590">"మరిన్ని చూడండి"</string>
<string name="expanding_entry_card_view_see_less" msgid="6399603072579278030">"తక్కువ చూడండి"</string>
@@ -235,7 +236,7 @@
<string name="navigation_drawer_open" msgid="3428713515765555712">"నావిగేషన్ డ్రాయర్ను తెరుస్తుంది"</string>
<string name="navigation_drawer_close" msgid="3052989100471689722">"నావిగేషన్ డ్రాయర్ను మూసివేస్తుంది"</string>
<string name="navigation_drawer_label" msgid="8391863484838783638">"<xliff:g id="LABEL_NAME">%s</xliff:g> లేబుల్"</string>
- <string name="menu_title_groups" msgid="3722199658759568221">"లేబుళ్లు"</string>
+ <string name="menu_title_groups" msgid="3722199658759568221">"లేబుల్లు"</string>
<string name="menu_title_filters" msgid="349866121417914494">"ఖాతాలు"</string>
<string name="hamburger_feature_highlight_header" msgid="1786641424099282909">"సూచనలు"</string>
<string name="hamburger_feature_highlight_body" msgid="782935036630531528">"మీ పరిచయాలను ఉత్తమంగా నిర్వహించండి మరియు ఉపయోగించండి"</string>
@@ -286,7 +287,7 @@
<string name="sms_by_shortcut" msgid="4682340916268521006">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (సందేశం)"</string>
<string name="description_video_call" msgid="4956825008907720371">"వీడియో కాల్ చేస్తుంది"</string>
<string name="clearFrequentsConfirmation_title" msgid="9194415661170740437">"తరచుగా సంప్రదించినవాటిని క్లియర్ చేయాలా?"</string>
- <string name="clearFrequentsConfirmation" msgid="2120741757522063938">"మీరు పరిచయాలు మరియు ఫోన్ అనువర్తనాల్లో తరచుగా సంప్రదించిన పరిచయాల జాబితాను తీసివేస్తారు మరియు స్క్రాచ్ నుండి మీ చిరునామా ప్రాధాన్యతలను తెలుసుకునేలా ఇమెయిల్ యాప్లను నిర్బంధిస్తారు."</string>
+ <string name="clearFrequentsConfirmation" msgid="2120741757522063938">"మీరు పరిచయాలు మరియు ఫోన్ అనువర్తనాల్లో తరచుగా సంప్రదించిన పరిచయాల జాబితాను తీసివేస్తారు మరియు స్క్రాచ్ నుండి మీ చిరునామా ప్రాధాన్యతలను తెలుసుకునేలా ఇమెయిల్ అనువర్తనాలను నిర్బంధిస్తారు."</string>
<string name="clearFrequentsProgress_title" msgid="8271935295080659743">"తరచుగా సంప్రదించినవాటిని క్లియర్ చేస్తోంది…"</string>
<string name="status_available" msgid="8081626460682959098">"అందుబాటులో ఉన్నారు"</string>
<string name="status_away" msgid="2677693194455091315">"దూరంగా ఉన్నారు"</string>
@@ -324,12 +325,13 @@
<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>
<string name="label_sip_address" msgid="8876347942587537552">"SIP"</string>
<string name="websiteLabelsGroup" msgid="114754928100220315">"వెబ్సైట్"</string>
- <string name="groupsLabel" msgid="5622154133880646122">"లేబుళ్లు"</string>
+ <string name="groupsLabel" msgid="5622154133880646122">"లేబుల్లు"</string>
<string name="email_home" msgid="1102791500866910269">"ఇంటికి ఇమెయిల్ చేయండి"</string>
<string name="email_mobile" msgid="6461172430397598705">"మొబైల్కు ఇమెయిల్ చేయండి"</string>
<string name="email_work" msgid="24992619164533704">"కార్యాలయానికి ఇమెయిల్ చేయండి"</string>
@@ -464,7 +466,7 @@
<string name="action_menu_back_from_search" msgid="683765774264585732">"శోధించడం ఆపివేస్తుంది"</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="set_default_account" msgid="9194321110211682396">"కాల్ల కోసం ఎప్పుడూ ఇది ఉపయోగించు"</string>
<string name="call_with_a_note" msgid="2463785820399287281">"గమనికతో కాల్ చేయి"</string>
<string name="call_subject_hint" msgid="7056652101889538157">"కాల్తో పాటు పంపడానికి గమనికను టైప్ చేయండి…"</string>
<string name="send_and_call_button" msgid="4851257959568592699">"పంపు & కాల్ చేయి"</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 0869174..c3495cc 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -164,7 +164,8 @@
<string name="activity_title_settings" msgid="4004290638426915162">"Cài đặt"</string>
<string name="menu_settings" msgid="3524924670246877187">"Cài đặt"</string>
<string name="menu_help" msgid="287801702920372292">"Trợ giúp và phản hồi"</string>
- <string name="organization_company_and_title" msgid="7197631449041284518">"<xliff:g id="COMPANY_0">%2$s</xliff:g>, <xliff:g id="COMPANY_1">%1$s</xliff:g>"</string>
+ <string name="organization_entry_two_field" msgid="6034934619269052455">"<xliff:g id="FIRST">%1$s</xliff:g> • <xliff:g id="SECOND">%2$s</xliff:g>"</string>
+ <string name="organization_entry_all_field" msgid="6724345890324437167">"<xliff:g id="COMPANY">%1$s</xliff:g> • <xliff:g id="DEPARTMENT">%2$s</xliff:g> • <xliff:g id="TITLE">%3$s</xliff:g>"</string>
<string name="non_phone_caption" msgid="7343449684187013327">"Số điện thoại"</string>
<string name="non_phone_add_to_contacts" msgid="5472784294274676663">"Thêm vào danh bạ"</string>
<string name="non_phone_close" msgid="2792373584950696532">"Đóng"</string>
@@ -324,6 +325,7 @@
<string name="sms" msgid="4246338112764847384">"Tin nhắn văn bản"</string>
<string name="postal_address" msgid="5031809899673855074">"Địa chỉ"</string>
<string name="ghostData_company" msgid="3873500610390675876">"Công ty"</string>
+ <string name="ghostData_department" msgid="8610642449404163799">"Phòng"</string>
<string name="ghostData_title" msgid="8584897460662904533">"Tiêu đề"</string>
<string name="label_notes" msgid="7134226125644463585">"Ghi chú"</string>
<string name="label_custom_field" msgid="4160584225306364924">"Tùy chỉnh"</string>
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 & 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() {